01: /*
02: * Copyright (c) 2002-2007, Marc Prud'hommeaux. All rights reserved.
03: *
04: * This software is distributable under the BSD license. See the terms of the
05: * BSD license in the documentation provided with this software.
06: */
07: package jline;
08:
09: /**
10: * Tests command history.
11: *
12: * @author <a href="mailto:mwp1@cornell.edu">Marc Prud'hommeaux</a>
13: */
14: public class TestHistory extends JLineTestCase {
15: public TestHistory(String test) {
16: super (test);
17: }
18:
19: public void testSingleHistory() throws Exception {
20: Buffer b = new Buffer().append("test line 1").op(
21: ConsoleReader.NEWLINE).append("test line 2").op(
22: ConsoleReader.NEWLINE).append("test line 3").op(
23: ConsoleReader.NEWLINE).append("test line 4").op(
24: ConsoleReader.NEWLINE).append("test line 5").op(
25: ConsoleReader.NEWLINE).append("");
26:
27: assertBuffer("", b);
28:
29: assertBuffer("test line 5", b = b
30: .op(ConsoleReader.PREV_HISTORY));
31: assertBuffer("test line 4", b = b
32: .op(ConsoleReader.PREV_HISTORY));
33: assertBuffer("test line 5", b = b
34: .op(ConsoleReader.NEXT_HISTORY));
35: assertBuffer("test line 4", b = b
36: .op(ConsoleReader.PREV_HISTORY));
37: assertBuffer("test line 3", b = b
38: .op(ConsoleReader.PREV_HISTORY));
39: assertBuffer("test line 2", b = b
40: .op(ConsoleReader.PREV_HISTORY));
41: assertBuffer("test line 1", b = b
42: .op(ConsoleReader.PREV_HISTORY));
43:
44: // beginning of history
45: assertBuffer("test line 1", b = b
46: .op(ConsoleReader.PREV_HISTORY));
47: assertBuffer("test line 1", b = b
48: .op(ConsoleReader.PREV_HISTORY));
49: assertBuffer("test line 1", b = b
50: .op(ConsoleReader.PREV_HISTORY));
51: assertBuffer("test line 1", b = b
52: .op(ConsoleReader.PREV_HISTORY));
53:
54: assertBuffer("test line 2", b = b
55: .op(ConsoleReader.NEXT_HISTORY));
56: assertBuffer("test line 3", b = b
57: .op(ConsoleReader.NEXT_HISTORY));
58: assertBuffer("test line 4", b = b
59: .op(ConsoleReader.NEXT_HISTORY));
60: assertBuffer("test line 5", b = b
61: .op(ConsoleReader.NEXT_HISTORY));
62:
63: // end of history
64: assertBuffer("", b = b.op(ConsoleReader.NEXT_HISTORY));
65: assertBuffer("", b = b.op(ConsoleReader.NEXT_HISTORY));
66: assertBuffer("", b = b.op(ConsoleReader.NEXT_HISTORY));
67:
68: assertBuffer("test line 5", b = b
69: .op(ConsoleReader.PREV_HISTORY));
70: assertBuffer("test line 4", b = b
71: .op(ConsoleReader.PREV_HISTORY));
72: b = b.op(ConsoleReader.MOVE_TO_BEG).append("XXX").op(
73: ConsoleReader.NEWLINE);
74: assertBuffer("XXXtest line 4", b = b
75: .op(ConsoleReader.PREV_HISTORY));
76: assertBuffer("test line 5", b = b
77: .op(ConsoleReader.PREV_HISTORY));
78: assertBuffer("test line 4", b = b
79: .op(ConsoleReader.PREV_HISTORY));
80: assertBuffer("test line 5", b = b
81: .op(ConsoleReader.NEXT_HISTORY));
82: assertBuffer("XXXtest line 4", b = b
83: .op(ConsoleReader.NEXT_HISTORY));
84: assertBuffer("", b = b.op(ConsoleReader.NEXT_HISTORY));
85:
86: assertBuffer("XXXtest line 4", b = b
87: .op(ConsoleReader.PREV_HISTORY));
88: assertBuffer("XXXtest line 4", b = b.op(ConsoleReader.NEWLINE)
89: .op(ConsoleReader.PREV_HISTORY));
90: assertBuffer("XXXtest line 4", b = b.op(ConsoleReader.NEWLINE)
91: .op(ConsoleReader.PREV_HISTORY));
92: assertBuffer("XXXtest line 4", b = b.op(ConsoleReader.NEWLINE)
93: .op(ConsoleReader.PREV_HISTORY));
94: assertBuffer("XXXtest line 4", b = b.op(ConsoleReader.NEWLINE)
95: .op(ConsoleReader.PREV_HISTORY));
96: }
97: }
|