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 }