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

Side by Side Diff: tools/json_schema_compiler/test/arrays_unittest.cc

Issue 1869503004: Convert //tools to use std::unique_ptr (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: rebase, change iwyu fixes for converted directories to include <memory> Created 4 years, 8 months 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
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 "tools/json_schema_compiler/test/arrays.h" 5 #include "tools/json_schema_compiler/test/arrays.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 8
9 #include <memory>
10
9 #include "base/macros.h" 11 #include "base/macros.h"
10 #include "testing/gtest/include/gtest/gtest.h" 12 #include "testing/gtest/include/gtest/gtest.h"
11 #include "tools/json_schema_compiler/test/enums.h" 13 #include "tools/json_schema_compiler/test/enums.h"
12 14
13 using namespace test::api::arrays; 15 using namespace test::api::arrays;
14 16
15 namespace { 17 namespace {
16 18
17 // TODO(calamity): Change to AppendString etc once kalman's patch goes through 19 // TODO(calamity): Change to AppendString etc once kalman's patch goes through
18 static scoped_ptr<base::DictionaryValue> CreateBasicArrayTypeDictionary() { 20 static std::unique_ptr<base::DictionaryValue> CreateBasicArrayTypeDictionary() {
19 base::DictionaryValue* value = new base::DictionaryValue(); 21 std::unique_ptr<base::DictionaryValue> value(new base::DictionaryValue());
20 base::ListValue* strings_value = new base::ListValue(); 22 base::ListValue* strings_value = new base::ListValue();
21 strings_value->Append(new base::StringValue("a")); 23 strings_value->Append(new base::StringValue("a"));
22 strings_value->Append(new base::StringValue("b")); 24 strings_value->Append(new base::StringValue("b"));
23 strings_value->Append(new base::StringValue("c")); 25 strings_value->Append(new base::StringValue("c"));
24 strings_value->Append(new base::StringValue("it's easy as")); 26 strings_value->Append(new base::StringValue("it's easy as"));
25 base::ListValue* integers_value = new base::ListValue(); 27 base::ListValue* integers_value = new base::ListValue();
26 integers_value->Append(new base::FundamentalValue(1)); 28 integers_value->Append(new base::FundamentalValue(1));
27 integers_value->Append(new base::FundamentalValue(2)); 29 integers_value->Append(new base::FundamentalValue(2));
28 integers_value->Append(new base::FundamentalValue(3)); 30 integers_value->Append(new base::FundamentalValue(3));
29 base::ListValue* booleans_value = new base::ListValue(); 31 base::ListValue* booleans_value = new base::ListValue();
30 booleans_value->Append(new base::FundamentalValue(false)); 32 booleans_value->Append(new base::FundamentalValue(false));
31 booleans_value->Append(new base::FundamentalValue(true)); 33 booleans_value->Append(new base::FundamentalValue(true));
32 base::ListValue* numbers_value = new base::ListValue(); 34 base::ListValue* numbers_value = new base::ListValue();
33 numbers_value->Append(new base::FundamentalValue(6.1)); 35 numbers_value->Append(new base::FundamentalValue(6.1));
34 value->Set("numbers", numbers_value); 36 value->Set("numbers", numbers_value);
35 value->Set("booleans", booleans_value); 37 value->Set("booleans", booleans_value);
36 value->Set("strings", strings_value); 38 value->Set("strings", strings_value);
37 value->Set("integers", integers_value); 39 value->Set("integers", integers_value);
38 return scoped_ptr<base::DictionaryValue>(value); 40 return value;
39 } 41 }
40 42
41 static base::Value* CreateItemValue(int val) { 43 static base::Value* CreateItemValue(int val) {
42 base::DictionaryValue* value(new base::DictionaryValue()); 44 base::DictionaryValue* value(new base::DictionaryValue());
43 value->Set("val", new base::FundamentalValue(val)); 45 value->Set("val", new base::FundamentalValue(val));
44 return value; 46 return value;
45 } 47 }
46 48
47 } // namespace 49 } // namespace
48 50
49 TEST(JsonSchemaCompilerArrayTest, BasicArrayType) { 51 TEST(JsonSchemaCompilerArrayTest, BasicArrayType) {
50 { 52 {
51 scoped_ptr<base::DictionaryValue> value = CreateBasicArrayTypeDictionary(); 53 std::unique_ptr<base::DictionaryValue> value =
52 scoped_ptr<BasicArrayType> basic_array_type(new BasicArrayType()); 54 CreateBasicArrayTypeDictionary();
55 std::unique_ptr<BasicArrayType> basic_array_type(new BasicArrayType());
53 ASSERT_TRUE(BasicArrayType::Populate(*value, basic_array_type.get())); 56 ASSERT_TRUE(BasicArrayType::Populate(*value, basic_array_type.get()));
54 EXPECT_TRUE(value->Equals(basic_array_type->ToValue().get())); 57 EXPECT_TRUE(value->Equals(basic_array_type->ToValue().get()));
55 } 58 }
56 } 59 }
57 60
58 TEST(JsonSchemaCompilerArrayTest, EnumArrayReference) { 61 TEST(JsonSchemaCompilerArrayTest, EnumArrayReference) {
59 // { "types": ["one", "two", "three"] } 62 // { "types": ["one", "two", "three"] }
60 base::ListValue* types = new base::ListValue(); 63 base::ListValue* types = new base::ListValue();
61 types->AppendString("one"); 64 types->AppendString("one");
62 types->AppendString("two"); 65 types->AppendString("two");
63 types->AppendString("three"); 66 types->AppendString("three");
64 base::DictionaryValue value; 67 base::DictionaryValue value;
65 value.Set("types", types); 68 value.Set("types", types);
66 69
67 EnumArrayReference enum_array_reference; 70 EnumArrayReference enum_array_reference;
68 71
69 // Test Populate. 72 // Test Populate.
70 ASSERT_TRUE(EnumArrayReference::Populate(value, &enum_array_reference)); 73 ASSERT_TRUE(EnumArrayReference::Populate(value, &enum_array_reference));
71 74
72 Enumeration expected_types[] = {ENUMERATION_ONE, ENUMERATION_TWO, 75 Enumeration expected_types[] = {ENUMERATION_ONE, ENUMERATION_TWO,
73 ENUMERATION_THREE}; 76 ENUMERATION_THREE};
74 EXPECT_EQ(std::vector<Enumeration>( 77 EXPECT_EQ(std::vector<Enumeration>(
75 expected_types, expected_types + arraysize(expected_types)), 78 expected_types, expected_types + arraysize(expected_types)),
76 enum_array_reference.types); 79 enum_array_reference.types);
77 80
78 // Test ToValue. 81 // Test ToValue.
79 scoped_ptr<base::Value> as_value(enum_array_reference.ToValue()); 82 std::unique_ptr<base::Value> as_value(enum_array_reference.ToValue());
80 EXPECT_TRUE(value.Equals(as_value.get())) << value << " != " << *as_value; 83 EXPECT_TRUE(value.Equals(as_value.get())) << value << " != " << *as_value;
81 } 84 }
82 85
83 TEST(JsonSchemaCompilerArrayTest, EnumArrayMixed) { 86 TEST(JsonSchemaCompilerArrayTest, EnumArrayMixed) {
84 // { "types": ["one", "two", "three"] } 87 // { "types": ["one", "two", "three"] }
85 base::ListValue* infile_enums = new base::ListValue(); 88 base::ListValue* infile_enums = new base::ListValue();
86 infile_enums->AppendString("one"); 89 infile_enums->AppendString("one");
87 infile_enums->AppendString("two"); 90 infile_enums->AppendString("two");
88 infile_enums->AppendString("three"); 91 infile_enums->AppendString("three");
89 92
(...skipping 20 matching lines...) Expand all
110 113
111 test::api::enums::Enumeration expected_external_types[] = { 114 test::api::enums::Enumeration expected_external_types[] = {
112 test::api::enums::ENUMERATION_ONE, test::api::enums::ENUMERATION_TWO, 115 test::api::enums::ENUMERATION_ONE, test::api::enums::ENUMERATION_TWO,
113 test::api::enums::ENUMERATION_THREE}; 116 test::api::enums::ENUMERATION_THREE};
114 EXPECT_EQ(std::vector<test::api::enums::Enumeration>( 117 EXPECT_EQ(std::vector<test::api::enums::Enumeration>(
115 expected_external_types, 118 expected_external_types,
116 expected_external_types + arraysize(expected_external_types)), 119 expected_external_types + arraysize(expected_external_types)),
117 enum_array_mixed.external_enums); 120 enum_array_mixed.external_enums);
118 121
119 // Test ToValue. 122 // Test ToValue.
120 scoped_ptr<base::Value> as_value(enum_array_mixed.ToValue()); 123 std::unique_ptr<base::Value> as_value(enum_array_mixed.ToValue());
121 EXPECT_TRUE(value.Equals(as_value.get())) << value << " != " << *as_value; 124 EXPECT_TRUE(value.Equals(as_value.get())) << value << " != " << *as_value;
122 } 125 }
123 126
124 TEST(JsonSchemaCompilerArrayTest, OptionalEnumArrayType) { 127 TEST(JsonSchemaCompilerArrayTest, OptionalEnumArrayType) {
125 { 128 {
126 std::vector<Enumeration> enums; 129 std::vector<Enumeration> enums;
127 enums.push_back(ENUMERATION_ONE); 130 enums.push_back(ENUMERATION_ONE);
128 enums.push_back(ENUMERATION_TWO); 131 enums.push_back(ENUMERATION_TWO);
129 enums.push_back(ENUMERATION_THREE); 132 enums.push_back(ENUMERATION_THREE);
130 133
131 scoped_ptr<base::ListValue> types(new base::ListValue()); 134 std::unique_ptr<base::ListValue> types(new base::ListValue());
132 for (size_t i = 0; i < enums.size(); ++i) 135 for (size_t i = 0; i < enums.size(); ++i)
133 types->Append(new base::StringValue(ToString(enums[i]))); 136 types->Append(new base::StringValue(ToString(enums[i])));
134 137
135 base::DictionaryValue value; 138 base::DictionaryValue value;
136 value.Set("types", types.release()); 139 value.Set("types", types.release());
137 140
138 OptionalEnumArrayType enum_array_type; 141 OptionalEnumArrayType enum_array_type;
139 ASSERT_TRUE(OptionalEnumArrayType::Populate(value, &enum_array_type)); 142 ASSERT_TRUE(OptionalEnumArrayType::Populate(value, &enum_array_type));
140 EXPECT_EQ(enums, *enum_array_type.types); 143 EXPECT_EQ(enums, *enum_array_type.types);
141 } 144 }
142 { 145 {
143 base::DictionaryValue value; 146 base::DictionaryValue value;
144 scoped_ptr<base::ListValue> enum_array(new base::ListValue()); 147 std::unique_ptr<base::ListValue> enum_array(new base::ListValue());
145 enum_array->Append(new base::StringValue("invalid")); 148 enum_array->Append(new base::StringValue("invalid"));
146 149
147 value.Set("types", enum_array.release()); 150 value.Set("types", enum_array.release());
148 OptionalEnumArrayType enum_array_type; 151 OptionalEnumArrayType enum_array_type;
149 ASSERT_FALSE(OptionalEnumArrayType::Populate(value, &enum_array_type)); 152 ASSERT_FALSE(OptionalEnumArrayType::Populate(value, &enum_array_type));
150 EXPECT_TRUE(enum_array_type.types->empty()); 153 EXPECT_TRUE(enum_array_type.types->empty());
151 } 154 }
152 } 155 }
153 156
154 TEST(JsonSchemaCompilerArrayTest, RefArrayType) { 157 TEST(JsonSchemaCompilerArrayTest, RefArrayType) {
155 { 158 {
156 scoped_ptr<base::DictionaryValue> value(new base::DictionaryValue()); 159 std::unique_ptr<base::DictionaryValue> value(new base::DictionaryValue());
157 scoped_ptr<base::ListValue> ref_array(new base::ListValue()); 160 std::unique_ptr<base::ListValue> ref_array(new base::ListValue());
158 ref_array->Append(CreateItemValue(1)); 161 ref_array->Append(CreateItemValue(1));
159 ref_array->Append(CreateItemValue(2)); 162 ref_array->Append(CreateItemValue(2));
160 ref_array->Append(CreateItemValue(3)); 163 ref_array->Append(CreateItemValue(3));
161 value->Set("refs", ref_array.release()); 164 value->Set("refs", ref_array.release());
162 scoped_ptr<RefArrayType> ref_array_type(new RefArrayType()); 165 std::unique_ptr<RefArrayType> ref_array_type(new RefArrayType());
163 EXPECT_TRUE(RefArrayType::Populate(*value, ref_array_type.get())); 166 EXPECT_TRUE(RefArrayType::Populate(*value, ref_array_type.get()));
164 ASSERT_EQ(3u, ref_array_type->refs.size()); 167 ASSERT_EQ(3u, ref_array_type->refs.size());
165 EXPECT_EQ(1, ref_array_type->refs[0].val); 168 EXPECT_EQ(1, ref_array_type->refs[0].val);
166 EXPECT_EQ(2, ref_array_type->refs[1].val); 169 EXPECT_EQ(2, ref_array_type->refs[1].val);
167 EXPECT_EQ(3, ref_array_type->refs[2].val); 170 EXPECT_EQ(3, ref_array_type->refs[2].val);
168 } 171 }
169 { 172 {
170 scoped_ptr<base::DictionaryValue> value(new base::DictionaryValue()); 173 std::unique_ptr<base::DictionaryValue> value(new base::DictionaryValue());
171 scoped_ptr<base::ListValue> not_ref_array(new base::ListValue()); 174 std::unique_ptr<base::ListValue> not_ref_array(new base::ListValue());
172 not_ref_array->Append(CreateItemValue(1)); 175 not_ref_array->Append(CreateItemValue(1));
173 not_ref_array->Append(new base::FundamentalValue(3)); 176 not_ref_array->Append(new base::FundamentalValue(3));
174 value->Set("refs", not_ref_array.release()); 177 value->Set("refs", not_ref_array.release());
175 scoped_ptr<RefArrayType> ref_array_type(new RefArrayType()); 178 std::unique_ptr<RefArrayType> ref_array_type(new RefArrayType());
176 EXPECT_FALSE(RefArrayType::Populate(*value, ref_array_type.get())); 179 EXPECT_FALSE(RefArrayType::Populate(*value, ref_array_type.get()));
177 } 180 }
178 } 181 }
179 182
180 TEST(JsonSchemaCompilerArrayTest, IntegerArrayParamsCreate) { 183 TEST(JsonSchemaCompilerArrayTest, IntegerArrayParamsCreate) {
181 scoped_ptr<base::ListValue> params_value(new base::ListValue()); 184 std::unique_ptr<base::ListValue> params_value(new base::ListValue());
182 scoped_ptr<base::ListValue> integer_array(new base::ListValue()); 185 std::unique_ptr<base::ListValue> integer_array(new base::ListValue());
183 integer_array->Append(new base::FundamentalValue(2)); 186 integer_array->Append(new base::FundamentalValue(2));
184 integer_array->Append(new base::FundamentalValue(4)); 187 integer_array->Append(new base::FundamentalValue(4));
185 integer_array->Append(new base::FundamentalValue(8)); 188 integer_array->Append(new base::FundamentalValue(8));
186 params_value->Append(integer_array.release()); 189 params_value->Append(integer_array.release());
187 scoped_ptr<IntegerArray::Params> params( 190 std::unique_ptr<IntegerArray::Params> params(
188 IntegerArray::Params::Create(*params_value)); 191 IntegerArray::Params::Create(*params_value));
189 EXPECT_TRUE(params.get()); 192 EXPECT_TRUE(params.get());
190 ASSERT_EQ(3u, params->nums.size()); 193 ASSERT_EQ(3u, params->nums.size());
191 EXPECT_EQ(2, params->nums[0]); 194 EXPECT_EQ(2, params->nums[0]);
192 EXPECT_EQ(4, params->nums[1]); 195 EXPECT_EQ(4, params->nums[1]);
193 EXPECT_EQ(8, params->nums[2]); 196 EXPECT_EQ(8, params->nums[2]);
194 } 197 }
195 198
196 TEST(JsonSchemaCompilerArrayTest, AnyArrayParamsCreate) { 199 TEST(JsonSchemaCompilerArrayTest, AnyArrayParamsCreate) {
197 scoped_ptr<base::ListValue> params_value(new base::ListValue()); 200 std::unique_ptr<base::ListValue> params_value(new base::ListValue());
198 scoped_ptr<base::ListValue> any_array(new base::ListValue()); 201 std::unique_ptr<base::ListValue> any_array(new base::ListValue());
199 any_array->Append(new base::FundamentalValue(1)); 202 any_array->Append(new base::FundamentalValue(1));
200 any_array->Append(new base::StringValue("test")); 203 any_array->Append(new base::StringValue("test"));
201 any_array->Append(CreateItemValue(2)); 204 any_array->Append(CreateItemValue(2));
202 params_value->Append(any_array.release()); 205 params_value->Append(any_array.release());
203 scoped_ptr<AnyArray::Params> params( 206 std::unique_ptr<AnyArray::Params> params(
204 AnyArray::Params::Create(*params_value)); 207 AnyArray::Params::Create(*params_value));
205 EXPECT_TRUE(params.get()); 208 EXPECT_TRUE(params.get());
206 ASSERT_EQ(3u, params->anys.size()); 209 ASSERT_EQ(3u, params->anys.size());
207 int int_temp = 0; 210 int int_temp = 0;
208 EXPECT_TRUE(params->anys[0]->GetAsInteger(&int_temp)); 211 EXPECT_TRUE(params->anys[0]->GetAsInteger(&int_temp));
209 EXPECT_EQ(1, int_temp); 212 EXPECT_EQ(1, int_temp);
210 } 213 }
211 214
212 TEST(JsonSchemaCompilerArrayTest, ObjectArrayParamsCreate) { 215 TEST(JsonSchemaCompilerArrayTest, ObjectArrayParamsCreate) {
213 scoped_ptr<base::ListValue> params_value(new base::ListValue()); 216 std::unique_ptr<base::ListValue> params_value(new base::ListValue());
214 scoped_ptr<base::ListValue> item_array(new base::ListValue()); 217 std::unique_ptr<base::ListValue> item_array(new base::ListValue());
215 item_array->Append(CreateItemValue(1)); 218 item_array->Append(CreateItemValue(1));
216 item_array->Append(CreateItemValue(2)); 219 item_array->Append(CreateItemValue(2));
217 params_value->Append(item_array.release()); 220 params_value->Append(item_array.release());
218 scoped_ptr<ObjectArray::Params> params( 221 std::unique_ptr<ObjectArray::Params> params(
219 ObjectArray::Params::Create(*params_value)); 222 ObjectArray::Params::Create(*params_value));
220 EXPECT_TRUE(params.get()); 223 EXPECT_TRUE(params.get());
221 ASSERT_EQ(2u, params->objects.size()); 224 ASSERT_EQ(2u, params->objects.size());
222 EXPECT_EQ(1, params->objects[0].additional_properties["val"]); 225 EXPECT_EQ(1, params->objects[0].additional_properties["val"]);
223 EXPECT_EQ(2, params->objects[1].additional_properties["val"]); 226 EXPECT_EQ(2, params->objects[1].additional_properties["val"]);
224 } 227 }
225 228
226 TEST(JsonSchemaCompilerArrayTest, RefArrayParamsCreate) { 229 TEST(JsonSchemaCompilerArrayTest, RefArrayParamsCreate) {
227 scoped_ptr<base::ListValue> params_value(new base::ListValue()); 230 std::unique_ptr<base::ListValue> params_value(new base::ListValue());
228 scoped_ptr<base::ListValue> item_array(new base::ListValue()); 231 std::unique_ptr<base::ListValue> item_array(new base::ListValue());
229 item_array->Append(CreateItemValue(1)); 232 item_array->Append(CreateItemValue(1));
230 item_array->Append(CreateItemValue(2)); 233 item_array->Append(CreateItemValue(2));
231 params_value->Append(item_array.release()); 234 params_value->Append(item_array.release());
232 scoped_ptr<RefArray::Params> params( 235 std::unique_ptr<RefArray::Params> params(
233 RefArray::Params::Create(*params_value)); 236 RefArray::Params::Create(*params_value));
234 EXPECT_TRUE(params.get()); 237 EXPECT_TRUE(params.get());
235 ASSERT_EQ(2u, params->refs.size()); 238 ASSERT_EQ(2u, params->refs.size());
236 EXPECT_EQ(1, params->refs[0].val); 239 EXPECT_EQ(1, params->refs[0].val);
237 EXPECT_EQ(2, params->refs[1].val); 240 EXPECT_EQ(2, params->refs[1].val);
238 } 241 }
239 242
240 TEST(JsonSchemaCompilerArrayTest, ReturnIntegerArrayResultCreate) { 243 TEST(JsonSchemaCompilerArrayTest, ReturnIntegerArrayResultCreate) {
241 std::vector<int> integers; 244 std::vector<int> integers;
242 integers.push_back(1); 245 integers.push_back(1);
243 integers.push_back(2); 246 integers.push_back(2);
244 scoped_ptr<base::ListValue> results = 247 std::unique_ptr<base::ListValue> results =
245 ReturnIntegerArray::Results::Create(integers); 248 ReturnIntegerArray::Results::Create(integers);
246 249
247 base::ListValue expected; 250 base::ListValue expected;
248 base::ListValue* expected_argument = new base::ListValue(); 251 base::ListValue* expected_argument = new base::ListValue();
249 expected_argument->Append(new base::FundamentalValue(1)); 252 expected_argument->Append(new base::FundamentalValue(1));
250 expected_argument->Append(new base::FundamentalValue(2)); 253 expected_argument->Append(new base::FundamentalValue(2));
251 expected.Append(expected_argument); 254 expected.Append(expected_argument);
252 EXPECT_TRUE(results->Equals(&expected)); 255 EXPECT_TRUE(results->Equals(&expected));
253 } 256 }
254 257
255 TEST(JsonSchemaCompilerArrayTest, ReturnRefArrayResultCreate) { 258 TEST(JsonSchemaCompilerArrayTest, ReturnRefArrayResultCreate) {
256 std::vector<Item> items; 259 std::vector<Item> items;
257 items.push_back(Item()); 260 items.push_back(Item());
258 items.push_back(Item()); 261 items.push_back(Item());
259 items[0].val = 1; 262 items[0].val = 1;
260 items[1].val = 2; 263 items[1].val = 2;
261 scoped_ptr<base::ListValue> results = 264 std::unique_ptr<base::ListValue> results =
262 ReturnRefArray::Results::Create(items); 265 ReturnRefArray::Results::Create(items);
263 266
264 base::ListValue expected; 267 base::ListValue expected;
265 base::ListValue* expected_argument = new base::ListValue(); 268 base::ListValue* expected_argument = new base::ListValue();
266 base::DictionaryValue* first = new base::DictionaryValue(); 269 base::DictionaryValue* first = new base::DictionaryValue();
267 first->SetInteger("val", 1); 270 first->SetInteger("val", 1);
268 expected_argument->Append(first); 271 expected_argument->Append(first);
269 base::DictionaryValue* second = new base::DictionaryValue(); 272 base::DictionaryValue* second = new base::DictionaryValue();
270 second->SetInteger("val", 2); 273 second->SetInteger("val", 2);
271 expected_argument->Append(second); 274 expected_argument->Append(second);
272 expected.Append(expected_argument); 275 expected.Append(expected_argument);
273 EXPECT_TRUE(results->Equals(&expected)); 276 EXPECT_TRUE(results->Equals(&expected));
274 } 277 }
OLDNEW
« no previous file with comments | « tools/json_schema_compiler/test/any_unittest.cc ('k') | tools/json_schema_compiler/test/callbacks_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698