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 }