diff --git a/src/Form/SubformHelperTrait.php b/src/Form/SubformHelperTrait.php new file mode 100644 index 0000000..10f177d --- /dev/null +++ b/src/Form/SubformHelperTrait.php @@ -0,0 +1,21 @@ +assertSubformState($plugin_selector_form_state); + $plugin_selector_form = parent::buildSelectorForm($plugin_selector_form, $plugin_selector_form_state); + $plugin_selector_form['#tree'] = TRUE; $available_plugins = []; - $cacheability_metadata = CacheableMetadata::createFromRenderArray($form); + $cacheability_metadata = CacheableMetadata::createFromRenderArray($plugin_selector_form); foreach (array_keys($this->selectablePluginDiscovery->getDefinitions()) as $plugin_id) { $available_plugin = $this->selectablePluginFactory->createInstance($plugin_id); if ($available_plugin instanceof PluginInspectionInterface) { @@ -60,21 +62,20 @@ abstract class AdvancedPluginSelectorBase extends PluginSelectorBase implements $cacheability_metadata = $cacheability_metadata->merge(CacheableMetadata::createFromObject($available_plugin)); } } - $cacheability_metadata->applyTo($form); + $cacheability_metadata->applyTo($plugin_selector_form); - $plugin_selector_form_state_key = static::setPluginSelector($form_state, $this); - $form['container'] = array( + $plugin_selector_form_state_key = static::setPluginSelector($plugin_selector_form_state, $this); + $plugin_selector_form['container'] = array( '#attributes' => array( 'class' => array('plugin-selector-' . Html::getClass($this->getPluginId())), ), '#available_plugins' => $available_plugins, '#plugin_selector_form_state_key' => $plugin_selector_form_state_key, '#process' => [[get_class(), 'processBuildSelectorForm']], - '#tree' => TRUE, '#type' => 'container', ); - return $form; + return $plugin_selector_form; } /** @@ -134,8 +135,9 @@ abstract class AdvancedPluginSelectorBase extends PluginSelectorBase implements /** * {@inheritdoc} */ - public function validateSelectorForm(array &$form, FormStateInterface $form_state) { - $plugin_id = $form_state->getValue(['container', 'select', 'container', 'plugin_id']); + public function validateSelectorForm(array &$plugin_selector_form, FormStateInterface $plugin_selector_form_state) { + $this->assertSubformState($plugin_selector_form_state); + $plugin_id = $plugin_selector_form_state->getValue(['container', 'select', 'container', 'plugin_id']); $selected_plugin = $this->getSelectedPlugin(); if (!$selected_plugin && $plugin_id || $selected_plugin && $plugin_id != $selected_plugin->getPluginId()) { // Keep track of all previously selected plugins so their configuration @@ -153,13 +155,13 @@ abstract class AdvancedPluginSelectorBase extends PluginSelectorBase implements // If a (different) plugin was chosen and its form must be displayed, // rebuild the form. if ($this->getCollectPluginConfiguration() && $this->getSelectedPlugin() instanceof PluginFormInterface) { - $form_state->setRebuild(); + $plugin_selector_form_state->setRebuild(); } } // If no (different) plugin was chosen, delegate validation to the plugin. elseif ($this->getCollectPluginConfiguration() && $selected_plugin instanceof PluginFormInterface) { - $selected_plugin_form = &$form['container']['plugin_form']; - $selected_plugin_form_state = SubformState::createForSubform($selected_plugin_form, $form, $form_state); + $selected_plugin_form = &$plugin_selector_form['container']['plugin_form']; + $selected_plugin_form_state = SubformState::createForSubform($selected_plugin_form, $plugin_selector_form, $plugin_selector_form_state); $selected_plugin->validateConfigurationForm($selected_plugin_form, $selected_plugin_form_state); } } @@ -167,11 +169,12 @@ abstract class AdvancedPluginSelectorBase extends PluginSelectorBase implements /** * {@inheritdoc} */ - public function submitSelectorForm(array &$form, FormStateInterface $form_state) { + public function submitSelectorForm(array &$plugin_selector_form, FormStateInterface $plugin_selector_form_state) { + $this->assertSubformState($plugin_selector_form_state); $selected_plugin = $this->getSelectedPlugin(); if ($this->getCollectPluginConfiguration() && $selected_plugin instanceof PluginFormInterface) { - $selected_plugin_form = &$form['container']['plugin_form']; - $selected_plugin_form_state = SubformState::createForSubform($selected_plugin_form, $form, $form_state); + $selected_plugin_form = &$plugin_selector_form['container']['plugin_form']; + $selected_plugin_form_state = SubformState::createForSubform($selected_plugin_form, $plugin_selector_form, $plugin_selector_form_state); $selected_plugin->submitConfigurationForm($selected_plugin_form, $selected_plugin_form_state); } } @@ -273,7 +276,7 @@ abstract class AdvancedPluginSelectorBase extends PluginSelectorBase implements /** * Builds the form elements for multiple plugins. */ - public function buildMultipleAvailablePlugins(array $plugin_selector_form, FormStateInterface $plugin_selector_form_state) { + protected function buildMultipleAvailablePlugins(array $plugin_selector_form, FormStateInterface $plugin_selector_form_state) { $plugins = $plugin_selector_form['#available_plugins']; $plugin_selector_form['select'] = $this->buildSelector($plugin_selector_form, $plugin_selector_form_state, $plugins); diff --git a/src/Plugin/Plugin/PluginSelector/PluginSelectorBase.php b/src/Plugin/Plugin/PluginSelector/PluginSelectorBase.php index 3661076..b9a405f 100644 --- a/src/Plugin/Plugin/PluginSelector/PluginSelectorBase.php +++ b/src/Plugin/Plugin/PluginSelector/PluginSelectorBase.php @@ -9,6 +9,7 @@ use Drupal\Core\Form\FormStateInterface; use Drupal\Core\Plugin\ContainerFactoryPluginInterface; use Drupal\Core\Plugin\PluginBase; use Drupal\plugin\DefaultPluginResolver\DefaultPluginResolverInterface; +use Drupal\plugin\Form\SubformHelperTrait; use Drupal\plugin\PluginDiscovery\TypedDefinitionEnsuringPluginDiscoveryDecorator; use Drupal\plugin\PluginType\PluginTypeInterface; use Symfony\Component\DependencyInjection\ContainerInterface; @@ -22,6 +23,8 @@ use Symfony\Component\DependencyInjection\ContainerInterface; */ abstract class PluginSelectorBase extends PluginBase implements PluginSelectorInterface, ContainerFactoryPluginInterface { + use SubformHelperTrait; + /** * The default plugin resolver. * @@ -291,7 +294,8 @@ abstract class PluginSelectorBase extends PluginBase implements PluginSelectorIn /** * {@inheritdoc} */ - public function buildSelectorForm(array $form, FormStateInterface $form_state) { + public function buildSelectorForm(array $plugin_selector_form, FormStateInterface $plugin_selector_form_state) { + $this->assertSubformState($plugin_selector_form_state); $this->validateSelectablePluginType(); return []; diff --git a/src/Plugin/Plugin/PluginSelector/PluginSelectorInterface.php b/src/Plugin/Plugin/PluginSelector/PluginSelectorInterface.php index 1f3c42b..64754c5 100644 --- a/src/Plugin/Plugin/PluginSelector/PluginSelectorInterface.php +++ b/src/Plugin/Plugin/PluginSelector/PluginSelectorInterface.php @@ -181,11 +181,11 @@ interface PluginSelectorInterface extends PluginInspectionInterface, Configurabl /** * Builds the selector form. * - * @param mixed[] $form + * @param mixed[] $plugin_selector_form * Any suggested form elements to build upon. May be ignored. - * @param \Drupal\Core\Form\FormStateInterface $form_state - * The form state for $form and the return value. This often is not the - * complete (global) form state and SHOULD be + * @param \Drupal\Core\Form\SubformStateInterface|\Drupal\Core\Form\FormStateInterface $plugin_selector_form_state + * The form state for $plugin_selector_form and the return value. This often + * is not the complete (global) form state and SHOULD be * \Drupal\Core\Form\SubformStateInterface (added in Drupal 8.2.0) * * @return mixed[] @@ -195,30 +195,30 @@ interface PluginSelectorInterface extends PluginInspectionInterface, Configurabl * Thrown if the plugin type was not set using * self::setSelectablePluginType(). */ - public function buildSelectorForm(array $form, FormStateInterface $form_state); + public function buildSelectorForm(array $plugin_selector_form, FormStateInterface $plugin_selector_form_state); /** * Validates the selector form. * - * @param mixed[] $form + * @param mixed[] $plugin_selector_form * The selector form as built by static::buildSelectorForm(). - * @param \Drupal\Core\Form\FormStateInterface $form_state - * The form state for $form. This often is not the complete (global) form - * state and SHOULD be \Drupal\Core\Form\SubformStateInterface (added in - * Drupal 8.2.0). + * @param \Drupal\Core\Form\SubformStateInterface|\Drupal\Core\Form\FormStateInterface $plugin_selector_form_state + * The form state for $plugin_selector_form. This often is not the complete + * (global) form state and SHOULD be \Drupal\Core\Form\SubformStateInterface + * (added in Drupal 8.2.0). */ - public function validateSelectorForm(array &$form, FormStateInterface $form_state); + public function validateSelectorForm(array &$plugin_selector_form, FormStateInterface $plugin_selector_form_state); /** * Submits the selector form. * - * @param mixed[] $form + * @param mixed[] $plugin_selector_form * The selector form as built by static::buildSelectorForm(). - * @param \Drupal\Core\Form\FormStateInterface $form_state - * The form state for $form. This often is not the complete (global) form - * state and SHOULD be \Drupal\Core\Form\SubformStateInterface (added in - * Drupal 8.2.0) + * @param \Drupal\Core\Form\SubformStateInterface|\Drupal\Core\Form\FormStateInterface $plugin_selector_form_state + * The form state for $plugin_selector_form. This often is not the complete + * (global) form state and SHOULD be \Drupal\Core\Form\SubformStateInterface + * (added in Drupal 8.2.0) */ - public function submitSelectorForm(array &$form, FormStateInterface $form_state); + public function submitSelectorForm(array &$plugin_selector_form, FormStateInterface $plugin_selector_form_state); } diff --git a/src/Plugin/Plugin/PluginSelector/Radios.php b/src/Plugin/Plugin/PluginSelector/Radios.php index 094b387..756b8d6 100644 --- a/src/Plugin/Plugin/PluginSelector/Radios.php +++ b/src/Plugin/Plugin/PluginSelector/Radios.php @@ -18,20 +18,21 @@ class Radios extends AdvancedPluginSelectorBase { /** * {@inheritdoc} */ - public function buildSelectorForm(array $form, FormStateInterface $form_state) { - $form = parent::buildSelectorForm($form, $form_state); - $form['clear'] = array( + public function buildSelectorForm(array $plugin_selector_form, FormStateInterface $plugin_selector_form_state) { + $this->assertSubformState($plugin_selector_form_state); + $plugin_selector_form = parent::buildSelectorForm($plugin_selector_form, $plugin_selector_form_state); + $plugin_selector_form['clear'] = array( '#markup' => '
', ); - return $form; + return $plugin_selector_form; } /** * {@inheritdoc} */ - protected function buildSelector(array $root_element, FormStateInterface $form_state, array $plugins) { - $element = parent::buildSelector($root_element, $form_state, $plugins); + protected function buildSelector(array $plugin_selector_form, FormStateInterface $plugin_selector_form_state, array $plugins) { + $element = parent::buildSelector($plugin_selector_form, $plugin_selector_form_state, $plugins); /** @var \Drupal\Component\Plugin\PluginInspectionInterface[] $plugins */ $plugin_options = []; foreach ($plugins as $plugin) { diff --git a/src/Tests/Plugin/PluginSelector/PluginSelector/RadiosWebTest.php b/src/Tests/Plugin/PluginSelector/PluginSelector/RadiosWebTest.php index 7d4d7b8..7ec6c24 100644 --- a/src/Tests/Plugin/PluginSelector/PluginSelector/RadiosWebTest.php +++ b/src/Tests/Plugin/PluginSelector/PluginSelector/RadiosWebTest.php @@ -35,8 +35,8 @@ class RadiosWebTest extends WebTestBase { * Whether to test the element with #tree = TRUE or not. */ protected function doTestElement($tree) { - $name_prefix = $tree ? 'tree[plugin][container]' : 'container'; - $change_button_name = $tree ? 'tree__plugin__container__select__container__change' : 'container__select__container__change'; + $name_prefix = $tree ? 'tree[plugin][container]' : 'plugin[container]'; + $change_button_name = $tree ? 'tree__plugin__container__select__container__change' : 'plugin__container__select__container__change'; // Test the presence of default elements without available plugins. $path = $this->buildFormPath(['none'], $tree); diff --git a/src/Tests/Plugin/PluginSelector/PluginSelector/SelectListWebTest.php b/src/Tests/Plugin/PluginSelector/PluginSelector/SelectListWebTest.php index 84b48e8..30866da 100644 --- a/src/Tests/Plugin/PluginSelector/PluginSelector/SelectListWebTest.php +++ b/src/Tests/Plugin/PluginSelector/PluginSelector/SelectListWebTest.php @@ -35,8 +35,8 @@ class SelectListWebTest extends WebTestBase { * Whether to test the element with #tree = TRUE or not. */ protected function doTestElement($tree) { - $name_prefix = $tree ? 'tree[plugin][container]' : 'container'; - $change_button_name = $tree ? 'tree__plugin__container__select__container__change' : 'container__select__container__change'; + $name_prefix = $tree ? 'tree[plugin][container]' : 'plugin[container]'; + $change_button_name = $tree ? 'tree__plugin__container__select__container__change' : 'plugin__container__select__container__change'; // Test the presence of default elements without available plugins. $path = $this->buildFormPath(['none'], $tree); diff --git a/tests/modules/plugin_test_helper/src/AdvancedPluginSelectorBasePluginSelectorForm.php b/tests/modules/plugin_test_helper/src/AdvancedPluginSelectorBasePluginSelectorForm.php index b3f49f2..dda94ce 100644 --- a/tests/modules/plugin_test_helper/src/AdvancedPluginSelectorBasePluginSelectorForm.php +++ b/tests/modules/plugin_test_helper/src/AdvancedPluginSelectorBasePluginSelectorForm.php @@ -6,6 +6,7 @@ use Drupal\Core\DependencyInjection\ContainerInjectionInterface; use Drupal\Core\DependencyInjection\DependencySerializationTrait; use Drupal\Core\Form\FormInterface; use Drupal\Core\Form\FormStateInterface; +use Drupal\Core\Form\SubformState; use Drupal\plugin\Plugin\Plugin\PluginSelector\PluginSelectorManagerInterface; use Drupal\plugin\PluginDiscovery\LimitedPluginDiscoveryDecorator; use Drupal\plugin\PluginManager\PluginManagerDecorator; @@ -77,13 +78,15 @@ class AdvancedPluginSelectorBasePluginSelectorForm implements ContainerInjection $form_state->set('plugin_selector', $plugin_selector); } - $form['plugin'] = $plugin_selector->buildSelectorForm([], $form_state); + $plugin_selector_form = []; + $plugin_selector_form_state = SubformState::createForSubform($plugin_selector_form, $form, $form_state); + $form['plugin'] = $plugin_selector->buildSelectorForm($plugin_selector_form, $plugin_selector_form_state); // Nest the selector in a tree if that's required. if ($tree) { $form['tree'] = array( '#tree' => TRUE, + 'plugin' => $form['plugin'], ); - $form['tree']['plugin'] = $form['plugin']; unset($form['plugin']); } $form['actions'] = array( @@ -103,8 +106,9 @@ class AdvancedPluginSelectorBasePluginSelectorForm implements ContainerInjection public function validateForm(array &$form, FormStateInterface $form_state) { /** @var \Drupal\plugin\Plugin\Plugin\PluginSelector\PluginSelectorInterface $plugin_selector */ $plugin_selector = $form_state->get('plugin_selector'); - $plugin_form = isset($form['tree']) ? $form['tree']['plugin'] : $form['plugin']; - $plugin_selector->validateSelectorForm($plugin_form, $form_state); + $plugin_selector_form = isset($form['tree']) ? $form['tree']['plugin'] : $form['plugin']; + $plugin_selector_form_state = SubformState::createForSubform($plugin_selector_form, $form, $form_state); + $plugin_selector->validateSelectorForm($plugin_selector_form, $plugin_selector_form_state); } /** @@ -113,8 +117,9 @@ class AdvancedPluginSelectorBasePluginSelectorForm implements ContainerInjection public function submitForm(array &$form, FormStateInterface $form_state) { /** @var \Drupal\plugin\Plugin\Plugin\PluginSelector\PluginSelectorInterface $plugin_selector */ $plugin_selector = $form_state->get('plugin_selector'); - $plugin_form = isset($form['tree']) ? $form['tree']['plugin'] : $form['plugin']; - $plugin_selector->submitSelectorForm($plugin_form, $form_state); + $plugin_selector_form = isset($form['tree']) ? $form['tree']['plugin'] : $form['plugin']; + $plugin_selector_form_state = SubformState::createForSubform($plugin_selector_form, $form, $form_state); + $plugin_selector->submitSelectorForm($plugin_selector_form, $plugin_selector_form_state); \Drupal::state()->set($this->getFormId(), $plugin_selector->getSelectedPlugin()); } } diff --git a/tests/src/Unit/Plugin/Plugin/PluginSelector/AdvancedPluginSelectorBaseTest.php b/tests/src/Unit/Plugin/Plugin/PluginSelector/AdvancedPluginSelectorBaseTest.php index cc42e59..849f31d 100644 --- a/tests/src/Unit/Plugin/Plugin/PluginSelector/AdvancedPluginSelectorBaseTest.php +++ b/tests/src/Unit/Plugin/Plugin/PluginSelector/AdvancedPluginSelectorBaseTest.php @@ -133,17 +133,18 @@ class AdvancedPluginSelectorBaseTest extends PluginSelectorBaseTestBase { * @covers ::setPluginSelector */ public function testBuildSelectorFormWithoutAvailablePlugins() { - $form = []; - $form_state = $this->getMock(FormStateInterface::class); + $plugin_selector_form = []; + $plugin_selector_form_state = $this->getMock(SubformStateInterface::class); $this->selectablePluginManager->expects($this->any()) ->method('getDefinitions') ->willReturn([]); - $build = $this->sut->buildSelectorForm($form, $form_state); + $build = $this->sut->buildSelectorForm($plugin_selector_form, $plugin_selector_form_state); unset($build['container']['#plugin_selector_form_state_key']); $expected_build = array( + '#tree' => TRUE, '#cache' => [ 'contexts' => [], 'tags' => [], @@ -160,7 +161,6 @@ class AdvancedPluginSelectorBaseTest extends PluginSelectorBaseTestBase { 'processBuildSelectorForm' ] ], - '#tree' => TRUE, '#type' => 'container', ), ); @@ -172,8 +172,8 @@ class AdvancedPluginSelectorBaseTest extends PluginSelectorBaseTestBase { * @covers ::setPluginSelector */ public function testBuildSelectorFormWithOneAvailablePlugin() { - $form = []; - $form_state = $this->getMock(FormStateInterface::class); + $plugin_selector_form = []; + $plugin_selector_form_state = $this->getMock(SubformStateInterface::class); $plugin_id = $this->randomMachineName(); $plugin = $this->getMock(PluginInspectionInterface::class); @@ -192,10 +192,11 @@ class AdvancedPluginSelectorBaseTest extends PluginSelectorBaseTestBase { ->method('getDefinitions') ->willReturn($plugin_definitions); - $build = $this->sut->buildSelectorForm($form, $form_state); + $build = $this->sut->buildSelectorForm($plugin_selector_form, $plugin_selector_form_state); unset($build['container']['#plugin_selector_form_state_key']); $expected_build = array( + '#tree' => TRUE, '#cache' => [ 'contexts' => [], 'tags' => [], @@ -212,7 +213,6 @@ class AdvancedPluginSelectorBaseTest extends PluginSelectorBaseTestBase { 'processBuildSelectorForm' ] ], - '#tree' => TRUE, '#type' => 'container', ), ); @@ -246,8 +246,8 @@ class AdvancedPluginSelectorBaseTest extends PluginSelectorBaseTestBase { * @covers ::setPluginSelector */ public function testBuildSelectorFormWithMultipleAvailablePlugins() { - $form = []; - $form_state = $this->getMock(FormStateInterface::class); + $plugin_selector_form = []; + $plugin_selector_form_state = $this->getMock(SubformStateInterface::class); $cache_contexts = [$this->randomMachineName()]; $cache_tags = [$this->randomMachineName()]; @@ -277,10 +277,11 @@ class AdvancedPluginSelectorBaseTest extends PluginSelectorBaseTestBase { ->method('getDefinitions') ->willReturn($plugin_definitions); - $build = $this->sut->buildSelectorForm($form, $form_state); + $build = $this->sut->buildSelectorForm($plugin_selector_form, $plugin_selector_form_state); unset($build['container']['#plugin_selector_form_state_key']); $expected_build = array( + '#tree' => TRUE, '#cache' => [ 'contexts' => $cache_contexts, 'tags' => $cache_tags, @@ -297,7 +298,6 @@ class AdvancedPluginSelectorBaseTest extends PluginSelectorBaseTestBase { 'processBuildSelectorForm' ] ], - '#tree' => TRUE, '#type' => 'container', ), ); @@ -308,23 +308,23 @@ class AdvancedPluginSelectorBaseTest extends PluginSelectorBaseTestBase { * @covers ::submitSelectorForm */ public function testSubmitSelectorForm() { - $form = array( + $plugin_selector_form = array( 'container' => array( 'plugin_form' => array( $this->randomMachineName() => [], ), ), ); - $form_state = $this->getMock(FormStateInterface::class); + $plugin_selector_form_state = $this->getMock(SubformStateInterface::class); $plugin = $this->getMockForAbstractClass(AdvancedPluginSelectorBaseUnitTestPluginFormPluginInterface::class); $plugin->expects($this->once()) ->method('submitConfigurationForm') - ->with($form['container']['plugin_form'], $this->isInstanceOf(FormStateInterface::class)); + ->with($plugin_selector_form['container']['plugin_form'], $this->isInstanceOf(FormStateInterface::class)); - $this->sut->submitSelectorForm($form, $form_state); + $this->sut->submitSelectorForm($plugin_selector_form, $plugin_selector_form_state); $this->sut->setSelectedPlugin($plugin); - $this->sut->submitSelectorForm($form, $form_state); + $this->sut->submitSelectorForm($plugin_selector_form, $plugin_selector_form_state); } /** @@ -559,7 +559,10 @@ class AdvancedPluginSelectorBaseTest extends PluginSelectorBaseTestBase { 'select' => $selector, 'plugin_form' => $plugin_form, ); - $this->assertEquals($expected_build, $plugin_selector->buildMultipleAvailablePlugins($element, $form_state, $form)); + + $method = new \ReflectionMethod(get_class($plugin_selector), 'buildMultipleAvailablePlugins'); + $method->setAccessible(TRUE); + $this->assertEquals($expected_build, $method->invoke($plugin_selector, $element, $form_state, $form)); } /** diff --git a/tests/src/Unit/Plugin/Plugin/PluginSelector/PluginSelectorBaseTest.php b/tests/src/Unit/Plugin/Plugin/PluginSelector/PluginSelectorBaseTest.php index ec5525d..78eba77 100644 --- a/tests/src/Unit/Plugin/Plugin/PluginSelector/PluginSelectorBaseTest.php +++ b/tests/src/Unit/Plugin/Plugin/PluginSelector/PluginSelectorBaseTest.php @@ -6,6 +6,7 @@ use Drupal\Component\Plugin\Discovery\DiscoveryInterface; use Drupal\Component\Plugin\Factory\FactoryInterface; use Drupal\Component\Plugin\PluginInspectionInterface; use Drupal\Core\Form\FormState; +use Drupal\Core\Form\SubformStateInterface; use Drupal\plugin\Plugin\Plugin\PluginSelector\PluginSelectorBase; use Symfony\Component\DependencyInjection\ContainerInterface; @@ -180,12 +181,12 @@ class PluginSelectorBaseTest extends PluginSelectorBaseTestBase { public function testBuildSelectorForm() { $this->sut->setSelectablePluginType($this->selectablePluginType); - $form = []; - $form_state = new FormState(); + $plugin_selector_form = []; + $plugin_selector_form_state = $this->getMock(SubformStateInterface::class); - $form = $this->sut->buildSelectorForm($form, $form_state); + $plugin_selector_form = $this->sut->buildSelectorForm($plugin_selector_form, $plugin_selector_form_state); - $this->assertInternalType('array', $form); + $this->assertInternalType('array', $plugin_selector_form); } } diff --git a/tests/src/Unit/Plugin/Plugin/PluginSelector/RadiosTest.php b/tests/src/Unit/Plugin/Plugin/PluginSelector/RadiosTest.php index 9a48782..449754c 100644 --- a/tests/src/Unit/Plugin/Plugin/PluginSelector/RadiosTest.php +++ b/tests/src/Unit/Plugin/Plugin/PluginSelector/RadiosTest.php @@ -4,6 +4,7 @@ namespace Drupal\Tests\plugin\Unit\Plugin\Plugin\PluginSelector; use Drupal\Component\Plugin\PluginInspectionInterface; use Drupal\Core\Form\FormStateInterface; +use Drupal\Core\Form\SubformStateInterface; use Drupal\Core\PageCache\ResponsePolicy\KillSwitch; use Drupal\plugin\Plugin\Plugin\PluginSelector\AdvancedPluginSelectorBase; use Drupal\plugin\Plugin\Plugin\PluginSelector\Radios; @@ -57,14 +58,14 @@ class RadiosTest extends PluginSelectorBaseTestBase { * @covers ::buildSelectorForm */ public function testBuildSelectorFormWithoutAvailablePlugins() { - $form = []; - $form_state = $this->getMock(FormStateInterface::class); + $plugin_selector_form = []; + $plugin_selector_form_state = $this->getMock(SubformStateInterface::class); $this->selectablePluginManager->expects($this->any()) ->method('getDefinitions') ->willReturn([]); - $build = $this->sut->buildSelectorForm($form, $form_state); + $build = $this->sut->buildSelectorForm($plugin_selector_form, $plugin_selector_form_state); $this->assertArrayHasKey('clear', $build); }