Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDani Megert2005-03-21 13:37:02 +0000
committerDani Megert2005-03-21 13:37:02 +0000
commit81b5da5c0595b583b0a35cd041374089facc61a6 (patch)
tree12662dffad700e164d597d95f69110f5f21d0953 /org.eclipse.jface.text.tests/src/org
parentb1961d04ba90225302e052aa3b60d5f28c31d033 (diff)
downloadeclipse.platform.text-81b5da5c0595b583b0a35cd041374089facc61a6.tar.gz
eclipse.platform.text-81b5da5c0595b583b0a35cd041374089facc61a6.tar.xz
eclipse.platform.text-81b5da5c0595b583b0a35cd041374089facc61a6.zip
Releases Susan's patch for bug 88172: StackOverflow when undoing "MoveLine"
Diffstat (limited to 'org.eclipse.jface.text.tests/src/org')
-rw-r--r--org.eclipse.jface.text.tests/src/org/eclipse/jface/text/tests/UndoManagerTest.java30
1 files changed, 30 insertions, 0 deletions
diff --git a/org.eclipse.jface.text.tests/src/org/eclipse/jface/text/tests/UndoManagerTest.java b/org.eclipse.jface.text.tests/src/org/eclipse/jface/text/tests/UndoManagerTest.java
index 109fd142c5b..b2da810daea 100644
--- a/org.eclipse.jface.text.tests/src/org/eclipse/jface/text/tests/UndoManagerTest.java
+++ b/org.eclipse.jface.text.tests/src/org/eclipse/jface/text/tests/UndoManagerTest.java
@@ -151,6 +151,36 @@ public class UndoManagerTest extends TestCase {
assertEquals(original, reverted);
}
+
+ /**
+ * Test case for https://bugs.eclipse.org/bugs/show_bug.cgi?id=88172
+ */
+ public void testRandomAccessAsUnclosedCompound() {
+
+ final int RANDOM_STRING_LENGTH= 50;
+ final int RANDOM_REPLACE_COUNT= 100;
+
+ assertTrue(RANDOM_REPLACE_COUNT >= 1);
+ assertTrue(RANDOM_REPLACE_COUNT <= MAX_UNDO_LEVEL);
+
+ String original= createRandomString(RANDOM_STRING_LENGTH);
+ final IDocument document= new Document(original);
+ fTextViewer.setDocument(document);
+
+ fUndoManager.beginCompoundChange();
+ doChange(document, RANDOM_REPLACE_COUNT);
+ // do not close the compound.
+ // fUndoManager.endCompoundChange();
+
+ assertTrue(fUndoManager.undoable());
+ while (fUndoManager.undoable())
+ fUndoManager.undo();
+ assertTrue(!fUndoManager.undoable());
+
+ final String reverted= document.get();
+
+ assertEquals(original, reverted);
+ }
private static String createRandomString(int length) {
final StringBuffer buffer= new StringBuffer();

Back to the top