Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1452)

Unified Diff: services/ui/ime/ime_unittest.cc

Issue 2230393002: IME for Mus: Make InputMethodMus use the IME Mojo API. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Update mash_browser_tests_manifest. Created 4 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « services/ui/ime/ime_server_impl.cc ('k') | services/ui/ime/test_ime_driver/BUILD.gn » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: services/ui/ime/ime_unittest.cc
diff --git a/services/ui/ime/ime_unittest.cc b/services/ui/ime/ime_unittest.cc
index a7754d1e657ae67ec224fa7e5420eee3914acc6a..651300c247b9c49a3cdf520ced6bb5e57bac8c01 100644
--- a/services/ui/ime/ime_unittest.cc
+++ b/services/ui/ime/ime_unittest.cc
@@ -18,7 +18,7 @@ class TestTextInputClient : public ui::mojom::TextInputClient {
explicit TestTextInputClient(ui::mojom::TextInputClientRequest request)
: binding_(this, std::move(request)) {}
- ui::mojom::CompositionEventPtr ReceiveCompositionEvent() {
+ ui::mojom::CompositionEventPtr WaitUntilCompositionEvent() {
run_loop_.reset(new base::RunLoop);
run_loop_->Run();
run_loop_.reset();
@@ -26,15 +26,28 @@ class TestTextInputClient : public ui::mojom::TextInputClient {
return std::move(receieved_composition_event_);
}
+ ui::Event* WaitUntilUnhandledEvent() {
+ run_loop_.reset(new base::RunLoop);
+ run_loop_->Run();
+ run_loop_.reset();
+
+ return unhandled_event_.get();
+ }
+
private:
void OnCompositionEvent(ui::mojom::CompositionEventPtr event) override {
receieved_composition_event_ = std::move(event);
run_loop_->Quit();
}
+ void OnUnhandledEvent(std::unique_ptr<ui::Event> char_event) override {
+ unhandled_event_ = std::move(char_event);
+ run_loop_->Quit();
+ }
mojo::Binding<ui::mojom::TextInputClient> binding_;
std::unique_ptr<base::RunLoop> run_loop_;
ui::mojom::CompositionEventPtr receieved_composition_event_;
+ std::unique_ptr<ui::Event> unhandled_event_;
DISALLOW_COPY_AND_ASSIGN(TestTextInputClient);
};
@@ -67,19 +80,32 @@ TEST_F(IMEAppTest, ProcessKeyEvent) {
ui::mojom::InputMethodPtr input_method;
ime_server_->StartSession(std::move(client_ptr), GetProxy(&input_method));
- ui::KeyEvent key_event(ui::ET_KEY_PRESSED, ui::VKEY_A, 0);
-
- input_method->ProcessKeyEvent(ui::Event::Clone(key_event));
+ // Send character key event.
+ ui::KeyEvent char_event('A', ui::VKEY_A, 0);
+ input_method->ProcessKeyEvent(ui::Event::Clone(char_event));
ui::mojom::CompositionEventPtr composition_event =
- client.ReceiveCompositionEvent();
- ASSERT_EQ(ui::mojom::CompositionEventType::INSERT_CHAR,
+ client.WaitUntilCompositionEvent();
+ EXPECT_EQ(ui::mojom::CompositionEventType::INSERT_CHAR,
composition_event->type);
- ASSERT_TRUE(composition_event->key_event);
- ASSERT_TRUE(composition_event->key_event.value()->IsKeyEvent());
+ EXPECT_TRUE(composition_event->key_event);
+ EXPECT_TRUE(composition_event->key_event.value()->IsKeyEvent());
ui::KeyEvent* received_key_event =
composition_event->key_event.value()->AsKeyEvent();
- ASSERT_EQ(ui::ET_KEY_PRESSED, received_key_event->type());
- ASSERT_EQ(key_event.GetCharacter(), received_key_event->GetCharacter());
+ EXPECT_EQ(ui::ET_KEY_PRESSED, received_key_event->type());
+ EXPECT_TRUE(received_key_event->is_char());
+ EXPECT_EQ(char_event.GetCharacter(), received_key_event->GetCharacter());
+
+ // Send non-character key event.
+ ui::KeyEvent nonchar_event(ui::ET_KEY_PRESSED, ui::VKEY_LEFT, 0);
+ input_method->ProcessKeyEvent(ui::Event::Clone(nonchar_event));
+
+ ui::Event* unhandled_event = client.WaitUntilUnhandledEvent();
+ EXPECT_TRUE(unhandled_event);
+ EXPECT_TRUE(unhandled_event->IsKeyEvent());
+ EXPECT_FALSE(unhandled_event->AsKeyEvent()->is_char());
+ EXPECT_EQ(ui::ET_KEY_PRESSED, unhandled_event->type());
+ EXPECT_EQ(nonchar_event.key_code(),
+ unhandled_event->AsKeyEvent()->key_code());
}
« no previous file with comments | « services/ui/ime/ime_server_impl.cc ('k') | services/ui/ime/test_ime_driver/BUILD.gn » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698