@Test public void testEndOfLine() { TestTerm term = new TestTerm(this); term.readlineComplete(); term.read('a', 'b', 'c', 'd'); term.read(CTRL_A_KEY); term.assertScreen("% abcd"); term.assertAt(0, 2); term.read(CTRL_A_KEY); term.assertScreen("% abcd"); term.assertAt(0, 2); }
@Test public void testPrompt() { TestTerm term = new TestTerm(this); term.readline(new Consumer<String>() { @Override public void accept(String s) { testComplete(); } }); term.assertScreen("% "); term.assertAt(0, 2); }
@Test public void testBackwardDeleteLastChar() { TestTerm term = new TestTerm(this); term.readlineFail(); term.read('A'); term.read('B'); term.read(8); term.assertScreen( "% A" ); term.assertAt(0, 3); }
private void assertPrefix(String line, String expected) { TestTerm term = new TestTerm(this); final AtomicReference<String> prefix = new AtomicReference<String>(); term.readlineComplete(new Consumer<Completion>() { @Override public void accept(Completion completion) { prefix.set(Helper.fromCodePoints(completion.prefix())); } }); term.read(Helper.toCodePoints(line)); term.read('\t'); assertEquals(expected, prefix.get()); }
@Test public void testIllegalChar() { TestTerm term = new TestTerm(this); Supplier<String> line = term.readlineComplete(); assertEquals(0, term.getBellCount()); term.read('a', 6, 'b', '\r'); assertEquals(1, term.getBellCount()); assertEquals("ab", line.get()); }
public void readlineFail() { readline(new Consumer<String>() { @Override public void accept(String event) { readlineTest.fail("Was not accepting a call"); } }); }
@Test public void cancel() { TestTerm term = new TestTerm(this); assertFalse(term.readline.cancel()); term.readline(new Consumer<String>() { @Override public void accept(String s) { assertNull(s); testComplete(); } }); assertTrue(term.readline.cancel()); assertFalse(term.readline.cancel()); await(); }
@Override public void accept(Completion completion) { assertEquals(0, completion.prefix().length); term.assertScreen("% "); term.assertAt(0, 2); testComplete(); } });
void assertScreen(String... expected) { List<String> lines = render(); readlineTest.assertEquals(Arrays.asList(expected), lines); }
private void assertPrefix(String line, String expected) { TestTerm term = new TestTerm(this); AtomicReference<String> prefix = new AtomicReference<>(); term.readlineComplete(comp -> { prefix.set(Helper.fromCodePoints(comp.prefix())); }); term.read(Helper.toCodePoints(line)); term.read('\t'); assertEquals(expected, prefix.get()); }
@Test public void testIllegalChar() { TestTerm term = new TestTerm(this); Supplier<String> line = term.readlineComplete(); assertEquals(0, term.getBellCount()); term.read('a', 6, 'b', '\r'); assertEquals(1, term.getBellCount()); assertEquals("ab", line.get()); }
public void readline(Consumer<String> readlineHandler) { readline(readlineHandler, null); }
void assertScreen(String... expected) { List<String> lines = render(); readlineTest.assertEquals(Arrays.asList(expected), lines); }
@Test public void testEndOfLine() { TestTerm term = new TestTerm(this); term.readlineComplete(); term.read('a', 'b', 'c', 'd'); term.read(CTRL_A_KEY); term.assertScreen("% abcd"); term.assertAt(0, 2); term.read(CTRL_A_KEY); term.assertScreen("% abcd"); term.assertAt(0, 2); }
@Test public void testBackwardDeleteEscape() { TestTerm term = new TestTerm(this); term.readlineFail(); term.read('\\'); term.assertScreen("% \\"); term.read(BACKWARD_DELETE_KEY); term.assertScreen( "% " ); term.assertAt(0, 2); }
@Test public void testEnter() { TestTerm term = new TestTerm(this); term.readline(new Consumer<String>() { @Override public void accept(String s) { testComplete(); } }); term.read('\r'); term.assertScreen("% "); term.assertAt(1, 0); await(); }
@Test public void testCompletion() { final TestTerm term = new TestTerm(this); term.readline(new Consumer<String>() { @Override public void accept(String s) { } }, new Consumer<Completion>() { @Override public void accept(Completion completion) { assertEquals(0, completion.prefix().length); term.assertScreen("% "); term.assertAt(0, 2); testComplete(); } }); term.read('\t'); await(); }