diff --git a/core/modules/system/src/Tests/Menu/LocalTasksTest.php b/core/modules/system/src/Tests/Menu/LocalTasksTest.php index ea376d65109b99ae838c76b905dfa5290dcc9b14..4edf30e5d80f619017820f09ab98afec0c5116d8 100644 --- a/core/modules/system/src/Tests/Menu/LocalTasksTest.php +++ b/core/modules/system/src/Tests/Menu/LocalTasksTest.php @@ -2,7 +2,7 @@ /** * @file - * Contains Drupal\system\Tests\Menu\LocalTasksTest. + * Contains \Drupal\system\Tests\Menu\LocalTasksTest. */ namespace Drupal\system\Tests\Menu; @@ -29,13 +29,14 @@ class LocalTasksTest extends WebTestBase { * (optional) The local tasks level to assert; 0 for primary, 1 for * secondary. Defaults to 0. */ - protected function assertLocalTasks(array $hrefs, $level = 0) { + protected function assertLocalTasks(array $routes, $level = 0) { $elements = $this->xpath('//*[contains(@class, :class)]//a', array( ':class' => $level == 0 ? 'tabs primary' : 'tabs secondary', )); $this->assertTrue(count($elements), 'Local tasks found.'); - foreach ($hrefs as $index => $element) { - $expected = Url::fromUri('base:' . $hrefs[$index])->toString(); + foreach ($routes as $index => $route_info) { + list($route_name, $route_parameters) = $route_info; + $expected = Url::fromRoute($route_name, $route_parameters)->toString(); $method = ($elements[$index]['href'] == $expected ? 'pass' : 'fail'); $this->{$method}(format_string('Task @number href @value equals @expected.', array( '@number' => $index + 1, @@ -50,14 +51,12 @@ protected function assertLocalTasks(array $hrefs, $level = 0) { */ public function testPluginLocalTask() { // Verify that local tasks appear as defined in the router. - $this->drupalGet('menu-local-task-test/tasks'); - - $this->drupalGet('menu-local-task-test/tasks/view'); - $this->assertLocalTasks(array( - 'menu-local-task-test/tasks/view', - 'menu-local-task-test/tasks/settings', - 'menu-local-task-test/tasks/edit', - )); + $this->drupalGet(Url::fromRoute('menu_test.local_task_test_tasks_view')); + $this->assertLocalTasks([ + ['menu_test.local_task_test_tasks_view', []], + ['menu_test.local_task_test_tasks_settings', []], + ['menu_test.local_task_test_tasks_edit', []], + ]); // Ensure the view tab is active. $result = $this->xpath('//ul[contains(@class, "tabs")]//li[contains(@class, "active")]/a'); @@ -65,21 +64,21 @@ public function testPluginLocalTask() { $this->assertEqual('View', (string) $result[0], 'The view tab is active.'); // Verify that local tasks in the second level appear. - $sub_tasks = array( - 'menu-local-task-test/tasks/settings/sub1', - 'menu-local-task-test/tasks/settings/sub2', - 'menu-local-task-test/tasks/settings/sub3', - 'menu-local-task-test/tasks/settings/derive1', - 'menu-local-task-test/tasks/settings/derive2', - ); - $this->drupalGet('menu-local-task-test/tasks/settings'); + $sub_tasks = [ + ['menu_test.local_task_test_tasks_settings_sub1', []], + ['menu_test.local_task_test_tasks_settings_sub2', []], + ['menu_test.local_task_test_tasks_settings_sub3', []], + ['menu_test.local_task_test_tasks_settings_derived', ['placeholder' => 'derive1']], + ['menu_test.local_task_test_tasks_settings_derived', ['placeholder' => 'derive2']], + ]; + $this->drupalGet(Url::fromRoute('menu_test.local_task_test_tasks_settings')); $this->assertLocalTasks($sub_tasks, 1); $result = $this->xpath('//ul[contains(@class, "tabs")]//li[contains(@class, "active")]/a'); $this->assertEqual(1, count($result), 'There is just a single active tab.'); $this->assertEqual('Settings', (string) $result[0], 'The settings tab is active.'); - $this->drupalGet('menu-local-task-test/tasks/settings/sub1'); + $this->drupalGet(Url::fromRoute('menu_test.local_task_test_tasks_settings_sub1')); $this->assertLocalTasks($sub_tasks, 1); $result = $this->xpath('//ul[contains(@class, "tabs")]//a[contains(@class, "active")]'); @@ -87,7 +86,7 @@ public function testPluginLocalTask() { $this->assertEqual('Settings', (string) $result[0], 'The settings tab is active.'); $this->assertEqual('Dynamic title for TestTasksSettingsSub1', (string) $result[1], 'The sub1 tab is active.'); - $this->drupalGet('menu-local-task-test/tasks/settings/derive1'); + $this->drupalGet(Url::fromRoute('menu_test.local_task_test_tasks_settings_derived', ['placeholder' => 'derive1'])); $this->assertLocalTasks($sub_tasks, 1); $result = $this->xpath('//ul[contains(@class, "tabs")]//li[contains(@class, "active")]'); @@ -109,24 +108,25 @@ public function testPluginLocalTask() { $entity = \Drupal::entityManager()->getStorage('entity_test')->create(array('bundle' => 'test')); $entity->save(); - $this->drupalGet('menu-local-task-test-upcasting/1/sub1'); + $this->drupalGet(Url::fromRoute('menu_test.local_task_test_upcasting_sub1', ['entity_test' => '1'])); + + $tasks = [ + ['menu_test.local_task_test_upcasting_sub1', ['entity_test' => '1']], + ['menu_test.local_task_test_upcasting_sub2', ['entity_test' => '1']], + ]; - $tasks = array( - 'menu-local-task-test-upcasting/1/sub1', - 'menu-local-task-test-upcasting/1/sub2', - ); $this->assertLocalTasks($tasks, 0); $result = $this->xpath('//ul[contains(@class, "tabs")]//li[contains(@class, "active")]'); $this->assertEqual(1, count($result), 'There is one active tab.'); $this->assertEqual('upcasting sub1', (string) $result[0]->a, 'The "upcasting sub1" tab is active.'); - $this->drupalGet('menu-local-task-test-upcasting/1/sub2'); + $this->drupalGet(Url::fromRoute('menu_test.local_task_test_upcasting_sub2', ['entity_test' => '1'])); - $tasks = array( - 'menu-local-task-test-upcasting/1/sub1', - 'menu-local-task-test-upcasting/1/sub2', - ); + $tasks = [ + ['menu_test.local_task_test_upcasting_sub1', ['entity_test' => '1']], + ['menu_test.local_task_test_upcasting_sub2', ['entity_test' => '1']], + ]; $this->assertLocalTasks($tasks, 0); $result = $this->xpath('//ul[contains(@class, "tabs")]//li[contains(@class, "active")]');