OLD | NEW |
1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file |
2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
4 | 4 |
5 #include "platform/assert.h" | 5 #include "platform/assert.h" |
6 #include "platform/json.h" | 6 #include "platform/json.h" |
7 #include "vm/json_stream.h" | 7 #include "vm/json_stream.h" |
8 #include "vm/unit_test.h" | 8 #include "vm/unit_test.h" |
9 | 9 |
10 namespace dart { | 10 namespace dart { |
(...skipping 211 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
222 jsobj.AddProperty("key1", "a"); | 222 jsobj.AddProperty("key1", "a"); |
223 jsobj.AddProperty("key2", "b"); | 223 jsobj.AddProperty("key2", "b"); |
224 } | 224 } |
225 EXPECT_STREQ("{\"key1\":\"a\",\"key2\":\"b\"}", js.ToCString()); | 225 EXPECT_STREQ("{\"key1\":\"a\",\"key2\":\"b\"}", js.ToCString()); |
226 } | 226 } |
227 | 227 |
228 TEST_CASE(JSON_JSONStream_NestedObject) { | 228 TEST_CASE(JSON_JSONStream_NestedObject) { |
229 JSONStream js; | 229 JSONStream js; |
230 { | 230 { |
231 JSONObject jsobj(&js); | 231 JSONObject jsobj(&js); |
232 JSONObject jsobj1(jsobj, "key"); | 232 JSONObject jsobj1(&jsobj, "key"); |
233 jsobj1.AddProperty("key1", "d"); | 233 jsobj1.AddProperty("key1", "d"); |
234 } | 234 } |
235 EXPECT_STREQ("{\"key\":{\"key1\":\"d\"}}", js.ToCString()); | 235 EXPECT_STREQ("{\"key\":{\"key1\":\"d\"}}", js.ToCString()); |
236 } | 236 } |
237 | 237 |
238 | 238 |
239 TEST_CASE(JSON_JSONStream_ObjectArray) { | 239 TEST_CASE(JSON_JSONStream_ObjectArray) { |
240 JSONStream js; | 240 JSONStream js; |
241 { | 241 { |
242 JSONArray jsarr(&js); | 242 JSONArray jsarr(&js); |
243 { | 243 { |
244 JSONObject jsobj(jsarr); | 244 JSONObject jsobj(&jsarr); |
245 jsobj.AddProperty("key", "e"); | 245 jsobj.AddProperty("key", "e"); |
246 } | 246 } |
247 { | 247 { |
248 JSONObject jsobj(jsarr); | 248 JSONObject jsobj(&jsarr); |
249 jsobj.AddProperty("yek", "f"); | 249 jsobj.AddProperty("yek", "f"); |
250 } | 250 } |
251 } | 251 } |
252 EXPECT_STREQ("[{\"key\":\"e\"},{\"yek\":\"f\"}]", js.ToCString()); | 252 EXPECT_STREQ("[{\"key\":\"e\"},{\"yek\":\"f\"}]", js.ToCString()); |
253 } | 253 } |
254 | 254 |
255 | 255 |
256 TEST_CASE(JSON_JSONStream_ArrayArray) { | 256 TEST_CASE(JSON_JSONStream_ArrayArray) { |
257 JSONStream js; | 257 JSONStream js; |
258 { | 258 { |
259 JSONArray jsarr(&js); | 259 JSONArray jsarr(&js); |
260 { | 260 { |
261 JSONArray jsarr1(jsarr); | 261 JSONArray jsarr1(&jsarr); |
262 jsarr1.AddValue(static_cast<intptr_t>(4)); | 262 jsarr1.AddValue(static_cast<intptr_t>(4)); |
263 } | 263 } |
264 { | 264 { |
265 JSONArray jsarr1(jsarr); | 265 JSONArray jsarr1(&jsarr); |
266 jsarr1.AddValue(false); | 266 jsarr1.AddValue(false); |
267 } | 267 } |
268 } | 268 } |
269 EXPECT_STREQ("[[4],[false]]", js.ToCString()); | 269 EXPECT_STREQ("[[4],[false]]", js.ToCString()); |
270 } | 270 } |
271 | 271 |
272 | 272 |
273 TEST_CASE(JSON_JSONStream_Printf) { | 273 TEST_CASE(JSON_JSONStream_Printf) { |
274 JSONStream js; | 274 JSONStream js; |
275 { | 275 { |
(...skipping 12 matching lines...) Expand all Loading... |
288 } | 288 } |
289 EXPECT_STREQ("{\"key\":\"2 hello\"}", js.ToCString()); | 289 EXPECT_STREQ("{\"key\":\"2 hello\"}", js.ToCString()); |
290 } | 290 } |
291 | 291 |
292 | 292 |
293 TEST_CASE(JSON_JSONStream_DartObject) { | 293 TEST_CASE(JSON_JSONStream_DartObject) { |
294 JSONStream js; | 294 JSONStream js; |
295 { | 295 { |
296 JSONArray jsarr(&js); | 296 JSONArray jsarr(&js); |
297 jsarr.AddValue(Object::Handle(Object::null())); | 297 jsarr.AddValue(Object::Handle(Object::null())); |
298 JSONObject jsobj(jsarr); | 298 JSONObject jsobj(&jsarr); |
299 jsobj.AddProperty("object_key", Object::Handle(Object::null())); | 299 jsobj.AddProperty("object_key", Object::Handle(Object::null())); |
300 } | 300 } |
301 EXPECT_STREQ("[{\"type\":\"null\"},{\"object_key\":{\"type\":\"null\"}}]", | 301 EXPECT_STREQ("[{\"type\":\"null\"},{\"object_key\":{\"type\":\"null\"}}]", |
302 js.ToCString()); | 302 js.ToCString()); |
303 } | 303 } |
304 | 304 |
305 TEST_CASE(JSON_JSONStream_EscapedString) { | 305 TEST_CASE(JSON_JSONStream_EscapedString) { |
306 JSONStream js; | 306 JSONStream js; |
307 { | 307 { |
308 JSONArray jsarr(&js); | 308 JSONArray jsarr(&js); |
309 jsarr.AddValue("Hel\"\"lo\r\n\t"); | 309 jsarr.AddValue("Hel\"\"lo\r\n\t"); |
310 } | 310 } |
311 EXPECT_STREQ("[\"Hel\\\"\\\"lo\\r\\n\\t\"]", js.ToCString()); | 311 EXPECT_STREQ("[\"Hel\\\"\\\"lo\\r\\n\\t\"]", js.ToCString()); |
312 } | 312 } |
313 | 313 |
314 | 314 |
315 } // namespace dart | 315 } // namespace dart |
OLD | NEW |