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

Side by Side Diff: tools/json_schema_compiler/test/idl_schemas_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 "base/values.h" 5 #include "base/values.h"
6 #include "tools/json_schema_compiler/test/idl_basics.h" 6 #include "tools/json_schema_compiler/test/idl_basics.h"
7 #include "tools/json_schema_compiler/test/idl_object_types.h" 7 #include "tools/json_schema_compiler/test/idl_object_types.h"
8 8
9 #include "testing/gtest/include/gtest/gtest.h" 9 #include "testing/gtest/include/gtest/gtest.h"
10 10
(...skipping 11 matching lines...) Expand all
22 namespace Function9 = test::api::idl_basics::Function9; 22 namespace Function9 = test::api::idl_basics::Function9;
23 namespace Function10 = test::api::idl_basics::Function10; 23 namespace Function10 = test::api::idl_basics::Function10;
24 namespace Function11 = test::api::idl_basics::Function11; 24 namespace Function11 = test::api::idl_basics::Function11;
25 namespace ObjectFunction1 = test::api::idl_object_types::ObjectFunction1; 25 namespace ObjectFunction1 = test::api::idl_object_types::ObjectFunction1;
26 26
27 TEST(IdlCompiler, Basics) { 27 TEST(IdlCompiler, Basics) {
28 // Test MyType1. 28 // Test MyType1.
29 MyType1 a; 29 MyType1 a;
30 a.x = 5; 30 a.x = 5;
31 a.y = std::string("foo"); 31 a.y = std::string("foo");
32 scoped_ptr<base::DictionaryValue> serialized = a.ToValue(); 32 std::unique_ptr<base::DictionaryValue> serialized = a.ToValue();
33 MyType1 b; 33 MyType1 b;
34 EXPECT_TRUE(MyType1::Populate(*serialized.get(), &b)); 34 EXPECT_TRUE(MyType1::Populate(*serialized.get(), &b));
35 EXPECT_EQ(a.x, b.x); 35 EXPECT_EQ(a.x, b.x);
36 EXPECT_EQ(a.y, b.y); 36 EXPECT_EQ(a.y, b.y);
37 37
38 // Test Function2, which takes an integer parameter. 38 // Test Function2, which takes an integer parameter.
39 base::ListValue list; 39 base::ListValue list;
40 list.Append(new base::FundamentalValue(5)); 40 list.Append(new base::FundamentalValue(5));
41 scoped_ptr<Function2::Params> f2_params = Function2::Params::Create(list); 41 std::unique_ptr<Function2::Params> f2_params =
42 Function2::Params::Create(list);
42 EXPECT_EQ(5, f2_params->x); 43 EXPECT_EQ(5, f2_params->x);
43 44
44 // Test Function3, which takes a MyType1 parameter. 45 // Test Function3, which takes a MyType1 parameter.
45 list.Clear(); 46 list.Clear();
46 base::DictionaryValue* tmp = new base::DictionaryValue(); 47 base::DictionaryValue* tmp = new base::DictionaryValue();
47 tmp->SetInteger("x", 17); 48 tmp->SetInteger("x", 17);
48 tmp->SetString("y", "hello"); 49 tmp->SetString("y", "hello");
49 tmp->SetString("z", "zstring"); 50 tmp->SetString("z", "zstring");
50 tmp->SetString("a", "astring"); 51 tmp->SetString("a", "astring");
51 tmp->SetString("b", "bstring"); 52 tmp->SetString("b", "bstring");
52 tmp->SetString("c", "cstring"); 53 tmp->SetString("c", "cstring");
53 list.Append(tmp); 54 list.Append(tmp);
54 scoped_ptr<Function3::Params> f3_params = Function3::Params::Create(list); 55 std::unique_ptr<Function3::Params> f3_params =
56 Function3::Params::Create(list);
55 EXPECT_EQ(17, f3_params->arg.x); 57 EXPECT_EQ(17, f3_params->arg.x);
56 EXPECT_EQ("hello", f3_params->arg.y); 58 EXPECT_EQ("hello", f3_params->arg.y);
57 59
58 // Test functions that take a callback function as a parameter, with varying 60 // Test functions that take a callback function as a parameter, with varying
59 // callback signatures. 61 // callback signatures.
60 scoped_ptr<base::ListValue> f4_results = Function4::Results::Create(); 62 std::unique_ptr<base::ListValue> f4_results = Function4::Results::Create();
61 base::ListValue expected; 63 base::ListValue expected;
62 EXPECT_TRUE(f4_results->Equals(&expected)); 64 EXPECT_TRUE(f4_results->Equals(&expected));
63 65
64 scoped_ptr<base::ListValue> f5_results(Function5::Results::Create(13)); 66 std::unique_ptr<base::ListValue> f5_results(Function5::Results::Create(13));
65 base::Value* f5_result_int = NULL; 67 base::Value* f5_result_int = NULL;
66 ASSERT_TRUE(f5_results->Get(0, &f5_result_int)); 68 ASSERT_TRUE(f5_results->Get(0, &f5_result_int));
67 EXPECT_TRUE(f5_result_int->IsType(base::Value::TYPE_INTEGER)); 69 EXPECT_TRUE(f5_result_int->IsType(base::Value::TYPE_INTEGER));
68 70
69 scoped_ptr<base::ListValue> f6_results(Function6::Results::Create(a)); 71 std::unique_ptr<base::ListValue> f6_results(Function6::Results::Create(a));
70 base::Value* f6_result_dict = NULL; 72 base::Value* f6_result_dict = NULL;
71 ASSERT_TRUE(f6_results->Get(0, &f6_result_dict)); 73 ASSERT_TRUE(f6_results->Get(0, &f6_result_dict));
72 MyType1 c; 74 MyType1 c;
73 EXPECT_TRUE(MyType1::Populate(*f6_result_dict, &c)); 75 EXPECT_TRUE(MyType1::Populate(*f6_result_dict, &c));
74 EXPECT_EQ(a.x, c.x); 76 EXPECT_EQ(a.x, c.x);
75 EXPECT_EQ(a.y, c.y); 77 EXPECT_EQ(a.y, c.y);
76 } 78 }
77 79
78 TEST(IdlCompiler, OptionalArguments) { 80 TEST(IdlCompiler, OptionalArguments) {
79 // Test a function that takes one optional argument, both without and with 81 // Test a function that takes one optional argument, both without and with
80 // that argument. 82 // that argument.
81 base::ListValue list; 83 base::ListValue list;
82 scoped_ptr<Function7::Params> f7_params = Function7::Params::Create(list); 84 std::unique_ptr<Function7::Params> f7_params =
85 Function7::Params::Create(list);
83 EXPECT_EQ(NULL, f7_params->arg.get()); 86 EXPECT_EQ(NULL, f7_params->arg.get());
84 list.Append(new base::FundamentalValue(7)); 87 list.Append(new base::FundamentalValue(7));
85 f7_params = Function7::Params::Create(list); 88 f7_params = Function7::Params::Create(list);
86 EXPECT_EQ(7, *(f7_params->arg)); 89 EXPECT_EQ(7, *(f7_params->arg));
87 90
88 // Similar to above, but a function with one required and one optional 91 // Similar to above, but a function with one required and one optional
89 // argument. 92 // argument.
90 list.Clear(); 93 list.Clear();
91 list.Append(new base::FundamentalValue(8)); 94 list.Append(new base::FundamentalValue(8));
92 scoped_ptr<Function8::Params> f8_params = Function8::Params::Create(list); 95 std::unique_ptr<Function8::Params> f8_params =
96 Function8::Params::Create(list);
93 EXPECT_EQ(8, f8_params->arg1); 97 EXPECT_EQ(8, f8_params->arg1);
94 EXPECT_EQ(NULL, f8_params->arg2.get()); 98 EXPECT_EQ(NULL, f8_params->arg2.get());
95 list.Append(new base::StringValue("foo")); 99 list.Append(new base::StringValue("foo"));
96 f8_params = Function8::Params::Create(list); 100 f8_params = Function8::Params::Create(list);
97 EXPECT_EQ(8, f8_params->arg1); 101 EXPECT_EQ(8, f8_params->arg1);
98 EXPECT_EQ("foo", *(f8_params->arg2)); 102 EXPECT_EQ("foo", *(f8_params->arg2));
99 103
100 // Test a function with an optional argument of custom type. 104 // Test a function with an optional argument of custom type.
101 list.Clear(); 105 list.Clear();
102 scoped_ptr<Function9::Params> f9_params = Function9::Params::Create(list); 106 std::unique_ptr<Function9::Params> f9_params =
107 Function9::Params::Create(list);
103 EXPECT_EQ(NULL, f9_params->arg.get()); 108 EXPECT_EQ(NULL, f9_params->arg.get());
104 list.Clear(); 109 list.Clear();
105 base::DictionaryValue* tmp = new base::DictionaryValue(); 110 base::DictionaryValue* tmp = new base::DictionaryValue();
106 tmp->SetInteger("x", 17); 111 tmp->SetInteger("x", 17);
107 tmp->SetString("y", "hello"); 112 tmp->SetString("y", "hello");
108 tmp->SetString("z", "zstring"); 113 tmp->SetString("z", "zstring");
109 tmp->SetString("a", "astring"); 114 tmp->SetString("a", "astring");
110 tmp->SetString("b", "bstring"); 115 tmp->SetString("b", "bstring");
111 tmp->SetString("c", "cstring"); 116 tmp->SetString("c", "cstring");
112 list.Append(tmp); 117 list.Append(tmp);
113 f9_params = Function9::Params::Create(list); 118 f9_params = Function9::Params::Create(list);
114 ASSERT_TRUE(f9_params->arg.get() != NULL); 119 ASSERT_TRUE(f9_params->arg.get() != NULL);
115 MyType1* t1 = f9_params->arg.get(); 120 MyType1* t1 = f9_params->arg.get();
116 EXPECT_EQ(17, t1->x); 121 EXPECT_EQ(17, t1->x);
117 EXPECT_EQ("hello", t1->y); 122 EXPECT_EQ("hello", t1->y);
118 } 123 }
119 124
120 TEST(IdlCompiler, ArrayTypes) { 125 TEST(IdlCompiler, ArrayTypes) {
121 // Tests of a function that takes an integer and an array of integers. First 126 // Tests of a function that takes an integer and an array of integers. First
122 // use an empty array. 127 // use an empty array.
123 base::ListValue list; 128 base::ListValue list;
124 list.Append(new base::FundamentalValue(33)); 129 list.Append(new base::FundamentalValue(33));
125 list.Append(new base::ListValue); 130 list.Append(new base::ListValue);
126 scoped_ptr<Function10::Params> f10_params = Function10::Params::Create(list); 131 std::unique_ptr<Function10::Params> f10_params =
132 Function10::Params::Create(list);
127 ASSERT_TRUE(f10_params != NULL); 133 ASSERT_TRUE(f10_params != NULL);
128 EXPECT_EQ(33, f10_params->x); 134 EXPECT_EQ(33, f10_params->x);
129 EXPECT_TRUE(f10_params->y.empty()); 135 EXPECT_TRUE(f10_params->y.empty());
130 136
131 // Same function, but this time with 2 values in the array. 137 // Same function, but this time with 2 values in the array.
132 list.Clear(); 138 list.Clear();
133 list.Append(new base::FundamentalValue(33)); 139 list.Append(new base::FundamentalValue(33));
134 base::ListValue* sublist = new base::ListValue; 140 base::ListValue* sublist = new base::ListValue;
135 sublist->Append(new base::FundamentalValue(34)); 141 sublist->Append(new base::FundamentalValue(34));
136 sublist->Append(new base::FundamentalValue(35)); 142 sublist->Append(new base::FundamentalValue(35));
(...skipping 10 matching lines...) Expand all
147 MyType1 a; 153 MyType1 a;
148 MyType1 b; 154 MyType1 b;
149 a.x = 5; 155 a.x = 5;
150 b.x = 6; 156 b.x = 6;
151 a.y = std::string("foo"); 157 a.y = std::string("foo");
152 b.y = std::string("bar"); 158 b.y = std::string("bar");
153 base::ListValue* sublist2 = new base::ListValue; 159 base::ListValue* sublist2 = new base::ListValue;
154 sublist2->Append(a.ToValue().release()); 160 sublist2->Append(a.ToValue().release());
155 sublist2->Append(b.ToValue().release()); 161 sublist2->Append(b.ToValue().release());
156 list.Append(sublist2); 162 list.Append(sublist2);
157 scoped_ptr<Function11::Params> f11_params = Function11::Params::Create(list); 163 std::unique_ptr<Function11::Params> f11_params =
164 Function11::Params::Create(list);
158 ASSERT_TRUE(f11_params != NULL); 165 ASSERT_TRUE(f11_params != NULL);
159 ASSERT_EQ(2u, f11_params->arg.size()); 166 ASSERT_EQ(2u, f11_params->arg.size());
160 EXPECT_EQ(5, f11_params->arg[0].x); 167 EXPECT_EQ(5, f11_params->arg[0].x);
161 EXPECT_EQ("foo", f11_params->arg[0].y); 168 EXPECT_EQ("foo", f11_params->arg[0].y);
162 EXPECT_EQ(6, f11_params->arg[1].x); 169 EXPECT_EQ(6, f11_params->arg[1].x);
163 EXPECT_EQ("bar", f11_params->arg[1].y); 170 EXPECT_EQ("bar", f11_params->arg[1].y);
164 } 171 }
165 172
166 TEST(IdlCompiler, ObjectTypes) { 173 TEST(IdlCompiler, ObjectTypes) {
167 // Test the FooType type. 174 // Test the FooType type.
168 FooType f1; 175 FooType f1;
169 f1.x = 3; 176 f1.x = 3;
170 scoped_ptr<base::DictionaryValue> serialized_foo = f1.ToValue(); 177 std::unique_ptr<base::DictionaryValue> serialized_foo = f1.ToValue();
171 FooType f2; 178 FooType f2;
172 EXPECT_TRUE(FooType::Populate(*serialized_foo.get(), &f2)); 179 EXPECT_TRUE(FooType::Populate(*serialized_foo.get(), &f2));
173 EXPECT_EQ(f1.x, f2.x); 180 EXPECT_EQ(f1.x, f2.x);
174 181
175 // Test the BarType type. 182 // Test the BarType type.
176 BarType b1; 183 BarType b1;
177 b1.x.reset(new base::FundamentalValue(7)); 184 b1.x.reset(new base::FundamentalValue(7));
178 scoped_ptr<base::DictionaryValue> serialized_bar = b1.ToValue(); 185 std::unique_ptr<base::DictionaryValue> serialized_bar = b1.ToValue();
179 BarType b2; 186 BarType b2;
180 EXPECT_TRUE(BarType::Populate(*serialized_bar.get(), &b2)); 187 EXPECT_TRUE(BarType::Populate(*serialized_bar.get(), &b2));
181 int tmp_int = 0; 188 int tmp_int = 0;
182 EXPECT_TRUE(b2.x->GetAsInteger(&tmp_int)); 189 EXPECT_TRUE(b2.x->GetAsInteger(&tmp_int));
183 EXPECT_EQ(7, tmp_int); 190 EXPECT_EQ(7, tmp_int);
184 191
185 // Test the params to the ObjectFunction1 function. 192 // Test the params to the ObjectFunction1 function.
186 scoped_ptr<base::DictionaryValue> icon_props(new base::DictionaryValue()); 193 std::unique_ptr<base::DictionaryValue> icon_props(
194 new base::DictionaryValue());
187 icon_props->SetString("hello", "world"); 195 icon_props->SetString("hello", "world");
188 ObjectFunction1::Params::Icon icon; 196 ObjectFunction1::Params::Icon icon;
189 EXPECT_TRUE(ObjectFunction1::Params::Icon::Populate(*(icon_props.get()), 197 EXPECT_TRUE(ObjectFunction1::Params::Icon::Populate(*(icon_props.get()),
190 &icon)); 198 &icon));
191 base::ListValue list; 199 base::ListValue list;
192 list.Append(icon_props.release()); 200 list.Append(icon_props.release());
193 scoped_ptr<ObjectFunction1::Params> params = 201 std::unique_ptr<ObjectFunction1::Params> params =
194 ObjectFunction1::Params::Create(list); 202 ObjectFunction1::Params::Create(list);
195 ASSERT_TRUE(params.get() != NULL); 203 ASSERT_TRUE(params.get() != NULL);
196 std::string tmp; 204 std::string tmp;
197 EXPECT_TRUE(params->icon.additional_properties.GetString("hello", &tmp)); 205 EXPECT_TRUE(params->icon.additional_properties.GetString("hello", &tmp));
198 EXPECT_EQ("world", tmp); 206 EXPECT_EQ("world", tmp);
199 } 207 }
OLDNEW
« no previous file with comments | « tools/json_schema_compiler/test/functions_on_types_unittest.cc ('k') | tools/json_schema_compiler/test/objects_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698