diff --git a/src/ModerationInformation.php b/src/ModerationInformation.php index de248a0..cb9541d 100644 --- a/src/ModerationInformation.php +++ b/src/ModerationInformation.php @@ -164,7 +164,10 @@ class ModerationInformation implements ModerationInformationInterface { */ public function getDefaultRevisionId($entity_type_id, $entity_id) { $storage = $this->entityTypeManager->getStorage($entity_type_id); - return $storage->load($entity_id)->getRevisionId(); + $entity = $storage->load($entity_id); + if ($entity) { + return $entity->getRevisionId(); + } } /** diff --git a/src/Tests/ModerationStateNodeTest.php b/src/Tests/ModerationStateNodeTest.php index 7d0ba25..5991660 100644 --- a/src/Tests/ModerationStateNodeTest.php +++ b/src/Tests/ModerationStateNodeTest.php @@ -10,7 +10,7 @@ namespace Drupal\workbench_moderation\Tests; use Drupal\Core\Url; /** - * Tests general content moderation workflow for nodes.. + * Tests general content moderation workflow for nodes. * * @group workbench_moderation */ @@ -31,7 +31,7 @@ class ModerationStateNodeTest extends ModerationStateTestBase { } /** - * Tests creating content. + * Tests creating and deleting content. */ public function testCreatingContent() { $this->drupalPostForm('node/add/moderated_content', [ @@ -62,6 +62,10 @@ class ModerationStateNodeTest extends ModerationStateTestBase { // Verify that the state field is not shown. $this->assertNoText('Published'); + + // Delete the node. + $this->drupalPostForm('node/' . $node->id() . '/delete', array(), t('Delete')); + $this->assertText(t('The Moderated content moderated content has been deleted.')); } /** diff --git a/src/Tests/ModerationStateTestBase.php b/src/Tests/ModerationStateTestBase.php index 89a127f..5c3e253 100644 --- a/src/Tests/ModerationStateTestBase.php +++ b/src/Tests/ModerationStateTestBase.php @@ -123,6 +123,7 @@ abstract class ModerationStateTestBase extends WebTestBase { $role = Role::load($role_id); $role->grantPermission(sprintf('create %s content', $content_type_id)); $role->grantPermission(sprintf('edit any %s content', $content_type_id)); + $role->grantPermission(sprintf('delete any %s content', $content_type_id)); $role->save(); }