8472ff77f55042f15d92ec79e15e7326f2b2355b
[yaffs-website] / web / core / modules / language / tests / src / Functional / LanguageNegotiationUrlTest.php
1 <?php
2
3 namespace Drupal\Tests\language\Functional;
4
5 use Drupal\Core\StringTranslation\StringTranslationTrait;
6 use Drupal\Tests\BrowserTestBase;
7
8 /**
9  * @coversDefaultClass \Drupal\language\Plugin\LanguageNegotiation\LanguageNegotiationUrl
10  * @group language
11  */
12 class LanguageNegotiationUrlTest extends BrowserTestBase {
13
14   use StringTranslationTrait;
15
16   /**
17    * {@inheritdoc}
18    */
19   public static $modules = [
20     'language',
21     'node',
22     'path',
23   ];
24
25   /**
26    * @var \Drupal\user\Entity\User
27    */
28   protected $user;
29
30   /**
31    * {@inheritdoc}
32    */
33   protected function setUp() {
34     parent::setUp();
35
36     // Create an Article node type.
37     if ($this->profile != 'standard') {
38       $this->drupalCreateContentType(['type' => 'article']);
39     }
40
41     $this->user = $this->drupalCreateUser([
42       'administer languages',
43       'access administration pages',
44       'view the administration theme',
45       'administer nodes',
46       'create article content',
47       'create url aliases',
48     ]);
49     $this->drupalLogin($this->user);
50
51     $this->drupalPostForm('admin/config/regional/language/add', ['predefined_langcode' => 'de'], $this->t('Add language'));
52   }
53
54   /**
55    * @covers ::processInbound
56    */
57   public function testDomain() {
58     // Check if paths that contain language prefixes can be reached when
59     // language is taken from the domain.
60     $edit = [
61       'language_negotiation_url_part' => 'domain',
62       'prefix[en]' => 'eng',
63       'prefix[de]' => 'de',
64       'domain[en]' => $_SERVER['HTTP_HOST'],
65       'domain[de]' => "de.$_SERVER[HTTP_HOST]",
66     ];
67     $this->drupalPostForm('admin/config/regional/language/detection/url', $edit, $this->t('Save configuration'));
68
69     $nodeValues = [
70       'title[0][value]' => 'Test',
71       'path[0][alias]' => '/eng/test',
72     ];
73     $this->drupalPostForm('node/add/article', $nodeValues, $this->t('Save and publish'));
74     $this->assertSession()->statusCodeEquals(200);
75   }
76
77 }