| 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/arrays.h" | 5 #include "tools/json_schema_compiler/test/arrays.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::arrays; | 9 using namespace test::api::arrays; |
| 10 | 10 |
| 11 namespace { | 11 namespace { |
| 12 | 12 |
| 13 // TODO(calamity): Change to AppendString etc once kalman's patch goes through | 13 // TODO(calamity): Change to AppendString etc once kalman's patch goes through |
| 14 static scoped_ptr<DictionaryValue> CreateBasicArrayTypeDictionary() { | 14 static scoped_ptr<base::DictionaryValue> CreateBasicArrayTypeDictionary() { |
| 15 DictionaryValue* value = new DictionaryValue(); | 15 base::DictionaryValue* value = new base::DictionaryValue(); |
| 16 ListValue* strings_value = new ListValue(); | 16 base::ListValue* strings_value = new base::ListValue(); |
| 17 strings_value->Append(Value::CreateStringValue("a")); | 17 strings_value->Append(base::Value::CreateStringValue("a")); |
| 18 strings_value->Append(Value::CreateStringValue("b")); | 18 strings_value->Append(base::Value::CreateStringValue("b")); |
| 19 strings_value->Append(Value::CreateStringValue("c")); | 19 strings_value->Append(base::Value::CreateStringValue("c")); |
| 20 strings_value->Append(Value::CreateStringValue("it's easy as")); | 20 strings_value->Append(base::Value::CreateStringValue("it's easy as")); |
| 21 ListValue* integers_value = new ListValue(); | 21 base::ListValue* integers_value = new base::ListValue(); |
| 22 integers_value->Append(Value::CreateIntegerValue(1)); | 22 integers_value->Append(base::Value::CreateIntegerValue(1)); |
| 23 integers_value->Append(Value::CreateIntegerValue(2)); | 23 integers_value->Append(base::Value::CreateIntegerValue(2)); |
| 24 integers_value->Append(Value::CreateIntegerValue(3)); | 24 integers_value->Append(base::Value::CreateIntegerValue(3)); |
| 25 ListValue* booleans_value = new ListValue(); | 25 base::ListValue* booleans_value = new base::ListValue(); |
| 26 booleans_value->Append(Value::CreateBooleanValue(false)); | 26 booleans_value->Append(base::Value::CreateBooleanValue(false)); |
| 27 booleans_value->Append(Value::CreateBooleanValue(true)); | 27 booleans_value->Append(base::Value::CreateBooleanValue(true)); |
| 28 ListValue* numbers_value = new ListValue(); | 28 base::ListValue* numbers_value = new base::ListValue(); |
| 29 numbers_value->Append(Value::CreateDoubleValue(6.1)); | 29 numbers_value->Append(base::Value::CreateDoubleValue(6.1)); |
| 30 value->Set("numbers", numbers_value); | 30 value->Set("numbers", numbers_value); |
| 31 value->Set("booleans", booleans_value); | 31 value->Set("booleans", booleans_value); |
| 32 value->Set("strings", strings_value); | 32 value->Set("strings", strings_value); |
| 33 value->Set("integers", integers_value); | 33 value->Set("integers", integers_value); |
| 34 return scoped_ptr<DictionaryValue>(value); | 34 return scoped_ptr<base::DictionaryValue>(value); |
| 35 } | 35 } |
| 36 | 36 |
| 37 static Value* CreateItemValue(int val) { | 37 static base::Value* CreateItemValue(int val) { |
| 38 DictionaryValue* value(new DictionaryValue()); | 38 base::DictionaryValue* value(new base::DictionaryValue()); |
| 39 value->Set("val", Value::CreateIntegerValue(val)); | 39 value->Set("val", base::Value::CreateIntegerValue(val)); |
| 40 return value; | 40 return value; |
| 41 } | 41 } |
| 42 | 42 |
| 43 } // namespace | 43 } // namespace |
| 44 | 44 |
| 45 TEST(JsonSchemaCompilerArrayTest, BasicArrayType) { | 45 TEST(JsonSchemaCompilerArrayTest, BasicArrayType) { |
| 46 { | 46 { |
| 47 scoped_ptr<DictionaryValue> value = CreateBasicArrayTypeDictionary(); | 47 scoped_ptr<base::DictionaryValue> value = CreateBasicArrayTypeDictionary(); |
| 48 scoped_ptr<BasicArrayType> basic_array_type(new BasicArrayType()); | 48 scoped_ptr<BasicArrayType> basic_array_type(new BasicArrayType()); |
| 49 ASSERT_TRUE(BasicArrayType::Populate(*value, basic_array_type.get())); | 49 ASSERT_TRUE(BasicArrayType::Populate(*value, basic_array_type.get())); |
| 50 EXPECT_TRUE(value->Equals(basic_array_type->ToValue().get())); | 50 EXPECT_TRUE(value->Equals(basic_array_type->ToValue().get())); |
| 51 } | 51 } |
| 52 } | 52 } |
| 53 | 53 |
| 54 TEST(JsonSchemaCompilerArrayTest, EnumArrayType) { | 54 TEST(JsonSchemaCompilerArrayTest, EnumArrayType) { |
| 55 std::vector<EnumArrayType::TypesType> enums; | 55 std::vector<EnumArrayType::TypesType> enums; |
| 56 enums.push_back(EnumArrayType::TYPES_TYPE_ONE); | 56 enums.push_back(EnumArrayType::TYPES_TYPE_ONE); |
| 57 enums.push_back(EnumArrayType::TYPES_TYPE_TWO); | 57 enums.push_back(EnumArrayType::TYPES_TYPE_TWO); |
| 58 enums.push_back(EnumArrayType::TYPES_TYPE_THREE); | 58 enums.push_back(EnumArrayType::TYPES_TYPE_THREE); |
| 59 | 59 |
| 60 scoped_ptr<ListValue> types(new ListValue()); | 60 scoped_ptr<base::ListValue> types(new base::ListValue()); |
| 61 for (size_t i = 0; i < enums.size(); ++i) | 61 for (size_t i = 0; i < enums.size(); ++i) |
| 62 types->Append(new base::StringValue(EnumArrayType::ToString(enums[i]))); | 62 types->Append(new base::StringValue(EnumArrayType::ToString(enums[i]))); |
| 63 | 63 |
| 64 DictionaryValue value; | 64 base::DictionaryValue value; |
| 65 value.Set("types", types.release()); | 65 value.Set("types", types.release()); |
| 66 | 66 |
| 67 EnumArrayType enum_array_type; | 67 EnumArrayType enum_array_type; |
| 68 ASSERT_TRUE(EnumArrayType::Populate(value, &enum_array_type)); | 68 ASSERT_TRUE(EnumArrayType::Populate(value, &enum_array_type)); |
| 69 EXPECT_EQ(enums, enum_array_type.types); | 69 EXPECT_EQ(enums, enum_array_type.types); |
| 70 } | 70 } |
| 71 | 71 |
| 72 TEST(JsonSchemaCompilerArrayTest, OptionalEnumArrayType) { | 72 TEST(JsonSchemaCompilerArrayTest, OptionalEnumArrayType) { |
| 73 { | 73 { |
| 74 std::vector<OptionalEnumArrayType::TypesType> enums; | 74 std::vector<OptionalEnumArrayType::TypesType> enums; |
| 75 enums.push_back(OptionalEnumArrayType::TYPES_TYPE_ONE); | 75 enums.push_back(OptionalEnumArrayType::TYPES_TYPE_ONE); |
| 76 enums.push_back(OptionalEnumArrayType::TYPES_TYPE_TWO); | 76 enums.push_back(OptionalEnumArrayType::TYPES_TYPE_TWO); |
| 77 enums.push_back(OptionalEnumArrayType::TYPES_TYPE_THREE); | 77 enums.push_back(OptionalEnumArrayType::TYPES_TYPE_THREE); |
| 78 | 78 |
| 79 scoped_ptr<ListValue> types(new ListValue()); | 79 scoped_ptr<base::ListValue> types(new base::ListValue()); |
| 80 for (size_t i = 0; i < enums.size(); ++i) { | 80 for (size_t i = 0; i < enums.size(); ++i) { |
| 81 types->Append(new base::StringValue( | 81 types->Append(new base::StringValue( |
| 82 OptionalEnumArrayType::ToString(enums[i]))); | 82 OptionalEnumArrayType::ToString(enums[i]))); |
| 83 } | 83 } |
| 84 | 84 |
| 85 DictionaryValue value; | 85 base::DictionaryValue value; |
| 86 value.Set("types", types.release()); | 86 value.Set("types", types.release()); |
| 87 | 87 |
| 88 OptionalEnumArrayType enum_array_type; | 88 OptionalEnumArrayType enum_array_type; |
| 89 ASSERT_TRUE(OptionalEnumArrayType::Populate(value, &enum_array_type)); | 89 ASSERT_TRUE(OptionalEnumArrayType::Populate(value, &enum_array_type)); |
| 90 EXPECT_EQ(enums, *enum_array_type.types); | 90 EXPECT_EQ(enums, *enum_array_type.types); |
| 91 } | 91 } |
| 92 { | 92 { |
| 93 DictionaryValue value; | 93 base::DictionaryValue value; |
| 94 scoped_ptr<ListValue> enum_array(new ListValue()); | 94 scoped_ptr<base::ListValue> enum_array(new base::ListValue()); |
| 95 enum_array->Append(Value::CreateStringValue("invalid")); | 95 enum_array->Append(base::Value::CreateStringValue("invalid")); |
| 96 | 96 |
| 97 value.Set("types", enum_array.release()); | 97 value.Set("types", enum_array.release()); |
| 98 OptionalEnumArrayType enum_array_type; | 98 OptionalEnumArrayType enum_array_type; |
| 99 ASSERT_FALSE(OptionalEnumArrayType::Populate(value, &enum_array_type)); | 99 ASSERT_FALSE(OptionalEnumArrayType::Populate(value, &enum_array_type)); |
| 100 EXPECT_TRUE(enum_array_type.types->empty()); | 100 EXPECT_TRUE(enum_array_type.types->empty()); |
| 101 } | 101 } |
| 102 } | 102 } |
| 103 | 103 |
| 104 TEST(JsonSchemaCompilerArrayTest, RefArrayType) { | 104 TEST(JsonSchemaCompilerArrayTest, RefArrayType) { |
| 105 { | 105 { |
| 106 scoped_ptr<DictionaryValue> value(new DictionaryValue()); | 106 scoped_ptr<base::DictionaryValue> value(new base::DictionaryValue()); |
| 107 scoped_ptr<ListValue> ref_array(new ListValue()); | 107 scoped_ptr<base::ListValue> ref_array(new base::ListValue()); |
| 108 ref_array->Append(CreateItemValue(1)); | 108 ref_array->Append(CreateItemValue(1)); |
| 109 ref_array->Append(CreateItemValue(2)); | 109 ref_array->Append(CreateItemValue(2)); |
| 110 ref_array->Append(CreateItemValue(3)); | 110 ref_array->Append(CreateItemValue(3)); |
| 111 value->Set("refs", ref_array.release()); | 111 value->Set("refs", ref_array.release()); |
| 112 scoped_ptr<RefArrayType> ref_array_type(new RefArrayType()); | 112 scoped_ptr<RefArrayType> ref_array_type(new RefArrayType()); |
| 113 EXPECT_TRUE(RefArrayType::Populate(*value, ref_array_type.get())); | 113 EXPECT_TRUE(RefArrayType::Populate(*value, ref_array_type.get())); |
| 114 ASSERT_EQ(3u, ref_array_type->refs.size()); | 114 ASSERT_EQ(3u, ref_array_type->refs.size()); |
| 115 EXPECT_EQ(1, ref_array_type->refs[0]->val); | 115 EXPECT_EQ(1, ref_array_type->refs[0]->val); |
| 116 EXPECT_EQ(2, ref_array_type->refs[1]->val); | 116 EXPECT_EQ(2, ref_array_type->refs[1]->val); |
| 117 EXPECT_EQ(3, ref_array_type->refs[2]->val); | 117 EXPECT_EQ(3, ref_array_type->refs[2]->val); |
| 118 } | 118 } |
| 119 { | 119 { |
| 120 scoped_ptr<DictionaryValue> value(new DictionaryValue()); | 120 scoped_ptr<base::DictionaryValue> value(new base::DictionaryValue()); |
| 121 scoped_ptr<ListValue> not_ref_array(new ListValue()); | 121 scoped_ptr<base::ListValue> not_ref_array(new base::ListValue()); |
| 122 not_ref_array->Append(CreateItemValue(1)); | 122 not_ref_array->Append(CreateItemValue(1)); |
| 123 not_ref_array->Append(Value::CreateIntegerValue(3)); | 123 not_ref_array->Append(base::Value::CreateIntegerValue(3)); |
| 124 value->Set("refs", not_ref_array.release()); | 124 value->Set("refs", not_ref_array.release()); |
| 125 scoped_ptr<RefArrayType> ref_array_type(new RefArrayType()); | 125 scoped_ptr<RefArrayType> ref_array_type(new RefArrayType()); |
| 126 EXPECT_FALSE(RefArrayType::Populate(*value, ref_array_type.get())); | 126 EXPECT_FALSE(RefArrayType::Populate(*value, ref_array_type.get())); |
| 127 } | 127 } |
| 128 } | 128 } |
| 129 | 129 |
| 130 TEST(JsonSchemaCompilerArrayTest, IntegerArrayParamsCreate) { | 130 TEST(JsonSchemaCompilerArrayTest, IntegerArrayParamsCreate) { |
| 131 scoped_ptr<ListValue> params_value(new ListValue()); | 131 scoped_ptr<base::ListValue> params_value(new base::ListValue()); |
| 132 scoped_ptr<ListValue> integer_array(new ListValue()); | 132 scoped_ptr<base::ListValue> integer_array(new base::ListValue()); |
| 133 integer_array->Append(Value::CreateIntegerValue(2)); | 133 integer_array->Append(base::Value::CreateIntegerValue(2)); |
| 134 integer_array->Append(Value::CreateIntegerValue(4)); | 134 integer_array->Append(base::Value::CreateIntegerValue(4)); |
| 135 integer_array->Append(Value::CreateIntegerValue(8)); | 135 integer_array->Append(base::Value::CreateIntegerValue(8)); |
| 136 params_value->Append(integer_array.release()); | 136 params_value->Append(integer_array.release()); |
| 137 scoped_ptr<IntegerArray::Params> params( | 137 scoped_ptr<IntegerArray::Params> params( |
| 138 IntegerArray::Params::Create(*params_value)); | 138 IntegerArray::Params::Create(*params_value)); |
| 139 EXPECT_TRUE(params.get()); | 139 EXPECT_TRUE(params.get()); |
| 140 ASSERT_EQ(3u, params->nums.size()); | 140 ASSERT_EQ(3u, params->nums.size()); |
| 141 EXPECT_EQ(2, params->nums[0]); | 141 EXPECT_EQ(2, params->nums[0]); |
| 142 EXPECT_EQ(4, params->nums[1]); | 142 EXPECT_EQ(4, params->nums[1]); |
| 143 EXPECT_EQ(8, params->nums[2]); | 143 EXPECT_EQ(8, params->nums[2]); |
| 144 } | 144 } |
| 145 | 145 |
| 146 TEST(JsonSchemaCompilerArrayTest, AnyArrayParamsCreate) { | 146 TEST(JsonSchemaCompilerArrayTest, AnyArrayParamsCreate) { |
| 147 scoped_ptr<ListValue> params_value(new ListValue()); | 147 scoped_ptr<base::ListValue> params_value(new base::ListValue()); |
| 148 scoped_ptr<ListValue> any_array(new ListValue()); | 148 scoped_ptr<base::ListValue> any_array(new base::ListValue()); |
| 149 any_array->Append(Value::CreateIntegerValue(1)); | 149 any_array->Append(base::Value::CreateIntegerValue(1)); |
| 150 any_array->Append(Value::CreateStringValue("test")); | 150 any_array->Append(base::Value::CreateStringValue("test")); |
| 151 any_array->Append(CreateItemValue(2)); | 151 any_array->Append(CreateItemValue(2)); |
| 152 params_value->Append(any_array.release()); | 152 params_value->Append(any_array.release()); |
| 153 scoped_ptr<AnyArray::Params> params( | 153 scoped_ptr<AnyArray::Params> params( |
| 154 AnyArray::Params::Create(*params_value)); | 154 AnyArray::Params::Create(*params_value)); |
| 155 EXPECT_TRUE(params.get()); | 155 EXPECT_TRUE(params.get()); |
| 156 ASSERT_EQ(3u, params->anys.size()); | 156 ASSERT_EQ(3u, params->anys.size()); |
| 157 int int_temp = 0; | 157 int int_temp = 0; |
| 158 EXPECT_TRUE(params->anys[0]->GetAsInteger(&int_temp)); | 158 EXPECT_TRUE(params->anys[0]->GetAsInteger(&int_temp)); |
| 159 EXPECT_EQ(1, int_temp); | 159 EXPECT_EQ(1, int_temp); |
| 160 } | 160 } |
| 161 | 161 |
| 162 TEST(JsonSchemaCompilerArrayTest, ObjectArrayParamsCreate) { | 162 TEST(JsonSchemaCompilerArrayTest, ObjectArrayParamsCreate) { |
| 163 scoped_ptr<ListValue> params_value(new ListValue()); | 163 scoped_ptr<base::ListValue> params_value(new base::ListValue()); |
| 164 scoped_ptr<ListValue> item_array(new ListValue()); | 164 scoped_ptr<base::ListValue> item_array(new base::ListValue()); |
| 165 item_array->Append(CreateItemValue(1)); | 165 item_array->Append(CreateItemValue(1)); |
| 166 item_array->Append(CreateItemValue(2)); | 166 item_array->Append(CreateItemValue(2)); |
| 167 params_value->Append(item_array.release()); | 167 params_value->Append(item_array.release()); |
| 168 scoped_ptr<ObjectArray::Params> params( | 168 scoped_ptr<ObjectArray::Params> params( |
| 169 ObjectArray::Params::Create(*params_value)); | 169 ObjectArray::Params::Create(*params_value)); |
| 170 EXPECT_TRUE(params.get()); | 170 EXPECT_TRUE(params.get()); |
| 171 ASSERT_EQ(2u, params->objects.size()); | 171 ASSERT_EQ(2u, params->objects.size()); |
| 172 EXPECT_EQ(1, params->objects[0]->additional_properties["val"]); | 172 EXPECT_EQ(1, params->objects[0]->additional_properties["val"]); |
| 173 EXPECT_EQ(2, params->objects[1]->additional_properties["val"]); | 173 EXPECT_EQ(2, params->objects[1]->additional_properties["val"]); |
| 174 } | 174 } |
| 175 | 175 |
| 176 TEST(JsonSchemaCompilerArrayTest, RefArrayParamsCreate) { | 176 TEST(JsonSchemaCompilerArrayTest, RefArrayParamsCreate) { |
| 177 scoped_ptr<ListValue> params_value(new ListValue()); | 177 scoped_ptr<base::ListValue> params_value(new base::ListValue()); |
| 178 scoped_ptr<ListValue> item_array(new ListValue()); | 178 scoped_ptr<base::ListValue> item_array(new base::ListValue()); |
| 179 item_array->Append(CreateItemValue(1)); | 179 item_array->Append(CreateItemValue(1)); |
| 180 item_array->Append(CreateItemValue(2)); | 180 item_array->Append(CreateItemValue(2)); |
| 181 params_value->Append(item_array.release()); | 181 params_value->Append(item_array.release()); |
| 182 scoped_ptr<RefArray::Params> params( | 182 scoped_ptr<RefArray::Params> params( |
| 183 RefArray::Params::Create(*params_value)); | 183 RefArray::Params::Create(*params_value)); |
| 184 EXPECT_TRUE(params.get()); | 184 EXPECT_TRUE(params.get()); |
| 185 ASSERT_EQ(2u, params->refs.size()); | 185 ASSERT_EQ(2u, params->refs.size()); |
| 186 EXPECT_EQ(1, params->refs[0]->val); | 186 EXPECT_EQ(1, params->refs[0]->val); |
| 187 EXPECT_EQ(2, params->refs[1]->val); | 187 EXPECT_EQ(2, params->refs[1]->val); |
| 188 } | 188 } |
| 189 | 189 |
| 190 TEST(JsonSchemaCompilerArrayTest, ReturnIntegerArrayResultCreate) { | 190 TEST(JsonSchemaCompilerArrayTest, ReturnIntegerArrayResultCreate) { |
| 191 std::vector<int> integers; | 191 std::vector<int> integers; |
| 192 integers.push_back(1); | 192 integers.push_back(1); |
| 193 integers.push_back(2); | 193 integers.push_back(2); |
| 194 scoped_ptr<ListValue> results = ReturnIntegerArray::Results::Create(integers); | 194 scoped_ptr<base::ListValue> results = |
| 195 ReturnIntegerArray::Results::Create(integers); |
| 195 | 196 |
| 196 ListValue expected; | 197 base::ListValue expected; |
| 197 ListValue* expected_argument = new ListValue(); | 198 base::ListValue* expected_argument = new base::ListValue(); |
| 198 expected_argument->Append(Value::CreateIntegerValue(1)); | 199 expected_argument->Append(base::Value::CreateIntegerValue(1)); |
| 199 expected_argument->Append(Value::CreateIntegerValue(2)); | 200 expected_argument->Append(base::Value::CreateIntegerValue(2)); |
| 200 expected.Append(expected_argument); | 201 expected.Append(expected_argument); |
| 201 EXPECT_TRUE(results->Equals(&expected)); | 202 EXPECT_TRUE(results->Equals(&expected)); |
| 202 } | 203 } |
| 203 | 204 |
| 204 TEST(JsonSchemaCompilerArrayTest, ReturnRefArrayResultCreate) { | 205 TEST(JsonSchemaCompilerArrayTest, ReturnRefArrayResultCreate) { |
| 205 std::vector<linked_ptr<Item> > items; | 206 std::vector<linked_ptr<Item> > items; |
| 206 items.push_back(linked_ptr<Item>(new Item())); | 207 items.push_back(linked_ptr<Item>(new Item())); |
| 207 items.push_back(linked_ptr<Item>(new Item())); | 208 items.push_back(linked_ptr<Item>(new Item())); |
| 208 items[0]->val = 1; | 209 items[0]->val = 1; |
| 209 items[1]->val = 2; | 210 items[1]->val = 2; |
| 210 scoped_ptr<ListValue> results = ReturnRefArray::Results::Create(items); | 211 scoped_ptr<base::ListValue> results = |
| 212 ReturnRefArray::Results::Create(items); |
| 211 | 213 |
| 212 ListValue expected; | 214 base::ListValue expected; |
| 213 ListValue* expected_argument = new ListValue(); | 215 base::ListValue* expected_argument = new base::ListValue(); |
| 214 DictionaryValue* first = new DictionaryValue(); | 216 base::DictionaryValue* first = new base::DictionaryValue(); |
| 215 first->SetInteger("val", 1); | 217 first->SetInteger("val", 1); |
| 216 expected_argument->Append(first); | 218 expected_argument->Append(first); |
| 217 DictionaryValue* second = new DictionaryValue(); | 219 base::DictionaryValue* second = new base::DictionaryValue(); |
| 218 second->SetInteger("val", 2); | 220 second->SetInteger("val", 2); |
| 219 expected_argument->Append(second); | 221 expected_argument->Append(second); |
| 220 expected.Append(expected_argument); | 222 expected.Append(expected_argument); |
| 221 EXPECT_TRUE(results->Equals(&expected)); | 223 EXPECT_TRUE(results->Equals(&expected)); |
| 222 } | 224 } |
| OLD | NEW |