function NavigationIconTest::testNavigationIcon

Tests the behavior of custom icons.

File

core/modules/navigation/tests/src/Functional/NavigationIconTest.php, line 41

Class

NavigationIconTest
Tests Navigation Icon behavior.

Namespace

Drupal\Tests\navigation\Functional

Code

public function testNavigationIcon() : void {
    $this->drupalGet('/test-page');
    $this->assertSession()
        ->elementAttributeContains('css', 'a.toolbar-button--icon--star svg', 'width', '25');
    $this->assertSession()
        ->elementAttributeContains('css', 'a.toolbar-button--icon--star svg', 'class', 'toolbar-button__icon foo');
    $this->assertSession()
        ->elementAttributeContains('css', 'a.toolbar-button--icon--pencil svg', 'width', '20');
    $this->assertSession()
        ->elementAttributeContains('css', 'a.toolbar-button--icon--pencil svg', 'class', 'toolbar-button__icon');
    $this->assertSession()
        ->elementAttributeContains('css', 'a.toolbar-button--icon--navigation-media svg', 'width', '20');
    $this->assertSession()
        ->elementAttributeContains('css', 'a.toolbar-button--icon--navigation-media svg', 'class', 'toolbar-button__icon');
    $this->assertSession()
        ->elementExists('css', 'a.toolbar-button--icon--navigation-test-navigation__no-icon');
    $this->assertSession()
        ->elementNotExists('css', 'a.toolbar-button--icon--navigation-test-navigation__no-icon svg');
    // Rebuild menu with alterations and reload the page to check them.
    \Drupal::keyValue('navigation_test')->set('menu_links_discovered_alter', 1);
    \Drupal::service(MenuLinkManagerInterface::class)->rebuild();
    $this->drupalGet('/test-page');
    $this->assertSession()
        ->elementAttributeContains('css', 'a.toolbar-button--icon--star svg', 'width', '25');
    $this->assertSession()
        ->elementAttributeContains('css', 'a.toolbar-button--icon--star svg', 'class', 'toolbar-button__icon foo');
    $this->assertSession()
        ->elementNotExists('css', 'a.toolbar-button--icon--pencil svg');
    $this->assertSession()
        ->elementAttributeContains('css', 'a.toolbar-button--icon--navigation-media svg', 'width', '20');
    $this->assertSession()
        ->elementAttributeContains('css', 'a.toolbar-button--icon--navigation-media svg', 'class', 'toolbar-button__icon');
    $this->assertSession()
        ->elementAttributeContains('css', 'a.toolbar-button--icon--radioactive svg', 'width', '20');
    $this->assertSession()
        ->elementAttributeContains('css', 'a.toolbar-button--icon--radioactive svg', 'class', 'toolbar-button__icon');
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.