prettywritertest.cpp (rapidjson-1.0.2) | : | prettywritertest.cpp (rapidjson-1.1.0) | ||
---|---|---|---|---|
skipping to change at line 42 | skipping to change at line 42 | |||
" \"a\": [\n" | " \"a\": [\n" | |||
" 1,\n" | " 1,\n" | |||
" 2,\n" | " 2,\n" | |||
" 3,\n" | " 3,\n" | |||
" -1\n" | " -1\n" | |||
" ],\n" | " ],\n" | |||
" \"u64\": 1234567890123456789,\n" | " \"u64\": 1234567890123456789,\n" | |||
" \"i64\": -1234567890123456789\n" | " \"i64\": -1234567890123456789\n" | |||
"}"; | "}"; | |||
static const char kPrettyJson_FormatOptions_SLA[] = | ||||
"{\n" | ||||
" \"hello\": \"world\",\n" | ||||
" \"t\": true,\n" | ||||
" \"f\": false,\n" | ||||
" \"n\": null,\n" | ||||
" \"i\": 123,\n" | ||||
" \"pi\": 3.1416,\n" | ||||
" \"a\": [1, 2, 3, -1],\n" | ||||
" \"u64\": 1234567890123456789,\n" | ||||
" \"i64\": -1234567890123456789\n" | ||||
"}"; | ||||
TEST(PrettyWriter, Basic) { | TEST(PrettyWriter, Basic) { | |||
StringBuffer buffer; | StringBuffer buffer; | |||
PrettyWriter<StringBuffer> writer(buffer); | PrettyWriter<StringBuffer> writer(buffer); | |||
Reader reader; | Reader reader; | |||
StringStream s(kJson); | StringStream s(kJson); | |||
reader.Parse(s, writer); | reader.Parse(s, writer); | |||
EXPECT_STREQ(kPrettyJson, buffer.GetString()); | EXPECT_STREQ(kPrettyJson, buffer.GetString()); | |||
} | } | |||
TEST(PrettyWriter, FormatOptions) { | ||||
StringBuffer buffer; | ||||
PrettyWriter<StringBuffer> writer(buffer); | ||||
writer.SetFormatOptions(kFormatSingleLineArray); | ||||
Reader reader; | ||||
StringStream s(kJson); | ||||
reader.Parse(s, writer); | ||||
EXPECT_STREQ(kPrettyJson_FormatOptions_SLA, buffer.GetString()); | ||||
} | ||||
TEST(PrettyWriter, SetIndent) { | TEST(PrettyWriter, SetIndent) { | |||
StringBuffer buffer; | StringBuffer buffer; | |||
PrettyWriter<StringBuffer> writer(buffer); | PrettyWriter<StringBuffer> writer(buffer); | |||
writer.SetIndent('\t', 1); | writer.SetIndent('\t', 1); | |||
Reader reader; | Reader reader; | |||
StringStream s(kJson); | StringStream s(kJson); | |||
reader.Parse(s, writer); | reader.Parse(s, writer); | |||
EXPECT_STREQ( | EXPECT_STREQ( | |||
"{\n" | "{\n" | |||
"\t\"hello\": \"world\",\n" | "\t\"hello\": \"world\",\n" | |||
skipping to change at line 152 | skipping to change at line 175 | |||
char buffer[16]; | char buffer[16]; | |||
FileWriteStream os(fp, buffer, sizeof(buffer)); | FileWriteStream os(fp, buffer, sizeof(buffer)); | |||
PrettyWriter<FileWriteStream> writer(os); | PrettyWriter<FileWriteStream> writer(os); | |||
Reader reader; | Reader reader; | |||
StringStream s(kJson); | StringStream s(kJson); | |||
reader.Parse(s, writer); | reader.Parse(s, writer); | |||
fclose(fp); | fclose(fp); | |||
fp = fopen(filename, "rb"); | fp = fopen(filename, "rb"); | |||
fseek(fp, 0, SEEK_END); | fseek(fp, 0, SEEK_END); | |||
size_t size = (size_t)ftell(fp); | size_t size = static_cast<size_t>(ftell(fp)); | |||
fseek(fp, 0, SEEK_SET); | fseek(fp, 0, SEEK_SET); | |||
char* json = (char*)malloc(size + 1); | char* json = static_cast<char*>(malloc(size + 1)); | |||
size_t readLength = fread(json, 1, size, fp); | size_t readLength = fread(json, 1, size, fp); | |||
json[readLength] = '\0'; | json[readLength] = '\0'; | |||
fclose(fp); | fclose(fp); | |||
remove(filename); | remove(filename); | |||
EXPECT_STREQ(kPrettyJson, json); | EXPECT_STREQ(kPrettyJson, json); | |||
free(json); | free(json); | |||
} | } | |||
TEST(PrettyWriter, RawValue) { | ||||
StringBuffer buffer; | ||||
PrettyWriter<StringBuffer> writer(buffer); | ||||
writer.StartObject(); | ||||
writer.Key("a"); | ||||
writer.Int(1); | ||||
writer.Key("raw"); | ||||
const char json[] = "[\"Hello\\nWorld\", 123.456]"; | ||||
writer.RawValue(json, strlen(json), kArrayType); | ||||
writer.EndObject(); | ||||
EXPECT_TRUE(writer.IsComplete()); | ||||
EXPECT_STREQ( | ||||
"{\n" | ||||
" \"a\": 1,\n" | ||||
" \"raw\": [\"Hello\\nWorld\", 123.456]\n" // no indentation within r | ||||
aw value | ||||
"}", | ||||
buffer.GetString()); | ||||
} | ||||
End of changes. 5 change blocks. | ||||
2 lines changed or deleted | 25 lines changed or added |