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

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

Issue 2125663002: mus: Add watcher for all touch events. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Overload copy assignment operator for Change struct. 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..c936893437ddbfc31e48fab80b7ab9c8972d12fb 100644
--- a/services/ui/public/cpp/tests/window_tree_client_unittest.cc
+++ b/services/ui/public/cpp/tests/window_tree_client_unittest.cc
@@ -450,15 +450,19 @@ TEST_F(WindowTreeClientTest, InputEventBasic) {
std::unique_ptr<ui::Event> ui_event(
new ui::MouseEvent(ui::ET_MOUSE_MOVED, gfx::Point(), gfx::Point(),
ui::EventTimeForNow(), ui::EF_NONE, 0));
+ mojo::Array<uint32_t> event_observer_ids;
+ event_observer_ids.push_back(0);
setup.window_tree_client()->OnWindowInputEvent(
- 1, server_id(root), ui::Event::Clone(*ui_event.get()), 0);
+ 1, server_id(root), ui::Event::Clone(*ui_event.get()),
+ std::move(event_observer_ids));
EXPECT_TRUE(event_handler.received_event());
EXPECT_TRUE(setup.window_tree()->WasEventAcked(1));
event_handler.Reset();
event_handler.set_should_manually_ack();
setup.window_tree_client()->OnWindowInputEvent(
- 33, server_id(root), ui::Event::Clone(*ui_event.get()), 0);
+ 33, server_id(root), ui::Event::Clone(*ui_event.get()),
+ std::move(event_observer_ids));
EXPECT_TRUE(event_handler.received_event());
EXPECT_FALSE(setup.window_tree()->WasEventAcked(33));
@@ -477,15 +481,17 @@ TEST_F(WindowTreeClientTest, OnEventObserved) {
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));
+ uint32_t observer_id = setup.client()->AddEventObserver(std::move(matcher));
// Simulate the server sending an observed event.
uint32_t event_observer_id = setup.GetEventObserverId();
+ mojo::Array<uint32_t> event_observer_ids;
+ event_observer_ids.push_back(event_observer_id);
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()),
- event_observer_id);
+ std::move(event_observer_ids));
// Delegate sensed the event.
ui::Event* last_event = setup.window_tree_delegate()->last_event_observed();
@@ -494,11 +500,11 @@ TEST_F(WindowTreeClientTest, OnEventObserved) {
setup.window_tree_delegate()->Reset();
// Clear the event observer.
- setup.client()->SetEventObserver(nullptr);
+ setup.client()->RemoveEventObserver(observer_id);
// Simulate another event from the server.
setup.window_tree_client()->OnEventObserved(ui::Event::Clone(*ui_event.get()),
- event_observer_id);
+ std::move(event_observer_ids));
// No event was sensed.
EXPECT_FALSE(setup.window_tree_delegate()->last_event_observed());
@@ -514,15 +520,17 @@ TEST_F(WindowTreeClientTest, OnWindowInputEventWithEventObserver) {
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));
+ setup.client()->AddEventObserver(std::move(matcher));
// Simulate the server dispatching an event that also matched the observer.
uint32_t event_observer_id = setup.GetEventObserverId();
+ mojo::Array<uint32_t> event_observer_ids;
+ event_observer_ids.push_back(event_observer_id);
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), std::move(event_observer_ids));
// Delegate sensed the event.
ui::Event* last_event = setup.window_tree_delegate()->last_event_observed();
@@ -530,9 +538,8 @@ 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.
-TEST_F(WindowTreeClientTest, EventObserverReplaced) {
+// Tests that adding another event observer should observe both events.
+TEST_F(WindowTreeClientTest, EventObserverMult) {
WindowTreeSetup setup;
Window* root = setup.GetFirstRoot();
ASSERT_TRUE(root);
@@ -541,15 +548,19 @@ TEST_F(WindowTreeClientTest, EventObserverReplaced) {
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));
+ setup.client()->AddEventObserver(std::move(matcher1));
uint32_t event_observer_id1 = setup.GetEventObserverId();
+ mojo::Array<uint32_t> event_observer_ids1;
+ event_observer_ids1.push_back(event_observer_id1);
- // Replace it with a second observer.
+ // Add 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));
+ setup.client()->AddEventObserver(std::move(matcher2));
uint32_t event_observer_id2 = setup.GetEventObserverId();
+ mojo::Array<uint32_t> event_observer_ids2;
+ event_observer_ids2.push_back(event_observer_id2);
// Simulate the server sending an observed event that matched the old observer
// (e.g. that was in-flight when the observer was replaced).
@@ -557,20 +568,25 @@ TEST_F(WindowTreeClientTest, EventObserverReplaced) {
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);
+ std::move(event_observer_ids1));
- // The event was not sensed, because it does not match the current observer.
- EXPECT_FALSE(setup.window_tree_delegate()->last_event_observed());
+ // The event should be sensed, because it matches the first observer.
+ EXPECT_TRUE(setup.window_tree_delegate()->last_event_observed());
+ // The delegate sensed the event.
+ ui::Event* last_event = setup.window_tree_delegate()->last_event_observed();
+ EXPECT_EQ(ui::ET_MOUSE_PRESSED, last_event->type());
+ EXPECT_EQ(ui::EF_NONE, last_event->flags());
- // Simulate another event that matches the new observer.
+ // Simulate another event that matches the second 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));
setup.window_tree_client()->OnEventObserved(std::move(released_event),
- event_observer_id2);
+ std::move(event_observer_ids2));
+ EXPECT_TRUE(setup.window_tree_delegate()->last_event_observed());
// The delegate sensed the event.
- ui::Event* last_event = setup.window_tree_delegate()->last_event_observed();
+ last_event = setup.window_tree_delegate()->last_event_observed();
EXPECT_EQ(ui::ET_MOUSE_RELEASED, last_event->type());
EXPECT_EQ(ui::EF_CONTROL_DOWN, last_event->flags());
}

Powered by Google App Engine
This is Rietveld 408576698