Index: third_party/protobuf/src/google/protobuf/util/internal/json_objectwriter_test.cc |
diff --git a/third_party/protobuf/src/google/protobuf/util/internal/json_objectwriter_test.cc b/third_party/protobuf/src/google/protobuf/util/internal/json_objectwriter_test.cc |
deleted file mode 100644 |
index df9a133e02ca204a148f3beccd33eef60a6feb51..0000000000000000000000000000000000000000 |
--- a/third_party/protobuf/src/google/protobuf/util/internal/json_objectwriter_test.cc |
+++ /dev/null |
@@ -1,285 +0,0 @@ |
-// Protocol Buffers - Google's data interchange format |
-// Copyright 2008 Google Inc. All rights reserved. |
-// https://developers.google.com/protocol-buffers/ |
-// |
-// Redistribution and use in source and binary forms, with or without |
-// modification, are permitted provided that the following conditions are |
-// met: |
-// |
-// * Redistributions of source code must retain the above copyright |
-// notice, this list of conditions and the following disclaimer. |
-// * Redistributions in binary form must reproduce the above |
-// copyright notice, this list of conditions and the following disclaimer |
-// in the documentation and/or other materials provided with the |
-// distribution. |
-// * Neither the name of Google Inc. nor the names of its |
-// contributors may be used to endorse or promote products derived from |
-// this software without specific prior written permission. |
-// |
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS |
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT |
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR |
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT |
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, |
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT |
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, |
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY |
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
- |
-#include <google/protobuf/util/internal/json_objectwriter.h> |
- |
-#include <google/protobuf/io/zero_copy_stream_impl_lite.h> |
-#include <google/protobuf/util/internal/utility.h> |
-#include <gtest/gtest.h> |
- |
-namespace google { |
-namespace protobuf { |
-namespace util { |
-namespace converter { |
- |
-using google::protobuf::io::CodedOutputStream; |
-using google::protobuf::io::StringOutputStream; |
- |
-class JsonObjectWriterTest : public ::testing::Test { |
- protected: |
- JsonObjectWriterTest() |
- : str_stream_(new StringOutputStream(&output_)), |
- out_stream_(new CodedOutputStream(str_stream_)), |
- ow_(NULL) {} |
- |
- virtual ~JsonObjectWriterTest() { |
- delete ow_; |
- delete out_stream_; |
- delete str_stream_; |
- } |
- |
- string output_; |
- StringOutputStream* const str_stream_; |
- CodedOutputStream* const out_stream_; |
- ObjectWriter* ow_; |
-}; |
- |
-TEST_F(JsonObjectWriterTest, EmptyRootObject) { |
- ow_ = new JsonObjectWriter("", out_stream_); |
- ow_->StartObject("")->EndObject(); |
- EXPECT_EQ("{}", output_.substr(0, out_stream_->ByteCount())); |
-} |
- |
-TEST_F(JsonObjectWriterTest, EmptyObject) { |
- ow_ = new JsonObjectWriter("", out_stream_); |
- ow_->StartObject("") |
- ->RenderString("test", "value") |
- ->StartObject("empty") |
- ->EndObject() |
- ->EndObject(); |
- EXPECT_EQ("{\"test\":\"value\",\"empty\":{}}", |
- output_.substr(0, out_stream_->ByteCount())); |
-} |
- |
-TEST_F(JsonObjectWriterTest, EmptyRootList) { |
- ow_ = new JsonObjectWriter("", out_stream_); |
- ow_->StartList("")->EndList(); |
- EXPECT_EQ("[]", output_.substr(0, out_stream_->ByteCount())); |
-} |
- |
-TEST_F(JsonObjectWriterTest, EmptyList) { |
- ow_ = new JsonObjectWriter("", out_stream_); |
- ow_->StartObject("") |
- ->RenderString("test", "value") |
- ->StartList("empty") |
- ->EndList() |
- ->EndObject(); |
- EXPECT_EQ("{\"test\":\"value\",\"empty\":[]}", |
- output_.substr(0, out_stream_->ByteCount())); |
-} |
- |
-TEST_F(JsonObjectWriterTest, ObjectInObject) { |
- ow_ = new JsonObjectWriter("", out_stream_); |
- ow_->StartObject("") |
- ->StartObject("nested") |
- ->RenderString("field", "value") |
- ->EndObject() |
- ->EndObject(); |
- EXPECT_EQ("{\"nested\":{\"field\":\"value\"}}", |
- output_.substr(0, out_stream_->ByteCount())); |
-} |
- |
-TEST_F(JsonObjectWriterTest, ListInObject) { |
- ow_ = new JsonObjectWriter("", out_stream_); |
- ow_->StartObject("") |
- ->StartList("nested") |
- ->RenderString("", "value") |
- ->EndList() |
- ->EndObject(); |
- EXPECT_EQ("{\"nested\":[\"value\"]}", |
- output_.substr(0, out_stream_->ByteCount())); |
-} |
- |
-TEST_F(JsonObjectWriterTest, ObjectInList) { |
- ow_ = new JsonObjectWriter("", out_stream_); |
- ow_->StartList("") |
- ->StartObject("") |
- ->RenderString("field", "value") |
- ->EndObject() |
- ->EndList(); |
- EXPECT_EQ("[{\"field\":\"value\"}]", |
- output_.substr(0, out_stream_->ByteCount())); |
-} |
- |
-TEST_F(JsonObjectWriterTest, ListInList) { |
- ow_ = new JsonObjectWriter("", out_stream_); |
- ow_->StartList("") |
- ->StartList("") |
- ->RenderString("", "value") |
- ->EndList() |
- ->EndList(); |
- EXPECT_EQ("[[\"value\"]]", output_.substr(0, out_stream_->ByteCount())); |
-} |
- |
-TEST_F(JsonObjectWriterTest, RenderPrimitives) { |
- ow_ = new JsonObjectWriter("", out_stream_); |
- ow_->StartObject("") |
- ->RenderBool("bool", true) |
- ->RenderDouble("double", std::numeric_limits<double>::max()) |
- ->RenderFloat("float", std::numeric_limits<float>::max()) |
- ->RenderInt32("int", std::numeric_limits<int32>::min()) |
- ->RenderInt64("long", std::numeric_limits<int64>::min()) |
- ->RenderBytes("bytes", "abracadabra") |
- ->RenderString("string", "string") |
- ->RenderBytes("emptybytes", "") |
- ->RenderString("emptystring", string()) |
- ->EndObject(); |
- EXPECT_EQ( |
- "{\"bool\":true," |
- "\"double\":" + ValueAsString<double>(1.7976931348623157e+308) + "," |
- "\"float\":" + ValueAsString<float>(3.4028235e+38) + "," |
- "\"int\":-2147483648," |
- "\"long\":\"-9223372036854775808\"," |
- "\"bytes\":\"YWJyYWNhZGFicmE=\"," |
- "\"string\":\"string\"," |
- "\"emptybytes\":\"\"," |
- "\"emptystring\":\"\"}", |
- output_.substr(0, out_stream_->ByteCount())); |
-} |
- |
-TEST_F(JsonObjectWriterTest, BytesEncodesAsWebSafeBase64) { |
- string s; |
- s.push_back('\377'); |
- s.push_back('\357'); |
- ow_ = new JsonObjectWriter("", out_stream_); |
- ow_->StartObject("")->RenderBytes("bytes", s)->EndObject(); |
- // Non-web-safe would encode this as "/+8=" |
- EXPECT_EQ("{\"bytes\":\"_-8=\"}", |
- output_.substr(0, out_stream_->ByteCount())); |
-} |
- |
-TEST_F(JsonObjectWriterTest, PrettyPrintList) { |
- ow_ = new JsonObjectWriter(" ", out_stream_); |
- ow_->StartObject("") |
- ->StartList("items") |
- ->RenderString("", "item1") |
- ->RenderString("", "item2") |
- ->RenderString("", "item3") |
- ->EndList() |
- ->StartList("empty") |
- ->EndList() |
- ->EndObject(); |
- EXPECT_EQ( |
- "{\n" |
- " \"items\": [\n" |
- " \"item1\",\n" |
- " \"item2\",\n" |
- " \"item3\"\n" |
- " ],\n" |
- " \"empty\": []\n" |
- "}\n", |
- output_.substr(0, out_stream_->ByteCount())); |
-} |
- |
-TEST_F(JsonObjectWriterTest, PrettyPrintObject) { |
- ow_ = new JsonObjectWriter(" ", out_stream_); |
- ow_->StartObject("") |
- ->StartObject("items") |
- ->RenderString("key1", "item1") |
- ->RenderString("key2", "item2") |
- ->RenderString("key3", "item3") |
- ->EndObject() |
- ->StartObject("empty") |
- ->EndObject() |
- ->EndObject(); |
- EXPECT_EQ( |
- "{\n" |
- " \"items\": {\n" |
- " \"key1\": \"item1\",\n" |
- " \"key2\": \"item2\",\n" |
- " \"key3\": \"item3\"\n" |
- " },\n" |
- " \"empty\": {}\n" |
- "}\n", |
- output_.substr(0, out_stream_->ByteCount())); |
-} |
- |
-TEST_F(JsonObjectWriterTest, PrettyPrintEmptyObjectInEmptyList) { |
- ow_ = new JsonObjectWriter(" ", out_stream_); |
- ow_->StartObject("") |
- ->StartList("list") |
- ->StartObject("") |
- ->EndObject() |
- ->EndList() |
- ->EndObject(); |
- EXPECT_EQ( |
- "{\n" |
- " \"list\": [\n" |
- " {}\n" |
- " ]\n" |
- "}\n", |
- output_.substr(0, out_stream_->ByteCount())); |
-} |
- |
-TEST_F(JsonObjectWriterTest, PrettyPrintDoubleIndent) { |
- ow_ = new JsonObjectWriter(" ", out_stream_); |
- ow_->StartObject("") |
- ->RenderBool("bool", true) |
- ->RenderInt32("int", 42) |
- ->EndObject(); |
- EXPECT_EQ( |
- "{\n" |
- " \"bool\": true,\n" |
- " \"int\": 42\n" |
- "}\n", |
- output_.substr(0, out_stream_->ByteCount())); |
-} |
- |
-TEST_F(JsonObjectWriterTest, StringsEscapedAndEnclosedInDoubleQuotes) { |
- ow_ = new JsonObjectWriter("", out_stream_); |
- ow_->StartObject("")->RenderString("string", "'<>&\\\"\r\n")->EndObject(); |
- EXPECT_EQ("{\"string\":\"'\\u003c\\u003e&\\\\\\\"\\r\\n\"}", |
- output_.substr(0, out_stream_->ByteCount())); |
-} |
- |
-TEST_F(JsonObjectWriterTest, Stringification) { |
- ow_ = new JsonObjectWriter("", out_stream_); |
- ow_->StartObject("") |
- ->RenderDouble("double_nan", std::numeric_limits<double>::quiet_NaN()) |
- ->RenderFloat("float_nan", std::numeric_limits<float>::quiet_NaN()) |
- ->RenderDouble("double_pos", std::numeric_limits<double>::infinity()) |
- ->RenderFloat("float_pos", std::numeric_limits<float>::infinity()) |
- ->RenderDouble("double_neg", -std::numeric_limits<double>::infinity()) |
- ->RenderFloat("float_neg", -std::numeric_limits<float>::infinity()) |
- ->EndObject(); |
- EXPECT_EQ( |
- "{\"double_nan\":\"NaN\"," |
- "\"float_nan\":\"NaN\"," |
- "\"double_pos\":\"Infinity\"," |
- "\"float_pos\":\"Infinity\"," |
- "\"double_neg\":\"-Infinity\"," |
- "\"float_neg\":\"-Infinity\"}", |
- output_.substr(0, out_stream_->ByteCount())); |
-} |
- |
-} // namespace converter |
-} // namespace util |
-} // namespace protobuf |
-} // namespace google |