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

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

Issue 2183163002: mus: Change PointerWatcher to observe all pointer events, with moves optional. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Change to use PointerEvent. 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
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..7e1a79940d2885b149fcc784b38e3cbe92428c3a 100644
--- a/services/ui/public/cpp/tests/window_tree_client_unittest.cc
+++ b/services/ui/public/cpp/tests/window_tree_client_unittest.cc
@@ -95,8 +95,8 @@ class WindowTreeSetup {
: *client()->GetRoots().begin();
}
- uint32_t GetEventObserverId() {
- return WindowTreeClientPrivate(&tree_client_).event_observer_id();
+ uint32_t GetPointerWatcherId() {
+ return WindowTreeClientPrivate(&tree_client_).pointer_watcher_id();
}
private:
@@ -473,19 +473,16 @@ TEST_F(WindowTreeClientTest, OnEventObserved) {
Window* root = setup.GetFirstRoot();
ASSERT_TRUE(root);
- // Set up an event observer.
- mojom::EventMatcherPtr matcher = mojom::EventMatcher::New();
- matcher->type_matcher = mojom::EventTypeMatcher::New();
- matcher->type_matcher->type = ui::mojom::EventType::POINTER_DOWN;
- setup.client()->SetEventObserver(std::move(matcher));
+ // Start a pointer watcher for all events excluding move events.
+ setup.client()->StartPointerWatcher(false /* want_moves */);
// Simulate the server sending an observed event.
- uint32_t event_observer_id = setup.GetEventObserverId();
+ uint32_t pointer_watcher_id = setup.GetPointerWatcherId();
std::unique_ptr<ui::Event> ui_event(
new ui::MouseEvent(ui::ET_MOUSE_PRESSED, gfx::Point(), gfx::Point(),
James Cook 2016/07/27 01:54:01 Change all these test events to PointerEvents, sin
riajiang 2016/07/27 22:39:16 Done.
ui::EventTimeForNow(), ui::EF_CONTROL_DOWN, 0));
setup.window_tree_client()->OnEventObserved(ui::Event::Clone(*ui_event.get()),
- event_observer_id);
+ pointer_watcher_id);
// Delegate sensed the event.
ui::Event* last_event = setup.window_tree_delegate()->last_event_observed();
@@ -493,12 +490,12 @@ TEST_F(WindowTreeClientTest, OnEventObserved) {
EXPECT_EQ(ui::EF_CONTROL_DOWN, last_event->flags());
setup.window_tree_delegate()->Reset();
- // Clear the event observer.
- setup.client()->SetEventObserver(nullptr);
+ // Stop the pointer watcher.
+ setup.client()->StopPointerWatcher();
// Simulate another event from the server.
setup.window_tree_client()->OnEventObserved(ui::Event::Clone(*ui_event.get()),
- event_observer_id);
+ pointer_watcher_id);
// No event was sensed.
EXPECT_FALSE(setup.window_tree_delegate()->last_event_observed());
@@ -510,19 +507,16 @@ TEST_F(WindowTreeClientTest, OnWindowInputEventWithEventObserver) {
Window* root = setup.GetFirstRoot();
ASSERT_TRUE(root);
- // Set up an event observer.
- mojom::EventMatcherPtr matcher = mojom::EventMatcher::New();
- matcher->type_matcher = mojom::EventTypeMatcher::New();
- matcher->type_matcher->type = ui::mojom::EventType::POINTER_DOWN;
- setup.client()->SetEventObserver(std::move(matcher));
+ // Start a pointer watcher for all events excluding move events.
+ setup.client()->StartPointerWatcher(false /* want_moves */);
// Simulate the server dispatching an event that also matched the observer.
- uint32_t event_observer_id = setup.GetEventObserverId();
+ uint32_t pointer_watcher_id = setup.GetPointerWatcherId();
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()->OnWindowInputEvent(
- 1, server_id(root), std::move(ui_event), event_observer_id);
+ 1, server_id(root), std::move(ui_event), pointer_watcher_id);
// Delegate sensed the event.
ui::Event* last_event = setup.window_tree_delegate()->last_event_observed();
@@ -530,48 +524,42 @@ TEST_F(WindowTreeClientTest, OnWindowInputEventWithEventObserver) {
EXPECT_EQ(ui::EF_CONTROL_DOWN, last_event->flags());
}
-// Tests that replacing an event observer with a new one results in only new
-// events being observed.
+// Tests that replacing a pointer watcher with a new one that has different
+// |want_moves| values results in only new events being observed.
TEST_F(WindowTreeClientTest, EventObserverReplaced) {
WindowTreeSetup setup;
Window* root = setup.GetFirstRoot();
ASSERT_TRUE(root);
- // Set up an event observer.
- mojom::EventMatcherPtr matcher1 = mojom::EventMatcher::New();
- matcher1->type_matcher = mojom::EventTypeMatcher::New();
- matcher1->type_matcher->type = ui::mojom::EventType::POINTER_DOWN;
- setup.client()->SetEventObserver(std::move(matcher1));
- uint32_t event_observer_id1 = setup.GetEventObserverId();
-
- // Replace it with a second observer.
- mojom::EventMatcherPtr matcher2 = mojom::EventMatcher::New();
- matcher2->type_matcher = mojom::EventTypeMatcher::New();
- matcher2->type_matcher->type = ui::mojom::EventType::POINTER_UP;
- setup.client()->SetEventObserver(std::move(matcher2));
- uint32_t event_observer_id2 = setup.GetEventObserverId();
-
- // Simulate the server sending an observed event that matched the old observer
+ // Start a pointer watcher for all events excluding move events.
+ setup.client()->StartPointerWatcher(false /* want_moves */);
+ uint32_t pointer_watcher_id1 = setup.GetPointerWatcherId();
+
+ // Replace it with a second watcher that also watches for move events.
+ setup.client()->StartPointerWatcher(true /* want_moves */);
+ uint32_t pointer_watcher_id2 = setup.GetPointerWatcherId();
+
+ // Simulate the server sending an observed event that matched the old watcher
// (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));
setup.window_tree_client()->OnEventObserved(std::move(pressed_event),
- event_observer_id1);
+ pointer_watcher_id1);
- // The event was not sensed, because it does not match the current observer.
+ // The event was not sensed, because it does not match the current watcher.
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(),
+ // Simulate another event that matches the new watcher.
+ std::unique_ptr<ui::Event> moved_event(
+ new ui::MouseEvent(ui::ET_MOUSE_MOVED, gfx::Point(), gfx::Point(),
ui::EventTimeForNow(), ui::EF_CONTROL_DOWN, 0));
- setup.window_tree_client()->OnEventObserved(std::move(released_event),
- event_observer_id2);
+ setup.window_tree_client()->OnEventObserved(std::move(moved_event),
+ pointer_watcher_id2);
// The delegate sensed the event.
ui::Event* last_event = setup.window_tree_delegate()->last_event_observed();
- EXPECT_EQ(ui::ET_MOUSE_RELEASED, last_event->type());
+ EXPECT_EQ(ui::ET_MOUSE_MOVED, last_event->type());
EXPECT_EQ(ui::EF_CONTROL_DOWN, last_event->flags());
}

Powered by Google App Engine
This is Rietveld 408576698