summary refs log tree commit diff
path: root/src/test/stdtest
diff options
context:
space:
mode:
authorElly Jones <elly@leptoquark.net>2011-11-07 18:24:44 -0500
committerBrian Anderson <banderson@mozilla.com>2011-11-07 15:44:43 -0800
commit656a2af98975edea682831c8483ac534cec7825a (patch)
tree53cd94aadc83c374a739221db12f89e33c311a27 /src/test/stdtest
parentbd7262624ca7b396cfb254dc638f62d07e381681 (diff)
downloadrust-656a2af98975edea682831c8483ac534cec7825a.tar.gz
rust-656a2af98975edea682831c8483ac534cec7825a.zip
json: betterify for brson
Signed-off-by: Elly Jones <ellyjones@google.com>
Diffstat (limited to 'src/test/stdtest')
-rw-r--r--src/test/stdtest/json.rs48
-rw-r--r--src/test/stdtest/stdtest.rc13
2 files changed, 55 insertions, 6 deletions
diff --git a/src/test/stdtest/json.rs b/src/test/stdtest/json.rs
new file mode 100644
index 00000000000..a19ddec5e7d
--- /dev/null
+++ b/src/test/stdtest/json.rs
@@ -0,0 +1,48 @@
+use std;
+import std::json::*;
+import std::option::{none, some};
+
+#[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("[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\": }") == none);
+    assert(from_str("{\"a\" }") == none);
+    assert(from_str("{\"a\"") == none);
+    assert(from_str("{") == none);
+}
diff --git a/src/test/stdtest/stdtest.rc b/src/test/stdtest/stdtest.rc
index 18ba19d0151..09eabb632d6 100644
--- a/src/test/stdtest/stdtest.rc
+++ b/src/test/stdtest/stdtest.rc
@@ -6,14 +6,15 @@ mod char;
 mod comm;
 mod deque;
 mod either;
+mod float;
 mod fs;
 mod getopts;
 mod int;
 mod io;
-mod vec;
+mod json;
 mod list;
 mod map;
-mod treemap;
+mod math;
 mod net;
 mod option;
 mod os;
@@ -22,6 +23,8 @@ mod ptr;
 mod qsort3;
 mod qsort;
 mod rand;
+mod result;
+mod rope;
 mod run;
 mod sha1;
 mod sort;
@@ -29,11 +32,9 @@ mod str;
 mod sys;
 mod task;
 mod test;
+mod treemap;
 mod uint;
-mod float;
-mod math;
-mod result;
-mod rope;
+mod vec;
 
 // Local Variables:
 // mode: rust