View source
<?php
namespace Drupal\Tests\admin_toolbar\FunctionalJavascript;
use Drupal\FunctionalJavascriptTests\WebDriverTestBase;
class AdminToolbarSearchTest extends WebDriverTestBase {
public static $modules = [
'admin_toolbar',
'admin_toolbar_tools',
'node',
'field_ui',
'block',
];
protected $adminUser;
public function setUp() {
parent::setUp();
$this
->drupalCreateContentType([
'type' => 'article',
'name' => 'Article',
]);
$this
->drupalPlaceBlock('local_tasks_block');
$this->adminUser = $this
->drupalCreateUser([
'access toolbar',
'administer menu',
'access administration pages',
'administer site configuration',
'administer content types',
'administer node fields',
]);
}
public function testSearchFunctionality() {
$search_tab = '#toolbar-item-administration-search';
$search_tray = '#toolbar-item-administration-search-tray';
$this
->drupalLogin($this->adminUser);
$this
->assertSession()
->responseContains('admin.toolbar_search.css');
$this
->assertSession()
->responseContains('admin_toolbar_search.js');
$this
->assertSession()
->waitForElementVisible('css', $search_tab)
->click();
$this
->assertSession()
->waitForElementVisible('css', $search_tray);
$this
->assertSuggestionContains('basic', 'admin/config/system/site-information');
drupal_flush_all_caches();
$this
->drupalGet('admin/structure/types/manage/article/fields');
$this
->assertSession()
->waitForElementVisible('css', $search_tray);
$this
->assertSuggestionContains('article manage fields', '/admin/structure/types/manage/article/fields');
$suggestions = $this
->assertSession()
->waitForElementVisible('css', 'ul.ui-autocomplete');
$count = count($suggestions
->findAll('xpath', '//span[contains(text(), "/admin/structure/types/manage/article/fields")]'));
$this
->assertEquals(1, $count);
}
protected function assertSuggestionContains($search, $contains) {
$this
->assertSession()
->elementExists('css', '#admin-toolbar-search-input')
->setValue($search);
$suggestions_markup = $this
->assertSession()
->waitForElementVisible('css', 'ul.ui-autocomplete')
->getHtml();
$this
->assertContains($contains, $suggestions_markup);
}
}