Version 1
[yaffs-website] / web / core / modules / editor / tests / src / Unit / EditorBaseTest.php
diff --git a/web/core/modules/editor/tests/src/Unit/EditorBaseTest.php b/web/core/modules/editor/tests/src/Unit/EditorBaseTest.php
new file mode 100644 (file)
index 0000000..a088fb0
--- /dev/null
@@ -0,0 +1,75 @@
+<?php
+
+namespace Drupal\Tests\editor\Unit;
+
+use Drupal\Core\Form\FormState;
+use Drupal\Core\Form\FormStateInterface;
+use Drupal\editor\Entity\Editor;
+use Drupal\editor\Plugin\EditorBase;
+use Drupal\Tests\UnitTestCase;
+
+/**
+ * @coversDefaultClass \Drupal\editor\Plugin\EditorBase
+ * @group editor
+ */
+class EditorBaseTest extends UnitTestCase {
+
+  /**
+   * @covers ::buildConfigurationForm
+   * @covers ::validateConfigurationForm
+   * @covers ::submitConfigurationForm
+   */
+  public function testBc() {
+    $form_state = new FormState();
+    $form_state->set('editor', $this->prophesize(Editor::class)->reveal());
+    $editor_plugin = new BcEditor([], 'editor_plugin', []);
+
+    // settingsForm() is deprecated in favor of buildConfigurationForm().
+    $this->assertSame(
+      $editor_plugin->settingsForm([], clone $form_state, $this->prophesize(Editor::class)->reveal()),
+      $editor_plugin->buildConfigurationForm([], clone $form_state)
+    );
+
+    // settingsFormValidate() is deprecated in favor of
+    // validateConfigurationForm().
+    $form = [];
+    $form_state_a = clone $form_state;
+    $form_state_b = clone $form_state;
+    $editor_plugin->settingsFormValidate($form, $form_state_a, $this->prophesize(Editor::class)->reveal());
+    $editor_plugin->validateConfigurationForm($form, $form_state_b);
+    $this->assertEquals($form_state_a, $form_state_b);
+
+    // settingsFormSubmit() is deprecated in favor of submitConfigurationForm().
+    $form = [];
+    $form_state_a = clone $form_state;
+    $form_state_b = clone $form_state;
+    $editor_plugin->settingsFormSubmit($form, $form_state_a, $this->prophesize(Editor::class)->reveal());
+    $editor_plugin->submitConfigurationForm($form, $form_state_b);
+    $this->assertEquals($form_state_a, $form_state_b);
+  }
+
+}
+
+class BcEditor extends EditorBase {
+
+  public function settingsForm(array $form, FormStateInterface $form_state, Editor $editor) {
+    return ['foo' => 'bar'];
+  }
+
+  public function settingsFormValidate(array $form, FormStateInterface $form_state) {
+    $form_state->setValue('foo', 'bar');
+  }
+
+  public function settingsFormSubmit(array $form, FormStateInterface $form_state) {
+    $form_state->setValue('bar', 'baz');
+  }
+
+  public function getJSSettings(Editor $editor) {
+    return [];
+  }
+
+  public function getLibraries(Editor $editor) {
+    return [];
+  }
+
+}