function IconPackManagerKernelTest::testGetExtractorPluginFormsWithDefault

Test the IconPackManager::getExtractorPluginForms method with default.

File

core/tests/Drupal/KernelTests/Core/Theme/Icon/IconPackManagerKernelTest.php, line 244

Class

IconPackManagerKernelTest
Tests values are from test module icon_test.

Namespace

Drupal\KernelTests\Core\Theme\Icon

Code

public function testGetExtractorPluginFormsWithDefault() : void {
  $form = [
    '#parents' => [],
    'test_settings' => [
      '#parents' => [
        'test_settings',
      ],
      '#array_parents' => [
        'test_settings',
      ],
    ],
  ];
  $form_state = $this->getMockBuilder('Drupal\\Core\\Form\\FormState')
    ->disableOriginalConstructor()
    ->onlyMethods([
    'setValue',
    'getValue',
  ])
    ->getMock();
  $this->pluginManagerIconPack
    ->getExtractorPluginForms($form, $form_state);
  // Without default, values are from definition.
  $expected = [
    'width' => 32,
    'height' => 33,
    'title' => 'Default title',
    'alt' => 'Default alt',
    'select' => 400,
    'boolean' => TRUE,
    'decimal' => 66.66,
    'number' => 30,
  ];
  foreach ($expected as $key => $value) {
    $this->assertSame($value, $form['test_settings'][$key]['#default_value']);
  }
  // Test definition without value.
  $this->assertArrayNotHasKey('#default_value', $form['test_svg']['size']);
  $default_settings = [
    'test_settings' => [
      'width' => 100,
      'height' => 110,
      'title' => 'Test',
    ],
  ];
  // Test the set/get of default values as 'saved_values'.
  $form_state->expects($this->once())
    ->method('setValue')
    ->with('saved_values', $default_settings['test_settings']);
  $form_state->expects($this->once())
    ->method('getValue')
    ->with('saved_values')
    ->willReturn($default_settings['test_settings']);
  $this->pluginManagerIconPack
    ->getExtractorPluginForms($form, $form_state, $default_settings, [
    'test_settings' => '',
  ]);
  $this->assertSame($default_settings['test_settings']['width'], $form['test_settings']['width']['#default_value']);
  $this->assertSame($default_settings['test_settings']['height'], $form['test_settings']['height']['#default_value']);
  $this->assertSame($default_settings['test_settings']['title'], $form['test_settings']['title']['#default_value']);
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.