diff options
author | ClementTsang <cjhtsang@uwaterloo.ca> | 2020-04-23 15:33:51 -0400 |
---|---|---|
committer | ClementTsang <cjhtsang@uwaterloo.ca> | 2020-04-23 15:33:51 -0400 |
commit | f4c6cb95e4e12511054af0942a02422c9ea4d1bc (patch) | |
tree | 9018b84c419d45b12e0ec19f84a132ea0a603a90 /tests | |
parent | a6b48921ee7fe49874bc629f107e06a688603547 (diff) |
test: add config tests, update arg tests
Diffstat (limited to 'tests')
-rw-r--r-- | tests/arg_tests.rs | 2 | ||||
-rw-r--r-- | tests/invalid_config_tests.rs | 135 | ||||
-rw-r--r-- | tests/invalid_configs/duplicate_temp_type.toml | 4 | ||||
-rw-r--r-- | tests/invalid_configs/empty_layout.toml | 1 | ||||
-rw-r--r-- | tests/invalid_configs/invalid_colour_hex.toml | 2 | ||||
-rw-r--r-- | tests/invalid_configs/invalid_colour_hex_2.toml | 2 | ||||
-rw-r--r-- | tests/invalid_configs/invalid_colour_hex_3.toml | 2 | ||||
-rw-r--r-- | tests/invalid_configs/invalid_colour_name.toml | 2 | ||||
-rw-r--r-- | tests/invalid_configs/invalid_colour_rgb.toml | 2 | ||||
-rw-r--r-- | tests/invalid_configs/invalid_colour_rgb_2.toml | 2 | ||||
-rw-r--r-- | tests/invalid_configs/invalid_colour_string.toml | 2 | ||||
-rw-r--r-- | tests/invalid_configs/invalid_layout_widget_type.toml | 5 | ||||
-rw-r--r-- | tests/invalid_configs/toml_mismatch_type.toml | 2 |
13 files changed, 162 insertions, 1 deletions
diff --git a/tests/arg_tests.rs b/tests/arg_tests.rs index ff760f9e..134d9615 100644 --- a/tests/arg_tests.rs +++ b/tests/arg_tests.rs @@ -136,7 +136,7 @@ fn test_invalid_default_widget_1() -> Result<(), Box<dyn std::error::Error>> { .arg("fake_widget") .assert() .failure() - .stderr(predicate::str::contains("Invalid widget type")); + .stderr(predicate::str::contains("invalid widget type")); Ok(()) } diff --git a/tests/invalid_config_tests.rs b/tests/invalid_config_tests.rs index 8b137891..34b8e06e 100644 --- a/tests/invalid_config_tests.rs +++ b/tests/invalid_config_tests.rs @@ -1 +1,136 @@ +use assert_cmd::prelude::*; +use predicates::prelude::*; +use std::process::Command; +// These tests are for testing some config file-specific options. + +fn get_binary_location() -> String { + env!("CARGO_BIN_EXE_btm").to_string() +} + +#[test] +fn test_toml_mismatch_type() -> Result<(), Box<dyn std::error::Error>> { + Command::new(get_binary_location()) + .arg("-C") + .arg("./tests/invalid_configs/toml_mismatch_type.toml") + .assert() + .failure() + .stderr(predicate::str::contains("invalid type")); + Ok(()) +} + +#[test] +fn test_empty_layout() -> Result<(), Box<dyn std::error::Error>> { + Command::new(get_binary_location()) + .arg("-C") + .arg("./tests/invalid_configs/empty_layout.toml") + .assert() + .failure() + .stderr(predicate::str::contains("invalid layout config")); + Ok(()) +} + +#[test] +fn test_invalid_layout_widget_type() -> Result<(), Box<dyn std::error::Error>> { + Command::new(get_binary_location()) + .arg("-C") + .arg("./tests/invalid_configs/invalid_layout_widget_type.toml") + .assert() + .failure() + .stderr(predicate::str::contains("invalid widget type")); + Ok(()) +} + +/// This test isn't really needed as this is technically covered by TOML spec. +/// However, I feel like it's worth checking anyways - not like it takes long. +#[test] +fn test_duplicate_temp_type() -> Result<(), Box<dyn std::error::Error>> { + Command::new(get_binary_location()) + .arg("-C") + .arg("./tests/invalid_configs/duplicate_temp_type.toml") + .assert() + .failure() + .stderr(predicate::str::contains("duplicate field")); + Ok(()) +} + +/// Checks for if a hex is valid +#[test] +fn test_invalid_colour_hex() -> Result<(), Box<dyn std::error::Error>> { + Command::new(get_binary_location()) + .arg("-C") + .arg("./tests/invalid_configs/invalid_colour_hex.toml") + .assert() + .failure() + .stderr(predicate::str::contains("invalid color hex")); + Ok(()) +} + +/// Checks for if a hex is too long +#[test] +fn test_invalid_colour_hex_2() -> Result<(), Box<dyn std::error::Error>> { + Command::new(get_binary_location()) + .arg("-C") + .arg("./tests/invalid_configs/invalid_colour_hex_2.toml") + .assert() + .failure() + .stderr(predicate::str::contains("invalid color hex")); + Ok(()) +} + +/// Checks unicode hex because the way we originally did it could cause char +/// boundary errors! +#[test] +fn test_invalid_colour_hex_3() -> Result<(), Box<dyn std::error::Error>> { + Command::new(get_binary_location()) + .arg("-C") + .arg("./tests/invalid_configs/invalid_colour_hex_3.toml") + .assert() + .failure() + .stderr(predicate::str::contains("invalid color hex")); + Ok(()) +} + +#[test] +fn test_invalid_colour_name() -> Result<(), Box<dyn std::error::Error>> { + Command::new(get_binary_location()) + .arg("-C") + .arg("./tests/invalid_configs/invalid_colour_name.toml") + .assert() + .failure() + .stderr(predicate::str::contains("invalid named color")); + Ok(()) +} + +#[test] +fn test_invalid_colour_rgb() -> Result<(), Box<dyn std::error::Error>> { + Command::new(get_binary_location()) + .arg("-C") + .arg("./tests/invalid_configs/invalid_colour_rgb.toml") + .assert() + .failure() + .stderr(predicate::str::contains("invalid RGB color")); + Ok(()) +} + +#[test] +fn test_invalid_colour_rgb_2() -> Result<(), Box<dyn std::error::Error>> { + Command::new(get_binary_location()) + .arg("-C") + .arg("./tests/invalid_configs/invalid_colour_rgb_2.toml") + .assert() + .failure() + .stderr(predicate::str::contains("invalid RGB color")); + Ok(()) +} + +#[test] +fn test_invalid_colour_string() -> Result<(), Box<dyn std::error::Error>> { + Command::new(get_binary_location()) + .arg("-C") + .arg("./tests/invalid_configs/invalid_colour_string.toml") + .assert() + .failure() + .stderr(predicate::str::contains("invalid named color")); + Ok(()) +} diff --git a/tests/invalid_configs/duplicate_temp_type.toml b/tests/invalid_configs/duplicate_temp_type.toml new file mode 100644 index 00000000..48e3e57a --- /dev/null +++ b/tests/invalid_configs/duplicate_temp_type.toml @@ -0,0 +1,4 @@ +[flags] +temperature_type = "k" +temperature_type = "f" +temperature_type = "c"
\ No newline at end of file diff --git a/tests/invalid_configs/empty_layout.toml b/tests/invalid_configs/empty_layout.toml new file mode 100644 index 00000000..9582a0da --- /dev/null +++ b/tests/invalid_configs/empty_layout.toml @@ -0,0 +1 @@ +[[row]]
\ No newline at end of file diff --git a/tests/invalid_configs/invalid_colour_hex.toml b/tests/invalid_configs/invalid_colour_hex.toml new file mode 100644 index 00000000..b836a50c --- /dev/null +++ b/tests/invalid_configs/invalid_colour_hex.toml @@ -0,0 +1,2 @@ +[colors] +table_header_color="#zzzzzz"
\ No newline at end of file diff --git a/tests/invalid_configs/invalid_colour_hex_2.toml b/tests/invalid_configs/invalid_colour_hex_2.toml new file mode 100644 index 00000000..5c1c92cc --- /dev/null +++ b/tests/invalid_configs/invalid_colour_hex_2.toml @@ -0,0 +1,2 @@ +[colors] +table_header_color="#1111111"
\ No newline at end of file diff --git a/tests/invalid_configs/invalid_colour_hex_3.toml b/tests/invalid_configs/invalid_colour_hex_3.toml new file mode 100644 index 00000000..92ce4fd3 --- /dev/null +++ b/tests/invalid_configs/invalid_colour_hex_3.toml @@ -0,0 +1,2 @@ +[colors] +table_header_color="#我死"
\ No newline at end of file diff --git a/tests/invalid_configs/invalid_colour_name.toml b/tests/invalid_configs/invalid_colour_name.toml new file mode 100644 index 00000000..afdacf7a --- /dev/null +++ b/tests/invalid_configs/invalid_colour_name.toml @@ -0,0 +1,2 @@ +[colors] +table_header_color="Light Blue"
\ No newline at end of file diff --git a/tests/invalid_configs/invalid_colour_rgb.toml b/tests/invalid_configs/invalid_colour_rgb.toml new file mode 100644 index 00000000..d2e6ab3b --- /dev/null +++ b/tests/invalid_configs/invalid_colour_rgb.toml @@ -0,0 +1,2 @@ +[colors] +table_header_color="257, 50, 50"
\ No newline at end of file diff --git a/tests/invalid_configs/invalid_colour_rgb_2.toml b/tests/invalid_configs/invalid_colour_rgb_2.toml new file mode 100644 index 00000000..dbae5e20 --- /dev/null +++ b/tests/invalid_configs/invalid_colour_rgb_2.toml @@ -0,0 +1,2 @@ +[colors] +table_header_color="50, 50, 50, 50"
\ No newline at end of file diff --git a/tests/invalid_configs/invalid_colour_string.toml b/tests/invalid_configs/invalid_colour_string.toml new file mode 100644 index 00000000..3b320b66 --- /dev/null +++ b/tests/invalid_configs/invalid_colour_string.toml @@ -0,0 +1,2 @@ +[colors] +table_header_color="this is not a colour"
\ No newline at end of file diff --git a/tests/invalid_configs/invalid_layout_widget_type.toml b/tests/invalid_configs/invalid_layout_widget_type.toml new file mode 100644 index 00000000..58e8ba8e --- /dev/null +++ b/tests/invalid_configs/invalid_layout_widget_type.toml @@ -0,0 +1,5 @@ +[[row]] + [[row.child]] + type="cpu" + [[row.child]] + type="not_real"
\ No newline at end of file diff --git a/tests/invalid_configs/toml_mismatch_type.toml b/tests/invalid_configs/toml_mismatch_type.toml new file mode 100644 index 00000000..b7f02b0e --- /dev/null +++ b/tests/invalid_configs/toml_mismatch_type.toml @@ -0,0 +1,2 @@ +[flags] +avg_cpu = "test"
\ No newline at end of file |