blob: a481e2625ba27c103efd16447cf0636280769881 [file] [log] [blame]
/*
* Copyright (c) 2002-2007, Marc Prud'hommeaux. All rights reserved.
*
* This software is distributable under the BSD license. See the terms of the
* BSD license in the documentation provided with this software.
*/
package jline;
import java.util.*;
/**
* Tests command history.
*
* @author <a href="mailto:mwp1@cornell.edu">Marc Prud'hommeaux</a>
*/
public class TestCompletion extends JLineTestCase {
public TestCompletion(String test) {
super(test);
}
public void testSimpleCompletor() throws Exception {
// clear any current completors
for (Iterator i = console.getCompletors().iterator(); i.hasNext();
console.removeCompletor((Completor) i.next())) {
;
}
console.addCompletor
(new SimpleCompletor(new String[] { "foo", "bar", "baz" }));
assertBuffer("foo ", new Buffer("f").op(ConsoleReader.COMPLETE));
// single tab completes to unabbiguous "ba"
assertBuffer("ba", new Buffer("b").op(ConsoleReader.COMPLETE));
assertBuffer("ba", new Buffer("ba").op(ConsoleReader.COMPLETE));
assertBuffer("baz ", new Buffer("baz").op(ConsoleReader.COMPLETE));
}
public void testArgumentCompletor() throws Exception {
// clear any current completors
for (Iterator i = console.getCompletors().iterator(); i.hasNext();
console.removeCompletor((Completor) i.next())) {
;
}
console.addCompletor(new ArgumentCompletor
(new SimpleCompletor(new String[] { "foo", "bar", "baz" })));
assertBuffer("foo foo ", new Buffer("foo f").
op(ConsoleReader.COMPLETE));
assertBuffer("foo ba", new Buffer("foo b").
op(ConsoleReader.COMPLETE));
assertBuffer("foo ba", new Buffer("foo ba").
op(ConsoleReader.COMPLETE));
assertBuffer("foo baz ", new Buffer("foo baz").
op(ConsoleReader.COMPLETE));
// test completion in the mid range
assertBuffer("foo baz",
new Buffer("f baz").left().left().left().left().
op(ConsoleReader.COMPLETE));
assertBuffer("ba foo",
new Buffer("b foo").left().left().left().left().
op(ConsoleReader.COMPLETE));
assertBuffer("foo ba baz",
new Buffer("foo b baz").left().left().left().left().
op(ConsoleReader.COMPLETE));
assertBuffer("foo foo baz",
new Buffer("foo f baz").left().left().left().left().
op(ConsoleReader.COMPLETE));
}
}