function LanguageBreadcrumbTest::testBreadCrumbs

Same name and namespace in other branches
  1. 10 core/modules/language/tests/src/Functional/LanguageBreadcrumbTest.php \Drupal\Tests\language\Functional\LanguageBreadcrumbTest::testBreadCrumbs()
  2. 11.x core/modules/language/tests/src/Functional/LanguageBreadcrumbTest.php \Drupal\Tests\language\Functional\LanguageBreadcrumbTest::testBreadCrumbs()
  3. 9 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.