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