- add sources.
[platform/framework/web/crosswalk.git] / src / chromeos / ime / candidate_window_unittest.cc
1 // Copyright 2013 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 // TODO(nona): Add more tests.
5
6 #include "chromeos/ime/candidate_window.h"
7
8 #include <string>
9
10 #include "base/compiler_specific.h"
11 #include "base/logging.h"
12 #include "base/memory/scoped_ptr.h"
13 #include "testing/gtest/include/gtest/gtest.h"
14
15 namespace chromeos {
16 namespace input_method {
17
18 TEST(CandidateWindow, IsEqualTest) {
19   CandidateWindow cw1;
20   CandidateWindow cw2;
21
22   const char kSampleString1[] = "Sample 1";
23   const char kSampleString2[] = "Sample 2";
24
25   EXPECT_TRUE(cw1.IsEqual(cw2));
26   EXPECT_TRUE(cw2.IsEqual(cw1));
27
28   cw1.set_page_size(1);
29   cw2.set_page_size(2);
30   EXPECT_FALSE(cw1.IsEqual(cw2));
31   EXPECT_FALSE(cw2.IsEqual(cw1));
32   cw2.set_page_size(1);
33
34   cw1.set_cursor_position(1);
35   cw2.set_cursor_position(2);
36   EXPECT_FALSE(cw1.IsEqual(cw2));
37   EXPECT_FALSE(cw2.IsEqual(cw1));
38   cw2.set_cursor_position(1);
39
40   cw1.set_is_cursor_visible(true);
41   cw2.set_is_cursor_visible(false);
42   EXPECT_FALSE(cw1.IsEqual(cw2));
43   EXPECT_FALSE(cw2.IsEqual(cw1));
44   cw2.set_is_cursor_visible(true);
45
46   cw1.set_orientation(CandidateWindow::HORIZONTAL);
47   cw2.set_orientation(CandidateWindow::VERTICAL);
48   EXPECT_FALSE(cw1.IsEqual(cw2));
49   EXPECT_FALSE(cw2.IsEqual(cw1));
50   cw2.set_orientation(CandidateWindow::HORIZONTAL);
51
52   cw1.set_show_window_at_composition(true);
53   cw2.set_show_window_at_composition(false);
54   EXPECT_FALSE(cw1.IsEqual(cw2));
55   EXPECT_FALSE(cw2.IsEqual(cw1));
56   cw2.set_show_window_at_composition(true);
57
58   // Check equality for candidates member variable.
59   CandidateWindow::Entry entry1;
60   CandidateWindow::Entry entry2;
61
62   cw1.mutable_candidates()->push_back(entry1);
63   EXPECT_FALSE(cw1.IsEqual(cw2));
64   EXPECT_FALSE(cw2.IsEqual(cw1));
65   cw2.mutable_candidates()->push_back(entry2);
66   EXPECT_TRUE(cw1.IsEqual(cw2));
67   EXPECT_TRUE(cw2.IsEqual(cw1));
68
69   entry1.value = kSampleString1;
70   entry2.value = kSampleString2;
71   cw1.mutable_candidates()->push_back(entry1);
72   cw2.mutable_candidates()->push_back(entry2);
73   EXPECT_FALSE(cw1.IsEqual(cw2));
74   EXPECT_FALSE(cw2.IsEqual(cw1));
75   cw1.mutable_candidates()->clear();
76   cw2.mutable_candidates()->clear();
77
78   entry1.label = kSampleString1;
79   entry2.label = kSampleString2;
80   cw1.mutable_candidates()->push_back(entry1);
81   cw2.mutable_candidates()->push_back(entry2);
82   EXPECT_FALSE(cw1.IsEqual(cw2));
83   EXPECT_FALSE(cw2.IsEqual(cw1));
84   cw1.mutable_candidates()->clear();
85   cw2.mutable_candidates()->clear();
86
87   entry1.annotation = kSampleString1;
88   entry2.annotation = kSampleString2;
89   cw1.mutable_candidates()->push_back(entry1);
90   cw2.mutable_candidates()->push_back(entry2);
91   EXPECT_FALSE(cw1.IsEqual(cw2));
92   EXPECT_FALSE(cw2.IsEqual(cw1));
93   cw1.mutable_candidates()->clear();
94   cw2.mutable_candidates()->clear();
95
96   entry1.description_title = kSampleString1;
97   entry2.description_title = kSampleString2;
98   cw1.mutable_candidates()->push_back(entry1);
99   cw2.mutable_candidates()->push_back(entry2);
100   EXPECT_FALSE(cw1.IsEqual(cw2));
101   EXPECT_FALSE(cw2.IsEqual(cw1));
102   cw1.mutable_candidates()->clear();
103   cw2.mutable_candidates()->clear();
104
105   entry1.description_body = kSampleString1;
106   entry2.description_body = kSampleString2;
107   cw1.mutable_candidates()->push_back(entry1);
108   cw2.mutable_candidates()->push_back(entry2);
109   EXPECT_FALSE(cw1.IsEqual(cw2));
110   EXPECT_FALSE(cw2.IsEqual(cw1));
111   cw1.mutable_candidates()->clear();
112   cw2.mutable_candidates()->clear();
113 }
114
115 TEST(CandidateWindow, CopyFromTest) {
116   CandidateWindow cw1;
117   CandidateWindow cw2;
118
119   const char kSampleString[] = "Sample";
120
121   cw1.set_page_size(1);
122   cw1.set_cursor_position(2);
123   cw1.set_is_cursor_visible(false);
124   cw1.set_orientation(CandidateWindow::HORIZONTAL);
125   cw1.set_show_window_at_composition(false);
126
127   CandidateWindow::Entry entry;
128   entry.value = kSampleString;
129   entry.label = kSampleString;
130   entry.annotation = kSampleString;
131   entry.description_title = kSampleString;
132   entry.description_body = kSampleString;
133   cw1.mutable_candidates()->push_back(entry);
134
135   cw2.CopyFrom(cw1);
136   EXPECT_TRUE(cw1.IsEqual(cw2));
137 }
138
139 }  // namespace input_method
140 }  // namespace chromeos