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