WorkspaceControllerTest.php in Workspace 8
File
tests/src/Functional/WorkspaceControllerTest.php
View source
<?php
namespace Drupal\Tests\workspace\Functional;
use Drupal\multiversion\Entity\Workspace;
use Drupal\multiversion\Entity\WorkspaceType;
use Drupal\Tests\BrowserTestBase;
use Drupal\workspace\Controller\WorkspaceController;
use Drupal\workspace\Entity\WorkspacePointer;
class WorkspaceControllerTest extends BrowserTestBase {
public static $modules = [
'workspace',
'multiversion',
];
private $controller;
public function setUp() {
parent::setUp();
$permissions = [
'create_workspace',
'edit_own_workspace',
'view_own_workspace',
'access administration pages',
'administer site configuration',
];
$test_user = $this
->drupalCreateUser($permissions);
$this
->drupalLogin($test_user);
$this->controller = new WorkspaceController();
}
public function testAddForm() {
$types = WorkspaceType::loadMultiple();
$type = reset($types);
$this
->assertInstanceOf(WorkspaceType::class, $type);
$workspace_id = $this->controller
->getDefaultWorkspaceId();
$workspace = Workspace::load($workspace_id);
$workspace_pointer_id = WorkspacePointer::loadFromWorkspace($workspace)
->id();
$form = $this->controller
->addForm($type);
$this
->assertEquals($form['upstream']['widget']['#value'], $workspace_pointer_id);
$this
->config('workspace.settings')
->set('upstream', 0)
->save();
$form = $this->controller
->addForm($type);
$this
->assertEquals($form['upstream']['widget']['#value'], $workspace_pointer_id);
$this
->config('workspace.settings')
->set('upstream', $workspace_pointer_id)
->save();
$form = $this->controller
->addForm($type);
$this
->assertEquals($form['upstream']['widget']['#value'], $workspace_pointer_id);
$this
->config('workspace.settings')
->set('upstream', 12345)
->save();
$form = $this->controller
->addForm($type);
$this
->assertNull($form['upstream']['widget']['#value']);
$test_workspace = Workspace::create([
'type' => 'test',
'machine_name' => 'test',
'label' => 'Test',
]);
$test_workspace
->save();
$test_workspace_pointer_id = WorkspacePointer::loadFromWorkspace($test_workspace)
->id();
$this
->config('workspace.settings')
->set('upstream', $test_workspace_pointer_id)
->save();
$form = $this->controller
->addForm($type);
$this
->assertEquals($form['upstream']['widget']['#value'], $test_workspace_pointer_id);
}
}