Mercurial > hg > isophonics-drupal-site
comparison core/modules/language/tests/src/Functional/LanguageBreadcrumbTest.php @ 0:4c8ae668cc8c
Initial import (non-working)
author | Chris Cannam |
---|---|
date | Wed, 29 Nov 2017 16:09:58 +0000 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:4c8ae668cc8c |
---|---|
1 <?php | |
2 | |
3 namespace Drupal\Tests\language\Functional; | |
4 | |
5 use Drupal\language\Entity\ConfigurableLanguage; | |
6 use Drupal\Tests\BrowserTestBase; | |
7 | |
8 /** | |
9 * Tests breadcrumbs functionality. | |
10 * | |
11 * @group Menu | |
12 */ | |
13 class LanguageBreadcrumbTest extends BrowserTestBase { | |
14 | |
15 /** | |
16 * Modules to enable. | |
17 * | |
18 * @var array | |
19 */ | |
20 public static $modules = ['language', 'block', 'filter']; | |
21 | |
22 /** | |
23 * {@inheritdoc} | |
24 */ | |
25 protected function setUp() { | |
26 parent::setUp(); | |
27 $this->drupalPlaceBlock('system_breadcrumb_block'); | |
28 ConfigurableLanguage::createFromLangcode('de')->save(); | |
29 ConfigurableLanguage::createFromLangcode('gsw-berne')->save(); | |
30 } | |
31 | |
32 /** | |
33 * Tests breadcrumbs with URL prefixes. | |
34 */ | |
35 public function testBreadCrumbs() { | |
36 // Prepare common base breadcrumb elements. | |
37 $home = ['' => 'Home']; | |
38 $admin = $home + ['admin' => t('Administration')]; | |
39 | |
40 $page = $this->getSession()->getPage(); | |
41 | |
42 // /user/login is the default frontpage which only works for an anonymous | |
43 // user. Access the frontpage in different languages, ensure that no | |
44 // breadcrumb is displayed. | |
45 $this->drupalGet('user/login'); | |
46 $breadcrumbs = $page->find('css', '.block-system-breadcrumb-block'); | |
47 $this->assertNull($breadcrumbs); | |
48 | |
49 $this->drupalGet('de/user/login'); | |
50 $breadcrumbs = $page->find('css', '.block-system-breadcrumb-block'); | |
51 $this->assertNull($breadcrumbs); | |
52 | |
53 $this->drupalGet('gsw-berne/user/login'); | |
54 $breadcrumbs = $page->find('css', '.block-system-breadcrumb-block'); | |
55 $this->assertNull($breadcrumbs); | |
56 | |
57 $admin_user = $this->drupalCreateUser(['access administration pages']); | |
58 $this->drupalLogin($admin_user); | |
59 | |
60 // Use administration routes to assert that breadcrumb is displayed | |
61 // correctly on pages other than the frontpage. | |
62 $this->drupalGet('admin'); | |
63 $breadcrumbs = $page->find('css', '.block-system-breadcrumb-block'); | |
64 $this->assertEquals(1, substr_count($breadcrumbs->getText(), 'Home')); | |
65 $this->assertEquals(0, substr_count($breadcrumbs->getText(), 'Administration')); | |
66 | |
67 $this->drupalGet('de/admin'); | |
68 $breadcrumbs = $page->find('css', '.block-system-breadcrumb-block'); | |
69 $this->assertEquals(1, substr_count($breadcrumbs->getText(), 'Home')); | |
70 $this->assertEquals(0, substr_count($breadcrumbs->getText(), 'Administration')); | |
71 | |
72 $this->drupalGet('admin/structure', $admin); | |
73 $breadcrumbs = $page->find('css', '.block-system-breadcrumb-block'); | |
74 $this->assertEquals(1, substr_count($breadcrumbs->getText(), 'Home')); | |
75 $this->assertEquals(1, substr_count($breadcrumbs->getText(), 'Administration')); | |
76 | |
77 $this->drupalGet('de/admin/structure', $admin); | |
78 $breadcrumbs = $page->find('css', '.block-system-breadcrumb-block'); | |
79 $this->assertEquals(1, substr_count($breadcrumbs->getText(), 'Home')); | |
80 $this->assertEquals(1, substr_count($breadcrumbs->getText(), 'Administration')); | |
81 } | |
82 | |
83 } |