public function ModerationStateNodeTypeTest::testEnablingOnExistingContent in Workbench Moderation 8
A node type without moderation state enabled.
File
- tests/
src/ Functional/ ModerationStateNodeTypeTest.php, line 35
Class
- ModerationStateNodeTypeTest
- Tests moderation state node type integration.
Namespace
Drupal\Tests\workbench_moderation\FunctionalCode
public function testEnablingOnExistingContent() {
// Create a node type that is not moderated.
$this
->drupalLogin($this->adminUser);
$this
->createContentTypeFromUi('Not moderated', 'not_moderated');
$this
->grantUserPermissionToCreateContentOfType($this->adminUser, 'not_moderated');
// Create content.
$this
->drupalGet('node/add/not_moderated');
$this
->drupalPostForm(NULL, [
'title[0][value]' => 'Test',
], t('Save and publish'));
$this
->assertSession()
->pageTextContains('Not moderated Test has been created.');
// Now enable moderation state.
$this
->enableModerationThroughUi('not_moderated', [
'draft',
'needs_review',
'published',
], 'draft');
// And make sure it works.
$nodes = \Drupal::entityTypeManager()
->getStorage('node')
->loadByProperties([
'title' => 'Test',
]);
if (empty($nodes)) {
$this
->fail('Could not load node with title Test');
return;
}
$node = reset($nodes);
$this
->drupalGet('node/' . $node
->id());
$this
->assertSession()
->statusCodeEquals(200);
$this
->assertLinkByHref('node/' . $node
->id() . '/edit');
$this
->drupalGet('node/' . $node
->id() . '/edit');
$this
->assertSession()
->statusCodeEquals(200);
$this
->assertRaw('Save and Create New Draft');
$this
->assertNoRaw('Save and publish');
}