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 "services/ui/ws/window_tree.h" | 5 #include "services/ui/ws/window_tree.h" |
6 | 6 |
7 #include <stdint.h> | 7 #include <stdint.h> |
8 | 8 |
9 #include <string> | 9 #include <string> |
10 #include <vector> | 10 #include <vector> |
(...skipping 13 matching lines...) Expand all Loading... |
24 #include "services/ui/ws/server_window.h" | 24 #include "services/ui/ws/server_window.h" |
25 #include "services/ui/ws/test_change_tracker.h" | 25 #include "services/ui/ws/test_change_tracker.h" |
26 #include "services/ui/ws/test_server_window_delegate.h" | 26 #include "services/ui/ws/test_server_window_delegate.h" |
27 #include "services/ui/ws/test_utils.h" | 27 #include "services/ui/ws/test_utils.h" |
28 #include "services/ui/ws/window_manager_access_policy.h" | 28 #include "services/ui/ws/window_manager_access_policy.h" |
29 #include "services/ui/ws/window_manager_display_root.h" | 29 #include "services/ui/ws/window_manager_display_root.h" |
30 #include "services/ui/ws/window_server.h" | 30 #include "services/ui/ws/window_server.h" |
31 #include "services/ui/ws/window_server_delegate.h" | 31 #include "services/ui/ws/window_server_delegate.h" |
32 #include "services/ui/ws/window_tree_binding.h" | 32 #include "services/ui/ws/window_tree_binding.h" |
33 #include "testing/gtest/include/gtest/gtest.h" | 33 #include "testing/gtest/include/gtest/gtest.h" |
| 34 #include "ui/base/cursor/cursor.h" |
34 #include "ui/events/event.h" | 35 #include "ui/events/event.h" |
35 #include "ui/events/event_utils.h" | 36 #include "ui/events/event_utils.h" |
36 #include "ui/gfx/geometry/rect.h" | 37 #include "ui/gfx/geometry/rect.h" |
37 | 38 |
38 namespace ui { | 39 namespace ui { |
39 namespace ws { | 40 namespace ws { |
40 namespace test { | 41 namespace test { |
41 namespace { | 42 namespace { |
42 | 43 |
43 const UserId kTestUserId1 = "2"; | 44 const UserId kTestUserId1 = "2"; |
(...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
122 | 123 |
123 } // namespace | 124 } // namespace |
124 | 125 |
125 // ----------------------------------------------------------------------------- | 126 // ----------------------------------------------------------------------------- |
126 | 127 |
127 class WindowTreeTest : public testing::Test { | 128 class WindowTreeTest : public testing::Test { |
128 public: | 129 public: |
129 WindowTreeTest() {} | 130 WindowTreeTest() {} |
130 ~WindowTreeTest() override {} | 131 ~WindowTreeTest() override {} |
131 | 132 |
132 ui::mojom::CursorType cursor_id() { | 133 ui::CursorType cursor_type() { |
133 return window_event_targeting_helper_.cursor(); | 134 return window_event_targeting_helper_.cursor_type(); |
134 } | 135 } |
135 Display* display() { return window_event_targeting_helper_.display(); } | 136 Display* display() { return window_event_targeting_helper_.display(); } |
136 TestWindowTreeClient* last_window_tree_client() { | 137 TestWindowTreeClient* last_window_tree_client() { |
137 return window_event_targeting_helper_.last_window_tree_client(); | 138 return window_event_targeting_helper_.last_window_tree_client(); |
138 } | 139 } |
139 TestWindowTreeClient* wm_client() { | 140 TestWindowTreeClient* wm_client() { |
140 return window_event_targeting_helper_.wm_client(); | 141 return window_event_targeting_helper_.wm_client(); |
141 } | 142 } |
142 WindowServer* window_server() { | 143 WindowServer* window_server() { |
143 return window_event_targeting_helper_.window_server(); | 144 return window_event_targeting_helper_.window_server(); |
(...skipping 324 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
468 TestWindowTreeClient* embed_client = nullptr; | 469 TestWindowTreeClient* embed_client = nullptr; |
469 WindowTree* tree = nullptr; | 470 WindowTree* tree = nullptr; |
470 ServerWindow* window = nullptr; | 471 ServerWindow* window = nullptr; |
471 EXPECT_NO_FATAL_FAILURE(SetupEventTargeting(&embed_client, &tree, &window)); | 472 EXPECT_NO_FATAL_FAILURE(SetupEventTargeting(&embed_client, &tree, &window)); |
472 | 473 |
473 // Like in BasicInputEventTarget, we send a pointer down event to be | 474 // Like in BasicInputEventTarget, we send a pointer down event to be |
474 // dispatched. This is only to place the mouse cursor over that window though. | 475 // dispatched. This is only to place the mouse cursor over that window though. |
475 DispatchEventAndAckImmediately(CreateMouseMoveEvent(21, 22)); | 476 DispatchEventAndAckImmediately(CreateMouseMoveEvent(21, 22)); |
476 | 477 |
477 // Set the cursor on the parent as that is where the cursor is picked up from. | 478 // Set the cursor on the parent as that is where the cursor is picked up from. |
478 window->parent()->SetPredefinedCursor(mojom::CursorType::kIBeam); | 479 window->parent()->SetCursor(ui::CursorData(ui::CursorType::kIBeam)); |
479 | 480 |
480 // Because the cursor is over the window when SetCursor was called, we should | 481 // Because the cursor is over the window when SetCursor was called, we should |
481 // have immediately changed the cursor. | 482 // have immediately changed the cursor. |
482 EXPECT_EQ(mojom::CursorType::kIBeam, cursor_id()); | 483 EXPECT_EQ(ui::CursorType::kIBeam, cursor_type()); |
483 } | 484 } |
484 | 485 |
485 TEST_F(WindowTreeTest, CursorChangesWhenEnteringWindowWithDifferentCursor) { | 486 TEST_F(WindowTreeTest, CursorChangesWhenEnteringWindowWithDifferentCursor) { |
486 TestWindowTreeClient* embed_client = nullptr; | 487 TestWindowTreeClient* embed_client = nullptr; |
487 WindowTree* tree = nullptr; | 488 WindowTree* tree = nullptr; |
488 ServerWindow* window = nullptr; | 489 ServerWindow* window = nullptr; |
489 EXPECT_NO_FATAL_FAILURE(SetupEventTargeting(&embed_client, &tree, &window)); | 490 EXPECT_NO_FATAL_FAILURE(SetupEventTargeting(&embed_client, &tree, &window)); |
490 | 491 |
491 // Let's create a pointer event outside the window and then move the pointer | 492 // Let's create a pointer event outside the window and then move the pointer |
492 // inside. | 493 // inside. |
493 DispatchEventAndAckImmediately(CreateMouseMoveEvent(5, 5)); | 494 DispatchEventAndAckImmediately(CreateMouseMoveEvent(5, 5)); |
494 // Set the cursor on the parent as that is where the cursor is picked up from. | 495 // Set the cursor on the parent as that is where the cursor is picked up from. |
495 window->parent()->SetPredefinedCursor(mojom::CursorType::kIBeam); | 496 window->parent()->SetCursor(ui::CursorData(ui::CursorType::kIBeam)); |
496 EXPECT_EQ(mojom::CursorType::kPointer, cursor_id()); | 497 EXPECT_EQ(ui::CursorType::kPointer, cursor_type()); |
497 | 498 |
498 DispatchEventAndAckImmediately(CreateMouseMoveEvent(21, 22)); | 499 DispatchEventAndAckImmediately(CreateMouseMoveEvent(21, 22)); |
499 EXPECT_EQ(mojom::CursorType::kIBeam, cursor_id()); | 500 EXPECT_EQ(ui::CursorType::kIBeam, cursor_type()); |
500 } | 501 } |
501 | 502 |
502 TEST_F(WindowTreeTest, TouchesDontChangeCursor) { | 503 TEST_F(WindowTreeTest, TouchesDontChangeCursor) { |
503 TestWindowTreeClient* embed_client = nullptr; | 504 TestWindowTreeClient* embed_client = nullptr; |
504 WindowTree* tree = nullptr; | 505 WindowTree* tree = nullptr; |
505 ServerWindow* window = nullptr; | 506 ServerWindow* window = nullptr; |
506 EXPECT_NO_FATAL_FAILURE(SetupEventTargeting(&embed_client, &tree, &window)); | 507 EXPECT_NO_FATAL_FAILURE(SetupEventTargeting(&embed_client, &tree, &window)); |
507 | 508 |
508 // Let's create a pointer event outside the window and then move the pointer | 509 // Let's create a pointer event outside the window and then move the pointer |
509 // inside. | 510 // inside. |
510 DispatchEventAndAckImmediately(CreateMouseMoveEvent(5, 5)); | 511 DispatchEventAndAckImmediately(CreateMouseMoveEvent(5, 5)); |
511 window->SetPredefinedCursor(mojom::CursorType::kIBeam); | 512 window->SetCursor(ui::CursorData(ui::CursorType::kIBeam)); |
512 EXPECT_EQ(mojom::CursorType::kPointer, cursor_id()); | 513 EXPECT_EQ(ui::CursorType::kPointer, cursor_type()); |
513 | 514 |
514 // With a touch event, we shouldn't update the cursor. | 515 // With a touch event, we shouldn't update the cursor. |
515 DispatchEventAndAckImmediately(CreatePointerDownEvent(21, 22)); | 516 DispatchEventAndAckImmediately(CreatePointerDownEvent(21, 22)); |
516 EXPECT_EQ(mojom::CursorType::kPointer, cursor_id()); | 517 EXPECT_EQ(ui::CursorType::kPointer, cursor_type()); |
517 } | 518 } |
518 | 519 |
519 TEST_F(WindowTreeTest, DragOutsideWindow) { | 520 TEST_F(WindowTreeTest, DragOutsideWindow) { |
520 TestWindowTreeClient* embed_client = nullptr; | 521 TestWindowTreeClient* embed_client = nullptr; |
521 WindowTree* tree = nullptr; | 522 WindowTree* tree = nullptr; |
522 ServerWindow* window = nullptr; | 523 ServerWindow* window = nullptr; |
523 EXPECT_NO_FATAL_FAILURE(SetupEventTargeting(&embed_client, &tree, &window)); | 524 EXPECT_NO_FATAL_FAILURE(SetupEventTargeting(&embed_client, &tree, &window)); |
524 | 525 |
525 // Start with the cursor outside the window. Setting the cursor shouldn't | 526 // Start with the cursor outside the window. Setting the cursor shouldn't |
526 // change the cursor. | 527 // change the cursor. |
527 DispatchEventAndAckImmediately(CreateMouseMoveEvent(5, 5)); | 528 DispatchEventAndAckImmediately(CreateMouseMoveEvent(5, 5)); |
528 // Set the cursor on the parent as that is where the cursor is picked up from. | 529 // Set the cursor on the parent as that is where the cursor is picked up from. |
529 window->parent()->SetPredefinedCursor(mojom::CursorType::kIBeam); | 530 window->parent()->SetCursor(ui::CursorData(ui::CursorType::kIBeam)); |
530 EXPECT_EQ(mojom::CursorType::kPointer, cursor_id()); | 531 EXPECT_EQ(ui::CursorType::kPointer, cursor_type()); |
531 | 532 |
532 // Move the pointer to the inside of the window | 533 // Move the pointer to the inside of the window |
533 DispatchEventAndAckImmediately(CreateMouseMoveEvent(21, 22)); | 534 DispatchEventAndAckImmediately(CreateMouseMoveEvent(21, 22)); |
534 EXPECT_EQ(mojom::CursorType::kIBeam, cursor_id()); | 535 EXPECT_EQ(ui::CursorType::kIBeam, cursor_type()); |
535 | 536 |
536 // Start the drag. | 537 // Start the drag. |
537 DispatchEventAndAckImmediately(CreateMouseDownEvent(21, 22)); | 538 DispatchEventAndAckImmediately(CreateMouseDownEvent(21, 22)); |
538 EXPECT_EQ(mojom::CursorType::kIBeam, cursor_id()); | 539 EXPECT_EQ(ui::CursorType::kIBeam, cursor_type()); |
539 | 540 |
540 // Move the cursor (mouse is still down) outside the window. | 541 // Move the cursor (mouse is still down) outside the window. |
541 DispatchEventAndAckImmediately(CreateMouseMoveEvent(5, 5)); | 542 DispatchEventAndAckImmediately(CreateMouseMoveEvent(5, 5)); |
542 EXPECT_EQ(mojom::CursorType::kIBeam, cursor_id()); | 543 EXPECT_EQ(ui::CursorType::kIBeam, cursor_type()); |
543 | 544 |
544 // Release the cursor. We should now adapt the cursor of the window | 545 // Release the cursor. We should now adapt the cursor of the window |
545 // underneath the pointer. | 546 // underneath the pointer. |
546 DispatchEventAndAckImmediately(CreateMouseUpEvent(5, 5)); | 547 DispatchEventAndAckImmediately(CreateMouseUpEvent(5, 5)); |
547 EXPECT_EQ(mojom::CursorType::kPointer, cursor_id()); | 548 EXPECT_EQ(ui::CursorType::kPointer, cursor_type()); |
548 } | 549 } |
549 | 550 |
550 TEST_F(WindowTreeTest, ChangingWindowBoundsChangesCursor) { | 551 TEST_F(WindowTreeTest, ChangingWindowBoundsChangesCursor) { |
551 TestWindowTreeClient* embed_client = nullptr; | 552 TestWindowTreeClient* embed_client = nullptr; |
552 WindowTree* tree = nullptr; | 553 WindowTree* tree = nullptr; |
553 ServerWindow* window = nullptr; | 554 ServerWindow* window = nullptr; |
554 EXPECT_NO_FATAL_FAILURE(SetupEventTargeting(&embed_client, &tree, &window)); | 555 EXPECT_NO_FATAL_FAILURE(SetupEventTargeting(&embed_client, &tree, &window)); |
555 | 556 |
556 // Put the cursor just outside the bounds of the window. | 557 // Put the cursor just outside the bounds of the window. |
557 DispatchEventAndAckImmediately(CreateMouseMoveEvent(41, 41)); | 558 DispatchEventAndAckImmediately(CreateMouseMoveEvent(41, 41)); |
558 // Sets the cursor on the root as that is where the cursor is picked up from. | 559 // Sets the cursor on the root as that is where the cursor is picked up from. |
559 window->parent()->SetPredefinedCursor(mojom::CursorType::kIBeam); | 560 window->parent()->SetCursor(ui::CursorData(ui::CursorType::kIBeam)); |
560 EXPECT_EQ(mojom::CursorType::kPointer, cursor_id()); | 561 EXPECT_EQ(ui::CursorType::kPointer, cursor_type()); |
561 | 562 |
562 // Expand the bounds of the window so they now include where the cursor now | 563 // Expand the bounds of the window so they now include where the cursor now |
563 // is. | 564 // is. |
564 window->SetBounds(gfx::Rect(20, 20, 25, 25)); | 565 window->SetBounds(gfx::Rect(20, 20, 25, 25)); |
565 EXPECT_EQ(mojom::CursorType::kIBeam, cursor_id()); | 566 EXPECT_EQ(ui::CursorType::kIBeam, cursor_type()); |
566 | 567 |
567 // Contract the bounds again. | 568 // Contract the bounds again. |
568 window->SetBounds(gfx::Rect(20, 20, 20, 20)); | 569 window->SetBounds(gfx::Rect(20, 20, 20, 20)); |
569 EXPECT_EQ(mojom::CursorType::kPointer, cursor_id()); | 570 EXPECT_EQ(ui::CursorType::kPointer, cursor_type()); |
570 } | 571 } |
571 | 572 |
572 TEST_F(WindowTreeTest, WindowReorderingChangesCursor) { | 573 TEST_F(WindowTreeTest, WindowReorderingChangesCursor) { |
573 // Setup two trees parented to the root with the same bounds. | 574 // Setup two trees parented to the root with the same bounds. |
574 ServerWindow* embed_window1 = | 575 ServerWindow* embed_window1 = |
575 window_event_targeting_helper_.CreatePrimaryTree( | 576 window_event_targeting_helper_.CreatePrimaryTree( |
576 gfx::Rect(0, 0, 200, 200), gfx::Rect(0, 0, 50, 50)); | 577 gfx::Rect(0, 0, 200, 200), gfx::Rect(0, 0, 50, 50)); |
577 ServerWindow* embed_window2 = | 578 ServerWindow* embed_window2 = |
578 window_event_targeting_helper_.CreatePrimaryTree( | 579 window_event_targeting_helper_.CreatePrimaryTree( |
579 gfx::Rect(0, 0, 200, 200), gfx::Rect(0, 0, 50, 50)); | 580 gfx::Rect(0, 0, 200, 200), gfx::Rect(0, 0, 50, 50)); |
580 | 581 |
581 ASSERT_EQ(embed_window1->parent(), embed_window2->parent()); | 582 ASSERT_EQ(embed_window1->parent(), embed_window2->parent()); |
582 embed_window1->set_event_targeting_policy( | 583 embed_window1->set_event_targeting_policy( |
583 mojom::EventTargetingPolicy::TARGET_AND_DESCENDANTS); | 584 mojom::EventTargetingPolicy::TARGET_AND_DESCENDANTS); |
584 embed_window2->set_event_targeting_policy( | 585 embed_window2->set_event_targeting_policy( |
585 mojom::EventTargetingPolicy::TARGET_AND_DESCENDANTS); | 586 mojom::EventTargetingPolicy::TARGET_AND_DESCENDANTS); |
586 embed_window1->SetPredefinedCursor(mojom::CursorType::kIBeam); | 587 embed_window1->SetCursor(ui::CursorData(ui::CursorType::kIBeam)); |
587 embed_window2->SetPredefinedCursor(mojom::CursorType::kCross); | 588 embed_window2->SetCursor(ui::CursorData(ui::CursorType::kCross)); |
588 DispatchEventAndAckImmediately(CreateMouseMoveEvent(5, 5)); | 589 DispatchEventAndAckImmediately(CreateMouseMoveEvent(5, 5)); |
589 // Cursor should match that of top-most window, which is |embed_window2|. | 590 // Cursor should match that of top-most window, which is |embed_window2|. |
590 EXPECT_EQ(mojom::CursorType::kCross, cursor_id()); | 591 EXPECT_EQ(ui::CursorType::kCross, cursor_type()); |
591 // Move |embed_window1| on top, cursor should now match it. | 592 // Move |embed_window1| on top, cursor should now match it. |
592 embed_window1->parent()->StackChildAtTop(embed_window1); | 593 embed_window1->parent()->StackChildAtTop(embed_window1); |
593 EXPECT_EQ(mojom::CursorType::kIBeam, cursor_id()); | 594 EXPECT_EQ(ui::CursorType::kIBeam, cursor_type()); |
594 } | 595 } |
595 | 596 |
596 // Assertions around moving cursor between trees with roots. | 597 // Assertions around moving cursor between trees with roots. |
597 TEST_F(WindowTreeTest, CursorMultipleTrees) { | 598 TEST_F(WindowTreeTest, CursorMultipleTrees) { |
598 // Setup two trees parented to the root with the same bounds. | 599 // Setup two trees parented to the root with the same bounds. |
599 ServerWindow* embed_window1 = | 600 ServerWindow* embed_window1 = |
600 window_event_targeting_helper_.CreatePrimaryTree( | 601 window_event_targeting_helper_.CreatePrimaryTree( |
601 gfx::Rect(0, 0, 200, 200), gfx::Rect(0, 0, 10, 10)); | 602 gfx::Rect(0, 0, 200, 200), gfx::Rect(0, 0, 10, 10)); |
602 ServerWindow* embed_window2 = | 603 ServerWindow* embed_window2 = |
603 window_event_targeting_helper_.CreatePrimaryTree( | 604 window_event_targeting_helper_.CreatePrimaryTree( |
604 gfx::Rect(0, 0, 200, 200), gfx::Rect(20, 20, 20, 20)); | 605 gfx::Rect(0, 0, 200, 200), gfx::Rect(20, 20, 20, 20)); |
605 embed_window1->set_event_targeting_policy( | 606 embed_window1->set_event_targeting_policy( |
606 mojom::EventTargetingPolicy::TARGET_AND_DESCENDANTS); | 607 mojom::EventTargetingPolicy::TARGET_AND_DESCENDANTS); |
607 embed_window2->set_event_targeting_policy( | 608 embed_window2->set_event_targeting_policy( |
608 mojom::EventTargetingPolicy::TARGET_AND_DESCENDANTS); | 609 mojom::EventTargetingPolicy::TARGET_AND_DESCENDANTS); |
609 embed_window2->parent()->set_event_targeting_policy( | 610 embed_window2->parent()->set_event_targeting_policy( |
610 mojom::EventTargetingPolicy::TARGET_AND_DESCENDANTS); | 611 mojom::EventTargetingPolicy::TARGET_AND_DESCENDANTS); |
611 embed_window1->SetPredefinedCursor(mojom::CursorType::kIBeam); | 612 embed_window1->SetCursor(ui::CursorData(ui::CursorType::kIBeam)); |
612 embed_window2->SetPredefinedCursor(mojom::CursorType::kCross); | 613 embed_window2->SetCursor(ui::CursorData(ui::CursorType::kCross)); |
613 embed_window1->parent()->SetPredefinedCursor(mojom::CursorType::kCopy); | 614 embed_window1->parent()->SetCursor(ui::CursorData(ui::CursorType::kCopy)); |
614 | 615 |
615 // Create a child of |embed_window1|. | 616 // Create a child of |embed_window1|. |
616 ServerWindow* embed_window1_child = NewWindowInTreeWithParent( | 617 ServerWindow* embed_window1_child = NewWindowInTreeWithParent( |
617 window_server()->GetTreeWithRoot(embed_window1), embed_window1); | 618 window_server()->GetTreeWithRoot(embed_window1), embed_window1); |
618 ASSERT_TRUE(embed_window1_child); | 619 ASSERT_TRUE(embed_window1_child); |
619 embed_window1_child->SetBounds(gfx::Rect(0, 0, 10, 10)); | 620 embed_window1_child->SetBounds(gfx::Rect(0, 0, 10, 10)); |
620 embed_window1_child->SetVisible(true); | 621 embed_window1_child->SetVisible(true); |
621 | 622 |
622 // Move mouse into |embed_window1|. | 623 // Move mouse into |embed_window1|. |
623 DispatchEventAndAckImmediately(CreateMouseMoveEvent(5, 5)); | 624 DispatchEventAndAckImmediately(CreateMouseMoveEvent(5, 5)); |
624 EXPECT_EQ(mojom::CursorType::kIBeam, cursor_id()); | 625 EXPECT_EQ(ui::CursorType::kIBeam, cursor_type()); |
625 | 626 |
626 // Move mouse into |embed_window2|. | 627 // Move mouse into |embed_window2|. |
627 DispatchEventAndAckImmediately(CreateMouseMoveEvent(25, 25)); | 628 DispatchEventAndAckImmediately(CreateMouseMoveEvent(25, 25)); |
628 EXPECT_EQ(mojom::CursorType::kCross, cursor_id()); | 629 EXPECT_EQ(ui::CursorType::kCross, cursor_type()); |
629 | 630 |
630 // Move mouse into area between, which should use cursor set on parent. | 631 // Move mouse into area between, which should use cursor set on parent. |
631 DispatchEventAndAckImmediately(CreateMouseMoveEvent(15, 15)); | 632 DispatchEventAndAckImmediately(CreateMouseMoveEvent(15, 15)); |
632 EXPECT_EQ(mojom::CursorType::kCopy, cursor_id()); | 633 EXPECT_EQ(ui::CursorType::kCopy, cursor_type()); |
633 } | 634 } |
634 | 635 |
635 TEST_F(WindowTreeTest, EventAck) { | 636 TEST_F(WindowTreeTest, EventAck) { |
636 const ClientWindowId embed_window_id = BuildClientWindowId(wm_tree(), 1); | 637 const ClientWindowId embed_window_id = BuildClientWindowId(wm_tree(), 1); |
637 EXPECT_TRUE( | 638 EXPECT_TRUE( |
638 wm_tree()->NewWindow(embed_window_id, ServerWindow::Properties())); | 639 wm_tree()->NewWindow(embed_window_id, ServerWindow::Properties())); |
639 EXPECT_TRUE(wm_tree()->SetWindowVisibility(embed_window_id, true)); | 640 EXPECT_TRUE(wm_tree()->SetWindowVisibility(embed_window_id, true)); |
640 ASSERT_TRUE(FirstRoot(wm_tree())); | 641 ASSERT_TRUE(FirstRoot(wm_tree())); |
641 EXPECT_TRUE(wm_tree()->AddWindow(FirstRootId(wm_tree()), embed_window_id)); | 642 EXPECT_TRUE(wm_tree()->AddWindow(FirstRootId(wm_tree()), embed_window_id)); |
642 ASSERT_EQ(1u, display()->root_window()->children().size()); | 643 ASSERT_EQ(1u, display()->root_window()->children().size()); |
(...skipping 936 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1579 EXPECT_TRUE(window_manager_tree->DeleteWindow(display_root_id)); | 1580 EXPECT_TRUE(window_manager_tree->DeleteWindow(display_root_id)); |
1580 EXPECT_TRUE(window_manager_tree->roots().empty()); | 1581 EXPECT_TRUE(window_manager_tree->roots().empty()); |
1581 EXPECT_TRUE(WindowManagerStateTestApi(window_manager_state) | 1582 EXPECT_TRUE(WindowManagerStateTestApi(window_manager_state) |
1582 .window_manager_display_roots() | 1583 .window_manager_display_roots() |
1583 .empty()); | 1584 .empty()); |
1584 } | 1585 } |
1585 | 1586 |
1586 } // namespace test | 1587 } // namespace test |
1587 } // namespace ws | 1588 } // namespace ws |
1588 } // namespace ui | 1589 } // namespace ui |
OLD | NEW |