You are here

public function MenuLinkTest::testMenuLinksInDifferentWorkspaces in Multiversion 8.2

File

src/Tests/MenuLinkTest.php, line 63

Class

MenuLinkTest
Tests menu links deletion.

Namespace

Drupal\multiversion\Tests

Code

public function testMenuLinksInDifferentWorkspaces() {

  /** @var MenuLinkContentInterface $pineapple */
  $pineapple = MenuLinkContent::create([
    'menu_name' => 'main',
    'link' => 'route:user.page',
    'title' => 'Pineapple',
  ]);
  $pineapple
    ->save();

  /** @var \Drupal\workspaces\WorkspaceAssociationStorageInterface $workspace_association_storage */
  $workspace_association_storage = \Drupal::entityTypeManager()
    ->getStorage('workspace_association');
  $tracking_workspace_ids = $workspace_association_storage
    ->getEntityTrackingWorkspaceIds($pineapple);
  $this
    ->assertEqual(1, count($tracking_workspace_ids), 'Pineapple tracked in correct number of workspaces.');
  $this
    ->assertTrue(in_array($this->initialWorkspace
    ->id(), $tracking_workspace_ids), 'Pineapple in initial 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();
  $tracking_workspace_ids = $workspace_association_storage
    ->getEntityTrackingWorkspaceIds($pear);
  $this
    ->assertEqual(1, count($tracking_workspace_ids), 'Pear tracked in correct number of workspaces.');
  $this
    ->assertTrue(in_array($this->newWorkspace
    ->id(), $tracking_workspace_ids), 'Pear in new workspace');

  // Cheack again Pineapple.
  $tracking_workspace_ids = $workspace_association_storage
    ->getEntityTrackingWorkspaceIds($pineapple);
  $this
    ->assertEqual(1, count($tracking_workspace_ids), 'Pineapple tracked in correct number of workspaces.');
  $this
    ->assertTrue(in_array($this->initialWorkspace
    ->id(), $tracking_workspace_ids), 'Pineapple in initial workspace.');
}