protected function ViewsFieldMenuTest::setUp in Workbench Access 8
Overrides BrowserTestBase::setUp
File
- tests/
src/ Functional/ ViewsFieldMenuTest.php, line 71
Class
- ViewsFieldMenuTest
- Defines a class for testing workbench access views.
Namespace
Drupal\Tests\workbench_access\FunctionalCode
protected function setUp() {
parent::setUp();
// Create some sections and some nodes in them.
$sections = [
'Some section',
'Another section',
'More sections',
];
foreach ($sections as $section) {
$this->links[$section] = MenuLinkContent::create([
'title' => $section,
'link' => [
[
'uri' => 'route:<front>',
],
],
'menu_name' => 'main',
]);
$this->links[$section]
->save();
foreach ([
' node 1',
' node 2',
] as $stub) {
$title = $section . $stub;
$this->nodes[$title] = Node::create([
'type' => 'article',
'title' => $title,
'status' => 1,
]);
$this->nodes[$title]
->save();
_menu_ui_node_save($this->nodes[$title], [
'title' => $title,
'menu_name' => 'main',
'description' => 'view bar',
'parent' => $this->links[$section]
->getPluginId(),
]);
}
}
// Create a user who can access content etc.
$permissions = [
'create article content',
'edit any article content',
'access content',
'delete any article content',
'administer nodes',
'use workbench access',
'access user profiles',
];
$this->user = $this
->createUser($permissions);
$user_storage = \Drupal::service('workbench_access.user_section_storage');
$scheme_storage = \Drupal::service('entity_type.manager')
->getStorage('access_scheme');
$scheme = $scheme_storage
->load('menu');
$ids = array_values(array_map(function (MenuLinkContentInterface $link) {
return $link
->getPluginId();
}, $this->links));
$user_storage
->addUser($scheme, $this->user, $ids);
// Check data loading.
$expected = sort($ids);
$existing = $user_storage
->getUserSections($scheme, $this->user);
$this
->assertEquals($expected, sort($existing));
$this->user2 = $this
->createUser($permissions);
$ids = [
reset($this->links)
->getPluginId(),
];
$user_storage
->addUser($scheme, $this->user2, $ids);
// Check data loading.
$expected = sort($ids);
$existing = $user_storage
->getUserSections($scheme, $this->user2);
$this
->assertEquals($expected, sort($existing));
}