| OLD | NEW |
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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/error_generation.h" | 5 #include "tools/json_schema_compiler/test/error_generation.h" |
| 6 | 6 |
| 7 #include "base/json/json_writer.h" | 7 #include "base/json/json_writer.h" |
| 8 #include "base/strings/utf_string_conversions.h" | 8 #include "base/strings/utf_string_conversions.h" |
| 9 #include "testing/gtest/include/gtest/gtest.h" | 9 #include "testing/gtest/include/gtest/gtest.h" |
| 10 #include "tools/json_schema_compiler/test/test_util.h" | 10 #include "tools/json_schema_compiler/test/test_util.h" |
| (...skipping 15 matching lines...) Expand all Loading... |
| 26 const base::string16& actual) { | 26 const base::string16& actual) { |
| 27 if (ASCIIToUTF16(expected) != actual) | 27 if (ASCIIToUTF16(expected) != actual) |
| 28 return testing::AssertionFailure() << expected << " != " << actual; | 28 return testing::AssertionFailure() << expected << " != " << actual; |
| 29 return testing::AssertionSuccess(); | 29 return testing::AssertionSuccess(); |
| 30 } | 30 } |
| 31 | 31 |
| 32 // GenerateTypePopulate errors | 32 // GenerateTypePopulate errors |
| 33 | 33 |
| 34 TEST(JsonSchemaCompilerErrorTest, RequiredPropertyPopulate) { | 34 TEST(JsonSchemaCompilerErrorTest, RequiredPropertyPopulate) { |
| 35 { | 35 { |
| 36 scoped_ptr<DictionaryValue> value = Dictionary( | 36 scoped_ptr<base::DictionaryValue> value = Dictionary( |
| 37 "string", new StringValue("bling")); | 37 "string", new base::StringValue("bling")); |
| 38 EXPECT_TRUE(EqualsUtf16("", GetPopulateError<TestType>(*value))); | 38 EXPECT_TRUE(EqualsUtf16("", GetPopulateError<TestType>(*value))); |
| 39 } | 39 } |
| 40 { | 40 { |
| 41 scoped_ptr<base::BinaryValue> value(new base::BinaryValue()); | 41 scoped_ptr<base::BinaryValue> value(new base::BinaryValue()); |
| 42 EXPECT_TRUE(EqualsUtf16("expected dictionary, got binary", | 42 EXPECT_TRUE(EqualsUtf16("expected dictionary, got binary", |
| 43 GetPopulateError<TestType>(*value))); | 43 GetPopulateError<TestType>(*value))); |
| 44 } | 44 } |
| 45 } | 45 } |
| 46 | 46 |
| 47 TEST(JsonSchemaCompilerErrorTest, UnexpectedTypePopulation) { | 47 TEST(JsonSchemaCompilerErrorTest, UnexpectedTypePopulation) { |
| 48 { | 48 { |
| 49 scoped_ptr<base::ListValue> value(new base::ListValue()); | 49 scoped_ptr<base::ListValue> value(new base::ListValue()); |
| 50 EXPECT_TRUE(EqualsUtf16("", | 50 EXPECT_TRUE(EqualsUtf16("", |
| 51 GetPopulateError<ChoiceType::Integers>(*value))); | 51 GetPopulateError<ChoiceType::Integers>(*value))); |
| 52 } | 52 } |
| 53 { | 53 { |
| 54 scoped_ptr<base::BinaryValue> value(new base::BinaryValue()); | 54 scoped_ptr<base::BinaryValue> value(new base::BinaryValue()); |
| 55 EXPECT_TRUE(EqualsUtf16("expected integers or integer, got binary", | 55 EXPECT_TRUE(EqualsUtf16("expected integers or integer, got binary", |
| 56 GetPopulateError<ChoiceType::Integers>(*value))); | 56 GetPopulateError<ChoiceType::Integers>(*value))); |
| 57 } | 57 } |
| 58 } | 58 } |
| 59 | 59 |
| 60 // GenerateTypePopulateProperty errors | 60 // GenerateTypePopulateProperty errors |
| 61 | 61 |
| 62 TEST(JsonSchemaCompilerErrorTest, TypeIsRequired) { | 62 TEST(JsonSchemaCompilerErrorTest, TypeIsRequired) { |
| 63 { | 63 { |
| 64 scoped_ptr<DictionaryValue> value = Dictionary( | 64 scoped_ptr<base::DictionaryValue> value = Dictionary( |
| 65 "integers", new FundamentalValue(5)); | 65 "integers", new FundamentalValue(5)); |
| 66 EXPECT_TRUE(EqualsUtf16("", GetPopulateError<ChoiceType>(*value))); | 66 EXPECT_TRUE(EqualsUtf16("", GetPopulateError<ChoiceType>(*value))); |
| 67 } | 67 } |
| 68 { | 68 { |
| 69 scoped_ptr<base::DictionaryValue> value(new base::DictionaryValue()); | 69 scoped_ptr<base::DictionaryValue> value(new base::DictionaryValue()); |
| 70 EXPECT_TRUE(EqualsUtf16("'integers' is required", | 70 EXPECT_TRUE(EqualsUtf16("'integers' is required", |
| 71 GetPopulateError<ChoiceType>(*value))); | 71 GetPopulateError<ChoiceType>(*value))); |
| 72 } | 72 } |
| 73 } | 73 } |
| 74 | 74 |
| (...skipping 18 matching lines...) Expand all Loading... |
| 93 // GenerateFunctionParamsCreate errors | 93 // GenerateFunctionParamsCreate errors |
| 94 | 94 |
| 95 TEST(JsonSchemaCompilerErrorTest, ParamIsRequired) { | 95 TEST(JsonSchemaCompilerErrorTest, ParamIsRequired) { |
| 96 { | 96 { |
| 97 scoped_ptr<base::ListValue> params_value = List( | 97 scoped_ptr<base::ListValue> params_value = List( |
| 98 new FundamentalValue(5)); | 98 new FundamentalValue(5)); |
| 99 EXPECT_TRUE(TestFunction::Params::Create(*params_value)); | 99 EXPECT_TRUE(TestFunction::Params::Create(*params_value)); |
| 100 } | 100 } |
| 101 { | 101 { |
| 102 scoped_ptr<base::ListValue> params_value = List( | 102 scoped_ptr<base::ListValue> params_value = List( |
| 103 Value::CreateNullValue()); | 103 base::Value::CreateNullValue()); |
| 104 base::string16 error; | 104 base::string16 error; |
| 105 EXPECT_FALSE(TestFunction::Params::Create(*params_value, &error)); | 105 EXPECT_FALSE(TestFunction::Params::Create(*params_value, &error)); |
| 106 EXPECT_TRUE(EqualsUtf16("'num' is required", error)); | 106 EXPECT_TRUE(EqualsUtf16("'num' is required", error)); |
| 107 } | 107 } |
| 108 } | 108 } |
| 109 | 109 |
| 110 // GeneratePopulateVariableFromValue errors | 110 // GeneratePopulateVariableFromValue errors |
| 111 | 111 |
| 112 TEST(JsonSchemaCompilerErrorTest, WrongPropertyValueType) { | 112 TEST(JsonSchemaCompilerErrorTest, WrongPropertyValueType) { |
| 113 { | 113 { |
| 114 scoped_ptr<DictionaryValue> value = Dictionary( | 114 scoped_ptr<base::DictionaryValue> value = Dictionary( |
| 115 "string", new StringValue("yes")); | 115 "string", new base::StringValue("yes")); |
| 116 EXPECT_TRUE(EqualsUtf16("", GetPopulateError<TestType>(*value))); | 116 EXPECT_TRUE(EqualsUtf16("", GetPopulateError<TestType>(*value))); |
| 117 } | 117 } |
| 118 { | 118 { |
| 119 scoped_ptr<DictionaryValue> value = Dictionary( | 119 scoped_ptr<base::DictionaryValue> value = Dictionary( |
| 120 "string", new FundamentalValue(1.1)); | 120 "string", new FundamentalValue(1.1)); |
| 121 EXPECT_TRUE(EqualsUtf16("'string': expected string, got number", | 121 EXPECT_TRUE(EqualsUtf16("'string': expected string, got number", |
| 122 GetPopulateError<TestType>(*value))); | 122 GetPopulateError<TestType>(*value))); |
| 123 } | 123 } |
| 124 } | 124 } |
| 125 | 125 |
| 126 TEST(JsonSchemaCompilerErrorTest, WrongParameterCreationType) { | 126 TEST(JsonSchemaCompilerErrorTest, WrongParameterCreationType) { |
| 127 { | 127 { |
| 128 scoped_ptr<base::ListValue> params_value = List( | 128 scoped_ptr<base::ListValue> params_value = List( |
| 129 new StringValue("Yeah!")); | 129 new base::StringValue("Yeah!")); |
| 130 EXPECT_TRUE(TestString::Params::Create(*params_value)); | 130 EXPECT_TRUE(TestString::Params::Create(*params_value)); |
| 131 } | 131 } |
| 132 { | 132 { |
| 133 scoped_ptr<base::ListValue> params_value = List( | 133 scoped_ptr<base::ListValue> params_value = List( |
| 134 new FundamentalValue(5)); | 134 new FundamentalValue(5)); |
| 135 base::string16 error; | 135 base::string16 error; |
| 136 EXPECT_FALSE(TestTypeInObject::Params::Create(*params_value, &error)); | 136 EXPECT_FALSE(TestTypeInObject::Params::Create(*params_value, &error)); |
| 137 EXPECT_TRUE(EqualsUtf16("'paramObject': expected dictionary, got integer", | 137 EXPECT_TRUE(EqualsUtf16("'paramObject': expected dictionary, got integer", |
| 138 error)); | 138 error)); |
| 139 } | 139 } |
| 140 } | 140 } |
| 141 | 141 |
| 142 TEST(JsonSchemaCompilerErrorTest, WrongTypeValueType) { | 142 TEST(JsonSchemaCompilerErrorTest, WrongTypeValueType) { |
| 143 { | 143 { |
| 144 scoped_ptr<base::DictionaryValue> value(new base::DictionaryValue()); | 144 scoped_ptr<base::DictionaryValue> value(new base::DictionaryValue()); |
| 145 EXPECT_TRUE(EqualsUtf16("", GetPopulateError<ObjectType>(*value))); | 145 EXPECT_TRUE(EqualsUtf16("", GetPopulateError<ObjectType>(*value))); |
| 146 } | 146 } |
| 147 { | 147 { |
| 148 scoped_ptr<DictionaryValue> value = Dictionary( | 148 scoped_ptr<base::DictionaryValue> value = Dictionary( |
| 149 "otherType", new FundamentalValue(1.1)); | 149 "otherType", new FundamentalValue(1.1)); |
| 150 EXPECT_TRUE(EqualsUtf16("'otherType': expected dictionary, got number", | 150 EXPECT_TRUE(EqualsUtf16("'otherType': expected dictionary, got number", |
| 151 GetPopulateError<ObjectType>(*value))); | 151 GetPopulateError<ObjectType>(*value))); |
| 152 } | 152 } |
| 153 } | 153 } |
| 154 | 154 |
| 155 TEST(JsonSchemaCompilerErrorTest, UnableToPopulateArray) { | 155 TEST(JsonSchemaCompilerErrorTest, UnableToPopulateArray) { |
| 156 { | 156 { |
| 157 scoped_ptr<base::ListValue> params_value = List( | 157 scoped_ptr<base::ListValue> params_value = List( |
| 158 new FundamentalValue(5)); | 158 new FundamentalValue(5)); |
| 159 EXPECT_TRUE(EqualsUtf16("", | 159 EXPECT_TRUE(EqualsUtf16("", |
| 160 GetPopulateError<ChoiceType::Integers>(*params_value))); | 160 GetPopulateError<ChoiceType::Integers>(*params_value))); |
| 161 } | 161 } |
| 162 { | 162 { |
| 163 scoped_ptr<base::ListValue> params_value = List( | 163 scoped_ptr<base::ListValue> params_value = List( |
| 164 new FundamentalValue(5), | 164 new FundamentalValue(5), |
| 165 new FundamentalValue(false)); | 165 new FundamentalValue(false)); |
| 166 EXPECT_TRUE(EqualsUtf16("unable to populate array 'integers'", | 166 EXPECT_TRUE(EqualsUtf16("unable to populate array 'integers'", |
| 167 GetPopulateError<ChoiceType::Integers>(*params_value))); | 167 GetPopulateError<ChoiceType::Integers>(*params_value))); |
| 168 } | 168 } |
| 169 } | 169 } |
| 170 | 170 |
| 171 TEST(JsonSchemaCompilerErrorTest, BinaryTypeExpected) { | 171 TEST(JsonSchemaCompilerErrorTest, BinaryTypeExpected) { |
| 172 { | 172 { |
| 173 scoped_ptr<DictionaryValue> value = Dictionary( | 173 scoped_ptr<base::DictionaryValue> value = Dictionary( |
| 174 "data", new base::BinaryValue()); | 174 "data", new base::BinaryValue()); |
| 175 EXPECT_TRUE(EqualsUtf16("", GetPopulateError<BinaryData>(*value))); | 175 EXPECT_TRUE(EqualsUtf16("", GetPopulateError<BinaryData>(*value))); |
| 176 } | 176 } |
| 177 { | 177 { |
| 178 scoped_ptr<DictionaryValue> value = Dictionary( | 178 scoped_ptr<base::DictionaryValue> value = Dictionary( |
| 179 "data", new FundamentalValue(1.1)); | 179 "data", new FundamentalValue(1.1)); |
| 180 EXPECT_TRUE(EqualsUtf16("'data': expected binary, got number", | 180 EXPECT_TRUE(EqualsUtf16("'data': expected binary, got number", |
| 181 GetPopulateError<BinaryData>(*value))); | 181 GetPopulateError<BinaryData>(*value))); |
| 182 } | 182 } |
| 183 } | 183 } |
| 184 | 184 |
| 185 TEST(JsonSchemaCompilerErrorTest, ListExpected) { | 185 TEST(JsonSchemaCompilerErrorTest, ListExpected) { |
| 186 { | 186 { |
| 187 scoped_ptr<DictionaryValue> value = Dictionary( | 187 scoped_ptr<base::DictionaryValue> value = Dictionary( |
| 188 "TheArray", new base::ListValue()); | 188 "TheArray", new base::ListValue()); |
| 189 EXPECT_TRUE(EqualsUtf16("", GetPopulateError<ArrayObject>(*value))); | 189 EXPECT_TRUE(EqualsUtf16("", GetPopulateError<ArrayObject>(*value))); |
| 190 } | 190 } |
| 191 { | 191 { |
| 192 scoped_ptr<DictionaryValue> value = Dictionary( | 192 scoped_ptr<base::DictionaryValue> value = Dictionary( |
| 193 "TheArray", new FundamentalValue(5)); | 193 "TheArray", new FundamentalValue(5)); |
| 194 EXPECT_TRUE(EqualsUtf16("'TheArray': expected list, got integer", | 194 EXPECT_TRUE(EqualsUtf16("'TheArray': expected list, got integer", |
| 195 GetPopulateError<ArrayObject>(*value))); | 195 GetPopulateError<ArrayObject>(*value))); |
| 196 } | 196 } |
| 197 } | 197 } |
| 198 | 198 |
| 199 // GenerateStringToEnumConversion errors | 199 // GenerateStringToEnumConversion errors |
| 200 | 200 |
| 201 TEST(JsonSchemaCompilerErrorTest, BadEnumValue) { | 201 TEST(JsonSchemaCompilerErrorTest, BadEnumValue) { |
| 202 { | 202 { |
| 203 scoped_ptr<DictionaryValue> value = Dictionary( | 203 scoped_ptr<base::DictionaryValue> value = Dictionary( |
| 204 "enumeration", new StringValue("one")); | 204 "enumeration", new base::StringValue("one")); |
| 205 EXPECT_TRUE(EqualsUtf16("", GetPopulateError<HasEnumeration>(*value))); | 205 EXPECT_TRUE(EqualsUtf16("", GetPopulateError<HasEnumeration>(*value))); |
| 206 } | 206 } |
| 207 { | 207 { |
| 208 scoped_ptr<DictionaryValue> value = Dictionary( | 208 scoped_ptr<base::DictionaryValue> value = Dictionary( |
| 209 "enumeration", new StringValue("bad sauce")); | 209 "enumeration", new base::StringValue("bad sauce")); |
| 210 EXPECT_TRUE(EqualsUtf16("'enumeration': expected \"one\" or \"two\" " | 210 EXPECT_TRUE(EqualsUtf16("'enumeration': expected \"one\" or \"two\" " |
| 211 "or \"three\", got \"bad sauce\"", | 211 "or \"three\", got \"bad sauce\"", |
| 212 GetPopulateError<HasEnumeration>(*value))); | 212 GetPopulateError<HasEnumeration>(*value))); |
| 213 } | 213 } |
| 214 } | 214 } |
| OLD | NEW |