Unverified Commit f86f182a authored by Alex Pott's avatar Alex Pott
Browse files

Issue #3096570 by recrit, raman.b, ameymudras, ranjith_kumar_k_u, Oscaner,...

Issue #3096570 by recrit, raman.b, ameymudras, ranjith_kumar_k_u, Oscaner, smustgrave, peterwcm, pameeela: Redirect correct language page after node save

(cherry picked from commit 6c01bb31)
parent 045cc0e4
Loading
Loading
Loading
Loading
Loading
+9 −9
Original line number Diff line number Diff line
@@ -119,12 +119,12 @@ public function testSyncedImages(): void {
    $this->submitForm($edit, 'Save (this translation)');
    // This inspects the HTML after the post of the translation, the image
    // should be displayed on the original node.
    $this->assertSession()->responseContains('alt="Lost in translation image"');
    $this->assertSession()->responseContains('title="Lost in translation image title"');
    $second_fid = $this->getLastFileId();
    // View the translated node.
    $this->drupalGet('fr/node/' . $default_language_node->id());
    $this->assertSession()->responseContains('alt="Scarlett Johansson image"');
    $this->assertSession()->responseContains('title="Scarlett Johansson image title"');
    $second_fid = $this->getLastFileId();
    // View the untranslated node.
    $this->drupalGet('node/' . $default_language_node->id());
    $this->assertSession()->responseContains('alt="Lost in translation image"');

    \Drupal::entityTypeManager()->getStorage('file')->resetCache();

@@ -159,12 +159,12 @@ public function testSyncedImages(): void {
    $this->assertTrue($file->isPermanent(), 'First file still exists and is permanent.');
    // This inspects the HTML after the post of the translation, the image
    // should be displayed on the original node.
    $this->assertSession()->responseContains('alt="Lost in translation image"');
    $this->assertSession()->responseContains('title="Lost in translation image title"');
    // View the translated node.
    $this->drupalGet('nl/node/' . $default_language_node->id());
    $this->assertSession()->responseContains('alt="Ada Lovelace image"');
    $this->assertSession()->responseContains('title="Ada Lovelace image title"');
    // View untranslated node.
    $this->drupalGet('node/' . $default_language_node->id());
    $this->assertSession()->responseContains('alt="Lost in translation image"');
    $this->assertSession()->responseContains('title="Lost in translation image title"');

    // Ensure the file status of the second file is permanent.
    $file = File::load($second_fid);
+2 −1
Original line number Diff line number Diff line
@@ -298,7 +298,8 @@ public function save(array $form, FormStateInterface $form_state) {
      if ($node->access('view')) {
        $form_state->setRedirect(
          'entity.node.canonical',
          ['node' => $node->id()]
          ['node' => $node->id()],
          ['language' => $node->language()]
        );
      }
      else {
+27 −0
Original line number Diff line number Diff line
@@ -675,4 +675,31 @@ public function testSearchIndexRebuildOnTranslationDeletion(): void {
    $this->assertSession()->pageTextNotContains('First rev fr title');
  }

  /**
   * Tests redirection after saving translation.
   */
  public function testRedirect(): void {
    $this->drupalLogin($this->administrator);

    $article = $this->drupalCreateNode(['type' => 'article', 'langcode' => $this->langcodes[0]]);

    $edit = [
      'title[0][value]' => 'English node title',
    ];
    $this->drupalGet('node/' . $article->id() . '/edit');
    $this->submitForm($edit, 'Save');

    $this->assertSession()->pageTextContains('English node title');
    $this->assertEquals($this->baseUrl . '/node/' . $article->id(), $this->getSession()->getCurrentUrl());

    $this->drupalGet('node/' . $article->id() . '/translations/add/' . $this->langcodes[0] . '/' . $this->langcodes[1]);
    $edit = [
      'title[0][value]' => 'Italian node title',
    ];
    $this->submitForm($edit, 'Save (this translation)');

    $this->assertSession()->pageTextContains('Italian node title');
    $this->assertEquals($this->baseUrl . '/' . $this->langcodes[1] . '/node/' . $article->id(), $this->getSession()->getCurrentUrl());
  }

}