multiversion-8.x-1.0-beta34/tests/src/Functional/Views/WorkspaceTest.php
tests/src/Functional/Views/WorkspaceTest.php
<?php
namespace Drupal\Tests\multiversion\Functional\Views;
use Drupal\multiversion\Entity\Workspace;
/**
* Tests the workspace and current_workspace field handlers.
*
* @group multiversion
* @see \Drupal\multiversion\Plugin\views\filter\CurrentWorkspace
*/
class WorkspaceTest extends MultiversionTestBase {
protected $strictConfigSchema = FALSE;
/**
* Views used by this test.
*
* @var array
*/
public static $testViews = ['test_current_workspace'];
/**
* Tests the workspace filter.
*/
public function testWorkspace() {
$admin_user = $this->drupalCreateUser(['administer workspaces', 'bypass node access']);
$uid = $admin_user->id();
$this->drupalLogin($admin_user);
/** @var \Drupal\multiversion\Workspace\WorkspaceManagerInterface $workspace_manager */
$workspace_manager = \Drupal::service('workspace.manager');
// Get workspace nodes will be added to.
/** @var \Drupal\multiversion\Entity\WorkspaceInterface $initial_workspace */
$initial_workspace = $workspace_manager->getActiveWorkspace();
// Create two nodes on 'default' workspace.
$node1 = $this->drupalCreateNode(['uid' => $uid]);
$node2 = $this->drupalCreateNode(['uid' => $uid]);
// Create a new workspace and switch to it.
$new_workspace = Workspace::create(['machine_name' => 'new_workspace', 'label' => 'New Workspace', 'type' => 'basic']);
$new_workspace->save();
$workspace_manager->setActiveWorkspace($new_workspace);
$this->assertEqual($new_workspace->id(), $workspace_manager->getActiveWorkspaceId());
// Create two nodes on 'new_workspace' workspace.
$node3 = $this->drupalCreateNode(['uid' => $uid]);
$node4 = $this->drupalCreateNode(['uid' => $uid]);
// Test current_workspace filter.
$this->drupalGet('test_current_workspace');
$this->assertNoText($node1->label());
$this->assertNoText($node2->label());
$this->assertText($node3->label());
$this->assertText($node4->label());
// Switch back to the original workspace and test the view.
$workspace_manager->setActiveWorkspace($initial_workspace);
$this->assertEqual($initial_workspace->id(), $workspace_manager->getActiveWorkspaceId());
$this->drupalGet('test_current_workspace');
$this->assertText($node1->label());
$this->assertText($node2->label());
$this->assertNoText($node3->label());
$this->assertNoText($node4->label());
}
}