Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(580)

Side by Side Diff: base/json/json_writer_unittest.cc

Issue 2476493003: Remove FundamentalValue
Patch Set: Fix Created 4 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « base/json/json_parser.cc ('k') | base/trace_event/trace_event_argument_unittest.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "base/json/json_writer.h" 5 #include "base/json/json_writer.h"
6 6
7 #include "base/memory/ptr_util.h" 7 #include "base/memory/ptr_util.h"
8 #include "base/values.h" 8 #include "base/values.h"
9 #include "build/build_config.h" 9 #include "build/build_config.h"
10 #include "testing/gtest/include/gtest/gtest.h" 10 #include "testing/gtest/include/gtest/gtest.h"
11 11
12 namespace base { 12 namespace base {
13 13
14 TEST(JSONWriterTest, BasicTypes) { 14 TEST(JSONWriterTest, BasicTypes) {
15 std::string output_js; 15 std::string output_js;
16 16
17 // Test null. 17 // Test null.
18 EXPECT_TRUE(JSONWriter::Write(*Value::CreateNullValue(), &output_js)); 18 EXPECT_TRUE(JSONWriter::Write(*Value::CreateNullValue(), &output_js));
19 EXPECT_EQ("null", output_js); 19 EXPECT_EQ("null", output_js);
20 20
21 // Test empty dict. 21 // Test empty dict.
22 EXPECT_TRUE(JSONWriter::Write(DictionaryValue(), &output_js)); 22 EXPECT_TRUE(JSONWriter::Write(DictionaryValue(), &output_js));
23 EXPECT_EQ("{}", output_js); 23 EXPECT_EQ("{}", output_js);
24 24
25 // Test empty list. 25 // Test empty list.
26 EXPECT_TRUE(JSONWriter::Write(ListValue(), &output_js)); 26 EXPECT_TRUE(JSONWriter::Write(ListValue(), &output_js));
27 EXPECT_EQ("[]", output_js); 27 EXPECT_EQ("[]", output_js);
28 28
29 // Test integer values. 29 // Test integer values.
30 EXPECT_TRUE(JSONWriter::Write(FundamentalValue(42), &output_js)); 30 EXPECT_TRUE(JSONWriter::Write(Value(42), &output_js));
31 EXPECT_EQ("42", output_js); 31 EXPECT_EQ("42", output_js);
32 32
33 // Test boolean values. 33 // Test boolean values.
34 EXPECT_TRUE(JSONWriter::Write(FundamentalValue(true), &output_js)); 34 EXPECT_TRUE(JSONWriter::Write(Value(true), &output_js));
35 EXPECT_EQ("true", output_js); 35 EXPECT_EQ("true", output_js);
36 36
37 // Test Real values should always have a decimal or an 'e'. 37 // Test Real values should always have a decimal or an 'e'.
38 EXPECT_TRUE(JSONWriter::Write(FundamentalValue(1.0), &output_js)); 38 EXPECT_TRUE(JSONWriter::Write(Value(1.0), &output_js));
39 EXPECT_EQ("1.0", output_js); 39 EXPECT_EQ("1.0", output_js);
40 40
41 // Test Real values in the the range (-1, 1) must have leading zeros 41 // Test Real values in the the range (-1, 1) must have leading zeros
42 EXPECT_TRUE(JSONWriter::Write(FundamentalValue(0.2), &output_js)); 42 EXPECT_TRUE(JSONWriter::Write(Value(0.2), &output_js));
43 EXPECT_EQ("0.2", output_js); 43 EXPECT_EQ("0.2", output_js);
44 44
45 // Test Real values in the the range (-1, 1) must have leading zeros 45 // Test Real values in the the range (-1, 1) must have leading zeros
46 EXPECT_TRUE(JSONWriter::Write(FundamentalValue(-0.8), &output_js)); 46 EXPECT_TRUE(JSONWriter::Write(Value(-0.8), &output_js));
47 EXPECT_EQ("-0.8", output_js); 47 EXPECT_EQ("-0.8", output_js);
48 48
49 // Test String values. 49 // Test String values.
50 EXPECT_TRUE(JSONWriter::Write(StringValue("foo"), &output_js)); 50 EXPECT_TRUE(JSONWriter::Write(StringValue("foo"), &output_js));
51 EXPECT_EQ("\"foo\"", output_js); 51 EXPECT_EQ("\"foo\"", output_js);
52 } 52 }
53 53
54 TEST(JSONWriterTest, NestedTypes) { 54 TEST(JSONWriterTest, NestedTypes) {
55 std::string output_js; 55 std::string output_js;
56 56
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after
112 // Binary values should return errors unless suppressed via the 112 // Binary values should return errors unless suppressed via the
113 // OPTIONS_OMIT_BINARY_VALUES flag. 113 // OPTIONS_OMIT_BINARY_VALUES flag.
114 std::unique_ptr<Value> root(BinaryValue::CreateWithCopiedBuffer("asdf", 4)); 114 std::unique_ptr<Value> root(BinaryValue::CreateWithCopiedBuffer("asdf", 4));
115 EXPECT_FALSE(JSONWriter::Write(*root, &output_js)); 115 EXPECT_FALSE(JSONWriter::Write(*root, &output_js));
116 EXPECT_TRUE(JSONWriter::WriteWithOptions( 116 EXPECT_TRUE(JSONWriter::WriteWithOptions(
117 *root, JSONWriter::OPTIONS_OMIT_BINARY_VALUES, &output_js)); 117 *root, JSONWriter::OPTIONS_OMIT_BINARY_VALUES, &output_js));
118 EXPECT_TRUE(output_js.empty()); 118 EXPECT_TRUE(output_js.empty());
119 119
120 ListValue binary_list; 120 ListValue binary_list;
121 binary_list.Append(BinaryValue::CreateWithCopiedBuffer("asdf", 4)); 121 binary_list.Append(BinaryValue::CreateWithCopiedBuffer("asdf", 4));
122 binary_list.Append(MakeUnique<FundamentalValue>(5)); 122 binary_list.Append(MakeUnique<Value>(5));
123 binary_list.Append(BinaryValue::CreateWithCopiedBuffer("asdf", 4)); 123 binary_list.Append(BinaryValue::CreateWithCopiedBuffer("asdf", 4));
124 binary_list.Append(MakeUnique<FundamentalValue>(2)); 124 binary_list.Append(MakeUnique<Value>(2));
125 binary_list.Append(BinaryValue::CreateWithCopiedBuffer("asdf", 4)); 125 binary_list.Append(BinaryValue::CreateWithCopiedBuffer("asdf", 4));
126 EXPECT_FALSE(JSONWriter::Write(binary_list, &output_js)); 126 EXPECT_FALSE(JSONWriter::Write(binary_list, &output_js));
127 EXPECT_TRUE(JSONWriter::WriteWithOptions( 127 EXPECT_TRUE(JSONWriter::WriteWithOptions(
128 binary_list, JSONWriter::OPTIONS_OMIT_BINARY_VALUES, &output_js)); 128 binary_list, JSONWriter::OPTIONS_OMIT_BINARY_VALUES, &output_js));
129 EXPECT_EQ("[5,2]", output_js); 129 EXPECT_EQ("[5,2]", output_js);
130 130
131 DictionaryValue binary_dict; 131 DictionaryValue binary_dict;
132 binary_dict.Set("a", BinaryValue::CreateWithCopiedBuffer("asdf", 4)); 132 binary_dict.Set("a", BinaryValue::CreateWithCopiedBuffer("asdf", 4));
133 binary_dict.SetInteger("b", 5); 133 binary_dict.SetInteger("b", 5);
134 binary_dict.Set("c", BinaryValue::CreateWithCopiedBuffer("asdf", 4)); 134 binary_dict.Set("c", BinaryValue::CreateWithCopiedBuffer("asdf", 4));
135 binary_dict.SetInteger("d", 2); 135 binary_dict.SetInteger("d", 2);
136 binary_dict.Set("e", BinaryValue::CreateWithCopiedBuffer("asdf", 4)); 136 binary_dict.Set("e", BinaryValue::CreateWithCopiedBuffer("asdf", 4));
137 EXPECT_FALSE(JSONWriter::Write(binary_dict, &output_js)); 137 EXPECT_FALSE(JSONWriter::Write(binary_dict, &output_js));
138 EXPECT_TRUE(JSONWriter::WriteWithOptions( 138 EXPECT_TRUE(JSONWriter::WriteWithOptions(
139 binary_dict, JSONWriter::OPTIONS_OMIT_BINARY_VALUES, &output_js)); 139 binary_dict, JSONWriter::OPTIONS_OMIT_BINARY_VALUES, &output_js));
140 EXPECT_EQ("{\"b\":5,\"d\":2}", output_js); 140 EXPECT_EQ("{\"b\":5,\"d\":2}", output_js);
141 } 141 }
142 142
143 TEST(JSONWriterTest, DoublesAsInts) { 143 TEST(JSONWriterTest, DoublesAsInts) {
144 std::string output_js; 144 std::string output_js;
145 145
146 // Test allowing a double with no fractional part to be written as an integer. 146 // Test allowing a double with no fractional part to be written as an integer.
147 FundamentalValue double_value(1e10); 147 Value double_value(1e10);
148 EXPECT_TRUE(JSONWriter::WriteWithOptions( 148 EXPECT_TRUE(JSONWriter::WriteWithOptions(
149 double_value, JSONWriter::OPTIONS_OMIT_DOUBLE_TYPE_PRESERVATION, 149 double_value, JSONWriter::OPTIONS_OMIT_DOUBLE_TYPE_PRESERVATION,
150 &output_js)); 150 &output_js));
151 EXPECT_EQ("10000000000", output_js); 151 EXPECT_EQ("10000000000", output_js);
152 } 152 }
153 153
154 } // namespace base 154 } // namespace base
OLDNEW
« no previous file with comments | « base/json/json_parser.cc ('k') | base/trace_event/trace_event_argument_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698