3 namespace Drupal\Tests\path\Functional;
6 * Confirm that the Path module user interface works with languages.
10 class PathLanguageUiTest extends PathTestBase {
17 public static $modules = ['path', 'locale', 'locale_test'];
19 protected function setUp() {
22 // Create and log in user.
23 $web_user = $this->drupalCreateUser(['edit any page content', 'create page content', 'administer url aliases', 'create url aliases', 'administer languages', 'access administration pages']);
24 $this->drupalLogin($web_user);
26 // Enable French language.
28 $edit['predefined_langcode'] = 'fr';
30 $this->drupalPostForm('admin/config/regional/language/add', $edit, t('Add language'));
32 // Enable URL language detection and selection.
33 $edit = ['language_interface[enabled][language-url]' => 1];
34 $this->drupalPostForm('admin/config/regional/language/detection', $edit, t('Save settings'));
38 * Tests that a language-neutral URL alias works.
40 public function testLanguageNeutralUrl() {
41 $name = $this->randomMachineName(8);
43 $edit['source'] = '/admin/config/search/path';
44 $edit['alias'] = '/' . $name;
45 $this->drupalPostForm('admin/config/search/path/add', $edit, t('Save'));
47 $this->drupalGet($name);
48 $this->assertText(t('Filter aliases'), 'Language-neutral URL alias works');
52 * Tests that a default language URL alias works.
54 public function testDefaultLanguageUrl() {
55 $name = $this->randomMachineName(8);
57 $edit['source'] = '/admin/config/search/path';
58 $edit['alias'] = '/' . $name;
59 $edit['langcode'] = 'en';
60 $this->drupalPostForm('admin/config/search/path/add', $edit, t('Save'));
62 $this->drupalGet($name);
63 $this->assertText(t('Filter aliases'), 'English URL alias works');
67 * Tests that a non-default language URL alias works.
69 public function testNonDefaultUrl() {
70 $name = $this->randomMachineName(8);
72 $edit['source'] = '/admin/config/search/path';
73 $edit['alias'] = '/' . $name;
74 $edit['langcode'] = 'fr';
75 $this->drupalPostForm('admin/config/search/path/add', $edit, t('Save'));
77 $this->drupalGet('fr/' . $name);
78 $this->assertText(t('Filter aliases'), 'Foreign URL alias works');