aboutsummaryrefslogtreecommitdiff
path: root/v_windows/v/old/vlib/term/term_test.v
diff options
context:
space:
mode:
authorIndrajith K L2022-12-03 17:00:20 +0530
committerIndrajith K L2022-12-03 17:00:20 +0530
commitf5c4671bfbad96bf346bd7e9a21fc4317b4959df (patch)
tree2764fc62da58f2ba8da7ed341643fc359873142f /v_windows/v/old/vlib/term/term_test.v
downloadcli-tools-windows-f5c4671bfbad96bf346bd7e9a21fc4317b4959df.tar.gz
cli-tools-windows-f5c4671bfbad96bf346bd7e9a21fc4317b4959df.tar.bz2
cli-tools-windows-f5c4671bfbad96bf346bd7e9a21fc4317b4959df.zip
Adds most of the toolsHEADmaster
Diffstat (limited to 'v_windows/v/old/vlib/term/term_test.v')
-rw-r--r--v_windows/v/old/vlib/term/term_test.v115
1 files changed, 115 insertions, 0 deletions
diff --git a/v_windows/v/old/vlib/term/term_test.v b/v_windows/v/old/vlib/term/term_test.v
new file mode 100644
index 0000000..00f9293
--- /dev/null
+++ b/v_windows/v/old/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'
+ }
+}