How had I not tested on Linux before
Build and Test j3270 / Build JAR & Run Tests (push) Successful in 45s
Build and Test j3270 / Build JAR & Run Tests (push) Successful in 45s
This commit is contained in:
@@ -44,10 +44,91 @@ public class InputProcessorTest {
|
||||
|
||||
assertEquals('A', screen.getCell(1).ucs4);
|
||||
assertEquals('B', screen.getCell(2).ucs4);
|
||||
assertEquals('A', screen.getDisplayCell(1).ucs4);
|
||||
assertEquals('B', screen.getDisplayCell(2).ucs4);
|
||||
|
||||
input.eraseInput();
|
||||
|
||||
assertEquals(0, screen.getCell(1).ec);
|
||||
assertEquals(0, screen.getCell(2).ec);
|
||||
assertEquals(0, screen.getDisplayCell(1).ec);
|
||||
assertEquals(0, screen.getDisplayCell(2).ec);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testTypeCharacterUpdatesDisplaySnapshot() {
|
||||
InputProcessor input = new InputProcessor(screen, translator, null);
|
||||
screen.erase(false);
|
||||
screen.setCellFA(0, (byte) FA_PRINTABLE); // Unprotected field starting at 1
|
||||
screen.setCursorAddress(1);
|
||||
screen.updateDisplaySnapshot(); // Initial snapshot
|
||||
|
||||
// Type "logon"
|
||||
input.typeCharacter('l');
|
||||
input.typeCharacter('o');
|
||||
input.typeCharacter('g');
|
||||
input.typeCharacter('o');
|
||||
input.typeCharacter('n');
|
||||
|
||||
// Verify underlying buffer
|
||||
assertEquals('l', screen.getCell(1).ucs4);
|
||||
assertEquals('o', screen.getCell(2).ucs4);
|
||||
assertEquals('g', screen.getCell(3).ucs4);
|
||||
assertEquals('o', screen.getCell(4).ucs4);
|
||||
assertEquals('n', screen.getCell(5).ucs4);
|
||||
|
||||
// Verify display snapshot (what TerminalPanel renders)
|
||||
assertEquals('l', screen.getDisplayCell(1).ucs4);
|
||||
assertEquals('o', screen.getDisplayCell(2).ucs4);
|
||||
assertEquals('g', screen.getDisplayCell(3).ucs4);
|
||||
assertEquals('o', screen.getDisplayCell(4).ucs4);
|
||||
assertEquals('n', screen.getDisplayCell(5).ucs4);
|
||||
assertEquals(6, screen.getDisplayCursorAddress());
|
||||
assertEquals(6, screen.getCursorAddress());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testCursorMovementUpdatesDisplayCursorAddress() {
|
||||
InputProcessor input = new InputProcessor(screen, translator, null);
|
||||
screen.erase(false);
|
||||
screen.setCursorAddress(10);
|
||||
assertEquals(10, screen.getDisplayCursorAddress());
|
||||
|
||||
input.cursorRight();
|
||||
assertEquals(11, screen.getDisplayCursorAddress());
|
||||
|
||||
input.cursorLeft();
|
||||
assertEquals(10, screen.getDisplayCursorAddress());
|
||||
|
||||
screen.setCursorAddress(45);
|
||||
assertEquals(45, screen.getDisplayCursorAddress());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testDeleteAndEraseEofUpdateDisplaySnapshot() {
|
||||
InputProcessor input = new InputProcessor(screen, translator, null);
|
||||
screen.erase(false);
|
||||
screen.setCellFA(0, (byte) FA_PRINTABLE);
|
||||
screen.setCellFA(10, (byte) (FA_PRINTABLE | FA_PROTECT));
|
||||
screen.setCursorAddress(1);
|
||||
|
||||
input.typeCharacter('A');
|
||||
input.typeCharacter('B');
|
||||
input.typeCharacter('C');
|
||||
assertEquals('A', screen.getDisplayCell(1).ucs4);
|
||||
assertEquals('B', screen.getDisplayCell(2).ucs4);
|
||||
assertEquals('C', screen.getDisplayCell(3).ucs4);
|
||||
|
||||
// Backspace over 'C'
|
||||
input.backspace();
|
||||
assertEquals(3, screen.getCursorAddress());
|
||||
assertEquals(3, screen.getDisplayCursorAddress());
|
||||
assertEquals(0, screen.getDisplayCell(3).ucs4);
|
||||
|
||||
// Erase EOF from position 2 ('B')
|
||||
screen.setCursorAddress(2);
|
||||
input.eraseEof();
|
||||
assertEquals(0, screen.getDisplayCell(2).ucs4);
|
||||
assertEquals('A', screen.getDisplayCell(1).ucs4);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user