From a371a7b58d74ece952fcbc306c864e573ef401f9 Mon Sep 17 00:00:00 2001 From: Alex Pott Date: Tue, 7 May 2013 21:44:57 +0100 Subject: [PATCH] Issue #1986888 by tim.plunkett, agentrickard: Fixed Field UI integration for entity types is brittle. --- .../field_ui/Routing/RouteSubscriber.php | 1 + .../field_ui/Tests/FieldUIRouteTest.php | 55 +++++++++++++++++++ .../field_ui_test/field_ui_test.info.yml | 10 ++++ .../field_ui_test/field_ui_test.module | 6 ++ .../Core/Entity/FieldUITestNoBundle.php | 37 +++++++++++++ 5 files changed, 109 insertions(+) create mode 100644 core/modules/field_ui/lib/Drupal/field_ui/Tests/FieldUIRouteTest.php create mode 100644 core/modules/field_ui/tests/modules/field_ui_test/field_ui_test.info.yml create mode 100644 core/modules/field_ui/tests/modules/field_ui_test/field_ui_test.module create mode 100644 core/modules/field_ui/tests/modules/field_ui_test/lib/Drupal/field_ui_test/Plugin/Core/Entity/FieldUITestNoBundle.php diff --git a/core/modules/field_ui/lib/Drupal/field_ui/Routing/RouteSubscriber.php b/core/modules/field_ui/lib/Drupal/field_ui/Routing/RouteSubscriber.php index cfa70dd41d07..934a56e2f629 100644 --- a/core/modules/field_ui/lib/Drupal/field_ui/Routing/RouteSubscriber.php +++ b/core/modules/field_ui/lib/Drupal/field_ui/Routing/RouteSubscriber.php @@ -49,6 +49,7 @@ class RouteSubscriber implements EventSubscriberInterface { public function routes(RouteBuildEvent $event) { $collection = $event->getRouteCollection(); foreach ($this->manager->getDefinitions() as $entity_type => $entity_info) { + $defaults = array(); if ($entity_info['fieldable'] && isset($entity_info['route_base_path'])) { $path = $entity_info['route_base_path']; diff --git a/core/modules/field_ui/lib/Drupal/field_ui/Tests/FieldUIRouteTest.php b/core/modules/field_ui/lib/Drupal/field_ui/Tests/FieldUIRouteTest.php new file mode 100644 index 000000000000..32d2a7180cdf --- /dev/null +++ b/core/modules/field_ui/lib/Drupal/field_ui/Tests/FieldUIRouteTest.php @@ -0,0 +1,55 @@ + 'Field UI routes', + 'description' => 'Tests the functionality of the Field UI route subscriber.', + 'group' => 'Field UI', + ); + } + + /** + * {@inheritdoc} + */ + public function setUp() { + parent::setUp(); + + $this->drupalCreateContentType(array('type' => 'article', 'name' => 'Article')); + + $this->drupalLogin($this->root_user); + } + + /** + * Ensures that entity types with bundles do not break following entity types. + */ + public function testFieldUIRoutes() { + $this->drupalGet('field-ui-test-no-bundle/manage/fields'); + $this->assertText('No fields are present yet.'); + + $this->drupalGet('admin/structure/types/manage/article/fields'); + $this->assertTitle('Article | Drupal'); + } + +} diff --git a/core/modules/field_ui/tests/modules/field_ui_test/field_ui_test.info.yml b/core/modules/field_ui/tests/modules/field_ui_test/field_ui_test.info.yml new file mode 100644 index 000000000000..acf76e71f1c2 --- /dev/null +++ b/core/modules/field_ui/tests/modules/field_ui_test/field_ui_test.info.yml @@ -0,0 +1,10 @@ +name: "Field UI tests" +type: module +description: "Support module for Field UI testing." +package: Testing +version: VERSION +core: 8.x +hidden: TRUE + +dependencies: + - field_ui diff --git a/core/modules/field_ui/tests/modules/field_ui_test/field_ui_test.module b/core/modules/field_ui/tests/modules/field_ui_test/field_ui_test.module new file mode 100644 index 000000000000..dae31c6da324 --- /dev/null +++ b/core/modules/field_ui/tests/modules/field_ui_test/field_ui_test.module @@ -0,0 +1,6 @@ +