/* * Copyright (c) 2002-2016, the original author or authors. * * This software is distributable under the BSD license. See the terms of the * BSD license in the documentation provided with this software. * * http://www.opensource.org/licenses/bsd-license.php */ package jline.internal; import org.junit.Before; import org.junit.Test; import static org.junit.Assert.assertEquals; /** * Tests for the {@link TerminalLineSettings}. * * @author <a href="mailto:jbonofre@apache.org">Jean-Baptiste Onofré</a> */ public class TerminalLineSettingsTest { private final String linuxSttySample = "speed 38400 baud; rows 85; columns 244; line = 0;\n" + "intr = ^C; quit = ^\\; erase = ^?; kill = ^U; eof = ^D; eol = M-^?; eol2 = M-^?; swtch = M-^?; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R; werase = ^W; lnext = ^V; flush = ^O; min = 1; time = 0;\n" + "-parenb -parodd cs8 hupcl -cstopb cread -clocal -crtscts\n" + "-ignbrk brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr icrnl ixon -ixoff -iuclc ixany imaxbel iutf8\n" + "opost -olcuc -ocrnl onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0\n" + "isig icanon iexten echo echoe echok -echonl -noflsh -xcase -tostop -echoprt echoctl echoke"; private final String solarisSttySample = "speed 38400 baud; \n" + "rows = 85; columns = 244; ypixels = 0; xpixels = 0;\n" + "csdata ?\n" + "eucw 1:0:0:0, scrw 1:0:0:0\n" + "intr = ^c; quit = ^\\; erase = ^?; kill = ^u;\n" + "eof = ^d; eol = -^?; eol2 = -^?; swtch = <undef>;\n" + "start = ^q; stop = ^s; susp = ^z; dsusp = ^y;\n" + "rprnt = ^r; flush = ^o; werase = ^w; lnext = ^v;\n" + "-parenb -parodd cs8 -cstopb -hupcl cread -clocal -loblk -crtscts -crtsxoff -parext \n" + "-ignbrk brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr icrnl -iuclc \n" + "ixon ixany -ixoff imaxbel \n" + "isig icanon -xcase echo echoe echok -echonl -noflsh \n" + "-tostop echoctl -echoprt echoke -defecho -flusho -pendin iexten \n" + "opost -olcuc onlcr -ocrnl -onocr -onlret -ofill -ofdel tab3"; private final String aixSttySample = "speed 38400 baud; 85 rows; 244 columns;\n" + "eucw 1:1:0:0, scrw 1:1:0:0:\n" + "intr = ^C; quit = ^\\; erase = ^?; kill = ^U; eof = ^D; eol = <undef>\n" + "eol2 = <undef>; start = ^Q; stop = ^S; susp = ^Z; dsusp = ^Y; reprint = ^R\n" + "discard = ^O; werase = ^W; lnext = ^V\n" + "-parenb -parodd cs8 -cstopb -hupcl cread -clocal -parext \n" + "-ignbrk brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr icrnl -iuclc \n" + "ixon ixany -ixoff imaxbel \n" + "isig icanon -xcase echo echoe echok -echonl -noflsh \n" + "-tostop echoctl -echoprt echoke -flusho -pending iexten \n" + "opost -olcuc onlcr -ocrnl -onocr -onlret -ofill -ofdel tab3"; private final String macOsSttySample = "speed 9600 baud; 47 rows; 155 columns;\n" + "lflags: icanon isig iexten echo echoe -echok echoke -echonl echoctl\n" + "-echoprt -altwerase -noflsh -tostop -flusho pendin -nokerninfo\n" + "-extproc\n" + "iflags: -istrip icrnl -inlcr -igncr ixon -ixoff ixany imaxbel iutf8\n" + "-ignbrk brkint -inpck -ignpar -parmrk\n" + "oflags: opost onlcr -oxtabs -onocr -onlret\n" + "cflags: cread cs8 -parenb -parodd hupcl -clocal -cstopb -crtscts -dsrflow\n" + "-dtrflow -mdmbuf\n" + "cchars: discard = ^O; dsusp = ^Y; eof = ^D; eol = <undef>;\n" + "eol2 = <undef>; erase = ^?; intr = ^C; kill = ^U; lnext = ^V;\n" + "min = 1; quit = ^\\; reprint = ^R; start = ^Q; status = ^T;\n" + "stop = ^S; susp = ^Z; time = 0; werase = ^W;"; private final String netBsdSttySample = "speed 38400 baud; 85 rows; 244 columns;\n" + "lflags: icanon isig iexten echo echoe echok echoke -echonl echoctl\n" + " -echoprt -altwerase -noflsh -tostop -flusho pendin -nokerninfo\n" + " -extproc\n" + "iflags: -istrip icrnl -inlcr -igncr ixon -ixoff ixany imaxbel -ignbrk\n" + " brkint -inpck -ignpar -parmrk\n" + "oflags: opost onlcr -ocrnl oxtabs onocr onlret\n" + "cflags: cread cs8 -parenb -parodd hupcl -clocal -cstopb -crtscts -mdmbuf\n" + " -cdtrcts\n" + "cchars: discard = ^O; dsusp = ^Y; eof = ^D; eol = <undef>;\n" + " eol2 = <undef>; erase = ^?; intr = ^C; kill = ^U; lnext = ^V;\n" + " min = 1; quit = ^\\; reprint = ^R; start = ^Q; status = ^T;\n" + " stop = ^S; susp = ^Z; time = 0; werase = ^W;"; private final String freeBsdSttySample = "speed 9600 baud; 32 rows; 199 columns;\n" + "lflags: icanon isig iexten echo echoe echok echoke -echonl echoctl\n" + " -echoprt -altwerase -noflsh -tostop -flusho -pendin -nokerninfo\n" + " -extproc\n" + "iflags: -istrip icrnl -inlcr -igncr ixon -ixoff ixany imaxbel -ignbrk\n" + " brkint -inpck -ignpar -parmrk\n" + "oflags: opost onlcr -ocrnl tab0 -onocr -onlret\n" + "cflags: cread cs8 -parenb -parodd hupcl -clocal -cstopb -crtscts -dsrflow\n" + " -dtrflow -mdmbuf\n" + "cchars: discard = ^O; dsusp = ^Y; eof = ^D; eol = <undef>;\n" + " eol2 = <undef>; erase = ^?; erase2 = ^H; intr = ^C; kill = ^U;\n" + " lnext = ^V; min = 1; quit = ^\\; reprint = ^R; start = ^Q;\n" + " status = ^T; stop = ^S; susp = ^Z; time = 0; werase = ^W;"; private final String hpuxSttySample = "speed 38400 baud; line = 0;\n" + "rows = 52; columns = 151\n" + "min = 4; time = 0;\n" + "intr = DEL; quit = ^\\; erase = #; kill = @\n" + "eof = ^D; eol = ^@; eol2 <undef>; swtch = ^@\n" + "stop = ^S; start = ^Q; susp <undef>; dsusp <undef>\n" + "werase <undef>; lnext <undef>\n" + "-parenb -parodd cs8 -cstopb hupcl cread -clocal -loblk -crts\n" + "-ignbrk brkint ignpar -parmrk -inpck istrip -inlcr -igncr icrnl -iuclc\n" + "ixon ixany -ixoff -imaxbel -rtsxoff -ctsxon -ienqak\n" + "isig icanon -iexten -xcase echo -echoe echok -echonl -noflsh\n" + "-echoctl -echoprt -echoke -flusho -pendin\n" + "opost -olcuc onlcr -ocrnl -onocr -onlret -ofill -ofdel -tostop"; @Before public void setUp() throws Exception { } @Test public void testGetConfig() throws Exception { if (!Configuration.getOsName().contains("win")) { TerminalLineSettings settings = TerminalLineSettings.getSettings(TerminalLineSettings.DEFAULT_TTY); String config = settings.getConfig(); System.out.println(config); } } @Test public void testLinuxSttyParsing() { assertEquals(0x7f, TerminalLineSettings.getProperty("erase", linuxSttySample)); assertEquals(244, TerminalLineSettings.getProperty("columns", linuxSttySample)); assertEquals(85, TerminalLineSettings.getProperty("rows", linuxSttySample)); } @Test public void testSolarisSttyParsing() { assertEquals(0x7f, TerminalLineSettings.getProperty("erase", solarisSttySample)); assertEquals(244, TerminalLineSettings.getProperty("columns", solarisSttySample)); assertEquals(85, TerminalLineSettings.getProperty("rows", solarisSttySample)); } @Test public void testAixSttyParsing() { assertEquals(0x7f, TerminalLineSettings.getProperty("erase", aixSttySample)); assertEquals(244, TerminalLineSettings.getProperty("columns", aixSttySample)); assertEquals(85, TerminalLineSettings.getProperty("rows", aixSttySample)); } @Test public void testMacOsSttyParsing() { assertEquals(0x7f, TerminalLineSettings.getProperty("erase", macOsSttySample)); assertEquals(155, TerminalLineSettings.getProperty("columns", macOsSttySample)); assertEquals(47, TerminalLineSettings.getProperty("rows", macOsSttySample)); } @Test public void testNetBsdSttyParsing() { assertEquals(0x7f, TerminalLineSettings.getProperty("erase", netBsdSttySample)); assertEquals(244, TerminalLineSettings.getProperty("columns", netBsdSttySample)); assertEquals(85, TerminalLineSettings.getProperty("rows", netBsdSttySample)); } @Test public void testFreeBsdSttyParsing() { assertEquals(0x7f, TerminalLineSettings.getProperty("erase", freeBsdSttySample)); assertEquals(199, TerminalLineSettings.getProperty("columns", freeBsdSttySample)); assertEquals(32, TerminalLineSettings.getProperty("rows", freeBsdSttySample)); } @Test public void testHpuxSttyParsing() { assertEquals(0x23, TerminalLineSettings.getProperty("erase", hpuxSttySample)); assertEquals(151, TerminalLineSettings.getProperty("columns", hpuxSttySample)); assertEquals(52, TerminalLineSettings.getProperty("rows", hpuxSttySample)); } }