提交 b10b8c3e 编写于 作者: E Erick Tryzelaar

std: Add tests for json decoding options

上级 c9188c83
......@@ -1236,6 +1236,8 @@ mod tests {
use core::prelude::*;
use core::hashmap::linear::LinearMap;
use std::serialize::Decodable;
fn mk_object(items: &[(~str, Json)]) -> Json {
let mut d = ~LinearMap::new();
......@@ -1389,6 +1391,8 @@ fn test_write_object_pretty() {
}
#[auto_encode]
#[auto_decode]
#[deriving(Eq)]
enum Animal {
Dog,
Frog(~str, int)
......@@ -1706,6 +1710,20 @@ fn test_read_object() {
]));
}
#[test]
fn test_read_none() {
let decoder = Decoder(from_str(~"null").unwrap());
let value: Option<~str> = Decodable::decode(&decoder);
assert_eq!(value, None);
}
#[test]
fn test_read_some() {
let decoder = Decoder(from_str(~"\"jodhpurs\"").unwrap());
let value: Option<~str> = Decodable::decode(&decoder);
assert_eq!(value, Some(~"jodhpurs"));
}
#[test]
fn test_multiline_errors() {
assert_eq!(from_str(~"{\n \"foo\":\n \"bar\""),
......
......@@ -326,19 +326,30 @@ mod test {
@~"fn foo (x : int) { x; }",
~[],
new_parse_sess(None));
assert_eq!(to_json_str(@tts),
~"[[\"tt_tok\",[null,[\"IDENT\",[\"fn\",false]]]],\
[\"tt_tok\",[null,[\"IDENT\",[\"foo\",false]]]],\
[\"tt_delim\",[[[\"tt_tok\",[null,[\"LPAREN\",[]]]],\
[\"tt_tok\",[null,[\"IDENT\",[\"x\",false]]]],\
[\"tt_tok\",[null,[\"COLON\",[]]]],\
[\"tt_tok\",[null,[\"IDENT\",[\"int\",false]]]],\
[\"tt_tok\",[null,[\"RPAREN\",[]]]]]]],\
[\"tt_delim\",[[[\"tt_tok\",[null,[\"LBRACE\",[]]]],\
[\"tt_tok\",[null,[\"IDENT\",[\"x\",false]]]],\
[\"tt_tok\",[null,[\"SEMI\",[]]]],\
[\"tt_tok\",[null,[\"RBRACE\",[]]]]]]]]"
);
assert_eq!(
to_json_str(@tts),
~"[\
[\"tt_tok\",[null,[\"IDENT\",[\"fn\",false]]]],\
[\"tt_tok\",[null,[\"IDENT\",[\"foo\",false]]]],\
[\"tt_delim\",[\
[\
[\"tt_tok\",[null,[\"LPAREN\",[]]]],\
[\"tt_tok\",[null,[\"IDENT\",[\"x\",false]]]],\
[\"tt_tok\",[null,[\"COLON\",[]]]],\
[\"tt_tok\",[null,[\"IDENT\",[\"int\",false]]]],\
[\"tt_tok\",[null,[\"RPAREN\",[]]]]\
]\
]],\
[\"tt_delim\",[\
[\
[\"tt_tok\",[null,[\"LBRACE\",[]]]],\
[\"tt_tok\",[null,[\"IDENT\",[\"x\",false]]]],\
[\"tt_tok\",[null,[\"SEMI\",[]]]],\
[\"tt_tok\",[null,[\"RBRACE\",[]]]]\
]\
]]\
]"
);
let ast1 = new_parser_from_tts(new_parse_sess(None),~[],tts)
.parse_item(~[]);
let ast2 = parse_item_from_source_str(
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册