function NavigationDefaultBlockDefinitionTest::testNavigationDefaultBeforeNavigation

Tests the default block flow enabling the block provider module first.

File

core/modules/navigation/tests/src/Functional/NavigationDefaultBlockDefinitionTest.php, line 51

Class

NavigationDefaultBlockDefinitionTest
Tests the default block provider logic.

Namespace

Drupal\Tests\navigation\Functional

Code

public function testNavigationDefaultBeforeNavigation() : void {
    $test_page_url = Url::fromRoute('test_page_test.test_page');
    $module_installer = \Drupal::service('module_installer');
    // After installing Navigation Test Block, none of the elements are present.
    $module_installer->install([
        'navigation_test_block',
    ]);
    $this->drupalGet($test_page_url);
    $this->assertSession()
        ->elementNotExists('css', '.admin-toolbar');
    $this->assertSession()
        ->elementNotExists('css', '.toolbar-button--icon--test-block');
    // After installing Navigation, both elements are present.
    $module_installer->install([
        'navigation',
    ]);
    $this->drupalLogin($this->drupalCreateUser([
        'access navigation',
    ]));
    $this->drupalGet($test_page_url);
    $this->assertSession()
        ->elementExists('css', '.admin-toolbar');
    $this->assertSession()
        ->elementContains('css', '.toolbar-button--icon--test-block', 'Test Navigation Block');
}

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