summary refs log tree commit diff
path: root/src/libstd/json.rs
diff options
context:
space:
mode:
authorBrian Anderson <banderson@mozilla.com>2012-01-17 19:05:07 -0800
committerBrian Anderson <banderson@mozilla.com>2012-01-17 19:48:58 -0800
commit6e27b27cf8a9ece270f2556c3362524854d06de4 (patch)
treee310348b211f329737cec9a1a30fbf641492ad46 /src/libstd/json.rs
parent17bf4b0e1be01bc7a54c389deb5896949736d7f2 (diff)
downloadrust-6e27b27cf8a9ece270f2556c3362524854d06de4.tar.gz
rust-6e27b27cf8a9ece270f2556c3362524854d06de4.zip
libstd: Move std tests into libstd
Diffstat (limited to 'src/libstd/json.rs')
-rw-r--r--src/libstd/json.rs55
1 files changed, 55 insertions, 0 deletions
diff --git a/src/libstd/json.rs b/src/libstd/json.rs
index 3e134c743ed..d433b12ec68 100644
--- a/src/libstd/json.rs
+++ b/src/libstd/json.rs
@@ -268,3 +268,58 @@ fn from_str(s: str) -> option::t<json> {
     let (j, _) = from_str_helper(s);
     j
 }
+
+#[cfg(test)]
+mod tests {
+    #[test]
+    fn test_from_str_null() {
+        assert(from_str("null") == some(null));
+    }
+
+    #[test]
+    fn test_from_str_num() {
+        assert(from_str("3") == some(num(3f)));
+        assert(from_str("3.1") == some(num(3.1f)));
+        assert(from_str("-1.2") == some(num(-1.2f)));
+        assert(from_str(".4") == some(num(0.4f)));
+    }
+
+    #[test]
+    fn test_from_str_str() {
+        assert(from_str("\"foo\"") == some(string("foo")));
+        assert(from_str("\"\\\"\"") == some(string("\"")));
+        assert(from_str("\"lol") == none);
+    }
+
+    #[test]
+    fn test_from_str_bool() {
+        assert(from_str("true") == some(boolean(true)));
+        assert(from_str("false") == some(boolean(false)));
+        assert(from_str("truz") == none);
+    }
+
+    #[test]
+    fn test_from_str_list() {
+        assert(from_str("[]") == some(list(@[])));
+        assert(from_str("[true]") == some(list(@[boolean(true)])));
+        assert(from_str("[null]") == some(list(@[null])));
+        assert(from_str("[3, 1]") == some(list(@[num(3f), num(1f)])));
+        assert(from_str("[2, [4, 1]]") ==
+               some(list(@[num(2f), list(@[num(4f), num(1f)])])));
+        assert(from_str("[2, ]") == none);
+        assert(from_str("[5, ") == none);
+        assert(from_str("[6 7]") == none);
+        assert(from_str("[3") == none);
+    }
+
+    #[test]
+    fn test_from_str_dict() {
+        assert(from_str("{}") != none);
+        assert(from_str("{\"a\": 3}") != none);
+        assert(from_str("{\"a\": null}") != none);
+        assert(from_str("{\"a\": }") == none);
+        assert(from_str("{\"a\" }") == none);
+        assert(from_str("{\"a\"") == none);
+        assert(from_str("{") == none);
+    }
+}