| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include <string> | 5 #include <string> |
| 6 #include <vector> | 6 #include <vector> |
| 7 | 7 |
| 8 #include "base/message_loop/message_loop.h" | 8 #include "base/message_loop/message_loop.h" |
| 9 #include "components/mus/client_connection.h" | 9 #include "components/mus/client_connection.h" |
| 10 #include "components/mus/connection_manager.h" | 10 #include "components/mus/connection_manager.h" |
| (...skipping 341 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 352 EXPECT_EQ(ERROR_CODE_NONE, connection1->CreateView(child1)); | 352 EXPECT_EQ(ERROR_CODE_NONE, connection1->CreateView(child1)); |
| 353 EXPECT_TRUE(connection1->AddView(embed_view_id, child1)); | 353 EXPECT_TRUE(connection1->AddView(embed_view_id, child1)); |
| 354 ServerView* v1 = connection1->GetView(child1); | 354 ServerView* v1 = connection1->GetView(child1); |
| 355 v1->SetVisible(true); | 355 v1->SetVisible(true); |
| 356 v1->SetBounds(gfx::Rect(20, 20, 20, 20)); | 356 v1->SetBounds(gfx::Rect(20, 20, 20, 20)); |
| 357 | 357 |
| 358 TestViewTreeClient* connection1_client = last_view_tree_client(); | 358 TestViewTreeClient* connection1_client = last_view_tree_client(); |
| 359 connection1_client->tracker()->changes()->clear(); | 359 connection1_client->tracker()->changes()->clear(); |
| 360 wm_client()->tracker()->changes()->clear(); | 360 wm_client()->tracker()->changes()->clear(); |
| 361 | 361 |
| 362 display_manager_delegate()->OnEvent(CreatePointerDownEvent(21, 22)); | 362 display_manager_delegate()->OnEvent(ViewId(), CreatePointerDownEvent(21, 22)); |
| 363 // Focus should go to child1. This result in notifying both the window | 363 // Focus should go to child1. This result in notifying both the window |
| 364 // manager and client connection being notified. | 364 // manager and client connection being notified. |
| 365 EXPECT_EQ(v1, connection1->GetHost()->GetFocusedView()); | 365 EXPECT_EQ(v1, connection1->GetHost()->GetFocusedView()); |
| 366 ASSERT_GE(wm_client()->tracker()->changes()->size(), 1u); | 366 ASSERT_GE(wm_client()->tracker()->changes()->size(), 1u); |
| 367 EXPECT_EQ("Focused id=2,1", | 367 EXPECT_EQ("Focused id=2,1", |
| 368 ChangesToDescription1(*wm_client()->tracker()->changes())[0]); | 368 ChangesToDescription1(*wm_client()->tracker()->changes())[0]); |
| 369 ASSERT_GE(connection1_client->tracker()->changes()->size(), 1u); | 369 ASSERT_GE(connection1_client->tracker()->changes()->size(), 1u); |
| 370 EXPECT_EQ( | 370 EXPECT_EQ( |
| 371 "Focused id=2,1", | 371 "Focused id=2,1", |
| 372 ChangesToDescription1(*connection1_client->tracker()->changes())[0]); | 372 ChangesToDescription1(*connection1_client->tracker()->changes())[0]); |
| 373 | 373 |
| 374 display_manager_delegate()->OnEvent(CreatePointerUpEvent(21, 22)); | 374 display_manager_delegate()->OnEvent(ViewId(), CreatePointerUpEvent(21, 22)); |
| 375 wm_client()->tracker()->changes()->clear(); | 375 wm_client()->tracker()->changes()->clear(); |
| 376 connection1_client->tracker()->changes()->clear(); | 376 connection1_client->tracker()->changes()->clear(); |
| 377 | 377 |
| 378 // Press outside of the embedded view. Focus should go to the root. Notice | 378 // Press outside of the embedded view. Focus should go to the root. Notice |
| 379 // the client1 doesn't see who has focus as the focused view (root) isn't | 379 // the client1 doesn't see who has focus as the focused view (root) isn't |
| 380 // visible to it. | 380 // visible to it. |
| 381 display_manager_delegate()->OnEvent(CreatePointerDownEvent(61, 22)); | 381 display_manager_delegate()->OnEvent(ViewId(), CreatePointerDownEvent(61, 22)); |
| 382 EXPECT_EQ(host_connection()->view_tree_host()->root_view(), | 382 EXPECT_EQ(host_connection()->view_tree_host()->root_view(), |
| 383 host_connection()->view_tree_host()->GetFocusedView()); | 383 host_connection()->view_tree_host()->GetFocusedView()); |
| 384 ASSERT_GE(wm_client()->tracker()->changes()->size(), 1u); | 384 ASSERT_GE(wm_client()->tracker()->changes()->size(), 1u); |
| 385 EXPECT_EQ("Focused id=0,2", | 385 EXPECT_EQ("Focused id=0,2", |
| 386 ChangesToDescription1(*wm_client()->tracker()->changes())[0]); | 386 ChangesToDescription1(*wm_client()->tracker()->changes())[0]); |
| 387 ASSERT_GE(connection1_client->tracker()->changes()->size(), 1u); | 387 ASSERT_GE(connection1_client->tracker()->changes()->size(), 1u); |
| 388 EXPECT_EQ( | 388 EXPECT_EQ( |
| 389 "Focused id=null", | 389 "Focused id=null", |
| 390 ChangesToDescription1(*connection1_client->tracker()->changes())[0]); | 390 ChangesToDescription1(*connection1_client->tracker()->changes())[0]); |
| 391 | 391 |
| 392 display_manager_delegate()->OnEvent(CreatePointerUpEvent(21, 22)); | 392 display_manager_delegate()->OnEvent(ViewId(), CreatePointerUpEvent(21, 22)); |
| 393 wm_client()->tracker()->changes()->clear(); | 393 wm_client()->tracker()->changes()->clear(); |
| 394 connection1_client->tracker()->changes()->clear(); | 394 connection1_client->tracker()->changes()->clear(); |
| 395 | 395 |
| 396 // Press in the same location. Should not get a focus change event (only input | 396 // Press in the same location. Should not get a focus change event (only input |
| 397 // event). | 397 // event). |
| 398 display_manager_delegate()->OnEvent(CreatePointerDownEvent(61, 22)); | 398 display_manager_delegate()->OnEvent(ViewId(), CreatePointerDownEvent(61, 22)); |
| 399 EXPECT_EQ(host_connection()->view_tree_host()->root_view(), | 399 EXPECT_EQ(host_connection()->view_tree_host()->root_view(), |
| 400 host_connection()->view_tree_host()->GetFocusedView()); | 400 host_connection()->view_tree_host()->GetFocusedView()); |
| 401 ASSERT_EQ(wm_client()->tracker()->changes()->size(), 1u); | 401 ASSERT_EQ(wm_client()->tracker()->changes()->size(), 1u); |
| 402 EXPECT_EQ("InputEvent view=0,2 event_action=4", | 402 EXPECT_EQ("InputEvent view=0,2 event_action=4", |
| 403 ChangesToDescription1(*wm_client()->tracker()->changes())[0]); | 403 ChangesToDescription1(*wm_client()->tracker()->changes())[0]); |
| 404 EXPECT_TRUE(connection1_client->tracker()->changes()->empty()); | 404 EXPECT_TRUE(connection1_client->tracker()->changes()->empty()); |
| 405 } | 405 } |
| 406 | 406 |
| 407 TEST_F(ViewTreeTest, BasicInputEventTarget) { | 407 TEST_F(ViewTreeTest, BasicInputEventTarget) { |
| 408 const ViewId embed_view_id(wm_connection()->id(), 1); | 408 const ViewId embed_view_id(wm_connection()->id(), 1); |
| (...skipping 20 matching lines...) Expand all Loading... |
| 429 ServerView* v1 = connection1->GetView(child1); | 429 ServerView* v1 = connection1->GetView(child1); |
| 430 v1->SetVisible(true); | 430 v1->SetVisible(true); |
| 431 v1->SetBounds(gfx::Rect(20, 20, 20, 20)); | 431 v1->SetBounds(gfx::Rect(20, 20, 20, 20)); |
| 432 | 432 |
| 433 TestViewTreeClient* embed_connection = last_view_tree_client(); | 433 TestViewTreeClient* embed_connection = last_view_tree_client(); |
| 434 embed_connection->tracker()->changes()->clear(); | 434 embed_connection->tracker()->changes()->clear(); |
| 435 wm_client()->tracker()->changes()->clear(); | 435 wm_client()->tracker()->changes()->clear(); |
| 436 | 436 |
| 437 // Send an event to |v1|. |embed_connection| should get the event, not | 437 // Send an event to |v1|. |embed_connection| should get the event, not |
| 438 // |wm_client|, since |v1| lives inside an embedded view. | 438 // |wm_client|, since |v1| lives inside an embedded view. |
| 439 display_manager_delegate()->OnEvent(CreatePointerDownEvent(21, 22)); | 439 display_manager_delegate()->OnEvent(ViewId(), CreatePointerDownEvent(21, 22)); |
| 440 ASSERT_EQ(1u, wm_client()->tracker()->changes()->size()); | 440 ASSERT_EQ(1u, wm_client()->tracker()->changes()->size()); |
| 441 EXPECT_EQ("Focused id=2,1", | 441 EXPECT_EQ("Focused id=2,1", |
| 442 ChangesToDescription1(*wm_client()->tracker()->changes())[0]); | 442 ChangesToDescription1(*wm_client()->tracker()->changes())[0]); |
| 443 ASSERT_EQ(2u, embed_connection->tracker()->changes()->size()); | 443 ASSERT_EQ(2u, embed_connection->tracker()->changes()->size()); |
| 444 EXPECT_EQ("Focused id=2,1", | 444 EXPECT_EQ("Focused id=2,1", |
| 445 ChangesToDescription1(*embed_connection->tracker()->changes())[0]); | 445 ChangesToDescription1(*embed_connection->tracker()->changes())[0]); |
| 446 EXPECT_EQ("InputEvent view=2,1 event_action=4", | 446 EXPECT_EQ("InputEvent view=2,1 event_action=4", |
| 447 ChangesToDescription1(*embed_connection->tracker()->changes())[1]); | 447 ChangesToDescription1(*embed_connection->tracker()->changes())[1]); |
| 448 } | 448 } |
| 449 | 449 |
| 450 } // namespace mus | 450 } // namespace mus |
| OLD | NEW |