Yaffs site version 1.1
[yaffs-website] / web / modules / contrib / blazy / tests / src / Kernel / Form / BlazySettingsFormTest.php
diff --git a/web/modules/contrib/blazy/tests/src/Kernel/Form/BlazySettingsFormTest.php b/web/modules/contrib/blazy/tests/src/Kernel/Form/BlazySettingsFormTest.php
new file mode 100644 (file)
index 0000000..ad5d535
--- /dev/null
@@ -0,0 +1,100 @@
+<?php
+
+namespace Drupal\Tests\blazy\Kernel\Form;
+
+use Drupal\Core\Form\FormInterface;
+use Drupal\Core\Form\FormState;
+use Drupal\KernelTests\KernelTestBase;
+use Drupal\blazy_ui\Form\BlazySettingsForm;
+
+/**
+ * Tests the Blazy UI settings form.
+ *
+ * @coversDefaultClass \Drupal\blazy_ui\Form\BlazySettingsForm
+ *
+ * @group blazy
+ */
+class BlazySettingsFormTest extends KernelTestBase {
+
+  /**
+   * The Blazy form object under test.
+   *
+   * @var \Drupal\blazy_ui\Form\BlazySettingsForm
+   */
+  protected $blazySettingsForm;
+
+  /**
+   * Modules to enable.
+   *
+   * @var array
+   */
+  public static $modules = [
+    'system',
+    'file',
+    'image',
+    'blazy',
+    'blazy_ui',
+  ];
+
+  /**
+   * {@inheritdoc}
+   *
+   * @covers ::__construct
+   */
+  protected function setUp() {
+    parent::setUp();
+
+    $this->installConfig(static::$modules);
+
+    $this->blazyManager = $this->container->get('blazy.manager');
+
+    $this->blazySettingsForm = new BlazySettingsForm(
+      $this->blazyManager->getConfigFactory()
+    );
+  }
+
+  /**
+   * Tests for \Drupal\blazy_ui\Form\BlazySettingsForm.
+   *
+   * @covers ::getFormId
+   * @covers ::getEditableConfigNames
+   * @covers ::buildForm
+   * @covers ::submitForm
+   */
+  public function testBlazySettingsForm() {
+    // Emulate a form state of a submitted form.
+    $form_state = (new FormState())->setValues([
+      'admin_css'        => TRUE,
+      'responsive_image' => FALSE,
+    ]);
+
+    $this->assertInstanceOf(FormInterface::class, $this->blazySettingsForm);
+    $this->assertTrue($this->blazyManager->getConfigFactory()->get('blazy.settings')->get('admin_css'));
+
+    $id = $this->blazySettingsForm->getFormId();
+    $this->assertEquals('blazy_settings', $id);
+
+    $method = new \ReflectionMethod(BlazySettingsForm::class, 'getEditableConfigNames');
+    $method->setAccessible(TRUE);
+
+    $name = $method->invoke($this->blazySettingsForm);
+    $this->assertEquals(['blazy.settings'], $name);
+
+    $form = $this->blazySettingsForm->buildForm([], $form_state);
+    $this->blazySettingsForm->submitForm($form, $form_state);
+  }
+
+}
+
+namespace Drupal\blazy_ui\Form;
+
+if (!function_exists('drupal_set_message')) {
+
+  /**
+   * Dummy function.
+   */
+  function drupal_set_message() {
+    // Empty block to satisfy coder.
+  }
+
+}