Chromium Code Reviews| Index: tools/json_schema_compiler/test/choices_test.cc |
| diff --git a/tools/json_schema_compiler/test/choices_test.cc b/tools/json_schema_compiler/test/choices_test.cc |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..17b1b96f784d2f7355db05598c7a692b075cd7b7 |
| --- /dev/null |
| +++ b/tools/json_schema_compiler/test/choices_test.cc |
| @@ -0,0 +1,129 @@ |
| +// Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| +// Use of this source code is governed by a BSD-style license that can be |
| +// found in the LICENSE file. |
| + |
| +#include "tools/json_schema_compiler/test/choices.h" |
| + |
| +#include "testing/gtest/include/gtest/gtest.h" |
| + |
| +using namespace test::api::choices; |
| + |
| +TEST(JsonSchemaCompilerChoicesTest, TakesIntegersParamsCreate) { |
| + { |
| + scoped_ptr<ListValue> params_value(new ListValue()); |
| + params_value->Append(Value::CreateBooleanValue(true)); |
| + scoped_ptr<TakesIntegers::Params> params( |
| + TakesIntegers::Params::Create(*params_value)); |
| + EXPECT_FALSE(params.get()); |
| + } |
| + { |
| + scoped_ptr<ListValue> params_value(new ListValue()); |
| + params_value->Append(Value::CreateIntegerValue(6)); |
| + scoped_ptr<TakesIntegers::Params> params( |
| + TakesIntegers::Params::Create(*params_value)); |
| + EXPECT_TRUE(params.get()); |
| + EXPECT_EQ(TakesIntegers::Params::NUMS_INTEGER, params->nums_type); |
| + EXPECT_FALSE(params->nums_array.get()); |
| + EXPECT_EQ(6, *params->nums_integer); |
| + } |
| + { |
| + scoped_ptr<ListValue> params_value(new ListValue()); |
| + scoped_ptr<ListValue> integers(new ListValue()); |
| + integers->Append(Value::CreateIntegerValue(6)); |
| + integers->Append(Value::CreateIntegerValue(8)); |
| + params_value->Append(integers.release()); |
| + scoped_ptr<TakesIntegers::Params> params( |
| + TakesIntegers::Params::Create(*params_value)); |
| + EXPECT_TRUE(params.get()); |
| + EXPECT_EQ(TakesIntegers::Params::NUMS_ARRAY, params->nums_type); |
| + EXPECT_EQ(6, (*params->nums_array)[0]); |
| + EXPECT_EQ(8, (*params->nums_array)[1]); |
| + } |
| +} |
| + |
| +TEST(JsonSchemaCompilerChoicesTest, ObjectWithChoicesParamsCreate) { |
| + { |
| + scoped_ptr<DictionaryValue> object_param(new DictionaryValue()); |
| + object_param->SetWithoutPathExpansion("strings", |
| + Value::CreateStringValue("asdf")); |
| + scoped_ptr<ListValue> params_value(new ListValue()); |
| + params_value->Append(object_param.release()); |
| + scoped_ptr<ObjectWithChoices::Params> params( |
| + ObjectWithChoices::Params::Create(*params_value)); |
| + EXPECT_TRUE(params.get()); |
| + EXPECT_EQ(ObjectWithChoices::Params::StringInfo::STRINGS_STRING, |
| + params->string_info.strings_type); |
| + EXPECT_EQ("asdf", *params->string_info.strings_string); |
| + } |
| + { |
| + scoped_ptr<DictionaryValue> object_param(new DictionaryValue()); |
| + object_param->SetWithoutPathExpansion("strings", |
| + Value::CreateStringValue("asdf")); |
| + object_param->SetWithoutPathExpansion("integers", |
| + Value::CreateIntegerValue(6)); |
| + scoped_ptr<ListValue> params_value(new ListValue()); |
| + params_value->Append(object_param.release()); |
| + scoped_ptr<ObjectWithChoices::Params> params( |
| + ObjectWithChoices::Params::Create(*params_value)); |
| + EXPECT_TRUE(params.get()); |
| + EXPECT_EQ(ObjectWithChoices::Params::StringInfo::STRINGS_STRING, |
| + params->string_info.strings_type); |
| + EXPECT_EQ("asdf", *params->string_info.strings_string); |
| + EXPECT_EQ(ObjectWithChoices::Params::StringInfo::INTEGERS_INTEGER, |
| + params->string_info.integers_type); |
| + EXPECT_EQ(6, *params->string_info.integers_integer); |
| + } |
| +} |
| + |
| +TEST(JsonSchemaCompilerChoicesTest, ObjectWithChoicesParamsCreateFail) { |
| + { |
| + scoped_ptr<DictionaryValue> object_param(new DictionaryValue()); |
| + object_param->SetWithoutPathExpansion("strings", |
| + Value::CreateIntegerValue(5)); |
| + scoped_ptr<ListValue> params_value(new ListValue()); |
| + params_value->Append(object_param.release()); |
| + scoped_ptr<ObjectWithChoices::Params> params( |
| + ObjectWithChoices::Params::Create(*params_value)); |
| + EXPECT_FALSE(params.get()); |
| + } |
| + { |
| + scoped_ptr<DictionaryValue> object_param(new DictionaryValue()); |
| + object_param->SetWithoutPathExpansion("strings", |
| + Value::CreateStringValue("asdf")); |
| + object_param->SetWithoutPathExpansion("integers", |
| + Value::CreateStringValue("asdf")); |
| + scoped_ptr<ListValue> params_value(new ListValue()); |
| + params_value->Append(object_param.release()); |
| + scoped_ptr<ObjectWithChoices::Params> params( |
| + ObjectWithChoices::Params::Create(*params_value)); |
| + EXPECT_FALSE(params.get()); |
| + } |
| + { |
| + scoped_ptr<DictionaryValue> object_param(new DictionaryValue()); |
| + object_param->SetWithoutPathExpansion("integers", |
| + Value::CreateIntegerValue(6)); |
| + scoped_ptr<ListValue> params_value(new ListValue()); |
| + params_value->Append(object_param.release()); |
| + scoped_ptr<ObjectWithChoices::Params> params( |
| + ObjectWithChoices::Params::Create(*params_value)); |
| + EXPECT_FALSE(params.get()); |
| + } |
| +} |
| + |
| +TEST(JsonSchemaCompilerChoicesTest, ReturnChoices) { |
| + std::vector<int> integers; |
| + integers.push_back(1); |
| + integers.push_back(2); |
| + scoped_ptr<Value> array_result(ReturnChoices::Result::Create(integers)); |
| + ListValue* list = NULL; |
| + EXPECT_TRUE(array_result->GetAsList(&list)); |
| + int temp; |
|
not at google - send to devlin
2012/02/19 23:19:59
Make this scoped between { } like the other tests.
calamity
2012/02/20 05:03:37
Done.
|
| + EXPECT_TRUE(list->GetInteger(0, &temp)); |
| + EXPECT_EQ(1, temp); |
| + EXPECT_TRUE(list->GetInteger(1, &temp)); |
| + EXPECT_EQ(2, temp); |
| + |
| + scoped_ptr<Value> single_result(ReturnChoices::Result::Create(5)); |
| + EXPECT_TRUE(single_result->GetAsInteger(&temp)); |
| + EXPECT_EQ(5, temp); |
| +} |