| 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/enums.h" | 5 #include "tools/json_schema_compiler/test/enums.h" |
| 6 | 6 |
| 7 #include "chrome/common/extensions/value_builder.h" |
| 7 #include "testing/gtest/include/gtest/gtest.h" | 8 #include "testing/gtest/include/gtest/gtest.h" |
| 8 | 9 |
| 9 using namespace test::api::enums; | 10 using namespace test::api::enums; |
| 11 using namespace extensions; |
| 10 | 12 |
| 11 TEST(JsonSchemaCompilerEnumsTest, EnumTypePopulate) { | 13 TEST(JsonSchemaCompilerEnumsTest, EnumTypePopulate) { |
| 12 { | 14 { |
| 13 scoped_ptr<EnumType> enum_type(new EnumType()); | 15 scoped_ptr<EnumType> enum_type(new EnumType()); |
| 14 scoped_ptr<DictionaryValue> value(new DictionaryValue()); | 16 scoped_ptr<DictionaryValue> value( |
| 15 value->Set("type", Value::CreateStringValue("one")); | 17 DictionaryBuilder().Set("type", "one").Build()); |
| 16 EXPECT_TRUE(EnumType::Populate(*value, enum_type.get())); | 18 EXPECT_TRUE(EnumType::Populate(*value, enum_type.get())); |
| 17 EXPECT_EQ(EnumType::TYPE_ONE, enum_type->type); | 19 EXPECT_EQ(EnumType::TYPE_ONE, enum_type->type); |
| 18 EXPECT_TRUE(value->Equals(enum_type->ToValue().get())); | 20 EXPECT_TRUE(value->Equals(enum_type->ToValue().get())); |
| 19 } | 21 } |
| 20 { | 22 { |
| 21 scoped_ptr<EnumType> enum_type(new EnumType()); | 23 scoped_ptr<EnumType> enum_type(new EnumType()); |
| 22 scoped_ptr<DictionaryValue> value(new DictionaryValue()); | 24 scoped_ptr<DictionaryValue> value( |
| 23 value->Set("type", Value::CreateStringValue("invalid")); | 25 DictionaryBuilder().Set("type", "invalid").Build()); |
| 24 EXPECT_FALSE(EnumType::Populate(*value, enum_type.get())); | 26 EXPECT_FALSE(EnumType::Populate(*value, enum_type.get())); |
| 25 } | 27 } |
| 26 } | 28 } |
| 27 | 29 |
| 30 TEST(JsonSchemaCompilerEnumsTest, ReturnsEnumCreate) { |
| 31 { |
| 32 ReturnsEnum::Result::State state = ReturnsEnum::Result::STATE_FOO; |
| 33 scoped_ptr<Value> result(ReturnsEnum::Result::CreateEnumValue(state)); |
| 34 scoped_ptr<Value> expected(Value::CreateStringValue("foo")); |
| 35 EXPECT_TRUE(result->Equals(expected.get())); |
| 36 } |
| 37 { |
| 38 ReturnsEnum::Result::State state = ReturnsEnum::Result::STATE_FOO; |
| 39 scoped_ptr<ListValue> results(ReturnsEnum::Result::Create(state)); |
| 40 ListValue expected; |
| 41 expected.Append(Value::CreateStringValue("foo")); |
| 42 EXPECT_TRUE(results->Equals(&expected)); |
| 43 } |
| 44 } |
| 45 |
| 46 TEST(JsonSchemaCompilerEnumsTest, ReturnsTwoEnumsCreate) { |
| 47 { |
| 48 scoped_ptr<ListValue> results(ReturnsTwoEnums::Result::Create( |
| 49 ReturnsTwoEnums::Result::FIRST_STATE_FOO, |
| 50 ReturnsTwoEnums::Result::SECOND_STATE_HAM)); |
| 51 ListValue expected; |
| 52 expected.Append(Value::CreateStringValue("foo")); |
| 53 expected.Append(Value::CreateStringValue("ham")); |
| 54 EXPECT_TRUE(results->Equals(&expected)); |
| 55 } |
| 56 } |
| 57 |
| 28 TEST(JsonSchemaCompilerEnumsTest, OptionalEnumTypePopulate) { | 58 TEST(JsonSchemaCompilerEnumsTest, OptionalEnumTypePopulate) { |
| 29 { | 59 { |
| 30 scoped_ptr<OptionalEnumType> enum_type(new OptionalEnumType()); | 60 scoped_ptr<OptionalEnumType> enum_type(new OptionalEnumType()); |
| 31 scoped_ptr<DictionaryValue> value(new DictionaryValue()); | 61 scoped_ptr<DictionaryValue> value( |
| 32 value->Set("type", Value::CreateStringValue("two")); | 62 DictionaryBuilder().Set("type", "two").Build()); |
| 33 EXPECT_TRUE(OptionalEnumType::Populate(*value, enum_type.get())); | 63 EXPECT_TRUE(OptionalEnumType::Populate(*value, enum_type.get())); |
| 34 EXPECT_EQ(OptionalEnumType::TYPE_TWO, enum_type->type); | 64 EXPECT_EQ(OptionalEnumType::TYPE_TWO, enum_type->type); |
| 35 EXPECT_TRUE(value->Equals(enum_type->ToValue().get())); | 65 EXPECT_TRUE(value->Equals(enum_type->ToValue().get())); |
| 36 } | 66 } |
| 37 { | 67 { |
| 38 scoped_ptr<OptionalEnumType> enum_type(new OptionalEnumType()); | 68 scoped_ptr<OptionalEnumType> enum_type(new OptionalEnumType()); |
| 39 scoped_ptr<DictionaryValue> value(new DictionaryValue()); | 69 scoped_ptr<DictionaryValue> value(new DictionaryValue()); |
| 40 EXPECT_TRUE(OptionalEnumType::Populate(*value, enum_type.get())); | 70 EXPECT_TRUE(OptionalEnumType::Populate(*value, enum_type.get())); |
| 41 EXPECT_EQ(OptionalEnumType::TYPE_NONE, enum_type->type); | 71 EXPECT_EQ(OptionalEnumType::TYPE_NONE, enum_type->type); |
| 42 EXPECT_TRUE(value->Equals(enum_type->ToValue().get())); | 72 EXPECT_TRUE(value->Equals(enum_type->ToValue().get())); |
| 43 } | 73 } |
| 44 { | 74 { |
| 45 scoped_ptr<OptionalEnumType> enum_type(new OptionalEnumType()); | 75 scoped_ptr<OptionalEnumType> enum_type(new OptionalEnumType()); |
| 46 scoped_ptr<DictionaryValue> value(new DictionaryValue()); | 76 scoped_ptr<DictionaryValue> value( |
| 47 value->Set("type", Value::CreateStringValue("invalid")); | 77 DictionaryBuilder().Set("type", "invalid").Build()); |
| 48 EXPECT_FALSE(OptionalEnumType::Populate(*value, enum_type.get())); | 78 EXPECT_FALSE(OptionalEnumType::Populate(*value, enum_type.get())); |
| 49 } | 79 } |
| 50 } | 80 } |
| 51 | 81 |
| 52 TEST(JsonSchemaCompilerEnumsTest, TakesEnumParamsCreate) { | 82 TEST(JsonSchemaCompilerEnumsTest, TakesEnumParamsCreate) { |
| 53 { | 83 { |
| 54 scoped_ptr<ListValue> params_value(new ListValue()); | 84 scoped_ptr<ListValue> params_value(new ListValue()); |
| 55 params_value->Append(Value::CreateStringValue("baz")); | 85 params_value->Append(Value::CreateStringValue("baz")); |
| 56 scoped_ptr<TakesEnum::Params> params( | 86 scoped_ptr<TakesEnum::Params> params( |
| 57 TakesEnum::Params::Create(*params_value)); | 87 TakesEnum::Params::Create(*params_value)); |
| 58 EXPECT_TRUE(params.get()); | 88 EXPECT_TRUE(params.get()); |
| 59 EXPECT_EQ(TakesEnum::Params::STATE_BAZ, params->state); | 89 EXPECT_EQ(TakesEnum::Params::STATE_BAZ, params->state); |
| 60 } | 90 } |
| 61 { | 91 { |
| 62 scoped_ptr<ListValue> params_value(new ListValue()); | 92 scoped_ptr<ListValue> params_value(ListBuilder().Append("invalid").Build()); |
| 63 params_value->Append(Value::CreateStringValue("invalid")); | |
| 64 scoped_ptr<TakesEnum::Params> params( | 93 scoped_ptr<TakesEnum::Params> params( |
| 65 TakesEnum::Params::Create(*params_value)); | 94 TakesEnum::Params::Create(*params_value)); |
| 66 EXPECT_FALSE(params.get()); | 95 EXPECT_FALSE(params.get()); |
| 67 } | 96 } |
| 68 } | 97 } |
| 69 | 98 |
| 70 TEST(JsonSchemaCompilerEnumsTest, TakesOptionalEnumParamsCreate) { | 99 TEST(JsonSchemaCompilerEnumsTest, TakesOptionalEnumParamsCreate) { |
| 71 { | 100 { |
| 72 scoped_ptr<ListValue> params_value(new ListValue()); | 101 scoped_ptr<ListValue> params_value(ListBuilder().Append("baz").Build()); |
| 73 params_value->Append(Value::CreateStringValue("baz")); | |
| 74 scoped_ptr<TakesOptionalEnum::Params> params( | 102 scoped_ptr<TakesOptionalEnum::Params> params( |
| 75 TakesOptionalEnum::Params::Create(*params_value)); | 103 TakesOptionalEnum::Params::Create(*params_value)); |
| 76 EXPECT_TRUE(params.get()); | 104 EXPECT_TRUE(params.get()); |
| 77 EXPECT_EQ(TakesOptionalEnum::Params::STATE_BAZ, params->state); | 105 EXPECT_EQ(TakesOptionalEnum::Params::STATE_BAZ, params->state); |
| 78 } | 106 } |
| 79 { | 107 { |
| 80 scoped_ptr<ListValue> params_value(new ListValue()); | 108 scoped_ptr<ListValue> params_value(new ListValue()); |
| 81 scoped_ptr<TakesOptionalEnum::Params> params( | 109 scoped_ptr<TakesOptionalEnum::Params> params( |
| 82 TakesOptionalEnum::Params::Create(*params_value)); | 110 TakesOptionalEnum::Params::Create(*params_value)); |
| 83 EXPECT_TRUE(params.get()); | 111 EXPECT_TRUE(params.get()); |
| 84 EXPECT_EQ(TakesOptionalEnum::Params::STATE_NONE, params->state); | 112 EXPECT_EQ(TakesOptionalEnum::Params::STATE_NONE, params->state); |
| 85 } | 113 } |
| 86 { | 114 { |
| 87 scoped_ptr<ListValue> params_value(new ListValue()); | 115 scoped_ptr<ListValue> params_value(ListBuilder().Append("invalid").Build()); |
| 88 params_value->Append(Value::CreateStringValue("invalid")); | |
| 89 scoped_ptr<TakesOptionalEnum::Params> params( | 116 scoped_ptr<TakesOptionalEnum::Params> params( |
| 90 TakesOptionalEnum::Params::Create(*params_value)); | 117 TakesOptionalEnum::Params::Create(*params_value)); |
| 91 EXPECT_FALSE(params.get()); | 118 EXPECT_FALSE(params.get()); |
| 92 } | 119 } |
| 93 } | 120 } |
| 94 | 121 |
| 95 TEST(JsonSchemaCompilerEnumsTest, TakesMultipleOptionalEnumsParamsCreate) { | 122 TEST(JsonSchemaCompilerEnumsTest, TakesMultipleOptionalEnumsParamsCreate) { |
| 96 { | 123 { |
| 97 scoped_ptr<ListValue> params_value(new ListValue()); | 124 scoped_ptr<ListValue> params_value( |
| 98 params_value->Append(Value::CreateStringValue("foo")); | 125 ListBuilder().Append("foo").Append("foo").Build()); |
| 99 params_value->Append(Value::CreateStringValue("foo")); | |
| 100 scoped_ptr<TakesMultipleOptionalEnums::Params> params( | 126 scoped_ptr<TakesMultipleOptionalEnums::Params> params( |
| 101 TakesMultipleOptionalEnums::Params::Create(*params_value)); | 127 TakesMultipleOptionalEnums::Params::Create(*params_value)); |
| 102 EXPECT_TRUE(params.get()); | 128 EXPECT_TRUE(params.get()); |
| 103 EXPECT_EQ(TakesMultipleOptionalEnums::Params::STATE_FOO, params->state); | 129 EXPECT_EQ(TakesMultipleOptionalEnums::Params::STATE_FOO, params->state); |
| 104 EXPECT_EQ(TakesMultipleOptionalEnums::Params::TYPE_FOO, params->type); | 130 EXPECT_EQ(TakesMultipleOptionalEnums::Params::TYPE_FOO, params->type); |
| 105 } | 131 } |
| 106 { | 132 { |
| 107 scoped_ptr<ListValue> params_value(new ListValue()); | 133 scoped_ptr<ListValue> params_value(ListBuilder().Append("foo").Build()); |
| 108 params_value->Append(Value::CreateStringValue("foo")); | |
| 109 scoped_ptr<TakesMultipleOptionalEnums::Params> params( | 134 scoped_ptr<TakesMultipleOptionalEnums::Params> params( |
| 110 TakesMultipleOptionalEnums::Params::Create(*params_value)); | 135 TakesMultipleOptionalEnums::Params::Create(*params_value)); |
| 111 EXPECT_TRUE(params.get()); | 136 EXPECT_TRUE(params.get()); |
| 112 EXPECT_EQ(TakesMultipleOptionalEnums::Params::STATE_FOO, params->state); | 137 EXPECT_EQ(TakesMultipleOptionalEnums::Params::STATE_FOO, params->state); |
| 113 EXPECT_EQ(TakesMultipleOptionalEnums::Params::TYPE_NONE, params->type); | 138 EXPECT_EQ(TakesMultipleOptionalEnums::Params::TYPE_NONE, params->type); |
| 114 } | 139 } |
| 115 { | 140 { |
| 116 scoped_ptr<ListValue> params_value(new ListValue()); | 141 scoped_ptr<ListValue> params_value(new ListValue()); |
| 117 scoped_ptr<TakesMultipleOptionalEnums::Params> params( | 142 scoped_ptr<TakesMultipleOptionalEnums::Params> params( |
| 118 TakesMultipleOptionalEnums::Params::Create(*params_value)); | 143 TakesMultipleOptionalEnums::Params::Create(*params_value)); |
| 119 EXPECT_TRUE(params.get()); | 144 EXPECT_TRUE(params.get()); |
| 120 EXPECT_EQ(TakesMultipleOptionalEnums::Params::STATE_NONE, params->state); | 145 EXPECT_EQ(TakesMultipleOptionalEnums::Params::STATE_NONE, params->state); |
| 121 EXPECT_EQ(TakesMultipleOptionalEnums::Params::TYPE_NONE, params->type); | 146 EXPECT_EQ(TakesMultipleOptionalEnums::Params::TYPE_NONE, params->type); |
| 122 } | 147 } |
| 123 { | 148 { |
| 124 scoped_ptr<ListValue> params_value(new ListValue()); | 149 scoped_ptr<ListValue> params_value( |
| 125 params_value->Append(Value::CreateStringValue("baz")); | 150 ListBuilder().Append("baz").Append("invalid").Build()); |
| 126 params_value->Append(Value::CreateStringValue("invalid")); | |
| 127 scoped_ptr<TakesMultipleOptionalEnums::Params> params( | 151 scoped_ptr<TakesMultipleOptionalEnums::Params> params( |
| 128 TakesMultipleOptionalEnums::Params::Create(*params_value)); | 152 TakesMultipleOptionalEnums::Params::Create(*params_value)); |
| 129 EXPECT_FALSE(params.get()); | 153 EXPECT_FALSE(params.get()); |
| 130 } | 154 } |
| 131 } | 155 } |
| 156 |
| 157 TEST(JsonSchemaCompilerEnumsTest, OnEnumFiredCreate) { |
| 158 { |
| 159 OnEnumFired::SomeEnum some_enum = OnEnumFired::SOME_ENUM_FOO; |
| 160 scoped_ptr<Value> result(OnEnumFired::CreateEnumValue(some_enum)); |
| 161 scoped_ptr<Value> expected(Value::CreateStringValue("foo")); |
| 162 EXPECT_TRUE(result->Equals(expected.get())); |
| 163 } |
| 164 { |
| 165 OnEnumFired::SomeEnum some_enum = OnEnumFired::SOME_ENUM_FOO; |
| 166 scoped_ptr<ListValue> results(OnEnumFired::Create(some_enum)); |
| 167 scoped_ptr<ListValue> expected(ListBuilder().Append("foo").Build()); |
| 168 EXPECT_TRUE(results->Equals(expected.get())); |
| 169 } |
| 170 } |
| 171 |
| 172 TEST(JsonSchemaCompilerEnumsTest, OnTwoEnumsFiredCreate) { |
| 173 { |
| 174 scoped_ptr<Value> results(OnTwoEnumsFired::Create( |
| 175 OnTwoEnumsFired::FIRST_ENUM_FOO, |
| 176 OnTwoEnumsFired::SECOND_ENUM_HAM)); |
| 177 scoped_ptr<ListValue> expected( |
| 178 ListBuilder().Append("foo").Append("ham").Build()); |
| 179 EXPECT_TRUE(results->Equals(expected.get())); |
| 180 } |
| 181 } |
| OLD | NEW |