| 124 | // UTF8 -> TargetEncoding -> UTF8 |
| 125 | template <typename TargetEncoding> |
| 126 | void TestTranscode(const char* json) { |
| 127 | StringStream s(json); |
| 128 | GenericStringBuffer<TargetEncoding> buffer; |
| 129 | Writer<GenericStringBuffer<TargetEncoding>, UTF8<>, TargetEncoding> writer(buffer); |
| 130 | Reader reader; |
| 131 | reader.Parse(s, writer); |
| 132 | |
| 133 | StringBuffer buffer2; |
| 134 | Writer<StringBuffer> writer2(buffer2); |
| 135 | GenericReader<TargetEncoding, UTF8<> > reader2; |
| 136 | GenericStringStream<TargetEncoding> s2(buffer.GetString()); |
| 137 | reader2.Parse(s2, writer2); |
| 138 | |
| 139 | EXPECT_STREQ(json, buffer2.GetString()); |
| 140 | } |
| 141 | |
| 142 | TEST(Writer, Transcode) { |
| 143 | const char json[] = "{\"hello\":\"world\",\"t\":true,\"f\":false,\"n\":null,\"i\":123,\"pi\":3.1416,\"a\":[1,2,3],\"dollar\":\"\x24\",\"cents\":\"\xC2\xA2\",\"euro\":\"\xE2\x82\xAC\",\"gclef\":\"\xF0\x9D\x84\x9E\"}"; |