PathLanguageUiTest.php 2.3 KB

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