56a6bf047cdf77931f61d6803383c45a6c892beb
[yaffs-website] / web / modules / contrib / slick / tests / src / Kernel / Form / SlickSettingsFormTest.php
1 <?php
2
3 namespace Drupal\Tests\slick\Kernel\Form;
4
5 use Drupal\Core\Form\FormInterface;
6 use Drupal\Core\Form\FormState;
7 use Drupal\KernelTests\KernelTestBase;
8 use Drupal\slick_ui\Form\SlickSettingsForm;
9
10 /**
11  * Tests the Slick UI settings form.
12  *
13  * @coversDefaultClass \Drupal\slick_ui\Form\SlickSettingsForm
14  *
15  * @group slick
16  */
17 class SlickSettingsFormTest extends KernelTestBase {
18
19   /**
20    * The slick settings form object under test.
21    *
22    * @var \Drupal\slick_ui\Form\SlickSettingsForm
23    */
24   protected $slickSettingsForm;
25
26   /**
27    * Modules to enable.
28    *
29    * @var array
30    */
31   public static $modules = [
32     'system',
33     'file',
34     'image',
35     'blazy',
36     'slick',
37     'slick_ui',
38   ];
39
40   /**
41    * {@inheritdoc}
42    *
43    * @covers ::__construct
44    */
45   protected function setUp() {
46     parent::setUp();
47
48     $this->installConfig(static::$modules);
49
50     $this->blazyManager = $this->container->get('blazy.manager');
51
52     $this->slickSettingsForm = new SlickSettingsForm(
53       $this->blazyManager->getConfigFactory()
54     );
55   }
56
57   /**
58    * Tests for \Drupal\slick_ui\Form\SlickSettingsForm.
59    *
60    * @covers ::getFormId
61    * @covers ::getEditableConfigNames
62    * @covers ::buildForm
63    * @covers ::submitForm
64    */
65   public function testSlickSettingsForm() {
66     // Emulate a form state of a submitted form.
67     $form_state = (new FormState())->setValues([
68       'slick_css'  => TRUE,
69       'module_css' => TRUE,
70     ]);
71
72     $this->assertInstanceOf(FormInterface::class, $this->slickSettingsForm);
73     $this->assertTrue($this->blazyManager->getConfigFactory()->get('slick.settings')->get('slick_css'));
74
75     $id = $this->slickSettingsForm->getFormId();
76     $this->assertEquals('slick_settings_form', $id);
77
78     $method = new \ReflectionMethod(SlickSettingsForm::class, 'getEditableConfigNames');
79     $method->setAccessible(TRUE);
80
81     $name = $method->invoke($this->slickSettingsForm);
82     $this->assertEquals(['slick.settings'], $name);
83
84     $form = $this->slickSettingsForm->buildForm([], $form_state);
85     $this->slickSettingsForm->submitForm($form, $form_state);
86   }
87
88 }