001: /*
002: * Copyright (c) 2002-2007, Marc Prud'hommeaux. All rights reserved.
003: *
004: * This software is distributable under the BSD license. See the terms of the
005: * BSD license in the documentation provided with this software.
006: */
007: package jline;
008:
009: /**
010: * Tests various features of editing lines.
011: *
012: * @author <a href="mailto:mwp1@cornell.edu">Marc Prud'hommeaux</a>
013: */
014: public class TestEditLine extends JLineTestCase {
015: public TestEditLine(String test) {
016: super (test);
017: }
018:
019: public void testDeletePreviousWord() throws Exception {
020: Buffer b = new Buffer("This is a test");
021:
022: assertBuffer("This is a ", b = b
023: .op(ConsoleReader.DELETE_PREV_WORD));
024: assertBuffer("This is ", b = b
025: .op(ConsoleReader.DELETE_PREV_WORD));
026: assertBuffer("This ", b = b.op(ConsoleReader.DELETE_PREV_WORD));
027: assertBuffer("", b = b.op(ConsoleReader.DELETE_PREV_WORD));
028: assertBuffer("", b = b.op(ConsoleReader.DELETE_PREV_WORD));
029: assertBuffer("", b = b.op(ConsoleReader.DELETE_PREV_WORD));
030: }
031:
032: public void testMoveToEnd() throws Exception {
033: Buffer b = new Buffer("This is a test");
034:
035: assertBuffer("This is a XtestX", new Buffer("This is a test")
036: .op(ConsoleReader.PREV_WORD).append('X').op(
037: ConsoleReader.MOVE_TO_END).append('X'));
038:
039: assertBuffer("This is Xa testX", new Buffer("This is a test")
040: .op(ConsoleReader.PREV_WORD)
041: .op(ConsoleReader.PREV_WORD).append('X').op(
042: ConsoleReader.MOVE_TO_END).append('X'));
043:
044: assertBuffer("This Xis a testX", new Buffer("This is a test")
045: .op(ConsoleReader.PREV_WORD)
046: .op(ConsoleReader.PREV_WORD)
047: .op(ConsoleReader.PREV_WORD).append('X').op(
048: ConsoleReader.MOVE_TO_END).append('X'));
049: }
050:
051: public void testPreviousWord() throws Exception {
052: assertBuffer("This is a Xtest", new Buffer("This is a test")
053: .op(ConsoleReader.PREV_WORD).append('X'));
054: assertBuffer("This is Xa test", new Buffer("This is a test")
055: .op(ConsoleReader.PREV_WORD)
056: .op(ConsoleReader.PREV_WORD).append('X'));
057: assertBuffer("This Xis a test", new Buffer("This is a test")
058: .op(ConsoleReader.PREV_WORD)
059: .op(ConsoleReader.PREV_WORD)
060: .op(ConsoleReader.PREV_WORD).append('X'));
061: assertBuffer("XThis is a test", new Buffer("This is a test")
062: .op(ConsoleReader.PREV_WORD)
063: .op(ConsoleReader.PREV_WORD)
064: .op(ConsoleReader.PREV_WORD)
065: .op(ConsoleReader.PREV_WORD).append('X'));
066: assertBuffer("XThis is a test", new Buffer("This is a test")
067: .op(ConsoleReader.PREV_WORD)
068: .op(ConsoleReader.PREV_WORD)
069: .op(ConsoleReader.PREV_WORD)
070: .op(ConsoleReader.PREV_WORD)
071: .op(ConsoleReader.PREV_WORD).append('X'));
072: assertBuffer("XThis is a test", new Buffer("This is a test")
073: .op(ConsoleReader.PREV_WORD)
074: .op(ConsoleReader.PREV_WORD)
075: .op(ConsoleReader.PREV_WORD)
076: .op(ConsoleReader.PREV_WORD)
077: .op(ConsoleReader.PREV_WORD)
078: .op(ConsoleReader.PREV_WORD).append('X'));
079: }
080:
081: public void testLineStart() throws Exception {
082: assertBuffer("XThis is a test", new Buffer("This is a test")
083: .ctrlA().append('X'));
084: assertBuffer("TXhis is a test", new Buffer("This is a test")
085: .ctrlA().right().append('X'));
086: }
087:
088: public void testClearLine() throws Exception {
089: assertBuffer("", new Buffer("This is a test").ctrlU());
090: assertBuffer("t", new Buffer("This is a test").left().ctrlU());
091: assertBuffer("st", new Buffer("This is a test").left().left()
092: .ctrlU());
093: }
094:
095: public void testRight() throws Exception {
096: Buffer b = new Buffer("This is a test");
097: b = b.left().right().back();
098: assertBuffer("This is a tes", b);
099: b = b.left().left().left().right().left().back();
100: assertBuffer("This is ates", b);
101: b.append('X');
102: assertBuffer("This is aXtes", b);
103: }
104:
105: public void testLeft() throws Exception {
106: Buffer b = new Buffer("This is a test");
107: b = b.left().left().left();
108: assertBuffer("This is a est", b = b.back());
109: assertBuffer("This is aest", b = b.back());
110: assertBuffer("This is est", b = b.back());
111: assertBuffer("This isest", b = b.back());
112: assertBuffer("This iest", b = b.back());
113: assertBuffer("This est", b = b.back());
114: assertBuffer("Thisest", b = b.back());
115: assertBuffer("Thiest", b = b.back());
116: assertBuffer("Thest", b = b.back());
117: assertBuffer("Test", b = b.back());
118: assertBuffer("est", b = b.back());
119: assertBuffer("est", b = b.back());
120: assertBuffer("est", b = b.back());
121: assertBuffer("est", b = b.back());
122: assertBuffer("est", b = b.back());
123: }
124:
125: public void testBackspace() throws Exception {
126: Buffer b = new Buffer("This is a test");
127: assertBuffer("This is a tes", b = b.back());
128: assertBuffer("This is a te", b = b.back());
129: assertBuffer("This is a t", b = b.back());
130: assertBuffer("This is a ", b = b.back());
131: assertBuffer("This is a", b = b.back());
132: assertBuffer("This is ", b = b.back());
133: assertBuffer("This is", b = b.back());
134: assertBuffer("This i", b = b.back());
135: assertBuffer("This ", b = b.back());
136: assertBuffer("This", b = b.back());
137: assertBuffer("Thi", b = b.back());
138: assertBuffer("Th", b = b.back());
139: assertBuffer("T", b = b.back());
140: assertBuffer("", b = b.back());
141: assertBuffer("", b = b.back());
142: assertBuffer("", b = b.back());
143: assertBuffer("", b = b.back());
144: assertBuffer("", b = b.back());
145: }
146:
147: public void testBuffer() throws Exception {
148: assertBuffer("This is a test", new Buffer("This is a test"));
149: }
150: }
|