OLD | NEW |
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/choices.h" | 5 #include "tools/json_schema_compiler/test/choices.h" |
6 | 6 |
7 #include "testing/gtest/include/gtest/gtest.h" | 7 #include "testing/gtest/include/gtest/gtest.h" |
8 | 8 |
9 using namespace test::api::choices; | 9 using namespace test::api::choices; |
10 | 10 |
11 TEST(JsonSchemaCompilerChoicesTest, TakesIntegersParamsCreate) { | 11 TEST(JsonSchemaCompilerChoicesTest, TakesIntegersParamsCreate) { |
12 { | 12 { |
13 scoped_ptr<ListValue> params_value(new ListValue()); | 13 scoped_ptr<ListValue> params_value(new ListValue()); |
14 params_value->Append(Value::CreateBooleanValue(true)); | 14 params_value->Append(Value::CreateBooleanValue(true)); |
15 scoped_ptr<TakesIntegers::Params> params( | 15 scoped_ptr<TakesIntegers::Params> params( |
16 TakesIntegers::Params::Create(*params_value)); | 16 TakesIntegers::Params::Create(*params_value)); |
17 EXPECT_FALSE(params.get()); | 17 EXPECT_FALSE(params.get()); |
18 } | 18 } |
19 { | 19 { |
20 scoped_ptr<ListValue> params_value(new ListValue()); | 20 scoped_ptr<ListValue> params_value(new ListValue()); |
21 params_value->Append(Value::CreateIntegerValue(6)); | 21 params_value->Append(Value::CreateIntegerValue(6)); |
22 scoped_ptr<TakesIntegers::Params> params( | 22 scoped_ptr<TakesIntegers::Params> params( |
23 TakesIntegers::Params::Create(*params_value)); | 23 TakesIntegers::Params::Create(*params_value)); |
24 EXPECT_TRUE(params.get()); | 24 EXPECT_TRUE(params.get()); |
25 EXPECT_EQ(TakesIntegers::Params::NUMS_INTEGER, params->nums_type); | 25 EXPECT_FALSE(params->nums.as_array); |
26 EXPECT_FALSE(params->nums_array.get()); | 26 EXPECT_EQ(6, *params->nums.as_integer); |
27 EXPECT_EQ(6, *params->nums_integer); | |
28 } | 27 } |
29 { | 28 { |
30 scoped_ptr<ListValue> params_value(new ListValue()); | 29 scoped_ptr<ListValue> params_value(new ListValue()); |
31 scoped_ptr<ListValue> integers(new ListValue()); | 30 scoped_ptr<ListValue> integers(new ListValue()); |
32 integers->Append(Value::CreateIntegerValue(6)); | 31 integers->Append(Value::CreateIntegerValue(6)); |
33 integers->Append(Value::CreateIntegerValue(8)); | 32 integers->Append(Value::CreateIntegerValue(8)); |
34 params_value->Append(integers.release()); | 33 params_value->Append(integers.release()); |
35 scoped_ptr<TakesIntegers::Params> params( | 34 scoped_ptr<TakesIntegers::Params> params( |
36 TakesIntegers::Params::Create(*params_value)); | 35 TakesIntegers::Params::Create(*params_value)); |
37 EXPECT_TRUE(params.get()); | 36 ASSERT_TRUE(params); |
38 EXPECT_EQ(TakesIntegers::Params::NUMS_ARRAY, params->nums_type); | 37 ASSERT_TRUE(params->nums.as_array); |
39 EXPECT_EQ((size_t) 2, (*params->nums_array).size()); | 38 EXPECT_EQ((size_t) 2, params->nums.as_array->size()); |
40 EXPECT_EQ(6, (*params->nums_array)[0]); | 39 EXPECT_EQ(6, params->nums.as_array->at(0)); |
41 EXPECT_EQ(8, (*params->nums_array)[1]); | 40 EXPECT_EQ(8, params->nums.as_array->at(1)); |
42 } | 41 } |
43 } | 42 } |
44 | 43 |
45 TEST(JsonSchemaCompilerChoicesTest, ObjectWithChoicesParamsCreate) { | 44 TEST(JsonSchemaCompilerChoicesTest, ObjectWithChoicesParamsCreate) { |
46 { | 45 { |
47 scoped_ptr<DictionaryValue> object_param(new DictionaryValue()); | 46 scoped_ptr<DictionaryValue> object_param(new DictionaryValue()); |
48 object_param->SetWithoutPathExpansion("strings", | 47 object_param->SetString("strings", "asdf"); |
49 Value::CreateStringValue("asdf")); | |
50 scoped_ptr<ListValue> params_value(new ListValue()); | 48 scoped_ptr<ListValue> params_value(new ListValue()); |
51 params_value->Append(object_param.release()); | 49 params_value->Append(object_param.release()); |
52 scoped_ptr<ObjectWithChoices::Params> params( | 50 scoped_ptr<ObjectWithChoices::Params> params( |
53 ObjectWithChoices::Params::Create(*params_value)); | 51 ObjectWithChoices::Params::Create(*params_value)); |
54 EXPECT_TRUE(params.get()); | 52 ASSERT_TRUE(params); |
55 EXPECT_EQ(ObjectWithChoices::Params::StringInfo::STRINGS_STRING, | 53 EXPECT_FALSE(params->string_info.strings.as_array); |
56 params->string_info.strings_type); | 54 EXPECT_EQ("asdf", *params->string_info.strings.as_string); |
57 EXPECT_EQ("asdf", *params->string_info.strings_string); | 55 EXPECT_FALSE(params->string_info.integers); |
58 } | 56 } |
59 { | 57 { |
60 scoped_ptr<DictionaryValue> object_param(new DictionaryValue()); | 58 scoped_ptr<DictionaryValue> object_param(new DictionaryValue()); |
61 object_param->SetWithoutPathExpansion("strings", | 59 object_param->SetString("strings", "asdf"); |
62 Value::CreateStringValue("asdf")); | 60 object_param->SetInteger("integers", 6); |
63 object_param->SetWithoutPathExpansion("integers", | |
64 Value::CreateIntegerValue(6)); | |
65 scoped_ptr<ListValue> params_value(new ListValue()); | 61 scoped_ptr<ListValue> params_value(new ListValue()); |
66 params_value->Append(object_param.release()); | 62 params_value->Append(object_param.release()); |
67 scoped_ptr<ObjectWithChoices::Params> params( | 63 scoped_ptr<ObjectWithChoices::Params> params( |
68 ObjectWithChoices::Params::Create(*params_value)); | 64 ObjectWithChoices::Params::Create(*params_value)); |
69 EXPECT_TRUE(params.get()); | 65 ASSERT_TRUE(params); |
70 EXPECT_EQ(ObjectWithChoices::Params::StringInfo::STRINGS_STRING, | 66 EXPECT_FALSE(params->string_info.strings.as_array); |
71 params->string_info.strings_type); | 67 EXPECT_EQ("asdf", *params->string_info.strings.as_string); |
72 EXPECT_EQ("asdf", *params->string_info.strings_string); | 68 ASSERT_TRUE(params->string_info.integers); |
73 EXPECT_EQ(ObjectWithChoices::Params::StringInfo::INTEGERS_INTEGER, | 69 EXPECT_FALSE(params->string_info.integers->as_array); |
74 params->string_info.integers_type); | 70 EXPECT_EQ(6, *params->string_info.integers->as_integer); |
75 EXPECT_EQ(6, *params->string_info.integers_integer); | |
76 } | 71 } |
77 } | 72 } |
78 | 73 |
79 TEST(JsonSchemaCompilerChoicesTest, ObjectWithChoicesParamsCreateFail) { | 74 TEST(JsonSchemaCompilerChoicesTest, ObjectWithChoicesParamsCreateFail) { |
80 { | 75 { |
81 scoped_ptr<DictionaryValue> object_param(new DictionaryValue()); | 76 scoped_ptr<DictionaryValue> object_param(new DictionaryValue()); |
82 object_param->SetWithoutPathExpansion("strings", | 77 object_param->SetWithoutPathExpansion("strings", |
83 Value::CreateIntegerValue(5)); | 78 Value::CreateIntegerValue(5)); |
84 scoped_ptr<ListValue> params_value(new ListValue()); | 79 scoped_ptr<ListValue> params_value(new ListValue()); |
85 params_value->Append(object_param.release()); | 80 params_value->Append(object_param.release()); |
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
120 ListValue* strings_value = new ListValue(); | 115 ListValue* strings_value = new ListValue(); |
121 for (size_t i = 0; i < strings.size(); ++i) | 116 for (size_t i = 0; i < strings.size(); ++i) |
122 strings_value->Append(Value::CreateStringValue(strings[i])); | 117 strings_value->Append(Value::CreateStringValue(strings[i])); |
123 | 118 |
124 DictionaryValue value; | 119 DictionaryValue value; |
125 value.SetInteger("integers", 4); | 120 value.SetInteger("integers", 4); |
126 value.Set("strings", strings_value); | 121 value.Set("strings", strings_value); |
127 | 122 |
128 ChoiceType out; | 123 ChoiceType out; |
129 ASSERT_TRUE(ChoiceType::Populate(value, &out)); | 124 ASSERT_TRUE(ChoiceType::Populate(value, &out)); |
130 EXPECT_EQ(ChoiceType::INTEGERS_INTEGER, out.integers_type); | 125 ASSERT_TRUE(out.integers.as_integer.get()); |
131 ASSERT_TRUE(out.integers_integer.get()); | 126 EXPECT_FALSE(out.integers.as_array.get()); |
132 EXPECT_FALSE(out.integers_array.get()); | 127 EXPECT_EQ(4, *out.integers.as_integer); |
133 EXPECT_EQ(4, *out.integers_integer); | |
134 | 128 |
135 EXPECT_EQ(ChoiceType::STRINGS_ARRAY, out.strings_type); | 129 EXPECT_FALSE(out.strings->as_string.get()); |
136 EXPECT_FALSE(out.strings_string.get()); | 130 ASSERT_TRUE(out.strings->as_array.get()); |
137 ASSERT_TRUE(out.strings_array.get()); | 131 EXPECT_EQ(strings, *out.strings->as_array); |
138 EXPECT_EQ(strings, *out.strings_array); | |
139 } | 132 } |
140 | 133 |
141 TEST(JsonSchemaCompilerChoicesTest, ChoiceTypeToValue) { | 134 TEST(JsonSchemaCompilerChoicesTest, ChoiceTypeToValue) { |
142 ListValue* strings_value = new ListValue(); | 135 ListValue* strings_value = new ListValue(); |
143 strings_value->Append(Value::CreateStringValue("list")); | 136 strings_value->Append(Value::CreateStringValue("list")); |
144 strings_value->Append(Value::CreateStringValue("of")); | 137 strings_value->Append(Value::CreateStringValue("of")); |
145 strings_value->Append(Value::CreateStringValue("strings")); | 138 strings_value->Append(Value::CreateStringValue("strings")); |
146 | 139 |
147 DictionaryValue value; | 140 DictionaryValue value; |
148 value.SetInteger("integers", 5); | 141 value.SetInteger("integers", 5); |
149 value.Set("strings", strings_value); | 142 value.Set("strings", strings_value); |
150 | 143 |
151 ChoiceType out; | 144 ChoiceType out; |
152 ASSERT_TRUE(ChoiceType::Populate(value, &out)); | 145 ASSERT_TRUE(ChoiceType::Populate(value, &out)); |
153 | 146 |
154 EXPECT_TRUE(value.Equals(out.ToValue().get())); | 147 EXPECT_TRUE(value.Equals(out.ToValue().get())); |
155 } | 148 } |
156 | 149 |
157 TEST(JsonSchemaCompilerChoicesTest, ReturnChoices) { | 150 TEST(JsonSchemaCompilerChoicesTest, ReturnChoices) { |
158 { | 151 { |
159 std::vector<int> integers; | 152 ReturnChoices::Results::Result results; |
160 integers.push_back(1); | 153 results.as_array.reset(new std::vector<int>()); |
161 integers.push_back(2); | 154 results.as_array->push_back(1); |
162 scoped_ptr<ListValue> array_results = | 155 results.as_array->push_back(2); |
163 ReturnChoices::Results::Create(integers); | |
164 | 156 |
165 ListValue expected; | 157 scoped_ptr<base::Value> results_value = results.ToValue(); |
166 ListValue* expected_argument = new ListValue(); | 158 ASSERT_TRUE(results_value); |
167 expected_argument->Append(Value::CreateIntegerValue(1)); | 159 |
168 expected_argument->Append(Value::CreateIntegerValue(2)); | 160 base::ListValue expected; |
169 expected.Append(expected_argument); | 161 expected.AppendInteger(1); |
170 EXPECT_TRUE(array_results->Equals(&expected)); | 162 expected.AppendInteger(2); |
| 163 |
| 164 EXPECT_TRUE(expected.Equals(results_value.get())); |
171 } | 165 } |
172 { | 166 { |
173 scoped_ptr<ListValue> integer_results = ReturnChoices::Results::Create(5); | 167 ReturnChoices::Results::Result results; |
174 ListValue expected; | 168 results.as_integer.reset(new int(5)); |
175 expected.Append(Value::CreateIntegerValue(5)); | 169 |
176 EXPECT_TRUE(integer_results->Equals(&expected)); | 170 scoped_ptr<base::Value> results_value = results.ToValue(); |
| 171 ASSERT_TRUE(results_value); |
| 172 |
| 173 base::FundamentalValue expected(5); |
| 174 |
| 175 EXPECT_TRUE(expected.Equals(results_value.get())); |
177 } | 176 } |
178 } | 177 } |
OLD | NEW |