Index: chromeos/ime/candidate_window_unittest.cc |
diff --git a/chromeos/ime/candidate_window_unittest.cc b/chromeos/ime/candidate_window_unittest.cc |
new file mode 100644 |
index 0000000000000000000000000000000000000000..f4a9bfaebc6c7caaefff246f9e626a8177e76cd8 |
--- /dev/null |
+++ b/chromeos/ime/candidate_window_unittest.cc |
@@ -0,0 +1,140 @@ |
+// 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. |
+// TODO(nona): Add more tests. |
+ |
+#include "chromeos/ime/candidate_window.h" |
+ |
+#include <string> |
+ |
+#include "base/compiler_specific.h" |
+#include "base/logging.h" |
+#include "base/memory/scoped_ptr.h" |
+#include "testing/gtest/include/gtest/gtest.h" |
+ |
+namespace chromeos { |
+namespace input_method { |
+ |
+TEST(CandidateWindow, IsEqualTest) { |
+ CandidateWindow cw1; |
+ CandidateWindow cw2; |
+ |
+ const char kSampleString1[] = "Sample 1"; |
+ const char kSampleString2[] = "Sample 2"; |
+ |
+ EXPECT_TRUE(cw1.IsEqual(cw2)); |
+ EXPECT_TRUE(cw2.IsEqual(cw1)); |
+ |
+ cw1.set_page_size(1); |
+ cw2.set_page_size(2); |
+ EXPECT_FALSE(cw1.IsEqual(cw2)); |
+ EXPECT_FALSE(cw2.IsEqual(cw1)); |
+ cw2.set_page_size(1); |
+ |
+ cw1.set_cursor_position(1); |
+ cw2.set_cursor_position(2); |
+ EXPECT_FALSE(cw1.IsEqual(cw2)); |
+ EXPECT_FALSE(cw2.IsEqual(cw1)); |
+ cw2.set_cursor_position(1); |
+ |
+ cw1.set_is_cursor_visible(true); |
+ cw2.set_is_cursor_visible(false); |
+ EXPECT_FALSE(cw1.IsEqual(cw2)); |
+ EXPECT_FALSE(cw2.IsEqual(cw1)); |
+ cw2.set_is_cursor_visible(true); |
+ |
+ cw1.set_orientation(CandidateWindow::HORIZONTAL); |
+ cw2.set_orientation(CandidateWindow::VERTICAL); |
+ EXPECT_FALSE(cw1.IsEqual(cw2)); |
+ EXPECT_FALSE(cw2.IsEqual(cw1)); |
+ cw2.set_orientation(CandidateWindow::HORIZONTAL); |
+ |
+ cw1.set_show_window_at_composition(true); |
+ cw2.set_show_window_at_composition(false); |
+ EXPECT_FALSE(cw1.IsEqual(cw2)); |
+ EXPECT_FALSE(cw2.IsEqual(cw1)); |
+ cw2.set_show_window_at_composition(true); |
+ |
+ // Check equality for candidates member variable. |
+ CandidateWindow::Entry entry1; |
+ CandidateWindow::Entry entry2; |
+ |
+ cw1.mutable_candidates()->push_back(entry1); |
+ EXPECT_FALSE(cw1.IsEqual(cw2)); |
+ EXPECT_FALSE(cw2.IsEqual(cw1)); |
+ cw2.mutable_candidates()->push_back(entry2); |
+ EXPECT_TRUE(cw1.IsEqual(cw2)); |
+ EXPECT_TRUE(cw2.IsEqual(cw1)); |
+ |
+ entry1.value = kSampleString1; |
+ entry2.value = kSampleString2; |
+ cw1.mutable_candidates()->push_back(entry1); |
+ cw2.mutable_candidates()->push_back(entry2); |
+ EXPECT_FALSE(cw1.IsEqual(cw2)); |
+ EXPECT_FALSE(cw2.IsEqual(cw1)); |
+ cw1.mutable_candidates()->clear(); |
+ cw2.mutable_candidates()->clear(); |
+ |
+ entry1.label = kSampleString1; |
+ entry2.label = kSampleString2; |
+ cw1.mutable_candidates()->push_back(entry1); |
+ cw2.mutable_candidates()->push_back(entry2); |
+ EXPECT_FALSE(cw1.IsEqual(cw2)); |
+ EXPECT_FALSE(cw2.IsEqual(cw1)); |
+ cw1.mutable_candidates()->clear(); |
+ cw2.mutable_candidates()->clear(); |
+ |
+ entry1.annotation = kSampleString1; |
+ entry2.annotation = kSampleString2; |
+ cw1.mutable_candidates()->push_back(entry1); |
+ cw2.mutable_candidates()->push_back(entry2); |
+ EXPECT_FALSE(cw1.IsEqual(cw2)); |
+ EXPECT_FALSE(cw2.IsEqual(cw1)); |
+ cw1.mutable_candidates()->clear(); |
+ cw2.mutable_candidates()->clear(); |
+ |
+ entry1.description_title = kSampleString1; |
+ entry2.description_title = kSampleString2; |
+ cw1.mutable_candidates()->push_back(entry1); |
+ cw2.mutable_candidates()->push_back(entry2); |
+ EXPECT_FALSE(cw1.IsEqual(cw2)); |
+ EXPECT_FALSE(cw2.IsEqual(cw1)); |
+ cw1.mutable_candidates()->clear(); |
+ cw2.mutable_candidates()->clear(); |
+ |
+ entry1.description_body = kSampleString1; |
+ entry2.description_body = kSampleString2; |
+ cw1.mutable_candidates()->push_back(entry1); |
+ cw2.mutable_candidates()->push_back(entry2); |
+ EXPECT_FALSE(cw1.IsEqual(cw2)); |
+ EXPECT_FALSE(cw2.IsEqual(cw1)); |
+ cw1.mutable_candidates()->clear(); |
+ cw2.mutable_candidates()->clear(); |
+} |
+ |
+TEST(CandidateWindow, CopyFromTest) { |
+ CandidateWindow cw1; |
+ CandidateWindow cw2; |
+ |
+ const char kSampleString[] = "Sample"; |
+ |
+ cw1.set_page_size(1); |
+ cw1.set_cursor_position(2); |
+ cw1.set_is_cursor_visible(false); |
+ cw1.set_orientation(CandidateWindow::HORIZONTAL); |
+ cw1.set_show_window_at_composition(false); |
+ |
+ CandidateWindow::Entry entry; |
+ entry.value = kSampleString; |
+ entry.label = kSampleString; |
+ entry.annotation = kSampleString; |
+ entry.description_title = kSampleString; |
+ entry.description_body = kSampleString; |
+ cw1.mutable_candidates()->push_back(entry); |
+ |
+ cw2.CopyFrom(cw1); |
+ EXPECT_TRUE(cw1.IsEqual(cw2)); |
+} |
+ |
+} // namespace input_method |
+} // namespace chromeos |