1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192 |
- <?php
- namespace Drupal\Tests\content_moderation\Kernel;
- use Drupal\Core\Render\RenderContext;
- use Drupal\entity_test\Entity\EntityTestRev;
- use Drupal\KernelTests\KernelTestBase;
- use Drupal\Tests\content_moderation\Traits\ContentModerationTestTrait;
- /**
- * Test the state field formatter.
- *
- * @group content_moderation
- */
- class StateFormatterTest extends KernelTestBase {
- use ContentModerationTestTrait;
- /**
- * Modules to enable.
- *
- * @var array
- */
- public static $modules = [
- 'workflows',
- 'content_moderation',
- 'entity_test',
- 'user',
- ];
- /**
- * {@inheritdoc}
- */
- protected function setUp() {
- parent::setUp();
- $this->installEntitySchema('entity_test_rev');
- $this->installEntitySchema('content_moderation_state');
- $this->installConfig('content_moderation');
- $workflow = $this->createEditorialWorkflow();
- $workflow->getTypePlugin()->addEntityTypeAndBundle('entity_test_rev', 'entity_test_rev');
- $workflow->save();
- }
- /**
- * Test the embed field.
- *
- * @dataProvider formatterTestCases
- */
- public function testStateFieldFormatter($field_value, $formatter_settings, $expected_output) {
- $entity = EntityTestRev::create([
- 'moderation_state' => $field_value,
- ]);
- $entity->save();
- $field_output = $this->container->get('renderer')->executeInRenderContext(new RenderContext(), function () use ($entity, $formatter_settings) {
- return $entity->moderation_state->view($formatter_settings);
- });
- $this->assertEquals($expected_output, $field_output[0]);
- }
- /**
- * Test cases for ::
- */
- public function formatterTestCases() {
- return [
- 'Draft State' => [
- 'draft',
- [
- 'type' => 'content_moderation_state',
- 'settings' => [],
- ],
- [
- '#markup' => 'Draft',
- ],
- ],
- 'Published State' => [
- 'published',
- [
- 'type' => 'content_moderation_state',
- 'settings' => [],
- ],
- [
- '#markup' => 'Published',
- ],
- ],
- ];
- }
- }
|