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 }