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")); |
} |