Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPaul Pazderski2019-03-20 21:07:30 +0000
committerPaul Pazderski2019-09-19 10:42:59 +0000
commit8ccad171e66800e09d381954ae51d4c05fd07fa3 (patch)
tree929806c289bbcfe582dd044b7ad479d7c4be2632 /org.eclipse.debug.tests
parent7445b64b4c3a7f8c5a11a51d276d50dfc6f1f1fe (diff)
downloadeclipse.platform.debug-8ccad171e66800e09d381954ae51d4c05fd07fa3.tar.gz
eclipse.platform.debug-8ccad171e66800e09d381954ae51d4c05fd07fa3.tar.xz
eclipse.platform.debug-8ccad171e66800e09d381954ae51d4c05fd07fa3.zip
Bug 550621 - [console] Add IConsoleDocumentPartitionerExtension
Used to better test for read-only parts of console document. Change-Id: I1d8e3b2655080a8b435e8aaf296c40823239cc93 Signed-off-by: Paul Pazderski <paul-eclipse@ppazderski.de>
Diffstat (limited to 'org.eclipse.debug.tests')
-rw-r--r--org.eclipse.debug.tests/src/org/eclipse/debug/tests/console/IOConsoleTests.java51
1 files changed, 51 insertions, 0 deletions
diff --git a/org.eclipse.debug.tests/src/org/eclipse/debug/tests/console/IOConsoleTests.java b/org.eclipse.debug.tests/src/org/eclipse/debug/tests/console/IOConsoleTests.java
index 213f1aefa..33811030e 100644
--- a/org.eclipse.debug.tests/src/org/eclipse/debug/tests/console/IOConsoleTests.java
+++ b/org.eclipse.debug.tests/src/org/eclipse/debug/tests/console/IOConsoleTests.java
@@ -42,6 +42,7 @@ import org.eclipse.ui.console.ConsolePlugin;
import org.eclipse.ui.console.IConsole;
import org.eclipse.ui.console.IConsoleConstants;
import org.eclipse.ui.console.IConsoleDocumentPartitioner;
+import org.eclipse.ui.console.IConsoleDocumentPartitionerExtension;
import org.eclipse.ui.console.IConsoleManager;
import org.eclipse.ui.console.IOConsole;
import org.eclipse.ui.console.IOConsoleOutputStream;
@@ -484,6 +485,56 @@ public class IOConsoleTests extends AbstractDebugTest {
assertTrue("Offset should be read-only.", c.getPartitioner().isReadOnly(loremEnd + 3));
assertTrue("Offset should be read-only.", c.getPartitioner().isReadOnly(loremEnd + 4));
assertTrue("Offset should be read-only.", c.getPartitioner().isReadOnly(loremEnd + 5));
+
+ if (c.getPartitioner() instanceof IConsoleDocumentPartitionerExtension) {
+ final IConsoleDocumentPartitionerExtension extension = (IConsoleDocumentPartitionerExtension) c.getPartitioner();
+ assertFalse("Writable parts not recognized.", extension.isReadOnly(0, c.getContentLength()));
+ assertTrue("Read-only parts not recognized.", extension.containsReadOnly(0, c.getContentLength()));
+ assertFalse("Writable parts not recognized.", extension.isReadOnly(0, 3));
+ assertTrue("Read-only parts not recognized.", extension.containsReadOnly(0, 3));
+ assertFalse("Area should be writable.", extension.isReadOnly(loremEnd, 3));
+ assertFalse("Area should be writable.", extension.containsReadOnly(loremEnd, 3));
+ assertTrue("Area should be read-only.", extension.isReadOnly(6, 105));
+ assertTrue("Area should be read-only.", extension.containsReadOnly(8, 111));
+
+ assertTrue("Read-only parts not found.", extension.computeReadOnlyPartitions().length > 0);
+ assertTrue("Writable parts not found.", extension.computeWritablePartitions().length > 0);
+ assertTrue("Read-only parts not found.", extension.computeReadOnlyPartitions(loremEnd - 5, 7).length > 0);
+ assertTrue("Writable parts not found.", extension.computeWritablePartitions(loremEnd - 5, 7).length > 0);
+ assertTrue("Area should be read-only.", extension.computeReadOnlyPartitions(5, 100).length > 0);
+ assertEquals("Area should be read-only.", 0, extension.computeWritablePartitions(5, 100).length);
+ assertEquals("Area should be writable.", 0, extension.computeReadOnlyPartitions(loremEnd, 2).length);
+ assertTrue("Area should be writable.", extension.computeWritablePartitions(loremEnd, 2).length > 0);
+
+ assertEquals("Got wrong offset.", 0, extension.getNextOffsetByState(0, false));
+ assertEquals("Got wrong offset.", 2, extension.getNextOffsetByState(0, true));
+ assertEquals("Got wrong offset.", 0, extension.getPreviousOffsetByState(0, false));
+ assertEquals("Got wrong offset.", -1, extension.getPreviousOffsetByState(0, true));
+ assertEquals("Got wrong offset.", 1, extension.getNextOffsetByState(1, false));
+ assertEquals("Got wrong offset.", 2, extension.getNextOffsetByState(1, true));
+ assertEquals("Got wrong offset.", 1, extension.getPreviousOffsetByState(1, false));
+ assertEquals("Got wrong offset.", -1, extension.getPreviousOffsetByState(1, true));
+ assertEquals("Got wrong offset.", 3, extension.getNextOffsetByState(2, false));
+ assertEquals("Got wrong offset.", 2, extension.getNextOffsetByState(2, true));
+ assertEquals("Got wrong offset.", 1, extension.getPreviousOffsetByState(2, false));
+ assertEquals("Got wrong offset.", 2, extension.getPreviousOffsetByState(2, true));
+ for (int i = 3; i < loremEnd; i++) {
+ assertEquals("Got wrong offset.", i, extension.getNextOffsetByState(i, false));
+ assertEquals("Got wrong offset.", loremEnd, extension.getNextOffsetByState(i, true));
+ assertEquals("Got wrong offset.", i, extension.getPreviousOffsetByState(i, false));
+ assertEquals("Got wrong offset.", 2, extension.getPreviousOffsetByState(i, true));
+ }
+ assertEquals("Got wrong offset.", loremEnd + 3, extension.getNextOffsetByState(loremEnd, false));
+ assertEquals("Got wrong offset.", loremEnd, extension.getNextOffsetByState(loremEnd, true));
+ assertEquals("Got wrong offset.", loremEnd - 1, extension.getPreviousOffsetByState(loremEnd, false));
+ assertEquals("Got wrong offset.", loremEnd, extension.getPreviousOffsetByState(loremEnd, true));
+ assertEquals("Got wrong offset.", loremEnd + 3, extension.getNextOffsetByState(loremEnd + 2, false));
+ assertEquals("Got wrong offset.", loremEnd + 2, extension.getNextOffsetByState(loremEnd + 2, true));
+ assertEquals("Got wrong offset.", loremEnd - 1, extension.getPreviousOffsetByState(loremEnd + 2, false));
+ assertEquals("Got wrong offset.", loremEnd + 2, extension.getPreviousOffsetByState(loremEnd + 2, true));
+ } else {
+ TestUtil.log(IStatus.INFO, TestsPlugin.PLUGIN_ID, "IOConsole partitioner does not implement " + IConsoleDocumentPartitionerExtension.class.getName() + ". Skip those tests.");
+ }
}
c.verifyPartitions();
closeConsole(c, "#");

Back to the top