Version 1
[yaffs-website] / web / core / modules / editor / tests / src / Kernel / EditorFilterIntegrationTest.php
diff --git a/web/core/modules/editor/tests/src/Kernel/EditorFilterIntegrationTest.php b/web/core/modules/editor/tests/src/Kernel/EditorFilterIntegrationTest.php
new file mode 100644 (file)
index 0000000..30f36e5
--- /dev/null
@@ -0,0 +1,56 @@
+<?php
+
+namespace Drupal\Tests\editor\Kernel;
+
+use Drupal\Component\Utility\Unicode;
+use Drupal\editor\Entity\Editor;
+use Drupal\filter\Entity\FilterFormat;
+use Drupal\KernelTests\KernelTestBase;
+
+/**
+ * Tests integration with filter module.
+ *
+ * @group editor
+ */
+class EditorFilterIntegrationTest extends KernelTestBase {
+
+  /**
+   * {@inheritdoc}
+   */
+  public static $modules = ['filter', 'editor', 'editor_test'];
+
+  /**
+   * Tests text format removal or disabling.
+   */
+  public function testTextFormatIntegration() {
+    // Create an arbitrary text format.
+    $format = FilterFormat::create([
+      'format' => Unicode::strtolower($this->randomMachineName()),
+      'name' => $this->randomString(),
+    ]);
+    $format->save();
+
+    // Create a paired editor.
+    Editor::create(['format' => $format->id(), 'editor' => 'unicorn'])->save();
+
+    // Disable the text format.
+    $format->disable()->save();
+
+    // The paired editor should be disabled too.
+    $this->assertFalse(Editor::load($format->id())->status());
+
+    // Re-enable the text format.
+    $format->enable()->save();
+
+    // The paired editor should be enabled too.
+    $this->assertTrue(Editor::load($format->id())->status());
+
+    // Completely remove the text format. Usually this cannot occur via UI, but
+    // can be triggered from API.
+    $format->delete();
+
+    // The paired editor should be removed.
+    $this->assertNull(Editor::load($format->id()));
+  }
+
+}