multiversion-8.x-1.0-beta34/tests/src/Functional/MenuLinkTest.php
tests/src/Functional/MenuLinkTest.php
<?php
namespace Drupal\Tests\multiversion\Functional;
use Drupal\menu_link_content\Entity\MenuLinkContent;
use Drupal\menu_link_content\MenuLinkContentInterface;
use Drupal\multiversion\Entity\Workspace;
use Drupal\Tests\BrowserTestBase;
/**
* Tests menu links deletion.
*
* @group multiversion
*/
class MenuLinkTest extends BrowserTestBase {
protected $strictConfigSchema = FALSE;
/**
* @var \Drupal\multiversion\Workspace\WorkspaceManager
*/
protected $workspaceManager;
/**
* @var \Drupal\multiversion\Entity\WorkspaceInterface
*/
protected $initialWorkspace;
/**
* @var \Drupal\multiversion\Entity\WorkspaceInterface
*/
protected $newWorkspace;
/**
* Modules to enable.
*
* @var array
*/
protected static $modules = [
'multiversion',
'menu_link_content',
'block',
];
/**
* {@inheritdoc}
*/
protected function setUp() {
parent::setUp();
$this->workspaceManager = \Drupal::service('workspace.manager');
$web_user = $this->drupalCreateUser(['administer menu', 'administer workspaces']);
$this->drupalLogin($web_user);
$this->drupalPlaceBlock('system_menu_block:main');
$this->initialWorkspace = $this->workspaceManager->getActiveWorkspace();
$this->newWorkspace = Workspace::create(['machine_name' => 'foo', 'label' => 'Foo', 'type' => 'basic']);
$this->newWorkspace->save();
}
public function testMenuLinksInDifferentWorkspaces() {
/** @var MenuLinkContentInterface $pineapple */
$pineapple = MenuLinkContent::create([
'menu_name' => 'main',
'link' => 'route:user.page',
'title' => 'Pineapple'
]);
$pineapple->save();
$this->assertEqual(
$pineapple->get('workspace')->target_id,
$this->initialWorkspace->id(),
'Pineapple in initial workspace'
);
$this->assertNotEqual(
$pineapple->get('workspace')->target_id,
$this->newWorkspace->id(),
'Pineapple not in new workspace'
);
$this->workspaceManager->setActiveWorkspace($this->newWorkspace);
// Save another menu link.
/** @var MenuLinkContentInterface $pear */
$pear = MenuLinkContent::create([
'menu_name' => 'main',
'link' => 'route:user.page',
'title' => 'Pear',
]);
$pear->save();
$this->assertEqual(
$pear->get('workspace')->target_id,
$this->newWorkspace->id(),
'Pear in new workspace'
);
$this->assertNotEqual(
$pear->get('workspace')->target_id,
$this->initialWorkspace->id(),
'Pear not in initial workspace'
);
}
}
