summaryrefslogtreecommitdiffstats
path: root/tools/json_schema_compiler/test/any_unittest.cc
blob: d10a3eb4ef486c1881933103600602094dceb08a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
// 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 "testing/gtest/include/gtest/gtest.h"
#include "tools/json_schema_compiler/test/any.h"

using namespace test::api::any;

TEST(JsonSchemaCompilerAnyTest, AnyTypePopulate) {
  {
    AnyType any_type;
    scoped_ptr<base::DictionaryValue> any_type_value(
        new base::DictionaryValue());
    any_type_value->SetString("any", "value");
    EXPECT_TRUE(AnyType::Populate(*any_type_value, &any_type));
    scoped_ptr<base::Value> any_type_to_value(any_type.ToValue());
    EXPECT_TRUE(any_type_value->Equals(any_type_to_value.get()));
  }
  {
    AnyType any_type;
    scoped_ptr<base::DictionaryValue> any_type_value(
        new base::DictionaryValue());
    any_type_value->SetInteger("any", 5);
    EXPECT_TRUE(AnyType::Populate(*any_type_value, &any_type));
    scoped_ptr<base::Value> any_type_to_value(any_type.ToValue());
    EXPECT_TRUE(any_type_value->Equals(any_type_to_value.get()));
  }
}

TEST(JsonSchemaCompilerAnyTest, OptionalAnyParamsCreate) {
  {
    scoped_ptr<base::ListValue> params_value(new base::ListValue());
    scoped_ptr<OptionalAny::Params> params(
        OptionalAny::Params::Create(*params_value));
    EXPECT_TRUE(params.get());
    EXPECT_FALSE(params->any_name.get());
  }
  {
    scoped_ptr<base::ListValue> params_value(new base::ListValue());
    scoped_ptr<base::Value> param(new base::StringValue("asdf"));
    params_value->Append(param->DeepCopy());
    scoped_ptr<OptionalAny::Params> params(
        OptionalAny::Params::Create(*params_value));
    ASSERT_TRUE(params);
    ASSERT_TRUE(params->any_name);
    EXPECT_TRUE(params->any_name->Equals(param.get()));
  }
  {
    scoped_ptr<base::ListValue> params_value(new base::ListValue());
    scoped_ptr<base::Value> param(new base::FundamentalValue(true));
    params_value->Append(param->DeepCopy());
    scoped_ptr<OptionalAny::Params> params(
        OptionalAny::Params::Create(*params_value));
    ASSERT_TRUE(params);
    ASSERT_TRUE(params->any_name);
    EXPECT_TRUE(params->any_name->Equals(param.get()));
  }
}