workflow = Workflow::create(['id' => 'test', 'type' => 'content_moderation']); $this->workflow ->addState('draft', 'Draft') ->addState('published', 'Published'); } /** * @covers ::getBundlesForEntityType * @covers ::addEntityTypeAndBundle * @covers ::removeEntityTypeAndBundle */ public function testGetBundlesForEntityType() { /** @var \Drupal\content_moderation\Plugin\WorkflowType\ContentModeration $workflow_plugin */ $workflow_plugin = $this->workflow->getTypePlugin(); // The content moderation plugin does not validate the existence of the // entity type or bundle. $this->assertEquals([], $workflow_plugin->getBundlesForEntityType('fake_node')); $workflow_plugin->addEntityTypeAndBundle('fake_node', 'fake_page'); $this->assertEquals(['fake_page'], $workflow_plugin->getBundlesForEntityType('fake_node')); $this->assertEquals([], $workflow_plugin->getBundlesForEntityType('fake_block')); $workflow_plugin->removeEntityTypeAndBundle('fake_node', 'fake_page'); $this->assertEquals([], $workflow_plugin->getBundlesForEntityType('fake_node')); } /** * @covers ::appliesToEntityTypeAndBundle * @covers ::addEntityTypeAndBundle * @covers ::removeEntityTypeAndBundle */ public function testAppliesToEntityTypeAndBundle() { /** @var \Drupal\content_moderation\Plugin\WorkflowType\ContentModeration $workflow_plugin */ $workflow_plugin = $this->workflow->getTypePlugin(); // The content moderation plugin does not validate the existence of the // entity type or bundle. $this->assertFalse($workflow_plugin->appliesToEntityTypeAndBundle('fake_node', 'fake_page')); $workflow_plugin->addEntityTypeAndBundle('fake_node', 'fake_page'); $this->assertTrue($workflow_plugin->appliesToEntityTypeAndBundle('fake_node', 'fake_page')); $this->assertFalse($workflow_plugin->appliesToEntityTypeAndBundle('fake_block', 'fake_custom')); $workflow_plugin->removeEntityTypeAndBundle('fake_node', 'fake_page'); $this->assertFalse($workflow_plugin->appliesToEntityTypeAndBundle('fake_node', 'fake_page')); } /** * @covers ::addEntityTypeAndBundle */ public function testAddEntityTypeAndBundle() { /** @var \Drupal\content_moderation\Plugin\WorkflowType\ContentModeration $workflow_plugin */ $workflow_plugin = $this->workflow->getTypePlugin(); // The bundles are intentionally added in reverse alphabetical order. $workflow_plugin->addEntityTypeAndBundle('fake_node', 'fake_page'); $workflow_plugin->addEntityTypeAndBundle('fake_node', 'fake_article'); // Add another entity type that comes alphabetically before 'fake_node'. $workflow_plugin->addEntityTypeAndBundle('fake_block', 'fake_custom'); // The entity type keys and bundle values should be sorted alphabetically. // The bundle array index should not reflect the order in which they are // added. $this->assertSame( ['fake_block' => ['fake_custom'], 'fake_node' => ['fake_article', 'fake_page']], $workflow_plugin->getConfiguration()['entity_types'] ); } }