Commit 3eb3f981 authored by David Suissa's avatar David Suissa
Browse files

Issue #3519815 by dydave, tirupati_singh, ressa: Added menu tabs (local tasks)...

Issue #3519815 by dydave, tirupati_singh, ressa: Added menu tabs (local tasks) for Admin Toolbar Settings forms.
parent fe4b0a5b
Loading
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -3,3 +3,4 @@ admin_toolbar.settings:
  description: 'Configure the Admin Toolbar module.'
  route_name: admin_toolbar.settings
  parent: system.admin_config_ui
  weight: -1
+6 −0
Original line number Diff line number Diff line
# Add Admin Toolbar settings as a local task displayed as a tab.
admin_toolbar.settings:
  title: 'Toolbar settings'
  route_name: admin_toolbar.settings
  base_route: admin_toolbar.settings
  weight: 0
+6 −0
Original line number Diff line number Diff line
# Add Admin Toolbar Search settings as a local task displayed as a tab.
admin_toolbar_search.settings:
  title: 'Search settings'
  route_name: admin_toolbar_search.settings
  base_route: admin_toolbar.settings
  weight: 5
+1 −1
Original line number Diff line number Diff line
@@ -8,7 +8,7 @@ admin_toolbar.search:
admin_toolbar_search.settings:
  path: '/admin/config/user-interface/admin-toolbar-search-settings'
  defaults:
    _title: 'Admin toolbar search settings'
    _title: 'Admin Toolbar Search settings'
    _form: 'Drupal\admin_toolbar_search\Form\AdminToolbarSearchSettingsForm'
  requirements:
    _permission: 'administer site configuration'
+34 −0
Original line number Diff line number Diff line
@@ -2,6 +2,7 @@

namespace Drupal\Tests\admin_toolbar_search\Functional;

use Drupal\block\Entity\Block;
use Drupal\Tests\BrowserTestBase;

/**
@@ -21,6 +22,8 @@ class AdminToolbarSearchSettingsFormTest extends BrowserTestBase {
   */
  protected static $modules = [
    'admin_toolbar_search',
    // Enable the block module to be able to test module's local tasks.
    'block',
  ];

  /**
@@ -44,6 +47,8 @@ class AdminToolbarSearchSettingsFormTest extends BrowserTestBase {
      'use admin toolbar search',
    ];
    $this->adminUser = $this->drupalCreateUser($permissions);
    // Create a block for testing module's primary local tasks.
    $this->createPrimaryLocalTasksBlock();
  }

  /**
@@ -93,6 +98,35 @@ class AdminToolbarSearchSettingsFormTest extends BrowserTestBase {
    $assert->responseNotContains('admin_toolbar_search.keyboard_shortcut.js');
    // Check the display menu item JS is not found.
    $assert->responseNotContains('displayMenuItem');
    // Check the module's local tasks are displayed as expected.
    $local_tasks_regex = '/<div.*-primary-local-tasks.*>([\r\n].*)+<a.*>Toolbar settings<\/a>.*[\r\n].*<a.*>Search settings<\/a>.*[\r\n].*<a.*>Tools settings<\/a>.*[\r\n].*([\r\n].*)+<\/div>/';
    $assert->responseMatches($local_tasks_regex);
  }

  /**
   * Helper function to create a block to test module's primary local tasks.
   */
  private function createPrimaryLocalTasksBlock(): void {
    $values = [
      // A unique ID for the block instance.
      'id' => 'stark_primary_local_tasks',
      // The plugin block id as defined in the class.
      'plugin' => 'local_tasks_block',
      // The machine name of the theme region.
      'region' => 'highlighted',
      'settings' => [
        'label' => 'Primary tabs',
        'label_display' => '0',
        'primary' => TRUE,
        'secondary' => FALSE,
      ],
      // The machine name of the theme.
      'theme' => $this->defaultTheme,
      'visibility' => [],
      'weight' => 100,
    ];
    $block = Block::create($values);
    $block->save();
  }

}
Loading