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

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

Issue 10828407: JSON Schema Compiler supports Enums as types. (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: more testing of optional enums Created 8 years, 3 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/enums.h" 5 #include "tools/json_schema_compiler/test/enums.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::enums; 9 using namespace test::api::enums;
10 10
11 TEST(JsonSchemaCompilerEnumsTest, EnumTypePopulate) { 11 TEST(JsonSchemaCompilerEnumsTest, EnumTypePopulate) {
12 { 12 {
13 scoped_ptr<EnumType> enum_type(new EnumType()); 13 EnumType enum_type;
14 scoped_ptr<DictionaryValue> value(new DictionaryValue()); 14 DictionaryValue value;
15 value->Set("type", Value::CreateStringValue("one")); 15 value.Set("type", Value::CreateStringValue("one"));
16 EXPECT_TRUE(EnumType::Populate(*value, enum_type.get())); 16 EXPECT_TRUE(EnumType::Populate(value, &enum_type));
17 EXPECT_EQ(EnumType::TYPE_ONE, enum_type->type); 17 EXPECT_EQ(EnumType::TYPE_ONE, enum_type.type);
18 EXPECT_TRUE(value->Equals(enum_type->ToValue().get())); 18 EXPECT_TRUE(value.Equals(enum_type.ToValue().get()));
19 } 19 }
20 { 20 {
21 scoped_ptr<EnumType> enum_type(new EnumType()); 21 EnumType enum_type;
22 scoped_ptr<DictionaryValue> value(new DictionaryValue()); 22 DictionaryValue value;
23 value->Set("type", Value::CreateStringValue("invalid")); 23 value.Set("type", Value::CreateStringValue("invalid"));
24 EXPECT_FALSE(EnumType::Populate(*value, enum_type.get())); 24 EXPECT_FALSE(EnumType::Populate(value, &enum_type));
25 } 25 }
26 } 26 }
27 27
28 TEST(JsonSchemaCompilerEnumsTest, EnumsAsTypes) {
29 {
30 ListValue args;
31 args.Append(Value::CreateStringValue("one"));
32
33 scoped_ptr<TakesEnumAsType::Params> params(
34 TakesEnumAsType::Params::Create(args));
35 ASSERT_TRUE(params.get());
36 EXPECT_EQ(ENUMERATION_ONE, params->enumeration);
37
38 EXPECT_TRUE(args.Equals(ReturnsEnumAsType::Results::Create(
39 ENUMERATION_ONE).get()));
40 }
41 {
42 HasEnumeration enumeration;
43 DictionaryValue value;
44 ASSERT_FALSE(HasEnumeration::Populate(value, &enumeration));
45
46 value.Set("enumeration", Value::CreateStringValue("one"));
47 ASSERT_TRUE(HasEnumeration::Populate(value, &enumeration));
48 EXPECT_TRUE(value.Equals(enumeration.ToValue().get()));
49
50 value.Set("optional_enumeration", Value::CreateStringValue("two"));
51 ASSERT_TRUE(HasEnumeration::Populate(value, &enumeration));
52 EXPECT_TRUE(value.Equals(enumeration.ToValue().get()));
53 }
54 }
55
28 TEST(JsonSchemaCompilerEnumsTest, ReturnsEnumCreate) { 56 TEST(JsonSchemaCompilerEnumsTest, ReturnsEnumCreate) {
29 { 57 {
30 ReturnsEnum::Results::State state = ReturnsEnum::Results::STATE_FOO; 58 ReturnsEnum::Results::State state = ReturnsEnum::Results::STATE_FOO;
31 scoped_ptr<Value> result = ReturnsEnum::Results::CreateEnumValue(state); 59 scoped_ptr<Value> result = ReturnsEnum::Results::CreateEnumValue(state);
32 scoped_ptr<Value> expected(Value::CreateStringValue("foo")); 60 scoped_ptr<Value> expected(Value::CreateStringValue("foo"));
33 EXPECT_TRUE(result->Equals(expected.get())); 61 EXPECT_TRUE(result->Equals(expected.get()));
34 } 62 }
35 { 63 {
36 ReturnsEnum::Results::State state = ReturnsEnum::Results::STATE_FOO; 64 ReturnsEnum::Results::State state = ReturnsEnum::Results::STATE_FOO;
37 scoped_ptr<ListValue> results = ReturnsEnum::Results::Create(state); 65 scoped_ptr<ListValue> results = ReturnsEnum::Results::Create(state);
(...skipping 10 matching lines...) Expand all
48 ReturnsTwoEnums::Results::SECOND_STATE_HAM); 76 ReturnsTwoEnums::Results::SECOND_STATE_HAM);
49 ListValue expected; 77 ListValue expected;
50 expected.Append(Value::CreateStringValue("foo")); 78 expected.Append(Value::CreateStringValue("foo"));
51 expected.Append(Value::CreateStringValue("ham")); 79 expected.Append(Value::CreateStringValue("ham"));
52 EXPECT_TRUE(results->Equals(&expected)); 80 EXPECT_TRUE(results->Equals(&expected));
53 } 81 }
54 } 82 }
55 83
56 TEST(JsonSchemaCompilerEnumsTest, OptionalEnumTypePopulate) { 84 TEST(JsonSchemaCompilerEnumsTest, OptionalEnumTypePopulate) {
57 { 85 {
58 scoped_ptr<OptionalEnumType> enum_type(new OptionalEnumType()); 86 OptionalEnumType enum_type;
59 scoped_ptr<DictionaryValue> value(new DictionaryValue()); 87 DictionaryValue value;
60 value->Set("type", Value::CreateStringValue("two")); 88 value.Set("type", Value::CreateStringValue("two"));
61 EXPECT_TRUE(OptionalEnumType::Populate(*value, enum_type.get())); 89 EXPECT_TRUE(OptionalEnumType::Populate(value, &enum_type));
62 EXPECT_EQ(OptionalEnumType::TYPE_TWO, enum_type->type); 90 EXPECT_EQ(OptionalEnumType::TYPE_TWO, enum_type.type);
63 EXPECT_TRUE(value->Equals(enum_type->ToValue().get())); 91 EXPECT_TRUE(value.Equals(enum_type.ToValue().get()));
64 } 92 }
65 { 93 {
66 scoped_ptr<OptionalEnumType> enum_type(new OptionalEnumType()); 94 OptionalEnumType enum_type;
67 scoped_ptr<DictionaryValue> value(new DictionaryValue()); 95 DictionaryValue value;
68 EXPECT_TRUE(OptionalEnumType::Populate(*value, enum_type.get())); 96 EXPECT_TRUE(OptionalEnumType::Populate(value, &enum_type));
69 EXPECT_EQ(OptionalEnumType::TYPE_NONE, enum_type->type); 97 EXPECT_EQ(OptionalEnumType::TYPE_NONE, enum_type.type);
70 EXPECT_TRUE(value->Equals(enum_type->ToValue().get())); 98 EXPECT_TRUE(value.Equals(enum_type.ToValue().get()));
71 } 99 }
72 { 100 {
73 scoped_ptr<OptionalEnumType> enum_type(new OptionalEnumType()); 101 OptionalEnumType enum_type;
74 scoped_ptr<DictionaryValue> value(new DictionaryValue()); 102 DictionaryValue value;
75 value->Set("type", Value::CreateStringValue("invalid")); 103 value.Set("type", Value::CreateStringValue("invalid"));
76 EXPECT_FALSE(OptionalEnumType::Populate(*value, enum_type.get())); 104 EXPECT_FALSE(OptionalEnumType::Populate(value, &enum_type));
77 } 105 }
78 } 106 }
79 107
80 TEST(JsonSchemaCompilerEnumsTest, TakesEnumParamsCreate) { 108 TEST(JsonSchemaCompilerEnumsTest, TakesEnumParamsCreate) {
81 { 109 {
82 scoped_ptr<ListValue> params_value(new ListValue()); 110 ListValue params_value;
83 params_value->Append(Value::CreateStringValue("baz")); 111 params_value.Append(Value::CreateStringValue("baz"));
84 scoped_ptr<TakesEnum::Params> params( 112 scoped_ptr<TakesEnum::Params> params(
85 TakesEnum::Params::Create(*params_value)); 113 TakesEnum::Params::Create(params_value));
86 EXPECT_TRUE(params.get()); 114 EXPECT_TRUE(params.get());
87 EXPECT_EQ(TakesEnum::Params::STATE_BAZ, params->state); 115 EXPECT_EQ(TakesEnum::Params::STATE_BAZ, params->state);
88 } 116 }
89 { 117 {
90 scoped_ptr<ListValue> params_value(new ListValue()); 118 ListValue params_value;
91 params_value->Append(Value::CreateStringValue("invalid")); 119 params_value.Append(Value::CreateStringValue("invalid"));
92 scoped_ptr<TakesEnum::Params> params( 120 scoped_ptr<TakesEnum::Params> params(
93 TakesEnum::Params::Create(*params_value)); 121 TakesEnum::Params::Create(params_value));
94 EXPECT_FALSE(params.get()); 122 EXPECT_FALSE(params.get());
95 } 123 }
96 } 124 }
97 125
98 TEST(JsonSchemaCompilerEnumsTest, TakesOptionalEnumParamsCreate) { 126 TEST(JsonSchemaCompilerEnumsTest, TakesOptionalEnumParamsCreate) {
99 { 127 {
100 scoped_ptr<ListValue> params_value(new ListValue()); 128 ListValue params_value;
101 params_value->Append(Value::CreateStringValue("baz")); 129 params_value.Append(Value::CreateStringValue("baz"));
102 scoped_ptr<TakesOptionalEnum::Params> params( 130 scoped_ptr<TakesOptionalEnum::Params> params(
103 TakesOptionalEnum::Params::Create(*params_value)); 131 TakesOptionalEnum::Params::Create(params_value));
104 EXPECT_TRUE(params.get()); 132 EXPECT_TRUE(params.get());
105 EXPECT_EQ(TakesOptionalEnum::Params::STATE_BAZ, params->state); 133 EXPECT_EQ(TakesOptionalEnum::Params::STATE_BAZ, params->state);
106 } 134 }
107 { 135 {
108 scoped_ptr<ListValue> params_value(new ListValue()); 136 ListValue params_value;
109 scoped_ptr<TakesOptionalEnum::Params> params( 137 scoped_ptr<TakesOptionalEnum::Params> params(
110 TakesOptionalEnum::Params::Create(*params_value)); 138 TakesOptionalEnum::Params::Create(params_value));
111 EXPECT_TRUE(params.get()); 139 EXPECT_TRUE(params.get());
112 EXPECT_EQ(TakesOptionalEnum::Params::STATE_NONE, params->state); 140 EXPECT_EQ(TakesOptionalEnum::Params::STATE_NONE, params->state);
113 } 141 }
114 { 142 {
115 scoped_ptr<ListValue> params_value(new ListValue()); 143 ListValue params_value;
116 params_value->Append(Value::CreateStringValue("invalid")); 144 params_value.Append(Value::CreateStringValue("invalid"));
117 scoped_ptr<TakesOptionalEnum::Params> params( 145 scoped_ptr<TakesOptionalEnum::Params> params(
118 TakesOptionalEnum::Params::Create(*params_value)); 146 TakesOptionalEnum::Params::Create(params_value));
119 EXPECT_FALSE(params.get()); 147 EXPECT_FALSE(params.get());
120 } 148 }
121 } 149 }
122 150
123 TEST(JsonSchemaCompilerEnumsTest, TakesMultipleOptionalEnumsParamsCreate) { 151 TEST(JsonSchemaCompilerEnumsTest, TakesMultipleOptionalEnumsParamsCreate) {
124 { 152 {
125 scoped_ptr<ListValue> params_value(new ListValue()); 153 ListValue params_value;
126 params_value->Append(Value::CreateStringValue("foo")); 154 params_value.Append(Value::CreateStringValue("foo"));
127 params_value->Append(Value::CreateStringValue("foo")); 155 params_value.Append(Value::CreateStringValue("foo"));
128 scoped_ptr<TakesMultipleOptionalEnums::Params> params( 156 scoped_ptr<TakesMultipleOptionalEnums::Params> params(
129 TakesMultipleOptionalEnums::Params::Create(*params_value)); 157 TakesMultipleOptionalEnums::Params::Create(params_value));
130 EXPECT_TRUE(params.get()); 158 EXPECT_TRUE(params.get());
131 EXPECT_EQ(TakesMultipleOptionalEnums::Params::STATE_FOO, params->state); 159 EXPECT_EQ(TakesMultipleOptionalEnums::Params::STATE_FOO, params->state);
132 EXPECT_EQ(TakesMultipleOptionalEnums::Params::TYPE_FOO, params->type); 160 EXPECT_EQ(TakesMultipleOptionalEnums::Params::TYPE_FOO, params->type);
133 } 161 }
134 { 162 {
135 scoped_ptr<ListValue> params_value(new ListValue()); 163 ListValue params_value;
136 params_value->Append(Value::CreateStringValue("foo")); 164 params_value.Append(Value::CreateStringValue("foo"));
137 scoped_ptr<TakesMultipleOptionalEnums::Params> params( 165 scoped_ptr<TakesMultipleOptionalEnums::Params> params(
138 TakesMultipleOptionalEnums::Params::Create(*params_value)); 166 TakesMultipleOptionalEnums::Params::Create(params_value));
139 EXPECT_TRUE(params.get()); 167 EXPECT_TRUE(params.get());
140 EXPECT_EQ(TakesMultipleOptionalEnums::Params::STATE_FOO, params->state); 168 EXPECT_EQ(TakesMultipleOptionalEnums::Params::STATE_FOO, params->state);
141 EXPECT_EQ(TakesMultipleOptionalEnums::Params::TYPE_NONE, params->type); 169 EXPECT_EQ(TakesMultipleOptionalEnums::Params::TYPE_NONE, params->type);
142 } 170 }
143 { 171 {
144 scoped_ptr<ListValue> params_value(new ListValue()); 172 ListValue params_value;
145 scoped_ptr<TakesMultipleOptionalEnums::Params> params( 173 scoped_ptr<TakesMultipleOptionalEnums::Params> params(
146 TakesMultipleOptionalEnums::Params::Create(*params_value)); 174 TakesMultipleOptionalEnums::Params::Create(params_value));
147 EXPECT_TRUE(params.get()); 175 EXPECT_TRUE(params.get());
148 EXPECT_EQ(TakesMultipleOptionalEnums::Params::STATE_NONE, params->state); 176 EXPECT_EQ(TakesMultipleOptionalEnums::Params::STATE_NONE, params->state);
149 EXPECT_EQ(TakesMultipleOptionalEnums::Params::TYPE_NONE, params->type); 177 EXPECT_EQ(TakesMultipleOptionalEnums::Params::TYPE_NONE, params->type);
150 } 178 }
151 { 179 {
152 scoped_ptr<ListValue> params_value(new ListValue()); 180 ListValue params_value;
153 params_value->Append(Value::CreateStringValue("baz")); 181 params_value.Append(Value::CreateStringValue("baz"));
154 params_value->Append(Value::CreateStringValue("invalid")); 182 params_value.Append(Value::CreateStringValue("invalid"));
155 scoped_ptr<TakesMultipleOptionalEnums::Params> params( 183 scoped_ptr<TakesMultipleOptionalEnums::Params> params(
156 TakesMultipleOptionalEnums::Params::Create(*params_value)); 184 TakesMultipleOptionalEnums::Params::Create(params_value));
157 EXPECT_FALSE(params.get()); 185 EXPECT_FALSE(params.get());
158 } 186 }
159 } 187 }
160 188
161 TEST(JsonSchemaCompilerEnumsTest, OnEnumFiredCreate) { 189 TEST(JsonSchemaCompilerEnumsTest, OnEnumFiredCreate) {
162 { 190 {
163 OnEnumFired::SomeEnum some_enum = OnEnumFired::SOME_ENUM_FOO; 191 OnEnumFired::SomeEnum some_enum = OnEnumFired::SOME_ENUM_FOO;
164 scoped_ptr<Value> result(OnEnumFired::CreateEnumValue(some_enum)); 192 scoped_ptr<Value> result(OnEnumFired::CreateEnumValue(some_enum));
165 scoped_ptr<Value> expected(Value::CreateStringValue("foo")); 193 scoped_ptr<Value> expected(Value::CreateStringValue("foo"));
166 EXPECT_TRUE(result->Equals(expected.get())); 194 EXPECT_TRUE(result->Equals(expected.get()));
(...skipping 11 matching lines...) Expand all
178 { 206 {
179 scoped_ptr<Value> results(OnTwoEnumsFired::Create( 207 scoped_ptr<Value> results(OnTwoEnumsFired::Create(
180 OnTwoEnumsFired::FIRST_ENUM_FOO, 208 OnTwoEnumsFired::FIRST_ENUM_FOO,
181 OnTwoEnumsFired::SECOND_ENUM_HAM)); 209 OnTwoEnumsFired::SECOND_ENUM_HAM));
182 ListValue expected; 210 ListValue expected;
183 expected.Append(Value::CreateStringValue("foo")); 211 expected.Append(Value::CreateStringValue("foo"));
184 expected.Append(Value::CreateStringValue("ham")); 212 expected.Append(Value::CreateStringValue("ham"));
185 EXPECT_TRUE(results->Equals(&expected)); 213 EXPECT_TRUE(results->Equals(&expected));
186 } 214 }
187 } 215 }
OLDNEW
« tools/json_schema_compiler/h_generator.py ('K') | « tools/json_schema_compiler/test/enums.json ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698