Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(868)

Unified Diff: runtime/vm/json_test.cc

Issue 23875015: - Base JSON stream printing on stack objects. (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/
Patch Set: Created 7 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « runtime/vm/json_stream.cc ('k') | runtime/vm/object.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: runtime/vm/json_test.cc
===================================================================
--- runtime/vm/json_test.cc (revision 27342)
+++ runtime/vm/json_test.cc (working copy)
@@ -139,143 +139,176 @@
TEST_CASE(JSON_JSONStream_Primitives) {
- TextBuffer tb(256);
- JSONStream js(&tb);
-
- js.OpenObject();
- js.CloseObject();
-
- EXPECT_STREQ("{}", tb.buf());
-
- js.Clear();
- js.OpenArray();
- js.CloseArray();
- EXPECT_STREQ("[]", tb.buf());
-
- js.Clear();
- js.PrintValueBool(true);
- EXPECT_STREQ("true", tb.buf());
-
- js.Clear();
- js.PrintValueBool(false);
- EXPECT_STREQ("false", tb.buf());
-
- js.Clear();
- js.PrintValue(static_cast<intptr_t>(4));
- EXPECT_STREQ("4", tb.buf());
-
- js.Clear();
- js.PrintValue(1.0);
- EXPECT_STREQ("1.000000", tb.buf());
-
- js.Clear();
- js.PrintValue("hello");
- EXPECT_STREQ("\"hello\"", tb.buf());
+ {
+ JSONStream js;
+ {
+ JSONObject jsobj(&js);
+ }
+ EXPECT_STREQ("{}", js.ToCString());
+ }
+ {
+ JSONStream js;
+ {
+ JSONArray jsarr(&js);
+ }
+ EXPECT_STREQ("[]", js.ToCString());
+ }
+ {
+ JSONStream js;
+ {
+ JSONArray jsarr(&js);
+ jsarr.AddValue(true);
+ }
+ EXPECT_STREQ("[true]", js.ToCString());
+ }
+ {
+ JSONStream js;
+ {
+ JSONArray jsarr(&js);
+ jsarr.AddValue(false);
+ }
+ EXPECT_STREQ("[false]", js.ToCString());
+ }
+ {
+ JSONStream js;
+ {
+ JSONArray jsarr(&js);
+ jsarr.AddValue(static_cast<intptr_t>(4));
+ }
+ EXPECT_STREQ("[4]", js.ToCString());
+ }
+ {
+ JSONStream js;
+ {
+ JSONArray jsarr(&js);
+ jsarr.AddValue(1.0);
+ }
+ EXPECT_STREQ("[1.000000]", js.ToCString());
+ }
+ {
+ JSONStream js;
+ {
+ JSONArray jsarr(&js);
+ jsarr.AddValue("hello");
+ }
+ EXPECT_STREQ("[\"hello\"]", js.ToCString());
+ }
+ {
+ JSONStream js;
+ {
+ JSONArray jsarr(&js);
+ jsarr.AddValueF("h%s", "elo");
+ }
+ EXPECT_STREQ("[\"helo\"]", js.ToCString());
+ }
}
TEST_CASE(JSON_JSONStream_Array) {
- TextBuffer tb(256);
- JSONStream js(&tb);
- js.Clear();
- js.OpenArray();
- js.PrintValueBool(true);
- js.PrintValueBool(false);
- js.CloseArray();
- EXPECT_STREQ("[true,false]", tb.buf());
+ JSONStream js;
+ {
+ JSONArray jsarr(&js);
+ jsarr.AddValue(true);
+ jsarr.AddValue(false);
+ }
+ EXPECT_STREQ("[true,false]", js.ToCString());
}
TEST_CASE(JSON_JSONStream_Object) {
- TextBuffer tb(256);
- JSONStream js(&tb);
- js.Clear();
- js.OpenObject();
- js.PrintProperty("key1", "a");
- js.PrintProperty("key2", "b");
- js.CloseObject();
- EXPECT_STREQ("{\"key1\":\"a\",\"key2\":\"b\"}", tb.buf());
+ JSONStream js;
+ {
+ JSONObject jsobj(&js);
+ jsobj.AddProperty("key1", "a");
+ jsobj.AddProperty("key2", "b");
+ }
+ EXPECT_STREQ("{\"key1\":\"a\",\"key2\":\"b\"}", js.ToCString());
}
TEST_CASE(JSON_JSONStream_NestedObject) {
- TextBuffer tb(256);
- JSONStream js(&tb);
- js.OpenObject();
- js.OpenObject("key");
- js.PrintProperty("key1", "d");
- js.CloseObject();
- js.CloseObject();
- EXPECT_STREQ("{\"key\":{\"key1\":\"d\"}}", tb.buf());
+ JSONStream js;
+ {
+ JSONObject jsobj(&js);
+ JSONObject jsobj1(jsobj, "key");
+ jsobj1.AddProperty("key1", "d");
+ }
+ EXPECT_STREQ("{\"key\":{\"key1\":\"d\"}}", js.ToCString());
}
TEST_CASE(JSON_JSONStream_ObjectArray) {
- TextBuffer tb(256);
- JSONStream js(&tb);
- js.OpenArray();
- js.OpenObject();
- js.PrintProperty("key", "e");
- js.CloseObject();
- js.OpenObject();
- js.PrintProperty("yek", "f");
- js.CloseObject();
- js.CloseArray();
- EXPECT_STREQ("[{\"key\":\"e\"},{\"yek\":\"f\"}]", tb.buf());
+ JSONStream js;
+ {
+ JSONArray jsarr(&js);
+ {
+ JSONObject jsobj(jsarr);
+ jsobj.AddProperty("key", "e");
+ }
+ {
+ JSONObject jsobj(jsarr);
+ jsobj.AddProperty("yek", "f");
+ }
+ }
+ EXPECT_STREQ("[{\"key\":\"e\"},{\"yek\":\"f\"}]", js.ToCString());
}
TEST_CASE(JSON_JSONStream_ArrayArray) {
- TextBuffer tb(256);
- JSONStream js(&tb);
- js.OpenArray();
- js.OpenArray();
- js.PrintValue((intptr_t)4);
- js.CloseArray();
- js.OpenArray();
- js.PrintValueBool(false);
- js.CloseArray();
- js.CloseArray();
- EXPECT_STREQ("[[4],[false]]", tb.buf());
+ JSONStream js;
+ {
+ JSONArray jsarr(&js);
+ {
+ JSONArray jsarr1(jsarr);
+ jsarr1.AddValue(static_cast<intptr_t>(4));
+ }
+ {
+ JSONArray jsarr1(jsarr);
+ jsarr1.AddValue(false);
+ }
+ }
+ EXPECT_STREQ("[[4],[false]]", js.ToCString());
}
TEST_CASE(JSON_JSONStream_Printf) {
- TextBuffer tb(256);
- JSONStream js(&tb);
- js.OpenArray();
- js.PrintfValue("%d %s", 2, "hello");
- js.CloseArray();
- EXPECT_STREQ("[\"2 hello\"]", tb.buf());
+ JSONStream js;
+ {
+ JSONArray jsarr(&js);
+ jsarr.AddValueF("%d %s", 2, "hello");
+ }
+ EXPECT_STREQ("[\"2 hello\"]", js.ToCString());
}
TEST_CASE(JSON_JSONStream_ObjectPrintf) {
- TextBuffer tb(256);
- JSONStream js(&tb);
- js.OpenObject();
- js.PrintfProperty("key", "%d %s", 2, "hello");
- js.CloseObject();
- EXPECT_STREQ("{\"key\":\"2 hello\"}", tb.buf());
+ JSONStream js;
+ {
+ JSONObject jsobj(&js);
+ jsobj.AddPropertyF("key", "%d %s", 2, "hello");
+ }
+ EXPECT_STREQ("{\"key\":\"2 hello\"}", js.ToCString());
}
TEST_CASE(JSON_JSONStream_DartObject) {
- TextBuffer tb(256);
- JSONStream js(&tb);
- js.OpenArray();
- js.PrintValue(Object::Handle(Object::null()));
- js.OpenObject();
- js.PrintProperty("object_key", Object::Handle(Object::null()));
- js.CloseArray();
- EXPECT_STREQ("[{\"type\":\"null\"},{\"object_key\":{\"type\":\"null\"}]",
- tb.buf());
+ JSONStream js;
+ {
+ JSONArray jsarr(&js);
+ jsarr.AddValue(Object::Handle(Object::null()));
+ JSONObject jsobj(jsarr);
+ jsobj.AddProperty("object_key", Object::Handle(Object::null()));
+ }
+ EXPECT_STREQ("[{\"type\":\"null\"},{\"object_key\":{\"type\":\"null\"}}]",
+ js.ToCString());
}
TEST_CASE(JSON_JSONStream_EscapedString) {
- TextBuffer tb(256);
- JSONStream js(&tb);
- js.PrintValue("Hel\"\"lo\r\n\t");
- EXPECT_STREQ("\"Hel\\\"\\\"lo\\r\\n\\t\"", tb.buf());
+ JSONStream js;
+ {
+ JSONArray jsarr(&js);
+ jsarr.AddValue("Hel\"\"lo\r\n\t");
+ }
+ EXPECT_STREQ("[\"Hel\\\"\\\"lo\\r\\n\\t\"]", js.ToCString());
}
« no previous file with comments | « runtime/vm/json_stream.cc ('k') | runtime/vm/object.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698