3 namespace Drupal\redirect\Tests;
4 use Drupal\language\Entity\ConfigurableLanguage;
7 * UI tests for redirect module with language and content translation modules.
9 * This runs the exact same tests as RedirectUITest, but with both the language
10 * and content translation modules enabled.
14 class RedirectUILanguageTest extends RedirectUITest {
19 public static $modules = ['redirect', 'node', 'path', 'dblog', 'views', 'taxonomy', 'language', 'content_translation'];
24 protected function setUp() {
27 $language = ConfigurableLanguage::createFromLangcode('de');
29 $language = ConfigurableLanguage::createFromLangcode('es');
34 * Test multilingual scenarios.
36 public function testLanguageSpecificRedirects() {
37 $this->drupalLogin($this->adminUser);
39 // Add a redirect for english.
40 $this->drupalPostForm('admin/config/search/redirect/add', array(
41 'redirect_source[0][path]' => 'langpath',
42 'redirect_redirect[0][uri]' => '/user',
43 'language[0][value]' => 'en',
46 // Add a redirect for germany.
47 $this->drupalPostForm('admin/config/search/redirect/add', array(
48 'redirect_source[0][path]' => 'langpath',
49 'redirect_redirect[0][uri]' => '<front>',
50 'language[0][value]' => 'de',
53 // Check redirect for english.
54 $this->assertRedirect('langpath', '/user', 'HTTP/1.1 301 Moved Permanently');
56 // Check redirect for germany.
57 $this->assertRedirect('de/langpath', '/de', 'HTTP/1.1 301 Moved Permanently');
59 // Check no redirect for spanish.
60 $this->assertRedirect('es/langpath', NULL, 'HTTP/1.1 404 Not Found');
64 * Test non-language specific redirect.
66 public function testUndefinedLangugageRedirects() {
67 $this->drupalLogin($this->adminUser);
69 // Add a redirect for english.
70 $this->drupalPostForm('admin/config/search/redirect/add', array(
71 'redirect_source[0][path]' => 'langpath',
72 'redirect_redirect[0][uri]' => '/user',
73 'language[0][value]' => 'und',
76 // Check redirect for english.
77 $this->assertRedirect('langpath', '/user', 'HTTP/1.1 301 Moved Permanently');
79 // Check redirect for spanish.
80 $this->assertRedirect('es/langpath', '/es/user', 'HTTP/1.1 301 Moved Permanently');