Chris@0: getDefinition('test_field_widget_multiple'); Chris@0: Chris@0: // Test if hook_field_widget_info_alter is being called. Chris@0: $this->assertTrue(in_array('test_field', $widget_definition['field_types']), "The 'test_field_widget_multiple' widget is enabled for the 'test_field' field type in field_test_field_widget_info_alter()."); Chris@0: } Chris@0: Chris@0: /** Chris@0: * Tests that getInstance falls back on default if current is not applicable. Chris@0: * Chris@0: * @see \Drupal\field\Tests\FormatterPluginManagerTest::testNotApplicableFallback() Chris@0: */ Chris@0: public function testNotApplicableFallback() { Chris@0: /** @var \Drupal\Core\Field\WidgetPluginManager $widget_plugin_manager */ Chris@0: $widget_plugin_manager = \Drupal::service('plugin.manager.field.widget'); Chris@0: Chris@0: $base_field_definition = BaseFieldDefinition::create('test_field') Chris@0: // Set a name that will make isApplicable() return TRUE. Chris@0: ->setName('field_multiwidgetfield'); Chris@0: Chris@0: $widget_options = [ Chris@0: 'field_definition' => $base_field_definition, Chris@0: 'form_mode' => 'default', Chris@0: 'configuration' => [ Chris@0: 'type' => 'test_field_widget_multiple', Chris@0: ], Chris@0: ]; Chris@0: Chris@0: $instance = $widget_plugin_manager->getInstance($widget_options); Chris@0: $this->assertEqual($instance->getPluginId(), 'test_field_widget_multiple'); Chris@0: Chris@0: // Now do the same but with machine name field_onewidgetfield, because that Chris@0: // makes isApplicable() return FALSE. Chris@0: $base_field_definition->setName('field_onewidgetfield'); Chris@0: $instance = $widget_plugin_manager->getInstance($widget_options); Chris@0: Chris@0: // Instance should be default widget. Chris@0: $this->assertNotEqual($instance->getPluginId(), 'test_field_widget_multiple'); Chris@0: $this->assertEqual($instance->getPluginId(), 'test_field_widget'); Chris@0: } Chris@0: Chris@0: }