Issue #3331229 by pminf, chadhester, zshrestha, hardikpandya, _pratik_, rogerpfaff, ultimike, xjm, mandclu, alexb7217: Use chaining for User::addRole() and ::removeRole()

merge-requests/7049/merge
xjm 2024-05-08 16:21:47 -07:00
parent c0beeeea5f
commit 8d512c2a2a
No known key found for this signature in database
GPG Key ID: 206B0B8743BDF4C2
25 changed files with 50 additions and 74 deletions

View File

@ -162,8 +162,7 @@ class BlockContentAccessHandlerTest extends KernelTestBase {
}
$this->role->save();
}
$user->addRole($this->role->id());
$user->save();
$user->addRole($this->role->id())->save();
if ($parent_access !== NULL) {
$parent_entity = $this->prophesize(AccessibleInterface::class);

View File

@ -94,8 +94,9 @@ class MediaPreviewTest extends MediaTestBase {
->save();
// Allow the test user to view the admin theme.
$this->adminUser->addRole($this->drupalCreateRole(['view the administration theme']));
$this->adminUser->save();
$this->adminUser
->addRole($this->drupalCreateRole(['view the administration theme']))
->save();
// Configure a different default and admin theme, like on most Drupal sites.
$this->config('system.theme')

View File

@ -84,8 +84,7 @@ abstract class CommentViewsKernelTestBase extends ViewsKernelTestBase {
$anonymous_role->save();
$this->adminUser = $this->userStorage->create(['name' => $this->randomMachineName()]);
$this->adminUser->addRole('admin');
$this->adminUser->save();
$this->adminUser->addRole('admin')->save();
}
}

View File

@ -73,8 +73,7 @@ class TextFormatElementFormTest extends KernelTestBase implements FormInterface
'name' => 'foobar',
'mail' => 'foobar@example.com',
]);
$this->testUser->addRole($role->id());
$this->testUser->save();
$this->testUser->addRole($role->id())->save();
\Drupal::service('current_user')->setAccount($this->testUser);
}

View File

