WorkspaceTest.php in Workspace 8.2
File
tests/src/Functional/WorkspaceTest.php
View source
<?php
namespace Drupal\Tests\workspace\Functional;
use Drupal\Tests\BrowserTestBase;
class WorkspaceTest extends BrowserTestBase {
use WorkspaceTestUtilities;
public static $modules = [
'workspace',
];
protected $editor1;
protected $editor2;
public function setUp() {
parent::setUp();
$permissions = [
'access administration pages',
'administer site configuration',
'create workspace',
'edit own workspace',
'edit any workspace',
];
$this->editor1 = $this
->drupalCreateUser($permissions);
$this->editor2 = $this
->drupalCreateUser($permissions);
}
public function testSpecialCharacters() {
$this
->drupalLogin($this->editor1);
$this
->createWorkspaceThroughUi('Workspace 1', 'a0_$()+-/');
$this
->drupalGet('/admin/config/workflow/workspace/add');
$this
->assertSession()
->statusCodeEquals(200);
$page = $this
->getSession()
->getPage();
$page
->fillField('label', 'workspace2');
$page
->fillField('id', 'A!"£%^&*{}#~@?');
$page
->findButton('Save')
->click();
$page
->hasContent("This value is not valid");
}
public function testWorkspaceOwner() {
$this
->drupalLogin($this->editor1);
$this
->drupalPostForm('/admin/config/workflow/workspace/add', [
'id' => 'test_workspace',
'label' => 'Test workspace',
], 'Save');
$storage = \Drupal::entityTypeManager()
->getStorage('workspace');
$test_workspace = $storage
->load('test_workspace');
$this
->assertEquals($this->editor1
->id(), $test_workspace
->getOwnerId());
$this
->drupalPostForm('/admin/config/workflow/workspace/manage/test_workspace/edit', [
'uid[0][target_id]' => $this->editor2
->getUsername(),
], 'Save');
$test_workspace = $storage
->loadUnchanged('test_workspace');
$this
->assertEquals($this->editor2
->id(), $test_workspace
->getOwnerId());
}
public function testWorkspaceFormRevisions() {
$this
->drupalLogin($this->editor1);
$storage = \Drupal::entityTypeManager()
->getStorage('workspace');
$live_workspace = $storage
->load('live');
$this
->assertEquals('1', $live_workspace
->getRevisionId());
$this
->drupalPostForm($live_workspace
->url('edit-form'), [], 'Save');
$live_workspace = $storage
->loadUnchanged('live');
$this
->assertEquals('3', $live_workspace
->getRevisionId());
}
}