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

Unified Diff: services/ui/public/cpp/tests/window_tree_client_unittest.cc

Issue 2179083002: mash: Fix system tray bubble not closing for clicks outside its bounds (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: rebase Created 4 years, 5 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/public/cpp/lib/window_tree_client.cc ('k') | services/ui/public/cpp/window_tree_client.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: services/ui/public/cpp/tests/window_tree_client_unittest.cc
diff --git a/services/ui/public/cpp/tests/window_tree_client_unittest.cc b/services/ui/public/cpp/tests/window_tree_client_unittest.cc
index 5766f754a24bdfece1d6762111ca939c985b4d85..59ef33b8b5ddecb2eb92e4624b0da1a29dfbf09e 100644
--- a/services/ui/public/cpp/tests/window_tree_client_unittest.cc
+++ b/services/ui/public/cpp/tests/window_tree_client_unittest.cc
@@ -53,18 +53,24 @@ class TestWindowTreeClientDelegate : public WindowTreeClientDelegate {
~TestWindowTreeClientDelegate() override {}
ui::Event* last_event_observed() { return last_event_observed_.get(); }
+ Window* last_target() { return last_target_; }
- void Reset() { last_event_observed_.reset(); }
+ void Reset() {
+ last_event_observed_.reset();
+ last_target_ = nullptr;
+ }
// WindowTreeClientDelegate:
void OnEmbed(Window* root) override {}
void OnDidDestroyClient(WindowTreeClient* client) override {}
void OnEventObserved(const ui::Event& event, Window* target) override {
last_event_observed_ = ui::Event::Clone(event);
+ last_target_ = target;
}
private:
std::unique_ptr<ui::Event> last_event_observed_;
+ Window* last_target_ = nullptr;
DISALLOW_COPY_AND_ASSIGN(TestWindowTreeClientDelegate);
};
@@ -481,23 +487,26 @@ TEST_F(WindowTreeClientTest, OnEventObserved) {
// Simulate the server sending an observed event.
uint32_t event_observer_id = setup.GetEventObserverId();
- std::unique_ptr<ui::Event> ui_event(
- new ui::MouseEvent(ui::ET_MOUSE_PRESSED, gfx::Point(), gfx::Point(),
- ui::EventTimeForNow(), ui::EF_CONTROL_DOWN, 0));
- setup.window_tree_client()->OnEventObserved(ui::Event::Clone(*ui_event.get()),
+ ui::PointerEvent ui_event(
+ ui::ET_POINTER_DOWN, gfx::Point(), gfx::Point(), ui::EF_CONTROL_DOWN, 0,
+ ui::PointerDetails(ui::EventPointerType::POINTER_TYPE_MOUSE),
+ ui::EventTimeForNow());
+ setup.window_tree_client()->OnEventObserved(ui::Event::Clone(ui_event),
event_observer_id);
- // Delegate sensed the event.
+ // Delegate sensed the event and it has been converted to a mouse down.
ui::Event* last_event = setup.window_tree_delegate()->last_event_observed();
EXPECT_EQ(ui::ET_MOUSE_PRESSED, last_event->type());
EXPECT_EQ(ui::EF_CONTROL_DOWN, last_event->flags());
+ // There was no target window.
+ EXPECT_FALSE(setup.window_tree_delegate()->last_target());
setup.window_tree_delegate()->Reset();
// Clear the event observer.
setup.client()->SetEventObserver(nullptr);
// Simulate another event from the server.
- setup.window_tree_client()->OnEventObserved(ui::Event::Clone(*ui_event.get()),
+ setup.window_tree_client()->OnEventObserved(ui::Event::Clone(ui_event),
event_observer_id);
// No event was sensed.
@@ -518,9 +527,10 @@ TEST_F(WindowTreeClientTest, OnWindowInputEventWithEventObserver) {
// Simulate the server dispatching an event that also matched the observer.
uint32_t event_observer_id = setup.GetEventObserverId();
- std::unique_ptr<ui::Event> ui_event(
- new ui::MouseEvent(ui::ET_MOUSE_PRESSED, gfx::Point(), gfx::Point(),
- ui::EventTimeForNow(), ui::EF_CONTROL_DOWN, 0));
+ std::unique_ptr<ui::Event> ui_event(new ui::PointerEvent(
+ ui::ET_POINTER_DOWN, gfx::Point(), gfx::Point(), ui::EF_CONTROL_DOWN, 0,
+ ui::PointerDetails(ui::EventPointerType::POINTER_TYPE_MOUSE),
+ ui::EventTimeForNow()));
setup.window_tree_client()->OnWindowInputEvent(
1, server_id(root), std::move(ui_event), event_observer_id);
@@ -528,6 +538,8 @@ TEST_F(WindowTreeClientTest, OnWindowInputEventWithEventObserver) {
ui::Event* last_event = setup.window_tree_delegate()->last_event_observed();
EXPECT_EQ(ui::ET_MOUSE_PRESSED, last_event->type());
EXPECT_EQ(ui::EF_CONTROL_DOWN, last_event->flags());
+ // Delegate sensed the target window.
+ EXPECT_EQ(root, setup.window_tree_delegate()->last_target());
}
// Tests that replacing an event observer with a new one results in only new
@@ -553,9 +565,10 @@ TEST_F(WindowTreeClientTest, EventObserverReplaced) {
// Simulate the server sending an observed event that matched the old observer
// (e.g. that was in-flight when the observer was replaced).
- std::unique_ptr<ui::Event> pressed_event(
- new ui::MouseEvent(ui::ET_MOUSE_PRESSED, gfx::Point(), gfx::Point(),
- ui::EventTimeForNow(), ui::EF_NONE, 0));
+ std::unique_ptr<ui::Event> pressed_event(new ui::PointerEvent(
+ ui::ET_POINTER_DOWN, gfx::Point(), gfx::Point(), ui::EF_NONE, 0,
+ ui::PointerDetails(ui::EventPointerType::POINTER_TYPE_MOUSE),
+ ui::EventTimeForNow()));
setup.window_tree_client()->OnEventObserved(std::move(pressed_event),
event_observer_id1);
@@ -563,9 +576,10 @@ TEST_F(WindowTreeClientTest, EventObserverReplaced) {
EXPECT_FALSE(setup.window_tree_delegate()->last_event_observed());
// Simulate another event that matches the new observer.
- std::unique_ptr<ui::Event> released_event(
- new ui::MouseEvent(ui::ET_MOUSE_RELEASED, gfx::Point(), gfx::Point(),
- ui::EventTimeForNow(), ui::EF_CONTROL_DOWN, 0));
+ std::unique_ptr<ui::Event> released_event(new ui::PointerEvent(
+ ui::ET_POINTER_UP, gfx::Point(), gfx::Point(), ui::EF_CONTROL_DOWN, 0,
+ ui::PointerDetails(ui::EventPointerType::POINTER_TYPE_MOUSE),
+ ui::EventTimeForNow()));
setup.window_tree_client()->OnEventObserved(std::move(released_event),
event_observer_id2);
« no previous file with comments | « services/ui/public/cpp/lib/window_tree_client.cc ('k') | services/ui/public/cpp/window_tree_client.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698