diff --git a/src/Controller/PluginRevisionController.php b/src/Controller/PluginRevisionController.php index 20e6a9694af72d0ffc7b5561a8ea4636cfe6bcf2..f463b3c150a95dced8af63c55fa96f7db8344cef 100644 --- a/src/Controller/PluginRevisionController.php +++ b/src/Controller/PluginRevisionController.php @@ -235,7 +235,7 @@ class PluginRevisionController extends ControllerBase { ]; $i = 0; // Find the previous revision. - while ($left_revision_id > $revision_ids[$i]) { + while (!empty($revision_ids[$i]) && $left_revision_id > $revision_ids[$i]) { $i += 1; } if ($i != 0) { @@ -250,7 +250,7 @@ class PluginRevisionController extends ControllerBase { ]; // Find the next revision. $i = 0; - while ($i < $revisions_count && $right_revision_id >= $revision_ids[$i]) { + while (!empty($revision_ids[$i]) && $right_revision_id >= $revision_ids[$i]) { $i += 1; } if ($revisions_count != $i && $revision_ids[$i - 1] != $revision_ids[$revisions_count - 1]) { diff --git a/tests/src/FunctionalJavascript/DiffLocaleTest.php b/tests/src/FunctionalJavascript/DiffLocaleTest.php index a50499b1af1b3d33eef383d1125f97b27d3b940e..86c3a26d3e0fbb685f0a5d8320837bd0258e8460 100644 --- a/tests/src/FunctionalJavascript/DiffLocaleTest.php +++ b/tests/src/FunctionalJavascript/DiffLocaleTest.php @@ -151,6 +151,7 @@ class DiffLocaleTest extends DiffTestBase { $french_node->setTitle('french_revision_2'); $french_node->setNewRevision(TRUE); $french_node->save(); + $revision5 = $french_node->getRevisionId(); // Compare first two revisions. $this->drupalGet('node/' . $node->id() . '/revisions/view/' . $revision1 . '/' . $revision2 . '/split_fields'); @@ -166,6 +167,12 @@ class DiffLocaleTest extends DiffTestBase { // There shouldn't be other differences in the current language. $this->assertSession()->linkNotExists('Next change'); + + // Attempt to visit with a valid revision but for the wrong language. + $this->drupalGet('node/' . $node->id() . '/revisions/view/' . $revision5 . '/' . $revision1 . '/split_fields'); + $diffs = $this->getSession()->getPage()->findAll('xpath', '//span[@class="diffchange"]'); + $this->assertEquals($diffs[0]->getText(), 'english_revision_2'); + $this->assertEquals($diffs[1]->getText(), 'english_revision_0'); } /**