- add sources.
[platform/framework/web/crosswalk.git] / src / content / browser / webui / web_ui_message_handler_unittest.cc
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #include "content/public/browser/web_ui_message_handler.h"
6
7 #include "base/strings/string16.h"
8 #include "base/strings/utf_string_conversions.h"
9 #include "base/values.h"
10 #include "testing/gtest/include/gtest/gtest.h"
11
12 namespace content {
13
14 TEST(WebUIMessageHandlerTest, ExtractIntegerValue) {
15   ListValue list;
16   int value, zero_value = 0, neg_value = -1234, pos_value = 1234;
17   string16 zero_string(UTF8ToUTF16("0"));
18   string16 neg_string(UTF8ToUTF16("-1234"));
19   string16 pos_string(UTF8ToUTF16("1234"));
20
21   list.Append(new base::FundamentalValue(zero_value));
22   EXPECT_TRUE(WebUIMessageHandler::ExtractIntegerValue(&list, &value));
23   EXPECT_EQ(value, zero_value);
24   list.Clear();
25
26   list.Append(new base::FundamentalValue(neg_value));
27   EXPECT_TRUE(WebUIMessageHandler::ExtractIntegerValue(&list, &value));
28   EXPECT_EQ(value, neg_value);
29   list.Clear();
30
31   list.Append(new base::FundamentalValue(pos_value));
32   EXPECT_TRUE(WebUIMessageHandler::ExtractIntegerValue(&list, &value));
33   EXPECT_EQ(value, pos_value);
34   list.Clear();
35
36   list.Append(new base::StringValue(zero_string));
37   EXPECT_TRUE(WebUIMessageHandler::ExtractIntegerValue(&list, &value));
38   EXPECT_EQ(value, zero_value);
39   list.Clear();
40
41   list.Append(new base::StringValue(neg_string));
42   EXPECT_TRUE(WebUIMessageHandler::ExtractIntegerValue(&list, &value));
43   EXPECT_EQ(value, neg_value);
44   list.Clear();
45
46   list.Append(new base::StringValue(pos_string));
47   EXPECT_TRUE(WebUIMessageHandler::ExtractIntegerValue(&list, &value));
48   EXPECT_EQ(value, pos_value);
49 }
50
51 TEST(WebUIMessageHandlerTest, ExtractDoubleValue) {
52   base::ListValue list;
53   double value, zero_value = 0.0, neg_value = -1234.5, pos_value = 1234.5;
54   string16 zero_string(UTF8ToUTF16("0"));
55   string16 neg_string(UTF8ToUTF16("-1234.5"));
56   string16 pos_string(UTF8ToUTF16("1234.5"));
57
58   list.Append(new base::FundamentalValue(zero_value));
59   EXPECT_TRUE(WebUIMessageHandler::ExtractDoubleValue(&list, &value));
60   EXPECT_DOUBLE_EQ(value, zero_value);
61   list.Clear();
62
63   list.Append(new base::FundamentalValue(neg_value));
64   EXPECT_TRUE(WebUIMessageHandler::ExtractDoubleValue(&list, &value));
65   EXPECT_DOUBLE_EQ(value, neg_value);
66   list.Clear();
67
68   list.Append(new base::FundamentalValue(pos_value));
69   EXPECT_TRUE(WebUIMessageHandler::ExtractDoubleValue(&list, &value));
70   EXPECT_DOUBLE_EQ(value, pos_value);
71   list.Clear();
72
73   list.Append(new base::StringValue(zero_string));
74   EXPECT_TRUE(WebUIMessageHandler::ExtractDoubleValue(&list, &value));
75   EXPECT_DOUBLE_EQ(value, zero_value);
76   list.Clear();
77
78   list.Append(new base::StringValue(neg_string));
79   EXPECT_TRUE(WebUIMessageHandler::ExtractDoubleValue(&list, &value));
80   EXPECT_DOUBLE_EQ(value, neg_value);
81   list.Clear();
82
83   list.Append(new base::StringValue(pos_string));
84   EXPECT_TRUE(WebUIMessageHandler::ExtractDoubleValue(&list, &value));
85   EXPECT_DOUBLE_EQ(value, pos_value);
86 }
87
88 TEST(WebUIMessageHandlerTest, ExtractStringValue) {
89   base::ListValue list;
90   string16 in_string(UTF8ToUTF16(
91       "The facts, though interesting, are irrelevant."));
92   list.Append(new base::StringValue(in_string));
93   string16 out_string = WebUIMessageHandler::ExtractStringValue(&list);
94   EXPECT_EQ(in_string, out_string);
95 }
96
97 }  // namespace content