diff options
| -rw-r--r-- | src/utils/mod.rs | 10 | ||||
| -rw-r--r-- | tests/test_utils.rs | 14 |
2 files changed, 20 insertions, 4 deletions
diff --git a/src/utils/mod.rs b/src/utils/mod.rs index c48432e..5eba1ff 100644 --- a/src/utils/mod.rs +++ b/src/utils/mod.rs @@ -92,10 +92,12 @@ pub fn vecmap_to_json_map<K: PartialEq + ToString>(map: VecMap<K, Value>) -> Map /// assert!(!utils::is_nsfw("nsfwstuff")); /// ``` pub fn is_nsfw(name: &str) -> bool { - if name.len() == 4 { - &name[..4] == "nsfw" - } else if name.len() > 4 { - &name[..5] == "nsfw-" + let char_count = name.chars().count(); + + if char_count == 4 { + name == "nsfw" + } else if char_count > 4 { + name.starts_with("nsfw-") } else { false } diff --git a/tests/test_utils.rs b/tests/test_utils.rs new file mode 100644 index 0000000..99308e4 --- /dev/null +++ b/tests/test_utils.rs @@ -0,0 +1,14 @@ +#![cfg(feature = "utils")]
+
+extern crate serenity;
+
+use serenity::utils::*;
+
+#[test]
+fn test_is_nsfw() {
+ assert!(!is_nsfw("general"));
+ assert!(is_nsfw("nsfw"));
+ assert!(is_nsfw("nsfw-test"));
+ assert!(is_nsfw("nsfw-"));
+ assert!(!is_nsfw("général"));
+}
\ No newline at end of file |