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'
    );
  }

}

Главная | Обратная связь

drupal hosting | друпал хостинг | it patrol .inc