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..cf7b4e66988411a0391fc19388d5bd4abfcee176 100644 |
--- a/services/ui/public/interfaces/ime/ime_struct_traits_unittest.cc |
+++ b/services/ui/public/interfaces/ime/ime_struct_traits_unittest.cc |
@@ -26,6 +26,16 @@ class IMEStructTraitsTest : public testing::Test, |
private: |
// mojom::IMEStructTraitsTest: |
+ void EchoCandidateWindowProperties( |
+ const CandidateWindow::CandidateWindowProperty& in, |
+ const EchoCandidateWindowPropertiesCallback& callback) override { |
+ callback.Run(in); |
+ } |
+ void EchoCandidateWindowEntry( |
+ const CandidateWindow::Entry& in, |
+ const EchoCandidateWindowEntryCallback& callback) override { |
+ callback.Run(in); |
+ } |
void EchoCompositionText( |
const CompositionText& in, |
const EchoCompositionTextCallback& callback) override { |
@@ -48,6 +58,62 @@ 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; |
+ |
+ mojom::IMEStructTraitsTestPtr proxy = GetTraitsTestProxy(); |
+ CandidateWindow::CandidateWindowProperty output; |
+ proxy->EchoCandidateWindowProperties(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; |
+ proxy->EchoCandidateWindowProperties(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"); |
+ |
+ mojom::IMEStructTraitsTestPtr proxy = GetTraitsTestProxy(); |
+ CandidateWindow::Entry output; |
+ proxy->EchoCandidateWindowEntry(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"); |