| Index: tools/json_schema_compiler/test/choices_unittest.cc
|
| diff --git a/tools/json_schema_compiler/test/choices_unittest.cc b/tools/json_schema_compiler/test/choices_unittest.cc
|
| deleted file mode 100644
|
| index 2cf1d8d358f79ef75ef79e168cbed8d8c95ef633..0000000000000000000000000000000000000000
|
| --- a/tools/json_schema_compiler/test/choices_unittest.cc
|
| +++ /dev/null
|
| @@ -1,292 +0,0 @@
|
| -// 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 "base/strings/string_piece.h"
|
| -#include "testing/gtest/include/gtest/gtest.h"
|
| -#include "tools/json_schema_compiler/test/test_util.h"
|
| -
|
| -namespace {
|
| -
|
| -using namespace test::api::choices;
|
| -using json_schema_compiler::test_util::Dictionary;
|
| -using json_schema_compiler::test_util::List;
|
| -using json_schema_compiler::test_util::ReadJson;
|
| -using json_schema_compiler::test_util::Vector;
|
| -
|
| -TEST(JsonSchemaCompilerChoicesTest, TakesIntegersParamsCreate) {
|
| - {
|
| - scoped_ptr<TakesIntegers::Params> params(
|
| - TakesIntegers::Params::Create(*List(new base::FundamentalValue(true))));
|
| - EXPECT_FALSE(params);
|
| - }
|
| - {
|
| - scoped_ptr<TakesIntegers::Params> params(
|
| - TakesIntegers::Params::Create(*List(new base::FundamentalValue(6))));
|
| - ASSERT_TRUE(params);
|
| - EXPECT_FALSE(params->nums.as_integers);
|
| - EXPECT_EQ(6, *params->nums.as_integer);
|
| - }
|
| - {
|
| - scoped_ptr<TakesIntegers::Params> params(TakesIntegers::Params::Create(
|
| - *List(List(new base::FundamentalValue(2),
|
| - new base::FundamentalValue(6),
|
| - new base::FundamentalValue(8)).release())));
|
| - ASSERT_TRUE(params);
|
| - ASSERT_TRUE(params->nums.as_integers);
|
| - EXPECT_EQ(Vector(2, 6, 8), *params->nums.as_integers);
|
| - }
|
| -}
|
| -
|
| -TEST(JsonSchemaCompilerChoicesTest, ObjectWithChoicesParamsCreate) {
|
| - {
|
| - scoped_ptr<ObjectWithChoices::Params> params(
|
| - ObjectWithChoices::Params::Create(*List(
|
| - Dictionary("strings", new base::StringValue("asdf")).release())));
|
| - ASSERT_TRUE(params);
|
| - EXPECT_FALSE(params->string_info.strings.as_strings);
|
| - EXPECT_EQ("asdf", *params->string_info.strings.as_string);
|
| - EXPECT_FALSE(params->string_info.integers);
|
| - }
|
| - {
|
| - scoped_ptr<ObjectWithChoices::Params> params(
|
| - ObjectWithChoices::Params::Create(*List(
|
| - Dictionary("strings", new base::StringValue("asdf"),
|
| - "integers", new base::FundamentalValue(6)).release())));
|
| - ASSERT_TRUE(params);
|
| - EXPECT_FALSE(params->string_info.strings.as_strings);
|
| - EXPECT_EQ("asdf", *params->string_info.strings.as_string);
|
| - ASSERT_TRUE(params->string_info.integers);
|
| - EXPECT_FALSE(params->string_info.integers->as_integers);
|
| - EXPECT_EQ(6, *params->string_info.integers->as_integer);
|
| - }
|
| -}
|
| -
|
| -// TODO(kalman): Clean up the rest of these tests to use the
|
| -// Vector/List/Dictionary helpers.
|
| -
|
| -TEST(JsonSchemaCompilerChoicesTest, ObjectWithChoicesParamsCreateFail) {
|
| - {
|
| - scoped_ptr<base::DictionaryValue> object_param(new base::DictionaryValue());
|
| - object_param->SetWithoutPathExpansion("strings",
|
| - new base::FundamentalValue(5));
|
| - scoped_ptr<base::ListValue> params_value(new base::ListValue());
|
| - params_value->Append(object_param.release());
|
| - scoped_ptr<ObjectWithChoices::Params> params(
|
| - ObjectWithChoices::Params::Create(*params_value));
|
| - EXPECT_FALSE(params.get());
|
| - }
|
| - {
|
| - scoped_ptr<base::DictionaryValue> object_param(new base::DictionaryValue());
|
| - object_param->SetWithoutPathExpansion("strings",
|
| - new base::StringValue("asdf"));
|
| - object_param->SetWithoutPathExpansion("integers",
|
| - new base::StringValue("asdf"));
|
| - scoped_ptr<base::ListValue> params_value(new base::ListValue());
|
| - params_value->Append(object_param.release());
|
| - scoped_ptr<ObjectWithChoices::Params> params(
|
| - ObjectWithChoices::Params::Create(*params_value));
|
| - EXPECT_FALSE(params.get());
|
| - }
|
| - {
|
| - scoped_ptr<base::DictionaryValue> object_param(new base::DictionaryValue());
|
| - object_param->SetWithoutPathExpansion("integers",
|
| - new base::FundamentalValue(6));
|
| - scoped_ptr<base::ListValue> params_value(new base::ListValue());
|
| - params_value->Append(object_param.release());
|
| - scoped_ptr<ObjectWithChoices::Params> params(
|
| - ObjectWithChoices::Params::Create(*params_value));
|
| - EXPECT_FALSE(params.get());
|
| - }
|
| -}
|
| -
|
| -TEST(JsonSchemaCompilerChoicesTest, PopulateChoiceType) {
|
| - std::vector<std::string> strings = Vector(std::string("list"),
|
| - std::string("of"),
|
| - std::string("strings"));
|
| -
|
| - base::ListValue* strings_value = new base::ListValue();
|
| - for (size_t i = 0; i < strings.size(); ++i)
|
| - strings_value->Append(new base::StringValue(strings[i]));
|
| -
|
| - base::DictionaryValue value;
|
| - value.SetInteger("integers", 4);
|
| - value.Set("strings", strings_value);
|
| -
|
| - ChoiceType out;
|
| - ASSERT_TRUE(ChoiceType::Populate(value, &out));
|
| - ASSERT_TRUE(out.integers.as_integer.get());
|
| - EXPECT_FALSE(out.integers.as_integers.get());
|
| - EXPECT_EQ(4, *out.integers.as_integer);
|
| -
|
| - EXPECT_FALSE(out.strings->as_string.get());
|
| - ASSERT_TRUE(out.strings->as_strings.get());
|
| - EXPECT_EQ(strings, *out.strings->as_strings);
|
| -}
|
| -
|
| -TEST(JsonSchemaCompilerChoicesTest, ChoiceTypeToValue) {
|
| - base::ListValue* strings_value = new base::ListValue();
|
| - strings_value->Append(new base::StringValue("list"));
|
| - strings_value->Append(new base::StringValue("of"));
|
| - strings_value->Append(new base::StringValue("strings"));
|
| -
|
| - base::DictionaryValue value;
|
| - value.SetInteger("integers", 5);
|
| - value.Set("strings", strings_value);
|
| -
|
| - ChoiceType out;
|
| - ASSERT_TRUE(ChoiceType::Populate(value, &out));
|
| -
|
| - EXPECT_TRUE(value.Equals(out.ToValue().get()));
|
| -}
|
| -
|
| -TEST(JsonSchemaCompilerChoicesTest, ReturnChoices) {
|
| - {
|
| - ReturnChoices::Results::Result results;
|
| - results.as_integers.reset(new std::vector<int>(Vector(1, 2)));
|
| -
|
| - scoped_ptr<base::Value> results_value = results.ToValue();
|
| - ASSERT_TRUE(results_value);
|
| -
|
| - base::ListValue expected;
|
| - expected.AppendInteger(1);
|
| - expected.AppendInteger(2);
|
| -
|
| - EXPECT_TRUE(expected.Equals(results_value.get()));
|
| - }
|
| - {
|
| - ReturnChoices::Results::Result results;
|
| - results.as_integer.reset(new int(5));
|
| -
|
| - scoped_ptr<base::Value> results_value = results.ToValue();
|
| - ASSERT_TRUE(results_value);
|
| -
|
| - base::FundamentalValue expected(5);
|
| -
|
| - EXPECT_TRUE(expected.Equals(results_value.get()));
|
| - }
|
| -}
|
| -
|
| -TEST(JsonSchemaCompilerChoicesTest, NestedChoices) {
|
| - // These test both ToValue and FromValue for every legitimate configuration of
|
| - // NestedChoices.
|
| - {
|
| - // The plain integer choice.
|
| - scoped_ptr<base::Value> value = ReadJson("42");
|
| - scoped_ptr<NestedChoice> obj = NestedChoice::FromValue(*value);
|
| -
|
| - ASSERT_TRUE(obj);
|
| - ASSERT_TRUE(obj->as_integer);
|
| - EXPECT_FALSE(obj->as_choice1);
|
| - EXPECT_FALSE(obj->as_choice2);
|
| - EXPECT_EQ(42, *obj->as_integer);
|
| -
|
| - EXPECT_TRUE(base::Value::Equals(value.get(), obj->ToValue().get()));
|
| - }
|
| -
|
| - {
|
| - // The string choice within the first choice.
|
| - scoped_ptr<base::Value> value = ReadJson("\"foo\"");
|
| - scoped_ptr<NestedChoice> obj = NestedChoice::FromValue(*value);
|
| -
|
| - ASSERT_TRUE(obj);
|
| - EXPECT_FALSE(obj->as_integer);
|
| - ASSERT_TRUE(obj->as_choice1);
|
| - EXPECT_FALSE(obj->as_choice2);
|
| - ASSERT_TRUE(obj->as_choice1->as_string);
|
| - EXPECT_FALSE(obj->as_choice1->as_boolean);
|
| - EXPECT_EQ("foo", *obj->as_choice1->as_string);
|
| -
|
| - EXPECT_TRUE(base::Value::Equals(value.get(), obj->ToValue().get()));
|
| - }
|
| -
|
| - {
|
| - // The boolean choice within the first choice.
|
| - scoped_ptr<base::Value> value = ReadJson("true");
|
| - scoped_ptr<NestedChoice> obj = NestedChoice::FromValue(*value);
|
| -
|
| - ASSERT_TRUE(obj);
|
| - EXPECT_FALSE(obj->as_integer);
|
| - ASSERT_TRUE(obj->as_choice1);
|
| - EXPECT_FALSE(obj->as_choice2);
|
| - EXPECT_FALSE(obj->as_choice1->as_string);
|
| - ASSERT_TRUE(obj->as_choice1->as_boolean);
|
| - EXPECT_TRUE(*obj->as_choice1->as_boolean);
|
| -
|
| - EXPECT_TRUE(base::Value::Equals(value.get(), obj->ToValue().get()));
|
| - }
|
| -
|
| - {
|
| - // The double choice within the second choice.
|
| - scoped_ptr<base::Value> value = ReadJson("42.0");
|
| - scoped_ptr<NestedChoice> obj = NestedChoice::FromValue(*value);
|
| -
|
| - ASSERT_TRUE(obj);
|
| - EXPECT_FALSE(obj->as_integer);
|
| - EXPECT_FALSE(obj->as_choice1);
|
| - ASSERT_TRUE(obj->as_choice2);
|
| - ASSERT_TRUE(obj->as_choice2->as_double);
|
| - EXPECT_FALSE(obj->as_choice2->as_choice_type);
|
| - EXPECT_FALSE(obj->as_choice2->as_choice_types);
|
| - EXPECT_EQ(42.0, *obj->as_choice2->as_double);
|
| -
|
| - EXPECT_TRUE(base::Value::Equals(value.get(), obj->ToValue().get()));
|
| - }
|
| -
|
| - {
|
| - // The ChoiceType choice within the second choice.
|
| - scoped_ptr<base::Value> value = ReadJson(
|
| - "{\"integers\": [1, 2], \"strings\": \"foo\"}");
|
| - scoped_ptr<NestedChoice> obj = NestedChoice::FromValue(*value);
|
| -
|
| - ASSERT_TRUE(obj);
|
| - EXPECT_FALSE(obj->as_integer);
|
| - EXPECT_FALSE(obj->as_choice1);
|
| - ASSERT_TRUE(obj->as_choice2);
|
| - EXPECT_FALSE(obj->as_choice2->as_double);
|
| - ASSERT_TRUE(obj->as_choice2->as_choice_type);
|
| - EXPECT_FALSE(obj->as_choice2->as_choice_types);
|
| - {
|
| - ChoiceType* choice_type = obj->as_choice2->as_choice_type.get();
|
| - ASSERT_TRUE(choice_type->integers.as_integers);
|
| - EXPECT_FALSE(choice_type->integers.as_integer);
|
| - EXPECT_EQ(Vector(1, 2), *choice_type->integers.as_integers);
|
| - ASSERT_TRUE(choice_type->strings);
|
| - EXPECT_FALSE(choice_type->strings->as_strings);
|
| - ASSERT_TRUE(choice_type->strings->as_string);
|
| - EXPECT_EQ("foo", *choice_type->strings->as_string);
|
| - }
|
| -
|
| - EXPECT_TRUE(base::Value::Equals(value.get(), obj->ToValue().get()));
|
| - }
|
| -
|
| - {
|
| - // The array of ChoiceTypes within the second choice.
|
| - scoped_ptr<base::Value> value = ReadJson(
|
| - "["
|
| - " {\"integers\": [1, 2], \"strings\": \"foo\"},"
|
| - " {\"integers\": 3, \"strings\": [\"bar\", \"baz\"]}"
|
| - "]");
|
| - scoped_ptr<NestedChoice> obj = NestedChoice::FromValue(*value);
|
| -
|
| - ASSERT_TRUE(obj);
|
| - EXPECT_FALSE(obj->as_integer);
|
| - EXPECT_FALSE(obj->as_choice1);
|
| - ASSERT_TRUE(obj->as_choice2);
|
| - EXPECT_FALSE(obj->as_choice2->as_double);
|
| - EXPECT_FALSE(obj->as_choice2->as_choice_type);
|
| - ASSERT_TRUE(obj->as_choice2->as_choice_types);
|
| - {
|
| - std::vector<linked_ptr<ChoiceType> >* choice_types =
|
| - obj->as_choice2->as_choice_types.get();
|
| - // Bleh too much effort to test everything.
|
| - ASSERT_EQ(2u, choice_types->size());
|
| - }
|
| -
|
| - EXPECT_TRUE(base::Value::Equals(value.get(), obj->ToValue().get()));
|
| - }
|
| -}
|
| -
|
| -} // namespace
|
|
|