public function LanguageBreadcrumbTest::testBreadCrumbs in Drupal 9
Same name and namespace in other branches
- 8 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\FunctionalCode
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'));
}