mirror of https://github.com/termux/termux-app
79 lines
2.9 KiB
Java
79 lines
2.9 KiB
Java
package com.termux.terminal;
|
|
|
|
/**
|
|
* <pre>
|
|
* "CSI ? Pm h", DEC Private Mode Set (DECSET)
|
|
* </pre>
|
|
* <p/>
|
|
* and
|
|
* <p/>
|
|
* <pre>
|
|
* "CSI ? Pm l", DEC Private Mode Reset (DECRST)
|
|
* </pre>
|
|
* <p/>
|
|
* controls various aspects of the terminal
|
|
*/
|
|
public class DecSetTest extends TerminalTestCase {
|
|
|
|
/** DECSET 25, DECTCEM, controls visibility of the cursor. */
|
|
public void testShowHideCursor() {
|
|
withTerminalSized(3, 3);
|
|
assertTrue("Initially the cursor should be visible", mTerminal.isShowingCursor());
|
|
enterString("\033[?25l"); // Hide Cursor (DECTCEM).
|
|
assertFalse(mTerminal.isShowingCursor());
|
|
enterString("\033[?25h"); // Show Cursor (DECTCEM).
|
|
assertTrue(mTerminal.isShowingCursor());
|
|
|
|
enterString("\033[?25l"); // Hide Cursor (DECTCEM), again.
|
|
assertFalse(mTerminal.isShowingCursor());
|
|
mTerminal.reset();
|
|
assertTrue("Resetting the terminal should show the cursor", mTerminal.isShowingCursor());
|
|
|
|
enterString("\033[?25l");
|
|
assertFalse(mTerminal.isShowingCursor());
|
|
enterString("\033c"); // RIS resetting should reveal cursor.
|
|
assertTrue(mTerminal.isShowingCursor());
|
|
}
|
|
|
|
/** DECSET 2004, controls bracketed paste mode. */
|
|
public void testBracketedPasteMode() {
|
|
withTerminalSized(3, 3);
|
|
|
|
mTerminal.paste("a");
|
|
assertEquals("Pasting 'a' should output 'a' when bracketed paste mode is disabled", "a", mOutput.getOutputAndClear());
|
|
|
|
enterString("\033[?2004h"); // Enable bracketed paste mode.
|
|
mTerminal.paste("a");
|
|
assertEquals("Pasting when in bracketed paste mode should be bracketed", "\033[200~a\033[201~", mOutput.getOutputAndClear());
|
|
|
|
enterString("\033[?2004l"); // Disable bracketed paste mode.
|
|
mTerminal.paste("a");
|
|
assertEquals("Pasting 'a' should output 'a' when bracketed paste mode is disabled", "a", mOutput.getOutputAndClear());
|
|
|
|
enterString("\033[?2004h"); // Enable bracketed paste mode, again.
|
|
mTerminal.paste("a");
|
|
assertEquals("Pasting when in bracketed paste mode again should be bracketed", "\033[200~a\033[201~", mOutput.getOutputAndClear());
|
|
|
|
mTerminal.paste("\033ab\033cd\033");
|
|
assertEquals("Pasting an escape character should not input it", "\033[200~abcd\033[201~", mOutput.getOutputAndClear());
|
|
mTerminal.paste("\u0081ab\u0081cd\u009F");
|
|
assertEquals("Pasting C1 control codes should not input it", "\033[200~abcd\033[201~", mOutput.getOutputAndClear());
|
|
|
|
mTerminal.reset();
|
|
mTerminal.paste("a");
|
|
assertEquals("Terminal reset() should disable bracketed paste mode", "a", mOutput.getOutputAndClear());
|
|
}
|
|
|
|
/** DECSET 7, DECAWM, controls wraparound mode. */
|
|
public void testWrapAroundMode() {
|
|
// Default with wraparound:
|
|
withTerminalSized(3, 3).enterString("abcd").assertLinesAre("abc", "d ", " ");
|
|
// With wraparound disabled:
|
|
withTerminalSized(3, 3).enterString("\033[?7labcd").assertLinesAre("abd", " ", " ");
|
|
enterString("efg").assertLinesAre("abg", " ", " ");
|
|
// Re-enabling wraparound:
|
|
enterString("\033[?7hhij").assertLinesAre("abh", "ij ", " ");
|
|
}
|
|
|
|
}
|