Commit 66d46fc1 authored by catch's avatar catch
Browse files

Issue #3280773 by danflanagan8: Path Tests should not rely on Classy

(cherry picked from commit 41992ab7)
parent bf7d238e
Loading
Loading
Loading
Loading
+10 −10
Original line number Diff line number Diff line
@@ -148,13 +148,13 @@ public function testAdminAlias() {
    $this->submitForm($edit, 'Save');

    // Confirm no duplicate was created.
    $this->assertSession()->pageTextContains("The alias {$edit['alias[0][value]']} is already in use in this language.");
    $this->assertSession()->statusMessageContains("The alias {$edit['alias[0][value]']} is already in use in this language.", 'error');

    $edit_upper = $edit;
    $edit_upper['alias[0][value]'] = mb_strtoupper($edit['alias[0][value]']);
    $this->drupalGet('admin/config/search/path/add');
    $this->submitForm($edit_upper, 'Save');
    $this->assertSession()->pageTextContains("The alias {$edit_upper['alias[0][value]']} could not be added because it is already in use in this language with different capitalization: {$edit['alias[0][value]']}.");
    $this->assertSession()->statusMessageContains("The alias {$edit_upper['alias[0][value]']} could not be added because it is already in use in this language with different capitalization: {$edit['alias[0][value]']}.", 'error');

    // Delete alias.
    $this->drupalGet('admin/config/search/path/edit/' . $pid);
@@ -215,7 +215,7 @@ public function testAdminAlias() {
    $edit['path[0][value]'] = '/node/' . $node2->id();
    $this->drupalGet('admin/config/search/path/edit/' . $pid);
    $this->submitForm($edit, 'Save');
    $this->assertSession()->pageTextContains('The alias has been saved.');
    $this->assertSession()->statusMessageContains('The alias has been saved.', 'status');
    $this->drupalGet($edit['alias[0][value]']);
    // Previous alias should no longer work.
    $this->assertSession()->pageTextNotContains($node4->label());
@@ -230,7 +230,7 @@ public function testAdminAlias() {
    $edit['path[0][value]'] = '/node/' . $node3->id();
    $this->drupalGet('admin/config/search/path/edit/' . $pid);
    $this->submitForm($edit, 'Save');
    $this->assertSession()->pageTextContains("The alias {$edit['alias[0][value]']} is already in use in this language.");
    $this->assertSession()->statusMessageContains("The alias {$edit['alias[0][value]']} is already in use in this language.", 'error');

    // Create an alias without a starting slash.
    $node5 = $this->drupalCreateNode();
@@ -243,8 +243,8 @@ public function testAdminAlias() {
    $this->submitForm($edit, 'Save');

    $this->assertSession()->addressEquals('admin/config/search/path/add');
    $this->assertSession()->pageTextContains('The source path has to start with a slash.');
    $this->assertSession()->pageTextContains('The alias path has to start with a slash.');
    $this->assertSession()->statusMessageContains('The source path has to start with a slash.', 'error');
    $this->assertSession()->statusMessageContains('The alias path has to start with a slash.', 'error');
  }

  /**
@@ -312,7 +312,7 @@ public function testNodeAlias() {
    $this->submitForm($edit, 'Save');

    // Confirm that the alias didn't make a duplicate.
    $this->assertSession()->pageTextContains("The alias {$edit['path[0][alias]']} is already in use in this language.");
    $this->assertSession()->statusMessageContains("The alias {$edit['path[0][alias]']} is already in use in this language.", 'error');

    // Delete alias.
    $this->drupalGet('node/' . $node1->id() . '/edit');
@@ -369,7 +369,7 @@ public function testNodeAlias() {
    $edit = ['path[0][alias]' => '0'];
    $this->drupalGet($node6->toUrl('edit-form'));
    $this->submitForm($edit, 'Save');
    $this->assertSession()->pageTextContains('The alias path has to start with a slash.');
    $this->assertSession()->statusMessageContains('The alias path has to start with a slash.', 'error');

    // Create an invalid alias with two leading slashes and verify that the
    // extra slash is removed when the link is generated. This ensures that URL
@@ -428,7 +428,7 @@ public function testDuplicateNodeAlias() {
    $node_two = $this->drupalCreateNode();
    $this->drupalGet('node/' . $node_two->id() . '/edit');
    $this->submitForm($edit, 'Save');
    $this->assertSession()->pageTextContains("The alias {$edit['path[0][alias]']} is already in use in this language.");
    $this->assertSession()->statusMessageContains("The alias {$edit['path[0][alias]']} is already in use in this language.", 'error');
    $path_alias = $this->assertSession()->fieldExists('path[0][alias]');
    $this->assertSession()->fieldValueEquals('path[0][alias]', $edit['path[0][alias]']);
    $this->assertTrue($path_alias->hasClass('error'));
@@ -444,7 +444,7 @@ public function testDuplicateNodeAlias() {
    // This error should still be present next to the field.
    $this->assertSession()->pageTextContains("The alias {$edit['path[0][alias]']} is already in use in this language.");
    // The validation error set for the page should include this text.
    $this->assertSession()->pageTextContains('1 error has been found: URL alias');
    $this->assertSession()->statusMessageContains('1 error has been found: URL alias', 'error');
    // The text 'URL alias' should be a link.
    $this->assertSession()->linkExists('URL alias');
    // The link should be to the ID of the URL alias field.
+8 −8
Original line number Diff line number Diff line
@@ -94,7 +94,7 @@ public function testNodePathAlias() {
      'path[0][alias]' => '/moderated-content',
      'moderation_state[0][state]' => 'draft',
    ], 'Save');
    $this->assertSession()->pageTextNotContains('You can only change the URL alias for the published version of this content.');
    $this->assertSession()->statusMessageNotContains('You can only change the URL alias for the published version of this content.');

    // Create some moderated content with no path alias.
    $this->drupalGet('node/add/moderated');
@@ -114,7 +114,7 @@ public function testNodePathAlias() {
      'path[0][alias]' => '/pending-revision',
      'moderation_state[0][state]' => 'draft',
    ], 'Save');
    $this->assertSession()->pageTextContains('You can only change the URL alias for the published version of this content.');
    $this->assertSession()->statusMessageContains('You can only change the URL alias for the published version of this content.', 'error');

    // Create some moderated content with no path alias.
    $this->drupalGet('node/add/moderated');
@@ -134,7 +134,7 @@ public function testNodePathAlias() {
      'path[0][alias]' => '',
      'moderation_state[0][state]' => 'draft',
    ], 'Save');
    $this->assertSession()->pageTextNotContains('You can only change the URL alias for the published version of this content.');
    $this->assertSession()->statusMessageNotContains('You can only change the URL alias for the published version of this content.');
  }

  /**
@@ -176,7 +176,7 @@ public function testTranslatedModeratedNodeAlias() {
    $this->drupalGet('fr/node/' . $default_node->id() . '/edit');
    $this->submitForm($edit_new_translation_draft_with_alias, 'Save (this translation)');
    // Confirm the expected error.
    $this->assertSession()->pageTextContains('You can only change the URL alias for the published version of this content.');
    $this->assertSession()->statusMessageContains('You can only change the URL alias for the published version of this content.', 'error');

    // Create new draft revision for translation without changing path alias.
    $edit_new_translation_draft = [
@@ -186,7 +186,7 @@ public function testTranslatedModeratedNodeAlias() {
    $this->drupalGet('fr/node/' . $default_node->id() . '/edit');
    $this->submitForm($edit_new_translation_draft, 'Save (this translation)');
    // Confirm that the new draft revision was created.
    $this->assertSession()->pageTextNotContains('You can only change the URL alias for the published version of this content.');
    $this->assertSession()->statusMessageNotContains('You can only change the URL alias for the published version of this content.');
    $this->assertSession()->pageTextContains($edit_new_translation_draft['body[0][value]']);
    $this->assertPathsAreAccessible([$default_path, $translation_path]);

@@ -199,7 +199,7 @@ public function testTranslatedModeratedNodeAlias() {
    $this->drupalGet('fr/node/' . $default_node->id() . '/edit');
    $this->submitForm($edit_new_translation_draft_with_defaults_alias, 'Save (this translation)');
    // Verify the expected error.
    $this->assertSession()->pageTextContains('You can only change the URL alias for the published version of this content.');
    $this->assertSession()->statusMessageContains('You can only change the URL alias for the published version of this content.', 'error');

    // Try to create new draft revision for translation with deleted (empty)
    // path alias.
@@ -211,7 +211,7 @@ public function testTranslatedModeratedNodeAlias() {
    $this->drupalGet('fr/node/' . $default_node->id() . '/edit');
    $this->submitForm($edit_new_translation_draft_empty_alias, 'Save (this translation)');
    // Confirm the expected error.
    $this->assertSession()->pageTextContains('You can only change the URL alias for the published version of this content.');
    $this->assertSession()->statusMessageContains('You can only change the URL alias for the published version of this content.', 'error');

    // Create new default (published) revision for translation with new path
    // alias.
@@ -223,7 +223,7 @@ public function testTranslatedModeratedNodeAlias() {
    $this->drupalGet('fr/node/' . $default_node->id() . '/edit');
    $this->submitForm($edit_new_translation, 'Save (this translation)');
    // Confirm that the new published revision was created.
    $this->assertSession()->pageTextNotContains('You can only change the URL alias for the published version of this content.');
    $this->assertSession()->statusMessageNotContains('You can only change the URL alias for the published version of this content.');
    $this->assertSession()->pageTextContains($edit_new_translation['body[0][value]']);
    $this->assertSession()->addressEquals('fr' . $edit_new_translation['path[0][alias]']);
    $this->assertPathsAreAccessible([$default_path]);
+3 −3
Original line number Diff line number Diff line
@@ -19,7 +19,7 @@ class PathMediaFormTest extends PathTestBase {
  /**
   * {@inheritdoc}
   */
  protected $defaultTheme = 'classy';
  protected $defaultTheme = 'stark';

  /**
   * {@inheritdoc}
@@ -53,7 +53,7 @@ public function testMediaForm() {
    $this->drupalGet('media/add/' . $media_type_id);

    // Make sure we have a vertical tab fieldset and 'Path' field.
    $assert_session->elementContains('css', '.form-type-vertical-tabs #edit-path-0 summary', 'URL alias');
    $assert_session->elementContains('css', '.js-form-type-vertical-tabs #edit-path-0 summary', 'URL alias');
    $assert_session->fieldExists('path[0][alias]');

    // Disable the 'Path' field for this content type.
@@ -64,7 +64,7 @@ public function testMediaForm() {
    $this->drupalGet('media/add/' . $media_type_id);

    // See if the whole fieldset is gone now.
    $assert_session->elementNotExists('css', '.form-type-vertical-tabs #edit-path-0');
    $assert_session->elementNotExists('css', '.js-form-type-vertical-tabs #edit-path-0');
    $assert_session->fieldNotExists('path[0][alias]');
  }

+3 −3
Original line number Diff line number Diff line
@@ -19,7 +19,7 @@ class PathNodeFormTest extends PathTestBase {
  /**
   * {@inheritdoc}
   */
  protected $defaultTheme = 'classy';
  protected $defaultTheme = 'stark';

  protected function setUp(): void {
    parent::setUp();
@@ -41,7 +41,7 @@ public function testNodeForm() {
    $this->drupalGet('node/add/page');

    // Make sure we have a vertical tab fieldset and 'Path' fields.
    $assert_session->elementContains('css', '.form-type-vertical-tabs #edit-path-0 summary', 'URL alias');
    $assert_session->elementContains('css', '.js-form-type-vertical-tabs #edit-path-0 summary', 'URL alias');
    $assert_session->fieldExists('path[0][alias]');

    // Disable the 'Path' field for this content type.
@@ -52,7 +52,7 @@ public function testNodeForm() {
    $this->drupalGet('node/add/page');

    // See if the whole fieldset is gone now.
    $assert_session->elementNotExists('css', '.form-type-vertical-tabs #edit-path-0');
    $assert_session->elementNotExists('css', '.js-form-type-vertical-tabs #edit-path-0');
    $assert_session->fieldNotExists('path[0][alias]');
  }