@ -191,8 +191,8 @@ class JsonApiFilterRegressionTest extends JsonApiFunctionalTestBase {
for ($i = 0; $i < 3; $i++) {
// Create 3 users, one with the first role and two with the second role.
$users[$i] = $this->drupalCreateUser();
$users[$i]->addRole($i === 0 ? $role_llamalovers : $role_catcuddlers);
$users[$i]->save();
$users[$i]->addRole($i === 0 ? $role_llamalovers : $role_catcuddlers)
->save();
// For each user, create a node that is owned by that user. The node's
// `uid` field will be used to test filtering by a content entity ID.
Node::create([

View File

@ -219,8 +219,7 @@ class MediaAccessTest extends MediaFunctionalTestBase {
// Create a new role, which implicitly checks if the permission exists.
$mediaOverviewRole = $this->createRole(['access content overview', 'access media overview']);
$this->nonAdminUser->addRole($mediaOverviewRole);
$this->nonAdminUser->save();
$this->nonAdminUser->addRole($mediaOverviewRole)->save();
$this->drupalGet('admin/content');
$assert_session->linkByHrefExists('/admin/content/media');

View File

@ -181,8 +181,7 @@ class MigrateEntityContentValidationTest extends KernelTestBase {
'name' => 'foobar',
'mail' => 'foobar@example.com',
]);
$admin_user->addRole($role->id());
$admin_user->save();
$admin_user->addRole($role->id())->save();
$normal_user = User::create([
'name' => 'normal user',
'mail' => 'normal@example.com',

View File

@ -109,11 +109,9 @@ class ShortcutsNavigationBlockTest extends PageCacheTagsTestBase {
// user has a cache hit despite the user cache context, as
// the returned cache contexts include those from lazy-builder content.
$site_configuration_user1 = $this->drupalCreateUser();
$site_configuration_user1->addRole($site_configuration_role);
$site_configuration_user1->save();
$site_configuration_user1->addRole($site_configuration_role)->save();
$site_configuration_user2 = $this->drupalCreateUser();
$site_configuration_user2->addRole($site_configuration_role);
$site_configuration_user2->save();
$site_configuration_user2->addRole($site_configuration_role)->save();
$this->drupalLogin($site_configuration_user1);
$this->verifyDynamicPageCache($test_page_url, 'MISS');

View File

@ -174,11 +174,9 @@ class ShortcutCacheTagsTest extends EntityCacheTagsTestBase {
// user has a cache hit despite the user cache context, as
// the returned cache contexts include those from lazy-builder content.
$site_configuration_user1 = $this->drupalCreateUser();
$site_configuration_user1->addRole($site_configuration_role);
$site_configuration_user1->save();
$site_configuration_user1->addRole($site_configuration_role)->save();
$site_configuration_user2 = $this->drupalCreateUser();
$site_configuration_user2->addRole($site_configuration_role);
$site_configuration_user2->save();
$site_configuration_user2->addRole($site_configuration_role)->save();
$this->drupalLogin($site_configuration_user1);
$this->verifyDynamicPageCache($test_page_url, 'MISS');
@ -350,11 +348,9 @@ class ShortcutCacheTagsTest extends EntityCacheTagsTestBase {
// user has a cache hit despite the user cache context, as
// the returned cache contexts include those from lazy-builder content.
$site_configuration_user1 = $this->drupalCreateUser();
$site_configuration_user1->addRole($site_configuration_role);
$site_configuration_user1->save();
$site_configuration_user1->addRole($site_configuration_role)->save();
$site_configuration_user2 = $this->drupalCreateUser();
$site_configuration_user2->addRole($site_configuration_role);
$site_configuration_user2->save();
$site_configuration_user2->addRole($site_configuration_role)->save();
$this->drupalLogin($site_configuration_user1);
$this->verifyDynamicPageCache($test_page_url, 'MISS');

View File

@ -235,7 +235,9 @@ class ShortcutLinksTest extends ShortcutTestBase {
$this->assertSession()->pageTextContains("The shortcut $title has been deleted.");
$this->assertShortcutQuickLink('Add to Default shortcuts');
\Drupal::service('module_installer')->install(['block_content']);
$this->adminUser->addRole($this->drupalCreateRole(['administer block types']))->save();
$this->adminUser
->addRole($this->drupalCreateRole(['administer block types']))
->save();
BlockContentType::create([
'id' => 'basic',
'label' => 'Basic block',

View File

@ -132,8 +132,7 @@ class ToolbarAdminMenuTest extends BrowserTestBase {
$role = Role::load($this->createRole([]));
$role->setIsAdmin(TRUE);
$role->save();
$this->adminUser->addRole($role->id());
$this->adminUser->save();
$this->adminUser->addRole($role->id())->save();
// Uninstall a module.
$edit = [];

View File

@ -25,8 +25,7 @@ class AddRoleUser extends ChangeUserRoleBase {
// For efficiency manually save the original account before applying
// any changes.
$account->original = clone $account;
$account->addRole($rid);
$account->save();
$account->addRole($rid)->save();
}
}

View File

@ -25,8 +25,7 @@ class RemoveRoleUser extends ChangeUserRoleBase {
// For efficiency manually save the original account before applying
// any changes.
$account->original = clone $account;
$account->removeRole($rid);
$account->save();
$account->removeRole($rid)->save();
}
}

View File

@ -51,9 +51,7 @@ class UserAdminListingTest extends BrowserTestBase {
$rid_2 = $this->drupalCreateRole([], 'custom_role_2', 'custom_role_2');
$account = $this->drupalCreateUser();
$account->addRole($rid_1);
$account->addRole($rid_2);
$account->save();
$account->addRole($rid_1)->addRole($rid_2)->save();
$accounts[$account->label()] = $account;
$role_account_name = $account->label();

View File

@ -62,8 +62,9 @@ class UserSubAdminTest extends BrowserTestBase {
$this->assertSession()->pageTextContains('Account ' . $cancel_user->getAccountName() . ' has been disabled.');
// Repeat with permission to select account cancellation method.
$user->addRole($this->drupalCreateRole(['select account cancellation method']));
$user->save();
$user
->addRole($this->drupalCreateRole(['select account cancellation method']))
->save();
$cancel_user = $this->createUser();
$this->drupalGet('user/' . $cancel_user->id() . '/cancel');
$this->assertSession()->pageTextContains('Cancellation method');

View File

@ -61,8 +61,7 @@ abstract class AccessTestBase extends UserTestBase {
$this->normalUser = $this->drupalCreateUser([
'views_test_data test permission',
]);
$this->normalUser->addRole($this->normalRole);
$this->normalUser->save();
$this->normalUser->addRole($this->normalRole)->save();
// @todo when all the plugin information is cached make a reset function and
// call it here.
}

View File

@ -40,9 +40,7 @@ class HandlerFieldRoleTest extends UserTestBase {
// Add roles to user 1.
$user = User::load(1);
$user->addRole($role_name_a);
$user->addRole($role_name_b);
$user->save();
$user->addRole($role_name_a)->addRole($role_name_b)->save();
$this->drupalLogin($this->createUser(['access user profiles']));
$this->drupalGet('/test-views-handler-field-role');

View File

@ -36,11 +36,9 @@ class RolesRidArgumentTest extends UserTestBase {
$role_id = $this->createRole([], 'markup_role_name', '<em>Role name with markup</em>');
$this->createRole([], 'second_role_name', 'Second role name');
$user = $this->createUser([], 'User with role one');
$user->addRole($role_id);
$user->save();
$user->addRole($role_id)->save();
$second_user = $this->createUser([], 'User with role two');
$second_user->addRole('second_role_name');
$second_user->save();
$second_user->addRole('second_role_name')->save();
$this->drupalGet('/user_roles_rid_test/markup_role_name');
$this->assertSession()->assertEscaped('<em>Role name with markup</em>');

View File

@ -69,16 +69,13 @@ class UserEntityReferenceTest extends EntityKernelTestBase {
// cspell:ignore aabb aabbb aabbbb aabbbb
$user1 = $this->createUser([], 'aabb');
$user1->addRole($this->role1->id());
$user1->save();
$user1->addRole($this->role1->id())->save();
$user2 = $this->createUser([], 'aabbb');
$user2->addRole($this->role1->id());
$user2->save();
$user2->addRole($this->role1->id())->save();
$user3 = $this->createUser([], 'aabbbb');
$user3->addRole($this->role2->id());
$user3->save();
$user3->addRole($this->role2->id())->save();
/** @var \Drupal\Core\Entity\EntityAutocompleteMatcherInterface $autocomplete */
$autocomplete = \Drupal::service('entity.autocomplete_matcher');

View File

@ -79,17 +79,14 @@ abstract class UserKernelTestBase extends ViewsKernelTestBase {
// Setup a user with just the first role (so no permission beside the
// ones from the authenticated role).
$this->users[] = $account = $this->userStorage->create(['name' => 'first_role']);
$account->addRole('no_permission');
$account->save();
$account->addRole('no_permission')->save();
// Setup a user with just the second role (so one additional permission).
$this->users[] = $account = $this->userStorage->create(['name' => 'second_role']);
$account->addRole('one_permission');
$account->save();
$account->addRole('one_permission')->save();
// Setup a user with both the second and the third role.
$this->users[] = $account = $this->userStorage->create(['name' => 'second_third_role']);
$account->addRole('one_permission');
$account->addRole('multiple_permissions');
$account->save();
$account->addRole('one_permission')->addRole('multiple_permissions')
->save();
}
}

View File

@ -17,7 +17,8 @@ class AddRoleUserTest extends RoleUserTestBase {
*/
public function testExecuteAddExistingRole() {
$this->account->expects($this->never())
->method('addRole');
->method('addRole')
->willReturn($this->account);
$this->account->expects($this->any())
->method('hasRole')
@ -35,7 +36,8 @@ class AddRoleUserTest extends RoleUserTestBase {
*/
public function testExecuteAddNonExistingRole() {
$this->account->expects($this->once())
->method('addRole');
->method('addRole')
->willReturn($this->account);
$this->account->expects($this->any())
->method('hasRole')

View File

@ -17,7 +17,8 @@ class RemoveRoleUserTest extends RoleUserTestBase {
*/
public function testExecuteRemoveExistingRole() {
$this->account->expects($this->once())
->method('removeRole');
->method('removeRole')
->willReturn($this->account);
$this->account->expects($this->any())
->method('hasRole')
@ -35,7 +36,8 @@ class RemoveRoleUserTest extends RoleUserTestBase {
*/
public function testExecuteRemoveNonExistingRole() {
$this->account->expects($this->never())
->method('removeRole');
->method('removeRole')
->willReturn($this->account);
$this->account->expects($this->any())
->method('hasRole')

View File

@ -158,8 +158,7 @@ trait StandardTestTrait {
]);
$role->grantPermission('view the administration theme');
$role->save();
$this->adminUser->addRole($role->id());
$this->adminUser->save();
$this->adminUser->addRole($role->id())->save();
$this->drupalGet('node/add');
$this->assertSession()->statusCodeEquals(200);
@ -233,8 +232,7 @@ trait StandardTestTrait {
]);
$role->grantPermission('administer workflows');
$role->save();
$this->adminUser->addRole($role->id());
$this->adminUser->save();
$this->adminUser->addRole($role->id())->save();
$this->rebuildContainer();
$this->drupalGet('admin/config/workflow/workflows/manage/editorial');
$this->assertSession()->pageTextContains('Draft');
@ -254,8 +252,7 @@ trait StandardTestTrait {
$role->grantPermission('administer media');
$role->grantPermission('administer media display');
$role->save();
$this->adminUser->addRole($role->id());
$this->adminUser->save();
$this->adminUser->addRole($role->id())->save();
$assert_session = $this->assertSession();
$page = $this->getSession()->getPage();
/** @var \Drupal\media\Entity\MediaType $media_type */

View File

@ -109,8 +109,7 @@ class CacheContextOptimizationTest extends KernelTestBase {
// cache context, the element should have been changed because 'user.roles'
// cache context defined a cache tag for user entity changes, which should
// have bubbled up for the element when it was optimized away.
$authenticated_user->removeRole($role);
$authenticated_user->save();
$authenticated_user->removeRole($role)->save();
$element = $test_element;
$element['#markup'] = 'this should be visible';
$output = \Drupal::service('renderer')->renderRoot($element);

View File

@ -51,8 +51,7 @@ class PathElementFormTest extends KernelTestBase implements FormInterface {
'name' => 'foobar',
'mail' => 'foobar@example.com',
]);
$this->testUser->addRole($role->id());
$this->testUser->save();
$this->testUser->addRole($role->id())->save();
\Drupal::service('current_user')->setAccount($this->testUser);
}