Further Drupal 8.6.4 changes. Some core files were not committed before a commit...
[yaffs-website] / web / core / modules / path / tests / src / Functional / PathLanguageUiTest.php
index c2e3276246fa1270448a7c88d10fd578824d7c40..c76284515b65e570c89f2255c1e8468b00d1f185 100644 (file)
@@ -2,6 +2,8 @@
 
 namespace Drupal\Tests\path\Functional;
 
+use Drupal\Core\Language\LanguageInterface;
+
 /**
  * Confirm that the Path module user interface works with languages.
  *
@@ -78,4 +80,36 @@ class PathLanguageUiTest extends PathTestBase {
     $this->assertText(t('Filter aliases'), 'Foreign URL alias works');
   }
 
+  /**
+   * Test that language unspecific aliases are shown and saved in the node form.
+   */
+  public function testNotSpecifiedNode() {
+    // Create test node.
+    $node = $this->drupalCreateNode();
+
+    // Create a language-unspecific alias in the admin UI, ensure that is
+    // displayed and the langcode is not changed when saving.
+    $edit = [
+      'source' => '/node/' . $node->id(),
+      'alias' => '/' . $this->getRandomGenerator()->word(8),
+      'langcode' => LanguageInterface::LANGCODE_NOT_SPECIFIED,
+    ];
+    $this->drupalPostForm('admin/config/search/path/add', $edit, t('Save'));
+
+    $this->drupalGet($node->toUrl('edit-form'));
+    $this->assertSession()->fieldValueEquals('path[0][alias]', $edit['alias']);
+    $this->drupalPostForm(NULL, [], t('Save'));
+
+    $this->drupalGet('admin/config/search/path');
+    $this->assertSession()->pageTextContains('None');
+    $this->assertSession()->pageTextNotContains('English');
+
+    // Create another node, with no alias, to ensure non-language specific
+    // aliases are loaded correctly.
+    $node = $this->drupalCreateNode();
+    $this->drupalget($node->toUrl('edit-form'));
+    $this->drupalPostForm(NULL, [], t('Save'));
+    $this->assertSession()->pageTextNotContains(t('The alias is already in use.'));
+  }
+
 }