View Javadoc

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