Index: services/ui/public/interfaces/ime/ime_struct_traits_unittest.cc |
diff --git a/services/ui/public/interfaces/ime/ime_struct_traits_unittest.cc b/services/ui/public/interfaces/ime/ime_struct_traits_unittest.cc |
index ebc6043e0b17a4758bef303a5e54ce38821c3908..8041d4bf6d032af1ec84ddcb691e4f78658611ae 100644 |
--- a/services/ui/public/interfaces/ime/ime_struct_traits_unittest.cc |
+++ b/services/ui/public/interfaces/ime/ime_struct_traits_unittest.cc |
@@ -2,6 +2,8 @@ |
// Use of this source code is governed by a BSD-style license that can be |
// found in the LICENSE file. |
+#include "services/ui/public/interfaces/ime/ime_struct_traits.h" |
+ |
#include "base/message_loop/message_loop.h" |
#include "base/strings/utf_string_conversions.h" |
#include "mojo/public/cpp/bindings/binding_set.h" |
@@ -48,6 +50,63 @@ class IMEStructTraitsTest : public testing::Test, |
} // namespace |
+TEST_F(IMEStructTraitsTest, CandidateWindowProperties) { |
+ CandidateWindow::CandidateWindowProperty input; |
+ input.page_size = 7; |
+ input.cursor_position = 3; |
+ input.is_cursor_visible = true; |
+ input.is_vertical = false; |
+ input.show_window_at_composition = true; |
+ input.auxiliary_text = "abcdefghij"; |
+ input.is_auxiliary_text_visible = false; |
+ |
+ CandidateWindow::CandidateWindowProperty output; |
+ EXPECT_TRUE(mojom::CandidateWindowProperties::Deserialize( |
+ mojom::CandidateWindowProperties::Serialize(&input), &output)); |
+ |
+ EXPECT_EQ(input.page_size, output.page_size); |
+ EXPECT_EQ(input.cursor_position, output.cursor_position); |
+ EXPECT_EQ(input.is_cursor_visible, output.is_cursor_visible); |
+ EXPECT_EQ(input.is_vertical, output.is_vertical); |
+ EXPECT_EQ(input.show_window_at_composition, |
+ output.show_window_at_composition); |
+ EXPECT_EQ(input.auxiliary_text, output.auxiliary_text); |
+ EXPECT_EQ(input.is_auxiliary_text_visible, output.is_auxiliary_text_visible); |
+ |
+ // Reverse boolean fields and check we still serialize/deserialize correctly. |
+ input.is_cursor_visible = !input.is_cursor_visible; |
+ input.is_vertical = !input.is_vertical; |
+ input.show_window_at_composition = !input.show_window_at_composition; |
+ input.is_auxiliary_text_visible = !input.is_auxiliary_text_visible; |
+ EXPECT_TRUE(mojom::CandidateWindowProperties::Deserialize( |
+ mojom::CandidateWindowProperties::Serialize(&input), &output)); |
+ |
+ EXPECT_EQ(input.is_cursor_visible, output.is_cursor_visible); |
+ EXPECT_EQ(input.is_vertical, output.is_vertical); |
+ EXPECT_EQ(input.show_window_at_composition, |
+ output.show_window_at_composition); |
+ EXPECT_EQ(input.is_auxiliary_text_visible, output.is_auxiliary_text_visible); |
+} |
+ |
+TEST_F(IMEStructTraitsTest, CandidateWindowEntry) { |
+ CandidateWindow::Entry input; |
+ input.value = base::UTF8ToUTF16("entry_value"); |
+ input.label = base::UTF8ToUTF16("entry_label"); |
+ input.annotation = base::UTF8ToUTF16("entry_annotation"); |
+ input.description_title = base::UTF8ToUTF16("entry_description_title"); |
+ input.description_body = base::UTF8ToUTF16("entry_description_body"); |
+ |
+ CandidateWindow::Entry output; |
+ EXPECT_TRUE(mojom::CandidateWindowEntry::Deserialize( |
+ mojom::CandidateWindowEntry::Serialize(&input), &output)); |
+ |
+ EXPECT_EQ(input.value, output.value); |
+ EXPECT_EQ(input.label, output.label); |
+ EXPECT_EQ(input.annotation, output.annotation); |
+ EXPECT_EQ(input.description_title, output.description_title); |
+ EXPECT_EQ(input.description_body, output.description_body); |
+} |
+ |
TEST_F(IMEStructTraitsTest, CompositionText) { |
CompositionText input; |
input.text = base::UTF8ToUTF16("abcdefghij"); |