17 w.Printf(
"{ \"%s\" : %d",
"length", 175);
18 EXPECT_STREQ(
"{ \"length\" : 175",
w.buffer());
19 w.Printf(
", \"%s\" : \"%s\" }",
"command",
"stopIt");
20 EXPECT_STREQ(
"{ \"length\" : 175, \"command\" : \"stopIt\" }",
w.buffer());
27 EXPECT_STREQ(
"{}", js.ToCString());
32 EXPECT_STREQ(
"[]", js.ToCString());
40 EXPECT_STREQ(
"[true]", js.ToCString());
48 EXPECT_STREQ(
"[false]", js.ToCString());
54 jsarr.
AddValue(
static_cast<intptr_t
>(4));
56 EXPECT_STREQ(
"[4]", js.ToCString());
64 EXPECT_STREQ(
"[1.0]", js.ToCString());
72 EXPECT_STREQ(
"[\"hello\"]", js.ToCString());
80 EXPECT_STREQ(
"[\"helo\"]", js.ToCString());
91 EXPECT_STREQ(
"[true,false]", js.ToCString());
98 jsonBase64String.
AppendBytes(
reinterpret_cast<const uint8_t*
>(
"Hello"), 5);
99 jsonBase64String.
AppendBytes(
reinterpret_cast<const uint8_t*
>(
", "), 2);
100 jsonBase64String.
AppendBytes(
reinterpret_cast<const uint8_t*
>(
"world!"), 6);
102 EXPECT_STREQ(
"\"SGVsbG8sIHdvcmxkIQ==\"", js.ToCString());
112 EXPECT_STREQ(
"{\"key1\":\"a\",\"key2\":\"b\"}", js.ToCString());
122 EXPECT_STREQ(
"{\"key\":{\"key1\":\"d\"}}", js.ToCString());
138 EXPECT_STREQ(
"[{\"key\":\"e\"},{\"yek\":\"f\"}]", js.ToCString());
147 jsarr1.
AddValue(
static_cast<intptr_t
>(4));
154 EXPECT_STREQ(
"[[4],[false]]", js.ToCString());
163 EXPECT_STREQ(
"[\"2 hello\"]", js.ToCString());
172 EXPECT_STREQ(
"{\"key\":\"2 hello\"}", js.ToCString());
186 const char* json_str = js.ToCString();
196 "[{\"type\":\"@Instance\",\"_vmType\":\"null\",\"class\":{\"type\":\"@"
197 "Class\",\"fixedId\":true,\"id\":\"\",\"name\":\"Null\",\"location\":{"
198 "\"type\":\"SourceLocation\",\"script\":{\"type\":\"@Script\","
199 "\"fixedId\":true,\"id\":\"\",\"uri\":\"dart:core\\/null.dart\","
200 "\"_kind\":\"kernel\"}},\"library\":{"
201 "\"type\":\"@Library\",\"fixedId\":true,\"id\":\"\",\"name\":\"dart."
202 "core\",\"uri\":\"dart:core\"}},\"kind\":\"Null\",\"fixedId\":true,"
203 "\"id\":\"\",\"valueAsString\":\"null\"},{\"object_key\":{\"type\":\"@"
204 "Instance\",\"_vmType\":\"null\",\"class\":{\"type\":\"@Class\","
205 "\"fixedId\":true,\"id\":\"\",\"name\":\"Null\",\"location\":{\"type\":"
206 "\"SourceLocation\",\"script\":{\"type\":\"@Script\",\"fixedId\":true,"
207 "\"id\":\"\",\"uri\":\"dart:core\\/null.dart\",\"_kind\":\"kernel\"}},"
208 "\"library\":{\"type\":\"@"
209 "Library\",\"fixedId\":true,\"id\":\"\",\"name\":\"dart.core\",\"uri\":"
210 "\"dart:core\"}},\"kind\":\"Null\",\"fixedId\":true,\"id\":\"\","
211 "\"valueAsString\":\"null\"}}]",
221 EXPECT_STREQ(
"[\"Hel\\\"\\\"lo\\r\\n\\t\"]", js.ToCString());
225 const char* kScriptChars =
226 "var ascii = 'Hello, World!';\n"
227 "var unicode = '\\u00CE\\u00F1\\u0163\\u00E9r\\u00F1\\u00E5\\u0163"
228 "\\u00EE\\u00F6\\u00F1\\u00E5\\u013C\\u00EE\\u017E\\u00E5\\u0163"
229 "\\u00EE\\u1EDD\\u00F1';\n"
230 "var surrogates = '\\u{1D11E}\\u{1D11E}\\u{1D11E}"
231 "\\u{1D11E}\\u{1D11E}';\n"
232 "var wrongEncoding = '\\u{1D11E}' + surrogates[0] + '\\u{1D11E}';"
233 "var nullInMiddle = 'This has\\u0000 four words.';";
242 auto do_test = [&](
const char* field_name,
const char* expected) {
257 EXPECT_STREQ(expected, js.ToCString());
275 EXPECT_STREQ(
"{\"subrange\":\"ello\"}", js.ToCString());
278 do_test(
"ascii",
"{\"ascii\":\"Hello, World!\"}");
279 do_test(
"unicode",
"{\"unicode\":\"Îñţérñåţîöñåļîžåţîờñ\"}");
280 do_test(
"surrogates",
"{\"surrogates\":\"𝄞𝄞𝄞𝄞𝄞\"}");
281 do_test(
"wrongEncoding",
"{\"wrongEncoding\":\"𝄞\\uD834𝄞\"}");
282 do_test(
"nullInMiddle",
"{\"nullInMiddle\":\"This has\\u0000 four words.\"}");
286 const char* param_keys[] = {
"dog",
"cat"};
287 const char* param_values[] = {
"apple",
"banana"};
290 EXPECT(js.num_params() == 0);
291 js.SetParams(¶m_keys[0], ¶m_values[0], 2);
292 EXPECT(js.num_params() == 2);
293 EXPECT(!js.HasParam(
"lizard"));
294 EXPECT(js.HasParam(
"dog"));
295 EXPECT(js.HasParam(
"cat"));
296 EXPECT(js.ParamIs(
"cat",
"banana"));
297 EXPECT(!js.ParamIs(
"dog",
"banana"));
static const size_t kBufferSize
static ObjectPtr UnwrapHandle(Dart_Handle object)
void AddValue(bool b) const
void AddValueF(const char *format,...) const PRINTF_ATTRIBUTE(2
void AppendBytes(const uint8_t *bytes, intptr_t length)
void AddProperty(const char *name, bool b) const
bool AddPropertyStr(const char *name, const String &s, intptr_t offset=0, intptr_t count=-1) const
void AddPropertyF(const char *name, const char *format,...) const PRINTF_ATTRIBUTE(3
static Dart_Handle LoadTestScript(const char *script, Dart_NativeEntryResolver resolver, const char *lib_uri=RESOLVED_USER_TEST_URI, bool finalize=true, bool allow_compile_errors=false)
struct _Dart_Handle * Dart_Handle
static const uint8_t buffer[]
void ElideJSONSubstring(const char *prefix, const char *in, char *out, const char *postfix)
DART_EXPORT Dart_Handle Dart_GetField(Dart_Handle container, Dart_Handle name)
Dart_Handle NewString(const char *str)
void StripTokenPositions(char *buffer)
#define ISOLATE_UNIT_TEST_CASE(name)
#define EXPECT_VALID(handle)