Index: ui/aura/window_tree_host_unittest.cc |
diff --git a/ui/aura/window_tree_host_unittest.cc b/ui/aura/window_tree_host_unittest.cc |
index e4ce37c0412da271e98a48a6b44d8d4d5cd9c894..7da3eb9853d1e149186189ff4e4b8485c5f4ba99 100644 |
--- a/ui/aura/window_tree_host_unittest.cc |
+++ b/ui/aura/window_tree_host_unittest.cc |
@@ -5,7 +5,41 @@ |
#include "ui/aura/test/aura_test_base.h" |
#include "ui/aura/test/test_screen.h" |
#include "ui/aura/window.h" |
+#include "ui/base/ime/input_method.h" |
#include "ui/compositor/layer.h" |
+#include "ui/events/event_rewriter.h" |
+ |
+namespace { |
+ |
+// Counts number of events observed. |
+class CounterEventRewriter : public ui::EventRewriter { |
+ public: |
+ CounterEventRewriter() : events_seen_(0) {} |
+ ~CounterEventRewriter() override {} |
+ |
+ int events_seen() const { return events_seen_; } |
+ |
+ private: |
+ // ui::EventRewriter: |
+ ui::EventRewriteStatus RewriteEvent( |
+ const ui::Event& event, |
+ std::unique_ptr<ui::Event>* new_event) override { |
+ events_seen_++; |
+ return ui::EVENT_REWRITE_CONTINUE; |
+ } |
+ |
+ ui::EventRewriteStatus NextDispatchEvent( |
+ const ui::Event& last_event, |
+ std::unique_ptr<ui::Event>* new_event) override { |
+ return ui::EVENT_REWRITE_CONTINUE; |
+ } |
+ |
+ int events_seen_; |
+ |
+ DISALLOW_COPY_AND_ASSIGN(CounterEventRewriter); |
+}; |
+ |
+} // namespace |
namespace aura { |
@@ -39,4 +73,15 @@ TEST_F(WindowTreeHostTest, DPIWindowSize) { |
host()->compositor()->root_layer()->subpixel_position_offset()); |
} |
+TEST_F(WindowTreeHostTest, NoRewritesPostIME) { |
+ CounterEventRewriter event_rewriter; |
+ host()->AddEventRewriter(&event_rewriter); |
+ |
+ ui::KeyEvent key_event('A', ui::VKEY_A, 0); |
+ host()->GetInputMethod()->DispatchKeyEvent(&key_event); |
+ EXPECT_EQ(0, event_rewriter.events_seen()); |
sadrul
2017/06/02 20:04:39
Can you do SendEventToSink() on the WTH, and verif
|
+ |
+ host()->RemoveEventRewriter(&event_rewriter); |
+} |
+ |
} // namespace aura |