@Test public void testResetDuringInteraction1() { TestTerm term = new TestTerm(this); Supplier<String> line = term.readlineComplete(); term.read('a', 'b', 'c', 'd'); term.read(CTRL_C_KEY); term.read('e'); term.assertScreen("% abcd", "% e"); term.assertAt(1, 3); term.read('\r'); assertEquals("e", line.get()); }
@Test public void testEOF() { TestTerm term = new TestTerm(this); LinkedList<String> lines = new LinkedList<>(); term.readline(lines::add); term.read(TtyEvent.EOF.codePoint()); assertEquals(Collections.singletonList(null), lines); }
@Test public void testResetDuringInteraction1() { TestTerm term = new TestTerm(this); Supplier<String> line = term.readlineComplete(); term.read('a', 'b', 'c', 'd'); term.read(CTRL_C_KEY); term.read('e'); term.assertScreen("% abcd", "% e"); term.assertAt(1, 3); term.read('\r'); assertEquals("e", line.get()); }
@Test public void testEOF() { TestTerm term = new TestTerm(this); LinkedList<String> lines = new LinkedList<>(); term.readline(lines::add); term.read(TtyEvent.EOF.codePoint()); assertEquals(Collections.singletonList(null), lines); }
@Test public void testResetDuringInteraction2() { TestTerm term = new TestTerm(this); Supplier<String> line = term.readlineComplete(); term.read('a', 'b', 'c', 'd', '\\', '\r'); term.read(CTRL_C_KEY); term.read('e'); term.assertScreen("% abcd\\", "> ", "% e"); term.assertAt(2, 3); term.read('\r'); assertEquals("e", line.get()); }
@Test public void testEnter() { TestTerm term = new TestTerm(this); term.readline(event -> testComplete()); term.read('\r'); term.assertScreen("% "); term.assertAt(1, 0); await(); }
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 testInsertChar() { TestTerm term = new TestTerm(this); term.readlineFail(); term.read('A'); term.assertScreen("% A"); term.assertAt(0, 3); }
private void assertCompleteInline(String line, String inline, boolean terminate, String... expected) { TestTerm term = new TestTerm(this); AtomicReference<Completion> completion = new AtomicReference<>(); term.readlineComplete(completion::set); term.read(Helper.toCodePoints(line)); term.read('\t'); completion.get().complete(Helper.toCodePoints(inline), terminate); term.assertScreen(expected); } }
@Test public void testBackwardChar() { TestTerm term = new TestTerm(this); term.readlineFail(); term.read(BACKWARD_KEY); term.assertScreen("% "); term.assertAt(0, 2); }
@Test public void testForwardChar() { TestTerm term = new TestTerm(this); term.readlineFail(); term.read(FORWARD_KEY); term.assertScreen("% "); term.assertAt(0, 2); }
@Test public void testInsertChar() { TestTerm term = new TestTerm(this); term.readlineFail(); term.read('A'); term.assertScreen("% A"); term.assertAt(0, 3); }
@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()); }
@Test public void testBackwardDelete() { TestTerm term = new TestTerm(this); term.readlineFail(); term.read(BACKWARD_DELETE_KEY); term.assertScreen( "% " ); term.assertAt(0, 2); }