diff options
Diffstat (limited to 'v_windows/v/vlib/term/term_test.v')
-rw-r--r-- | v_windows/v/vlib/term/term_test.v | 115 |
1 files changed, 115 insertions, 0 deletions
diff --git a/v_windows/v/vlib/term/term_test.v b/v_windows/v/vlib/term/term_test.v new file mode 100644 index 0000000..00f9293 --- /dev/null +++ b/v_windows/v/vlib/term/term_test.v @@ -0,0 +1,115 @@ +import os +import term + +fn test_get_terminal_size() { + cols, _ := term.get_terminal_size() + assert cols > 0 +} + +fn test_h_divider() { + divider := term.h_divider('-') + assert divider.len > 0 + assert divider[0] == `-` + assert divider[divider.len - 1] == `-` +} + +fn test_h_divider_multiple_characters() { + xdivider := term.h_divider('abc') + assert xdivider.len > 0 + assert xdivider.contains('abcabc') +} + +fn test_header() { + divider := term.h_divider('-') + term_width := divider.len + assert term_width > 0 + empty_header := term.header('', '-') + short_header := term.header('reasonable header', '-') + very_long_header := term.header(['abc'].repeat(500).join(' '), '-') + very_long_header_2 := term.header(['abcd'].repeat(500).join(' '), '-') + /* + eprintln(divider) + eprintln(empty_header) + eprintln(short_header) + eprintln(term.header('another longer header', '_-/\\')) + eprintln(term.header('another longer header', '-')) + eprintln(term.header('short', '-')) + eprintln(term.header('12345', '-')) + eprintln(term.header('1234', '-')) + eprintln(term.header('123', '-')) + eprintln(term.header('12', '-')) + eprintln(term.header('1', '-')) + eprintln(very_long_header) + eprintln(divider) + eprintln(very_long_header_2) + eprintln(term.header(['abcd'].repeat(500).join(' '), '_-/\\')) + eprintln(term.header(['abcd'].repeat(500).join(' '), '_-//')) + eprintln(term.header('1', '_-/\\\/')) + eprintln(term.header('12', '_-/\\\/')) + eprintln(term.header('123', '_-/\\\/')) + eprintln(term.header('1234', '_-/\\/\\')) + eprintln(term.header('', '-')) + */ + assert term_width == empty_header.len + assert term_width == short_header.len + assert term_width == very_long_header.len + assert term_width == very_long_header_2.len + assert term_width == term.header('1234', '_-/\\/\\').len +} + +fn test_get_cursor_position() { + original_position := term.get_cursor_position() + cursor_position_1 := term.get_cursor_position() + assert original_position.x == cursor_position_1.x + assert original_position.y == cursor_position_1.y + // + term.set_cursor_position( + x: 10 + y: 11 + ) + cursor_position_2 := term.get_cursor_position() + // + term.set_cursor_position( + x: 5 + y: 6 + ) + cursor_position_3 := term.get_cursor_position() + // + term.set_cursor_position(original_position) + eprintln('original_position: $original_position') + eprintln('cursor_position_2: $cursor_position_2') + eprintln('cursor_position_3: $cursor_position_3') + // 0,0 is returned on dumb terminals + if cursor_position_2.x == 0 && cursor_position_2.y == 0 { + return + } + if cursor_position_3.x == 0 && cursor_position_3.y == 0 { + return + } + assert cursor_position_2.x == 10 + assert cursor_position_2.y == 11 + assert cursor_position_3.x == 5 + assert cursor_position_3.y == 6 +} + +fn test_set_terminal_title() { + // do not change the current terminal title outside of CI: + if os.getenv('CI') != 'true' { + return + } + title_change := term.set_terminal_title('v is awesome!') + assert title_change == true +} + +fn test_strip_ansi() { + strings := [ + 'abc', + term.bold('abc'), + term.yellow('abc'), + term.bold(term.red('abc')), + term.strikethrough(term.inverse(term.dim(term.bold(term.bright_bg_blue('abc'))))), + ] + for s in strings { + assert term.strip_ansi(s) == 'abc' + } +} |