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

Unified Diff: tools/json_schema_compiler/test/array_unittest.cc

Issue 9309044: Supporting more APIs with json_schema_compiler (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: rework, add a couple of tests Created 8 years, 10 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « tools/json_schema_compiler/test/array.json ('k') | tools/json_schema_compiler/test/choices.json » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: tools/json_schema_compiler/test/array_unittest.cc
diff --git a/tools/json_schema_compiler/test/array_unittest.cc b/tools/json_schema_compiler/test/array_unittest.cc
new file mode 100644
index 0000000000000000000000000000000000000000..6db2d5e04cf516e4010e1093165ad02d887582f4
--- /dev/null
+++ b/tools/json_schema_compiler/test/array_unittest.cc
@@ -0,0 +1,143 @@
+// 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/array.h"
+
+#include "testing/gtest/include/gtest/gtest.h"
+
+using namespace test::api::array;
+
+namespace {
+
+// TODO(calamity): Change to AppendString etc once kalman's patch goes through
+static scoped_ptr<DictionaryValue> CreateBasicArrayTypeDictionary() {
+ DictionaryValue* value = new DictionaryValue();
+ ListValue* strings_value = new ListValue();
+ strings_value->Append(Value::CreateStringValue("a"));
+ strings_value->Append(Value::CreateStringValue("b"));
+ strings_value->Append(Value::CreateStringValue("c"));
+ strings_value->Append(Value::CreateStringValue("it's easy as"));
+ ListValue* integers_value = new ListValue();
+ integers_value->Append(Value::CreateIntegerValue(1));
+ integers_value->Append(Value::CreateIntegerValue(2));
+ integers_value->Append(Value::CreateIntegerValue(3));
+ ListValue* booleans_value = new ListValue();
+ booleans_value->Append(Value::CreateBooleanValue(false));
+ booleans_value->Append(Value::CreateBooleanValue(true));
+ ListValue* numbers_value = new ListValue();
+ numbers_value->Append(Value::CreateDoubleValue(6.1));
+ value->Set("numbers", numbers_value);
+ value->Set("booleans", booleans_value);
+ value->Set("strings", strings_value);
+ value->Set("integers", integers_value);
+ return scoped_ptr<DictionaryValue>(value);
+}
+
+static Value* CreateItemValue(int val) {
+ DictionaryValue* value(new DictionaryValue());
+ value->Set("val", Value::CreateIntegerValue(val));
+ return value;
+}
+
+} // namespace
+
+TEST(JsonSchemaCompilerArrayTest, BasicArrayType) {
+ {
+ scoped_ptr<DictionaryValue> value = CreateBasicArrayTypeDictionary();
+ scoped_ptr<BasicArrayType> basic_array_type(new BasicArrayType());
+ EXPECT_TRUE(BasicArrayType::Populate(*value, basic_array_type.get()));
+ EXPECT_TRUE(value->Equals(basic_array_type->ToValue().get()));
+ }
+}
+
+TEST(JsonSchemaCompilerArrayTest, RefArrayType) {
+ {
+ scoped_ptr<DictionaryValue> value(new DictionaryValue());
+ scoped_ptr<ListValue> ref_array(new ListValue());
+ ref_array->Append(CreateItemValue(1));
+ ref_array->Append(CreateItemValue(2));
+ ref_array->Append(CreateItemValue(3));
+ value->Set("refs", ref_array.release());
+ scoped_ptr<RefArrayType> ref_array_type(new RefArrayType());
+ EXPECT_TRUE(RefArrayType::Populate(*value, ref_array_type.get()));
+ EXPECT_EQ(3UL, ref_array_type->refs.size());
+ EXPECT_EQ(1, ref_array_type->refs[0]->val);
+ EXPECT_EQ(2, ref_array_type->refs[1]->val);
+ EXPECT_EQ(3, ref_array_type->refs[2]->val);
+ }
+ {
+ scoped_ptr<DictionaryValue> value(new DictionaryValue());
+ scoped_ptr<ListValue> not_ref_array(new ListValue());
+ not_ref_array->Append(CreateItemValue(1));
+ not_ref_array->Append(Value::CreateIntegerValue(3));
+ value->Set("refs", not_ref_array.release());
+ scoped_ptr<RefArrayType> ref_array_type(new RefArrayType());
+ EXPECT_FALSE(RefArrayType::Populate(*value, ref_array_type.get()));
+ }
+}
+
+TEST(JsonSchemaCompilerArrayTest, IntegerArrayParamsCreate) {
+ scoped_ptr<ListValue> params_value(new ListValue());
+ scoped_ptr<ListValue> integer_array(new ListValue());
+ integer_array->Append(Value::CreateIntegerValue(2));
+ integer_array->Append(Value::CreateIntegerValue(4));
+ integer_array->Append(Value::CreateIntegerValue(8));
+ params_value->Append(integer_array.release());
+ scoped_ptr<IntegerArray::Params> params(
+ IntegerArray::Params::Create(*params_value));
+ EXPECT_TRUE(params.get());
+ EXPECT_EQ(3UL, params->nums.size());
+ EXPECT_EQ(2, params->nums[0]);
+ EXPECT_EQ(4, params->nums[1]);
+ EXPECT_EQ(8, params->nums[2]);
+}
+
+TEST(JsonSchemaCompilerArrayTest, RefArrayParamsCreate) {
+ scoped_ptr<ListValue> params_value(new ListValue());
+ scoped_ptr<ListValue> item_array(new ListValue());
+ item_array->Append(CreateItemValue(1));
+ item_array->Append(CreateItemValue(2));
+ params_value->Append(item_array.release());
+ scoped_ptr<RefArray::Params> params(
+ RefArray::Params::Create(*params_value));
+ EXPECT_TRUE(params.get());
+ EXPECT_EQ(2UL, params->refs.size());
+ EXPECT_EQ(1, params->refs[0]->val);
+ EXPECT_EQ(2, params->refs[1]->val);
+}
+
+TEST(JsonSchemaCompilerArrayTest, ReturnIntegerArrayResultCreate) {
+ std::vector<int> integers;
+ integers.push_back(1);
+ integers.push_back(2);
+ scoped_ptr<Value> result(ReturnIntegerArray::Result::Create(integers));
+ ListValue* list = NULL;
+ EXPECT_TRUE(result->GetAsList(&list));
+ int temp;
+ EXPECT_EQ(2UL, list->GetSize());
+ EXPECT_TRUE(list->GetInteger(0, &temp));
+ EXPECT_EQ(1, temp);
+ EXPECT_TRUE(list->GetInteger(1, &temp));
+ EXPECT_EQ(2, temp);
+}
+
+TEST(JsonSchemaCompilerArrayTest, ReturnRefArrayResultCreate) {
+ std::vector<linked_ptr<Item> > items;
+ items.push_back(linked_ptr<Item>(new Item()));
+ items.push_back(linked_ptr<Item>(new Item()));
+ items[0]->val = 1;
+ items[1]->val = 2;
+ scoped_ptr<Value> result(ReturnRefArray::Result::Create(items));
+ ListValue* list = NULL;
+ EXPECT_TRUE(result->GetAsList(&list));
+ EXPECT_EQ(2UL, list->GetSize());
+ DictionaryValue* item_value = NULL;
+ int temp;
+ EXPECT_TRUE(list->GetDictionary(0, &item_value));
+ EXPECT_TRUE(item_value->GetInteger("val", &temp));
+ EXPECT_EQ(1, temp);
+ EXPECT_TRUE(list->GetDictionary(1, &item_value));
+ EXPECT_TRUE(item_value->GetInteger("val", &temp));
+ EXPECT_EQ(2, temp);
+}
« no previous file with comments | « tools/json_schema_compiler/test/array.json ('k') | tools/json_schema_compiler/test/choices.json » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698