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

Side by Side Diff: runtime/vm/json_test.cc

Issue 2974233002: VM: Re-format to use at most one newline between functions (Closed)
Patch Set: Rebase and merge Created 3 years, 5 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 unified diff | Download patch
« no previous file with comments | « runtime/vm/json_stream.cc ('k') | runtime/vm/kernel.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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/text_buffer.h" 6 #include "platform/text_buffer.h"
7 #include "vm/dart_api_impl.h"
7 #include "vm/json_stream.h" 8 #include "vm/json_stream.h"
8 #include "vm/unit_test.h" 9 #include "vm/unit_test.h"
9 #include "vm/dart_api_impl.h"
10 10
11 namespace dart { 11 namespace dart {
12 12
13 #ifndef PRODUCT 13 #ifndef PRODUCT
14 14
15 TEST_CASE(JSON_TextBuffer) { 15 TEST_CASE(JSON_TextBuffer) {
16 TextBuffer w(5); // Small enough to make buffer grow at least once. 16 TextBuffer w(5); // Small enough to make buffer grow at least once.
17 w.Printf("{ \"%s\" : %d", "length", 175); 17 w.Printf("{ \"%s\" : %d", "length", 175);
18 EXPECT_STREQ("{ \"length\" : 175", w.buf()); 18 EXPECT_STREQ("{ \"length\" : 175", w.buf());
19 w.Printf(", \"%s\" : \"%s\" }", "command", "stopIt"); 19 w.Printf(", \"%s\" : \"%s\" }", "command", "stopIt");
20 EXPECT_STREQ("{ \"length\" : 175, \"command\" : \"stopIt\" }", w.buf()); 20 EXPECT_STREQ("{ \"length\" : 175, \"command\" : \"stopIt\" }", w.buf());
21 } 21 }
22 22
23
24 TEST_CASE(JSON_JSONStream_Primitives) { 23 TEST_CASE(JSON_JSONStream_Primitives) {
25 { 24 {
26 JSONStream js; 25 JSONStream js;
27 { JSONObject jsobj(&js); } 26 { JSONObject jsobj(&js); }
28 EXPECT_STREQ("{}", js.ToCString()); 27 EXPECT_STREQ("{}", js.ToCString());
29 } 28 }
30 { 29 {
31 JSONStream js; 30 JSONStream js;
32 { JSONArray jsarr(&js); } 31 { JSONArray jsarr(&js); }
33 EXPECT_STREQ("[]", js.ToCString()); 32 EXPECT_STREQ("[]", js.ToCString());
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
75 { 74 {
76 JSONStream js; 75 JSONStream js;
77 { 76 {
78 JSONArray jsarr(&js); 77 JSONArray jsarr(&js);
79 jsarr.AddValueF("h%s", "elo"); 78 jsarr.AddValueF("h%s", "elo");
80 } 79 }
81 EXPECT_STREQ("[\"helo\"]", js.ToCString()); 80 EXPECT_STREQ("[\"helo\"]", js.ToCString());
82 } 81 }
83 } 82 }
84 83
85
86 TEST_CASE(JSON_JSONStream_Array) { 84 TEST_CASE(JSON_JSONStream_Array) {
87 JSONStream js; 85 JSONStream js;
88 { 86 {
89 JSONArray jsarr(&js); 87 JSONArray jsarr(&js);
90 jsarr.AddValue(true); 88 jsarr.AddValue(true);
91 jsarr.AddValue(false); 89 jsarr.AddValue(false);
92 } 90 }
93 EXPECT_STREQ("[true,false]", js.ToCString()); 91 EXPECT_STREQ("[true,false]", js.ToCString());
94 } 92 }
95 93
96
97 TEST_CASE(JSON_JSONStream_Object) { 94 TEST_CASE(JSON_JSONStream_Object) {
98 JSONStream js; 95 JSONStream js;
99 { 96 {
100 JSONObject jsobj(&js); 97 JSONObject jsobj(&js);
101 jsobj.AddProperty("key1", "a"); 98 jsobj.AddProperty("key1", "a");
102 jsobj.AddProperty("key2", "b"); 99 jsobj.AddProperty("key2", "b");
103 } 100 }
104 EXPECT_STREQ("{\"key1\":\"a\",\"key2\":\"b\"}", js.ToCString()); 101 EXPECT_STREQ("{\"key1\":\"a\",\"key2\":\"b\"}", js.ToCString());
105 } 102 }
106 103
107 TEST_CASE(JSON_JSONStream_NestedObject) { 104 TEST_CASE(JSON_JSONStream_NestedObject) {
108 JSONStream js; 105 JSONStream js;
109 { 106 {
110 JSONObject jsobj(&js); 107 JSONObject jsobj(&js);
111 JSONObject jsobj1(&jsobj, "key"); 108 JSONObject jsobj1(&jsobj, "key");
112 jsobj1.AddProperty("key1", "d"); 109 jsobj1.AddProperty("key1", "d");
113 } 110 }
114 EXPECT_STREQ("{\"key\":{\"key1\":\"d\"}}", js.ToCString()); 111 EXPECT_STREQ("{\"key\":{\"key1\":\"d\"}}", js.ToCString());
115 } 112 }
116 113
117
118 TEST_CASE(JSON_JSONStream_ObjectArray) { 114 TEST_CASE(JSON_JSONStream_ObjectArray) {
119 JSONStream js; 115 JSONStream js;
120 { 116 {
121 JSONArray jsarr(&js); 117 JSONArray jsarr(&js);
122 { 118 {
123 JSONObject jsobj(&jsarr); 119 JSONObject jsobj(&jsarr);
124 jsobj.AddProperty("key", "e"); 120 jsobj.AddProperty("key", "e");
125 } 121 }
126 { 122 {
127 JSONObject jsobj(&jsarr); 123 JSONObject jsobj(&jsarr);
128 jsobj.AddProperty("yek", "f"); 124 jsobj.AddProperty("yek", "f");
129 } 125 }
130 } 126 }
131 EXPECT_STREQ("[{\"key\":\"e\"},{\"yek\":\"f\"}]", js.ToCString()); 127 EXPECT_STREQ("[{\"key\":\"e\"},{\"yek\":\"f\"}]", js.ToCString());
132 } 128 }
133 129
134
135 TEST_CASE(JSON_JSONStream_ArrayArray) { 130 TEST_CASE(JSON_JSONStream_ArrayArray) {
136 JSONStream js; 131 JSONStream js;
137 { 132 {
138 JSONArray jsarr(&js); 133 JSONArray jsarr(&js);
139 { 134 {
140 JSONArray jsarr1(&jsarr); 135 JSONArray jsarr1(&jsarr);
141 jsarr1.AddValue(static_cast<intptr_t>(4)); 136 jsarr1.AddValue(static_cast<intptr_t>(4));
142 } 137 }
143 { 138 {
144 JSONArray jsarr1(&jsarr); 139 JSONArray jsarr1(&jsarr);
145 jsarr1.AddValue(false); 140 jsarr1.AddValue(false);
146 } 141 }
147 } 142 }
148 EXPECT_STREQ("[[4],[false]]", js.ToCString()); 143 EXPECT_STREQ("[[4],[false]]", js.ToCString());
149 } 144 }
150 145
151
152 TEST_CASE(JSON_JSONStream_Printf) { 146 TEST_CASE(JSON_JSONStream_Printf) {
153 JSONStream js; 147 JSONStream js;
154 { 148 {
155 JSONArray jsarr(&js); 149 JSONArray jsarr(&js);
156 jsarr.AddValueF("%d %s", 2, "hello"); 150 jsarr.AddValueF("%d %s", 2, "hello");
157 } 151 }
158 EXPECT_STREQ("[\"2 hello\"]", js.ToCString()); 152 EXPECT_STREQ("[\"2 hello\"]", js.ToCString());
159 } 153 }
160 154
161
162 TEST_CASE(JSON_JSONStream_ObjectPrintf) { 155 TEST_CASE(JSON_JSONStream_ObjectPrintf) {
163 JSONStream js; 156 JSONStream js;
164 { 157 {
165 JSONObject jsobj(&js); 158 JSONObject jsobj(&js);
166 jsobj.AddPropertyF("key", "%d %s", 2, "hello"); 159 jsobj.AddPropertyF("key", "%d %s", 2, "hello");
167 } 160 }
168 EXPECT_STREQ("{\"key\":\"2 hello\"}", js.ToCString()); 161 EXPECT_STREQ("{\"key\":\"2 hello\"}", js.ToCString());
169 } 162 }
170 163
171
172 TEST_CASE(JSON_JSONStream_DartObject) { 164 TEST_CASE(JSON_JSONStream_DartObject) {
173 JSONStream js; 165 JSONStream js;
174 { 166 {
175 JSONArray jsarr(&js); 167 JSONArray jsarr(&js);
176 jsarr.AddValue(Object::Handle(Object::null())); 168 jsarr.AddValue(Object::Handle(Object::null()));
177 JSONObject jsobj(&jsarr); 169 JSONObject jsobj(&jsarr);
178 jsobj.AddProperty("object_key", Object::Handle(Object::null())); 170 jsobj.AddProperty("object_key", Object::Handle(Object::null()));
179 } 171 }
180 char buffer[1024]; 172 char buffer[1024];
181 ElideJSONSubstring("classes", js.ToCString(), buffer); 173 ElideJSONSubstring("classes", js.ToCString(), buffer);
(...skipping 20 matching lines...) Expand all
202 194
203 TEST_CASE(JSON_JSONStream_EscapedString) { 195 TEST_CASE(JSON_JSONStream_EscapedString) {
204 JSONStream js; 196 JSONStream js;
205 { 197 {
206 JSONArray jsarr(&js); 198 JSONArray jsarr(&js);
207 jsarr.AddValue("Hel\"\"lo\r\n\t"); 199 jsarr.AddValue("Hel\"\"lo\r\n\t");
208 } 200 }
209 EXPECT_STREQ("[\"Hel\\\"\\\"lo\\r\\n\\t\"]", js.ToCString()); 201 EXPECT_STREQ("[\"Hel\\\"\\\"lo\\r\\n\\t\"]", js.ToCString());
210 } 202 }
211 203
212
213 TEST_CASE(JSON_JSONStream_DartString) { 204 TEST_CASE(JSON_JSONStream_DartString) {
214 const char* kScriptChars = 205 const char* kScriptChars =
215 "var ascii = 'Hello, World!';\n" 206 "var ascii = 'Hello, World!';\n"
216 "var unicode = '\\u00CE\\u00F1\\u0163\\u00E9r\\u00F1\\u00E5\\u0163" 207 "var unicode = '\\u00CE\\u00F1\\u0163\\u00E9r\\u00F1\\u00E5\\u0163"
217 "\\u00EE\\u00F6\\u00F1\\u00E5\\u013C\\u00EE\\u017E\\u00E5\\u0163" 208 "\\u00EE\\u00F6\\u00F1\\u00E5\\u013C\\u00EE\\u017E\\u00E5\\u0163"
218 "\\u00EE\\u1EDD\\u00F1';\n" 209 "\\u00EE\\u1EDD\\u00F1';\n"
219 "var surrogates = '\\u{1D11E}\\u{1D11E}\\u{1D11E}" 210 "var surrogates = '\\u{1D11E}\\u{1D11E}\\u{1D11E}"
220 "\\u{1D11E}\\u{1D11E}';\n" 211 "\\u{1D11E}\\u{1D11E}';\n"
221 "var wrongEncoding = '\\u{1D11E}' + surrogates[0] + '\\u{1D11E}';" 212 "var wrongEncoding = '\\u{1D11E}' + surrogates[0] + '\\u{1D11E}';"
222 "var nullInMiddle = 'This has\\u0000 four words.';"; 213 "var nullInMiddle = 'This has\\u0000 four words.';";
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after
285 obj ^= Api::UnwrapHandle(result); 276 obj ^= Api::UnwrapHandle(result);
286 277
287 JSONStream js; 278 JSONStream js;
288 { 279 {
289 JSONObject jsobj(&js); 280 JSONObject jsobj(&js);
290 EXPECT(!jsobj.AddPropertyStr("wrongEncoding", obj)); 281 EXPECT(!jsobj.AddPropertyStr("wrongEncoding", obj));
291 } 282 }
292 EXPECT_STREQ("{\"wrongEncoding\":\"𝄞\\uD834𝄞\"}", js.ToCString()); 283 EXPECT_STREQ("{\"wrongEncoding\":\"𝄞\\uD834𝄞\"}", js.ToCString());
293 } 284 }
294 285
295
296 { 286 {
297 result = Dart_GetField(lib, NewString("nullInMiddle")); 287 result = Dart_GetField(lib, NewString("nullInMiddle"));
298 EXPECT_VALID(result); 288 EXPECT_VALID(result);
299 obj ^= Api::UnwrapHandle(result); 289 obj ^= Api::UnwrapHandle(result);
300 290
301 JSONStream js; 291 JSONStream js;
302 { 292 {
303 JSONObject jsobj(&js); 293 JSONObject jsobj(&js);
304 EXPECT(!jsobj.AddPropertyStr("nullInMiddle", obj)); 294 EXPECT(!jsobj.AddPropertyStr("nullInMiddle", obj));
305 } 295 }
306 EXPECT_STREQ("{\"nullInMiddle\":\"This has\\u0000 four words.\"}", 296 EXPECT_STREQ("{\"nullInMiddle\":\"This has\\u0000 four words.\"}",
307 js.ToCString()); 297 js.ToCString());
308 } 298 }
309 } 299 }
310 300
311
312 TEST_CASE(JSON_JSONStream_Params) { 301 TEST_CASE(JSON_JSONStream_Params) {
313 const char* param_keys[] = {"dog", "cat"}; 302 const char* param_keys[] = {"dog", "cat"};
314 const char* param_values[] = {"apple", "banana"}; 303 const char* param_values[] = {"apple", "banana"};
315 304
316 JSONStream js; 305 JSONStream js;
317 EXPECT(js.num_params() == 0); 306 EXPECT(js.num_params() == 0);
318 js.SetParams(&param_keys[0], &param_values[0], 2); 307 js.SetParams(&param_keys[0], &param_values[0], 2);
319 EXPECT(js.num_params() == 2); 308 EXPECT(js.num_params() == 2);
320 EXPECT(!js.HasParam("lizard")); 309 EXPECT(!js.HasParam("lizard"));
321 EXPECT(js.HasParam("dog")); 310 EXPECT(js.HasParam("dog"));
322 EXPECT(js.HasParam("cat")); 311 EXPECT(js.HasParam("cat"));
323 EXPECT(js.ParamIs("cat", "banana")); 312 EXPECT(js.ParamIs("cat", "banana"));
324 EXPECT(!js.ParamIs("dog", "banana")); 313 EXPECT(!js.ParamIs("dog", "banana"));
325 } 314 }
326 315
327
328 TEST_CASE(JSON_JSONStream_AppendJSONStreamConsumer) { 316 TEST_CASE(JSON_JSONStream_AppendJSONStreamConsumer) {
329 JSONStream js; 317 JSONStream js;
330 318
331 { 319 {
332 JSONObject obj(&js); 320 JSONObject obj(&js);
333 { 321 {
334 JSONArray arr(&obj, "test"); 322 JSONArray arr(&obj, "test");
335 const char* test_data = "{a, b, c},"; 323 const char* test_data = "{a, b, c},";
336 AppendJSONStreamConsumer(Dart_StreamConsumer_kData, "", 324 AppendJSONStreamConsumer(Dart_StreamConsumer_kData, "",
337 reinterpret_cast<const uint8_t*>(&test_data[0]), 325 reinterpret_cast<const uint8_t*>(&test_data[0]),
338 strlen(test_data), &js); 326 strlen(test_data), &js);
339 AppendJSONStreamConsumer(Dart_StreamConsumer_kData, "", 327 AppendJSONStreamConsumer(Dart_StreamConsumer_kData, "",
340 reinterpret_cast<const uint8_t*>(&test_data[0]), 328 reinterpret_cast<const uint8_t*>(&test_data[0]),
341 strlen(test_data), &js); 329 strlen(test_data), &js);
342 AppendJSONStreamConsumer(Dart_StreamConsumer_kData, "", 330 AppendJSONStreamConsumer(Dart_StreamConsumer_kData, "",
343 reinterpret_cast<const uint8_t*>(&test_data[0]), 331 reinterpret_cast<const uint8_t*>(&test_data[0]),
344 strlen(test_data) - 1, &js); 332 strlen(test_data) - 1, &js);
345 } 333 }
346 } 334 }
347 335
348 EXPECT_STREQ("{\"test\":[{a, b, c},{a, b, c},{a, b, c}]}", js.ToCString()); 336 EXPECT_STREQ("{\"test\":[{a, b, c},{a, b, c},{a, b, c}]}", js.ToCString());
349 } 337 }
350 338
351 #endif // !PRODUCT 339 #endif // !PRODUCT
352 340
353 } // namespace dart 341 } // namespace dart
OLDNEW
« no previous file with comments | « runtime/vm/json_stream.cc ('k') | runtime/vm/kernel.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698