From 98e2386ec304251ccbca9c1dcd1a7b41cc361230 Mon Sep 17 00:00:00 2001 From: Dmitry Batrak Date: Tue, 16 Jun 2015 10:21:37 +0300 Subject: [PATCH] test case for a fix in commit 0cd3b58 (fix AIOOBE during editor painting) --- .../openapi/editor/impl/EditorRtlTest.java | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/platform/platform-tests/testSrc/com/intellij/openapi/editor/impl/EditorRtlTest.java b/platform/platform-tests/testSrc/com/intellij/openapi/editor/impl/EditorRtlTest.java index a1288b6f251b..a4642cfb891c 100644 --- a/platform/platform-tests/testSrc/com/intellij/openapi/editor/impl/EditorRtlTest.java +++ b/platform/platform-tests/testSrc/com/intellij/openapi/editor/impl/EditorRtlTest.java @@ -19,6 +19,8 @@ import com.intellij.openapi.actionSystem.IdeActions; import com.intellij.openapi.editor.Caret; import com.intellij.openapi.editor.LogicalPosition; import com.intellij.openapi.editor.VisualPosition; +import com.intellij.openapi.editor.ex.EditorEx; +import com.intellij.openapi.editor.impl.view.IterationState; import com.intellij.openapi.util.registry.Registry; import java.awt.*; @@ -426,6 +428,19 @@ public class EditorRtlTest extends AbstractEditorTest { checkSelection(1, 2); } + public void testIterationStateAfterLineEnd() throws Exception { + init("rl"); + myEditor.getCaretModel().moveToVisualPosition(new VisualPosition(0, 1, true)); + + IterationState it = new IterationState((EditorEx)myEditor, 1, 2, true, false, false, false); + assertFalse(it.atEnd()); + assertEquals(1, it.getStartOffset()); + assertEquals(2, it.getEndOffset()); + it.advance(); + assertTrue(it.atEnd()); + assertFalse(it.hasPastLineEndBackgroundSegment()); + } + private void init(String text) throws IOException { initText(text.replace(RTL_CHAR_REPRESENTATION, RTL_CHAR)); }