workbench_access-8.x-1.x-dev/tests/src/Functional/DeleteUserTest.php
tests/src/Functional/DeleteUserTest.php
<?php
namespace Drupal\Tests\workbench_access\Functional;
use Drupal\menu_link_content\Entity\MenuLinkContent;
use Drupal\Tests\BrowserTestBase;
use Drupal\Tests\workbench_access\Traits\WorkbenchAccessTestTrait;
/**
* Tests for deleting a user and removing associated data.
*
* @group workbench_access
*/
class DeleteUserTest extends BrowserTestBase {
use WorkbenchAccessTestTrait;
/**
* The default theme.
*
* @var string
*/
protected $defaultTheme = 'stark';
/**
* {@inheritdoc}
*/
protected static $modules = [
'workbench_access',
'node',
'menu_ui',
'link',
'menu_link_content',
'options',
'user',
'system',
];
/**
* Tests that deleting a user clears their data from storage.
*/
public function testUserDelete() {
// Add page content type.
$this->setUpContentType();
// Set up a content type and menu scheme.
$scheme = $this->setUpMenuScheme(['page'], ['main']);
$user_storage = $this->container->get('workbench_access.user_section_storage');
// Set up an editor.
$editor = $this->setUpEditorUser();
// Set up a second editor.
$admin = $this->setUpAdminUser([
'create page content',
'edit any page content',
'administer menu',
'delete any page content',
'use workbench access',
]);
// Set up a menu link for this test.
$base_link = MenuLinkContent::create([
'title' => 'Link 1',
'link' => [['uri' => 'route:<front>']],
'menu_name' => 'main',
]);
$base_link->save();
// Add the first user to the base section.
$user_storage->addUser($scheme, $editor, [$base_link->getPluginId()]);
// Add the second user to the base section.
$user_storage->addUser($scheme, $admin, [$base_link->getPluginId()]);
// Get assigned users.
$existing_users = $user_storage->getEditors($scheme, $base_link->getPluginId());
// Assert that these are the same.
$this->assertEquals([$editor->id(), $admin->id()], array_keys($existing_users));
// Delete the first user.
$editor->delete();
// Get assigned users.
$existing_users = $user_storage->getEditors($scheme, $base_link->getPluginId());
// Assert that these are the same.
$this->assertEquals([$admin->id()], array_keys($existing_users));
}
}
