3 namespace Drupal\Tests\slick\Kernel\Form;
5 use Drupal\Core\Form\FormInterface;
6 use Drupal\Core\Form\FormState;
7 use Drupal\KernelTests\KernelTestBase;
8 use Drupal\slick_ui\Form\SlickSettingsForm;
11 * Tests the Slick UI settings form.
13 * @coversDefaultClass \Drupal\slick_ui\Form\SlickSettingsForm
17 class SlickSettingsFormTest extends KernelTestBase {
20 * The slick settings form object under test.
22 * @var \Drupal\slick_ui\Form\SlickSettingsForm
24 protected $slickSettingsForm;
31 public static $modules = [
43 * @covers ::__construct
45 protected function setUp() {
48 $this->installConfig(static::$modules);
50 $this->blazyManager = $this->container->get('blazy.manager');
52 $this->slickSettingsForm = new SlickSettingsForm(
53 $this->blazyManager->getConfigFactory()
58 * Tests for \Drupal\slick_ui\Form\SlickSettingsForm.
61 * @covers ::getEditableConfigNames
63 * @covers ::submitForm
65 public function testSlickSettingsForm() {
66 // Emulate a form state of a submitted form.
67 $form_state = (new FormState())->setValues([
72 $this->assertInstanceOf(FormInterface::class, $this->slickSettingsForm);
73 $this->assertTrue($this->blazyManager->getConfigFactory()->get('slick.settings')->get('slick_css'));
75 $id = $this->slickSettingsForm->getFormId();
76 $this->assertEquals('slick_settings_form', $id);
78 $method = new \ReflectionMethod(SlickSettingsForm::class, 'getEditableConfigNames');
79 $method->setAccessible(TRUE);
81 $name = $method->invoke($this->slickSettingsForm);
82 $this->assertEquals(['slick.settings'], $name);
84 $form = $this->slickSettingsForm->buildForm([], $form_state);
85 $this->slickSettingsForm->submitForm($form, $form_state);