function LanguageBreadcrumbTest::testBreadCrumbs

Same name and namespace in other branches
  1. 9 core/modules/language/tests/src/Functional/LanguageBreadcrumbTest.php \Drupal\Tests\language\Functional\LanguageBreadcrumbTest::testBreadCrumbs()
  2. 10 core/modules/language/tests/src/Functional/LanguageBreadcrumbTest.php \Drupal\Tests\language\Functional\LanguageBreadcrumbTest::testBreadCrumbs()
  3. 11.x core/modules/language/tests/src/Functional/LanguageBreadcrumbTest.php \Drupal\Tests\language\Functional\LanguageBreadcrumbTest::testBreadCrumbs()

Tests breadcrumbs with URL prefixes.

File

core/modules/language/tests/src/Functional/LanguageBreadcrumbTest.php, line 40

Class

LanguageBreadcrumbTest
Tests breadcrumbs functionality.

Namespace

Drupal\Tests\language\Functional

Code

public function testBreadCrumbs() {
    // Prepare common base breadcrumb elements.
    $home = [
        '' => 'Home',
    ];
    $admin = $home + [
        'admin' => t('Administration'),
    ];
    $page = $this->getSession()
        ->getPage();
    // /user/login is the default frontpage which only works for an anonymous
    // user. Access the frontpage in different languages, ensure that no
    // breadcrumb is displayed.
    $this->drupalGet('user/login');
    $breadcrumbs = $page->find('css', '.block-system-breadcrumb-block');
    $this->assertNull($breadcrumbs);
    $this->drupalGet('de/user/login');
    $breadcrumbs = $page->find('css', '.block-system-breadcrumb-block');
    $this->assertNull($breadcrumbs);
    $this->drupalGet('gsw-berne/user/login');
    $breadcrumbs = $page->find('css', '.block-system-breadcrumb-block');
    $this->assertNull($breadcrumbs);
    $admin_user = $this->drupalCreateUser([
        'access administration pages',
    ]);
    $this->drupalLogin($admin_user);
    // Use administration routes to assert that breadcrumb is displayed
    // correctly on pages other than the frontpage.
    $this->drupalGet('admin');
    $breadcrumbs = $page->find('css', '.block-system-breadcrumb-block');
    $this->assertEquals(1, substr_count($breadcrumbs->getText(), 'Home'));
    $this->assertEquals(0, substr_count($breadcrumbs->getText(), 'Administration'));
    $this->drupalGet('de/admin');
    $breadcrumbs = $page->find('css', '.block-system-breadcrumb-block');
    $this->assertEquals(1, substr_count($breadcrumbs->getText(), 'Home'));
    $this->assertEquals(0, substr_count($breadcrumbs->getText(), 'Administration'));
    $this->drupalGet('admin/structure', $admin);
    $breadcrumbs = $page->find('css', '.block-system-breadcrumb-block');
    $this->assertEquals(1, substr_count($breadcrumbs->getText(), 'Home'));
    $this->assertEquals(1, substr_count($breadcrumbs->getText(), 'Administration'));
    $this->drupalGet('de/admin/structure', $admin);
    $breadcrumbs = $page->find('css', '.block-system-breadcrumb-block');
    $this->assertEquals(1, substr_count($breadcrumbs->getText(), 'Home'));
    $this->assertEquals(1, substr_count($breadcrumbs->getText(), 'Administration'));
}

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