/**
* Copyright (c) 2005-2013 by Appcelerator, Inc. All Rights Reserved.
* Licensed under the terms of the Eclipse Public License (EPL).
* Please see the license.txt included with this distribution for details.
* Any modifications to this file must keep this entire header intact.
*/
package org.python.pydev.dltk.console.ui;
import junit.framework.TestCase;
import org.eclipse.swt.custom.StyleRange;
import org.python.pydev.shared_interactive_console.console.ui.ScriptConsolePartitioner;
import org.python.pydev.shared_interactive_console.console.ui.ScriptStyleRange;
public class ScriptConsolePartitionerTest extends TestCase {
@Override
protected void setUp() throws Exception {
super.setUp();
}
@Override
protected void tearDown() throws Exception {
super.tearDown();
}
public void testJoinPartitions() throws Exception {
ScriptConsolePartitioner partitioner = new ScriptConsolePartitioner();
partitioner.addRange(new ScriptStyleRange(0, 1, null, null, ScriptStyleRange.STDIN));
assertEquals(1, partitioner.getStyleRanges(0, 1).length);
partitioner.addRange(new ScriptStyleRange(1, 1, null, null, ScriptStyleRange.STDIN));
assertEquals(1, partitioner.getStyleRanges(0, 2).length);
partitioner.addRange(new ScriptStyleRange(1, 1, null, null, ScriptStyleRange.STDOUT));
assertEquals(2, partitioner.getStyleRanges(0, 2).length);
partitioner.addRange(new ScriptStyleRange(1, 1, null, null, ScriptStyleRange.STDIN));
assertEquals(1, partitioner.getStyleRanges(0, 2).length);
}
public void testPartitioning() throws Exception {
ScriptConsolePartitioner partitioner = new ScriptConsolePartitioner();
partitioner.addRange(new ScriptStyleRange(0, 1, null, null, ScriptStyleRange.STDIN));
assertEquals(1, partitioner.getStyleRanges(0, 1).length);
partitioner.addRange(new ScriptStyleRange(0, 1, null, null, ScriptStyleRange.STDERR));
assertEquals(1, partitioner.getStyleRanges(0, 1).length);
partitioner.addRange(new ScriptStyleRange(0, 3, null, null, ScriptStyleRange.STDOUT));
assertEquals(1, partitioner.getStyleRanges(0, 1).length);
partitioner.addRange(new ScriptStyleRange(2, 1, null, null, ScriptStyleRange.PROMPT));
assertEquals(1, partitioner.getStyleRanges(0, 1).length);
StyleRange[] styleRanges = partitioner.getStyleRanges(0, 3);
assertEquals(2, styleRanges.length);
assertEquals(0, styleRanges[0].start);
assertEquals(2, styleRanges[0].length);
assertEquals(2, styleRanges[1].start);
assertEquals(1, styleRanges[1].length);
styleRanges = partitioner.getStyleRanges(0, 50);
assertEquals(3, styleRanges.length);
assertEquals(0, styleRanges[0].start);
assertEquals(2, styleRanges[0].length);
assertEquals(2, styleRanges[1].start);
assertEquals(1, styleRanges[1].length);
assertEquals(3, styleRanges[2].start);
assertEquals(47, styleRanges[2].length);
styleRanges = partitioner.getStyleRanges(1, 50);
assertEquals(3, styleRanges.length);
assertEquals(0, styleRanges[0].start);
assertEquals(2, styleRanges[0].length);
assertEquals(2, styleRanges[1].start);
assertEquals(1, styleRanges[1].length);
assertEquals(3, styleRanges[2].start);
assertEquals(48, styleRanges[2].length);
}
}