Chris@0
|
1 <?php
|
Chris@0
|
2
|
Chris@0
|
3 namespace Drupal\Tests\path\Functional;
|
Chris@0
|
4
|
Chris@0
|
5 /**
|
Chris@0
|
6 * Confirm that the Path module user interface works with languages.
|
Chris@0
|
7 *
|
Chris@0
|
8 * @group path
|
Chris@0
|
9 */
|
Chris@0
|
10 class PathLanguageUiTest extends PathTestBase {
|
Chris@0
|
11
|
Chris@0
|
12 /**
|
Chris@0
|
13 * Modules to enable.
|
Chris@0
|
14 *
|
Chris@0
|
15 * @var array
|
Chris@0
|
16 */
|
Chris@0
|
17 public static $modules = ['path', 'locale', 'locale_test'];
|
Chris@0
|
18
|
Chris@0
|
19 protected function setUp() {
|
Chris@0
|
20 parent::setUp();
|
Chris@0
|
21
|
Chris@0
|
22 // Create and log in user.
|
Chris@0
|
23 $web_user = $this->drupalCreateUser(['edit any page content', 'create page content', 'administer url aliases', 'create url aliases', 'administer languages', 'access administration pages']);
|
Chris@0
|
24 $this->drupalLogin($web_user);
|
Chris@0
|
25
|
Chris@0
|
26 // Enable French language.
|
Chris@0
|
27 $edit = [];
|
Chris@0
|
28 $edit['predefined_langcode'] = 'fr';
|
Chris@0
|
29
|
Chris@0
|
30 $this->drupalPostForm('admin/config/regional/language/add', $edit, t('Add language'));
|
Chris@0
|
31
|
Chris@0
|
32 // Enable URL language detection and selection.
|
Chris@0
|
33 $edit = ['language_interface[enabled][language-url]' => 1];
|
Chris@0
|
34 $this->drupalPostForm('admin/config/regional/language/detection', $edit, t('Save settings'));
|
Chris@0
|
35 }
|
Chris@0
|
36
|
Chris@0
|
37 /**
|
Chris@0
|
38 * Tests that a language-neutral URL alias works.
|
Chris@0
|
39 */
|
Chris@0
|
40 public function testLanguageNeutralUrl() {
|
Chris@0
|
41 $name = $this->randomMachineName(8);
|
Chris@0
|
42 $edit = [];
|
Chris@0
|
43 $edit['source'] = '/admin/config/search/path';
|
Chris@0
|
44 $edit['alias'] = '/' . $name;
|
Chris@0
|
45 $this->drupalPostForm('admin/config/search/path/add', $edit, t('Save'));
|
Chris@0
|
46
|
Chris@0
|
47 $this->drupalGet($name);
|
Chris@0
|
48 $this->assertText(t('Filter aliases'), 'Language-neutral URL alias works');
|
Chris@0
|
49 }
|
Chris@0
|
50
|
Chris@0
|
51 /**
|
Chris@0
|
52 * Tests that a default language URL alias works.
|
Chris@0
|
53 */
|
Chris@0
|
54 public function testDefaultLanguageUrl() {
|
Chris@0
|
55 $name = $this->randomMachineName(8);
|
Chris@0
|
56 $edit = [];
|
Chris@0
|
57 $edit['source'] = '/admin/config/search/path';
|
Chris@0
|
58 $edit['alias'] = '/' . $name;
|
Chris@0
|
59 $edit['langcode'] = 'en';
|
Chris@0
|
60 $this->drupalPostForm('admin/config/search/path/add', $edit, t('Save'));
|
Chris@0
|
61
|
Chris@0
|
62 $this->drupalGet($name);
|
Chris@0
|
63 $this->assertText(t('Filter aliases'), 'English URL alias works');
|
Chris@0
|
64 }
|
Chris@0
|
65
|
Chris@0
|
66 /**
|
Chris@0
|
67 * Tests that a non-default language URL alias works.
|
Chris@0
|
68 */
|
Chris@0
|
69 public function testNonDefaultUrl() {
|
Chris@0
|
70 $name = $this->randomMachineName(8);
|
Chris@0
|
71 $edit = [];
|
Chris@0
|
72 $edit['source'] = '/admin/config/search/path';
|
Chris@0
|
73 $edit['alias'] = '/' . $name;
|
Chris@0
|
74 $edit['langcode'] = 'fr';
|
Chris@0
|
75 $this->drupalPostForm('admin/config/search/path/add', $edit, t('Save'));
|
Chris@0
|
76
|
Chris@0
|
77 $this->drupalGet('fr/' . $name);
|
Chris@0
|
78 $this->assertText(t('Filter aliases'), 'Foreign URL alias works');
|
Chris@0
|
79 }
|
Chris@0
|
80
|
Chris@0
|
81 }
|