| Index: runtime/vm/json_test.cc
|
| diff --git a/runtime/vm/json_test.cc b/runtime/vm/json_test.cc
|
| index 6ca6760fba38b2ecbfc28b0c11ae060205d9a3ba..245bdd681e201fe1cffeeb887245523853f54c01 100644
|
| --- a/runtime/vm/json_test.cc
|
| +++ b/runtime/vm/json_test.cc
|
| @@ -3,7 +3,7 @@
|
| // BSD-style license that can be found in the LICENSE file.
|
|
|
| #include "platform/assert.h"
|
| -#include "platform/json.h"
|
| +#include "platform/text_buffer.h"
|
| #include "vm/json_stream.h"
|
| #include "vm/unit_test.h"
|
| #include "vm/dart_api_impl.h"
|
| @@ -11,131 +11,12 @@
|
| namespace dart {
|
|
|
|
|
| -TEST_CASE(JSON_ScanJSON) {
|
| - const char* msg = "{ \"id\": 5, \"command\" : \"Debugger.pause\" }";
|
| -
|
| - JSONScanner scanner(msg);
|
| - EXPECT_EQ(scanner.CurrentToken(), JSONScanner::TokenIllegal);
|
| - scanner.Scan();
|
| - EXPECT_EQ(scanner.CurrentToken(), JSONScanner::TokenLBrace);
|
| - scanner.Scan();
|
| - EXPECT_EQ(scanner.CurrentToken(), JSONScanner::TokenString);
|
| - EXPECT(scanner.IsStringLiteral("id"));
|
| - scanner.Scan();
|
| - EXPECT_EQ(scanner.CurrentToken(), JSONScanner::TokenColon);
|
| - scanner.Scan();
|
| - EXPECT_EQ(scanner.CurrentToken(), JSONScanner::TokenInteger);
|
| - scanner.Scan();
|
| - EXPECT_EQ(scanner.CurrentToken(), JSONScanner::TokenComma);
|
| - scanner.Scan();
|
| - EXPECT_EQ(scanner.CurrentToken(), JSONScanner::TokenString);
|
| - EXPECT(scanner.IsStringLiteral("command"));
|
| - scanner.Scan();
|
| - EXPECT_EQ(scanner.CurrentToken(), JSONScanner::TokenColon);
|
| - scanner.Scan();
|
| - EXPECT_EQ(scanner.CurrentToken(), JSONScanner::TokenString);
|
| - EXPECT(scanner.IsStringLiteral("Debugger.pause"));
|
| - scanner.Scan();
|
| - EXPECT_EQ(scanner.CurrentToken(), JSONScanner::TokenRBrace);
|
| - scanner.Scan();
|
| - EXPECT_EQ(scanner.CurrentToken(), JSONScanner::TokenEOM);
|
| -}
|
| -
|
| -
|
| -TEST_CASE(JSON_SyntaxError) {
|
| - const char* jobj = "{ \"id\": 5, "
|
| - " \"command\" : \"Debugger.stop\"" // Missing comma.
|
| - " \"params\" : { "
|
| - " \"url\" : \"blah.dart\", " // Missing comma.
|
| - " \"line\": 111, "
|
| - " },"
|
| - " \"foo\": \"outer foo\", "
|
| - "}";
|
| - JSONReader reader(jobj);
|
| - bool found;
|
| -
|
| - found = reader.Seek("id");
|
| - EXPECT(found);
|
| - EXPECT_EQ(reader.Type(), JSONReader::kInteger);
|
| - found = reader.Seek("params");
|
| - EXPECT(!found);
|
| - EXPECT(reader.Error());
|
| - EXPECT_EQ(reader.Type(), JSONReader::kNone);
|
| - EXPECT_EQ(0, reader.ValueLen());
|
| - EXPECT(reader.ValueChars() == NULL);
|
| -}
|
| -
|
| -
|
| -TEST_CASE(JSON_JSONReader) {
|
| - const char* jobj = "{ \"id\": 5, "
|
| - " \"command\" : \"Debugger.setBreakpoint\","
|
| - " \"params\" : { "
|
| - " \"url\" : \"blah.dart\", "
|
| - " \"foo\" : [null, 1, { }, \"bar\", true, false],"
|
| - " \"line\": 111, "
|
| - " },"
|
| - " \"foo\": \"outer foo\", "
|
| - " \"quote\": \"\\\"\", "
|
| - " \"white\": \"\\t \\n\", "
|
| - "}";
|
| -
|
| - JSONReader reader(jobj);
|
| - bool found;
|
| - char s[128];
|
| -
|
| - found = reader.Seek("id");
|
| - EXPECT(found);
|
| - EXPECT_EQ(reader.Type(), JSONReader::kInteger);
|
| - found = reader.Seek("foo");
|
| - EXPECT(found);
|
| - EXPECT_EQ(reader.Type(), JSONReader::kString);
|
| - EXPECT(reader.IsStringLiteral("outer foo"));
|
| -
|
| - found = reader.Seek("quote");
|
| - EXPECT(found);
|
| - EXPECT_EQ(reader.Type(), JSONReader::kString);
|
| - reader.GetRawValueChars(s, sizeof s);
|
| - EXPECT_STREQ("\\\"", s);
|
| - reader.GetDecodedValueChars(s, sizeof s);
|
| - EXPECT_STREQ("\"", s);
|
| -
|
| - found = reader.Seek("white");
|
| - EXPECT(found);
|
| - EXPECT_EQ(reader.Type(), JSONReader::kString);
|
| - reader.GetRawValueChars(s, sizeof s);
|
| - EXPECT_STREQ("\\t \\n", s);
|
| - reader.GetDecodedValueChars(s, sizeof s);
|
| - EXPECT_STREQ("\t \n", s);
|
| -
|
| - found = reader.Seek("line");
|
| - EXPECT(!found);
|
| - found = reader.Seek("params");
|
| - EXPECT(found);
|
| - EXPECT_EQ(reader.Type(), JSONReader::kObject);
|
| - reader.Set(reader.ValueChars());
|
| - found = reader.Seek("foo");
|
| - EXPECT(found);
|
| - EXPECT_EQ(reader.Type(), JSONReader::kArray);
|
| - found = reader.Seek("non-existing");
|
| - EXPECT(!found);
|
| - found = reader.Seek("line");
|
| - EXPECT(found);
|
| - EXPECT_EQ(reader.Type(), JSONReader::kInteger);
|
| -}
|
| -
|
| -
|
| TEST_CASE(JSON_TextBuffer) {
|
| TextBuffer w(5); // Small enough to make buffer grow at least once.
|
| w.Printf("{ \"%s\" : %d", "length", 175);
|
| EXPECT_STREQ("{ \"length\" : 175", w.buf());
|
| w.Printf(", \"%s\" : \"%s\" }", "command", "stopIt");
|
| EXPECT_STREQ("{ \"length\" : 175, \"command\" : \"stopIt\" }", w.buf());
|
| -
|
| - JSONReader r(w.buf());
|
| - bool found = r.Seek("command");
|
| - EXPECT(found);
|
| - EXPECT_EQ(r.Type(), JSONReader::kString);
|
| - EXPECT(r.IsStringLiteral("stopIt"));
|
| }
|
|
|
|
|
|
|