View source
<?php
namespace Drupal\Tests\language\Functional;
use Drupal\language\Entity\ConfigurableLanguage;
use Drupal\Tests\BrowserTestBase;
class LanguageBreadcrumbTest extends BrowserTestBase {
protected static $modules = [
'language',
'block',
'filter',
];
protected $defaultTheme = 'classy';
protected function setUp() : void {
parent::setUp();
$this
->drupalPlaceBlock('system_breadcrumb_block');
ConfigurableLanguage::createFromLangcode('de')
->save();
ConfigurableLanguage::createFromLangcode('gsw-berne')
->save();
}
public function testBreadCrumbs() {
$home = [
'' => 'Home',
];
$admin = $home + [
'admin' => t('Administration'),
];
$page = $this
->getSession()
->getPage();
$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);
$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'));
}
}