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 command history.
012 *
013 * @author <a href="mailto:mwp1@cornell.edu">Marc Prud'hommeaux</a>
014 */
015 public class TestHistory extends JLineTestCase {
016 public TestHistory(String test) {
017 super(test);
018 }
019
020 public void testSingleHistory() throws Exception {
021 Buffer b = new Buffer().
022 append("test line 1").op(ConsoleReader.NEWLINE).
023 append("test line 2").op(ConsoleReader.NEWLINE).
024 append("test line 3").op(ConsoleReader.NEWLINE).
025 append("test line 4").op(ConsoleReader.NEWLINE).
026 append("test line 5").op(ConsoleReader.NEWLINE).
027 append("");
028
029 assertBuffer("", b);
030
031 assertBuffer("test line 5", b = b.op(ConsoleReader.PREV_HISTORY));
032 assertBuffer("test line 4", b = b.op(ConsoleReader.PREV_HISTORY));
033 assertBuffer("test line 5", b = b.op(ConsoleReader.NEXT_HISTORY));
034 assertBuffer("test line 4", b = b.op(ConsoleReader.PREV_HISTORY));
035 assertBuffer("test line 3", b = b.op(ConsoleReader.PREV_HISTORY));
036 assertBuffer("test line 2", b = b.op(ConsoleReader.PREV_HISTORY));
037 assertBuffer("test line 1", b = b.op(ConsoleReader.PREV_HISTORY));
038
039 // beginning of history
040 assertBuffer("test line 1", b = b.op(ConsoleReader.PREV_HISTORY));
041 assertBuffer("test line 1", b = b.op(ConsoleReader.PREV_HISTORY));
042 assertBuffer("test line 1", b = b.op(ConsoleReader.PREV_HISTORY));
043 assertBuffer("test line 1", b = b.op(ConsoleReader.PREV_HISTORY));
044
045 assertBuffer("test line 2", b = b.op(ConsoleReader.NEXT_HISTORY));
046 assertBuffer("test line 3", b = b.op(ConsoleReader.NEXT_HISTORY));
047 assertBuffer("test line 4", b = b.op(ConsoleReader.NEXT_HISTORY));
048 assertBuffer("test line 5", b = b.op(ConsoleReader.NEXT_HISTORY));
049
050 // end of history
051 assertBuffer("", b = b.op(ConsoleReader.NEXT_HISTORY));
052 assertBuffer("", b = b.op(ConsoleReader.NEXT_HISTORY));
053 assertBuffer("", b = b.op(ConsoleReader.NEXT_HISTORY));
054
055 assertBuffer("test line 5", b = b.op(ConsoleReader.PREV_HISTORY));
056 assertBuffer("test line 4", b = b.op(ConsoleReader.PREV_HISTORY));
057 b = b.op(ConsoleReader.MOVE_TO_BEG).append("XXX")
058 .op(ConsoleReader.NEWLINE);
059 assertBuffer("XXXtest line 4", b = b.op(ConsoleReader.PREV_HISTORY));
060 assertBuffer("test line 5", b = b.op(ConsoleReader.PREV_HISTORY));
061 assertBuffer("test line 4", b = b.op(ConsoleReader.PREV_HISTORY));
062 assertBuffer("test line 5", b = b.op(ConsoleReader.NEXT_HISTORY));
063 assertBuffer("XXXtest line 4", b = b.op(ConsoleReader.NEXT_HISTORY));
064 assertBuffer("", b = b.op(ConsoleReader.NEXT_HISTORY));
065
066 assertBuffer("XXXtest line 4", b = b.op(ConsoleReader.PREV_HISTORY));
067 assertBuffer("XXXtest line 4", b = b.op(ConsoleReader.NEWLINE).
068 op(ConsoleReader.PREV_HISTORY));
069 assertBuffer("XXXtest line 4", b = b.op(ConsoleReader.NEWLINE).
070 op(ConsoleReader.PREV_HISTORY));
071 assertBuffer("XXXtest line 4", b = b.op(ConsoleReader.NEWLINE).
072 op(ConsoleReader.PREV_HISTORY));
073 assertBuffer("XXXtest line 4", b = b.op(ConsoleReader.NEWLINE).
074 op(ConsoleReader.PREV_HISTORY));
075 }
076 }