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 "base/bind.h" | 5 #include "base/bind.h" |
6 #include "base/message_loop/message_loop.h" | 6 #include "base/message_loop/message_loop.h" |
7 #include "base/run_loop.h" | 7 #include "base/run_loop.h" |
8 #include "components/view_manager/ids.h" | 8 #include "components/view_manager/ids.h" |
9 #include "components/view_manager/public/interfaces/view_manager.mojom.h" | 9 #include "components/view_manager/public/interfaces/view_manager.mojom.h" |
10 #include "components/view_manager/public/interfaces/view_manager_root.mojom.h" | 10 #include "components/view_manager/public/interfaces/view_manager_root.mojom.h" |
(...skipping 293 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
304 const OnWillEmbedCallback& callback) override { | 304 const OnWillEmbedCallback& callback) override { |
305 tracker()->OnWillEmbed(view); | 305 tracker()->OnWillEmbed(view); |
306 callback.Run(true, services.Pass(), exposed_services.Pass()); | 306 callback.Run(true, services.Pass(), exposed_services.Pass()); |
307 } | 307 } |
308 void OnEmbeddedAppDisconnected(Id view_id) override { | 308 void OnEmbeddedAppDisconnected(Id view_id) override { |
309 tracker()->OnEmbeddedAppDisconnected(view_id); | 309 tracker()->OnEmbeddedAppDisconnected(view_id); |
310 } | 310 } |
311 void OnViewBoundsChanged(Id view_id, | 311 void OnViewBoundsChanged(Id view_id, |
312 RectPtr old_bounds, | 312 RectPtr old_bounds, |
313 RectPtr new_bounds) override { | 313 RectPtr new_bounds) override { |
314 // The bounds of the root may change during startup on Android at random | |
msw
2015/06/10 18:42:05
Should this be in a #if defined(OS_ANDROID)?
msw
2015/06/10 19:49:23
ping
sky
2015/06/10 19:54:31
Sorry, I only responded to one. The same comment a
| |
315 // times. As this doesn't matter, and shouldn't impact test exepctations, | |
316 // it is ignored. | |
317 if (view_id == ViewIdToTransportId(RootViewId())) | |
318 return; | |
314 tracker()->OnViewBoundsChanged(view_id, old_bounds.Pass(), | 319 tracker()->OnViewBoundsChanged(view_id, old_bounds.Pass(), |
315 new_bounds.Pass()); | 320 new_bounds.Pass()); |
316 } | 321 } |
317 void OnViewViewportMetricsChanged(ViewportMetricsPtr old_metrics, | 322 void OnViewViewportMetricsChanged(ViewportMetricsPtr old_metrics, |
318 ViewportMetricsPtr new_metrics) override { | 323 ViewportMetricsPtr new_metrics) override { |
319 tracker()->OnViewViewportMetricsChanged(old_metrics.Pass(), | 324 // Don't track the metrics as they are available at an indeterministic time |
msw
2015/06/10 18:42:05
Should metrics tracking just be limited to !OS_AND
sky
2015/06/10 19:36:36
No, since it any case these test don't care. If we
| |
320 new_metrics.Pass()); | 325 // on Android. |
321 } | 326 } |
322 void OnViewHierarchyChanged(Id view, | 327 void OnViewHierarchyChanged(Id view, |
323 Id new_parent, | 328 Id new_parent, |
324 Id old_parent, | 329 Id old_parent, |
325 Array<ViewDataPtr> views) override { | 330 Array<ViewDataPtr> views) override { |
326 tracker()->OnViewHierarchyChanged(view, new_parent, old_parent, | 331 tracker()->OnViewHierarchyChanged(view, new_parent, old_parent, |
327 views.Pass()); | 332 views.Pass()); |
328 } | 333 } |
329 void OnViewReordered(Id view_id, | 334 void OnViewReordered(Id view_id, |
330 Id relative_view_id, | 335 Id relative_view_id, |
(...skipping 182 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
513 ASSERT_NO_FATAL_FAILURE(EstablishSecondConnection(true)); | 518 ASSERT_NO_FATAL_FAILURE(EstablishSecondConnection(true)); |
514 | 519 |
515 // It isn't strictly necessary that the second connection gets 2, but these | 520 // It isn't strictly necessary that the second connection gets 2, but these |
516 // tests are written assuming that is the case. The key thing is the | 521 // tests are written assuming that is the case. The key thing is the |
517 // connection ids of |connection_| and |connection2_| differ. | 522 // connection ids of |connection_| and |connection2_| differ. |
518 ASSERT_EQ(1u, changes2()->size()); | 523 ASSERT_EQ(1u, changes2()->size()); |
519 ASSERT_EQ(2, (*changes2())[0].connection_id); | 524 ASSERT_EQ(2, (*changes2())[0].connection_id); |
520 } | 525 } |
521 | 526 |
522 // Verifies when Embed() is invoked any child views are removed. | 527 // Verifies when Embed() is invoked any child views are removed. |
523 // TODO(msw|sky): Fails on Android; see http://crbug.com/497920 | 528 TEST_F(ViewManagerServiceAppTest, ViewsRemovedWhenEmbedding) { |
524 #if defined(OS_ANDROID) | |
525 #define MAYBE_ViewsRemovedWhenEmbedding DISABLED_ViewsRemovedWhenEmbedding | |
526 #else | |
527 #define MAYBE_ViewsRemovedWhenEmbedding ViewsRemovedWhenEmbedding | |
528 #endif | |
529 TEST_F(ViewManagerServiceAppTest, MAYBE_ViewsRemovedWhenEmbedding) { | |
530 // Two views 1 and 2. 2 is parented to 1. | 529 // Two views 1 and 2. 2 is parented to 1. |
531 ASSERT_TRUE(CreateView(vm1(), BuildViewId(1, 1))); | 530 ASSERT_TRUE(CreateView(vm1(), BuildViewId(1, 1))); |
532 ASSERT_TRUE(CreateView(vm1(), BuildViewId(1, 2))); | 531 ASSERT_TRUE(CreateView(vm1(), BuildViewId(1, 2))); |
533 ASSERT_TRUE(AddView(vm1(), BuildViewId(1, 1), BuildViewId(1, 2))); | 532 ASSERT_TRUE(AddView(vm1(), BuildViewId(1, 1), BuildViewId(1, 2))); |
534 | 533 |
535 ASSERT_NO_FATAL_FAILURE(EstablishSecondConnection(false)); | 534 ASSERT_NO_FATAL_FAILURE(EstablishSecondConnection(false)); |
536 EXPECT_EQ("[view=1,1 parent=null]", ChangeViewDescription(*changes2())); | 535 EXPECT_EQ("[view=1,1 parent=null]", ChangeViewDescription(*changes2())); |
537 | 536 |
538 // Embed() removed view 2. | 537 // Embed() removed view 2. |
539 { | 538 { |
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
576 // And view 4 should not be visible to connection 3. | 575 // And view 4 should not be visible to connection 3. |
577 { | 576 { |
578 std::vector<TestView> views; | 577 std::vector<TestView> views; |
579 GetViewTree(vm3(), BuildViewId(2, 3), &views); | 578 GetViewTree(vm3(), BuildViewId(2, 3), &views); |
580 EXPECT_EQ("view=2,3 parent=null", SingleViewDescription(views)); | 579 EXPECT_EQ("view=2,3 parent=null", SingleViewDescription(views)); |
581 } | 580 } |
582 } | 581 } |
583 | 582 |
584 // Verifies once Embed() has been invoked the parent connection can't see any | 583 // Verifies once Embed() has been invoked the parent connection can't see any |
585 // children. | 584 // children. |
586 // TODO(msw|sky): Fails on Android; see http://crbug.com/497920 | 585 TEST_F(ViewManagerServiceAppTest, CantAccessChildrenOfEmbeddedView) { |
587 #if defined(OS_ANDROID) | |
588 #define MAYBE_CantAccessChildrenOfEmbeddedView \ | |
589 DISABLED_CantAccessChildrenOfEmbeddedView | |
590 #else | |
591 #define MAYBE_CantAccessChildrenOfEmbeddedView CantAccessChildrenOfEmbeddedView | |
592 #endif | |
593 TEST_F(ViewManagerServiceAppTest, MAYBE_CantAccessChildrenOfEmbeddedView) { | |
594 ASSERT_NO_FATAL_FAILURE(EstablishSecondConnection(true)); | 586 ASSERT_NO_FATAL_FAILURE(EstablishSecondConnection(true)); |
595 | 587 |
596 ASSERT_TRUE(CreateView(vm2(), BuildViewId(2, 2))); | 588 ASSERT_TRUE(CreateView(vm2(), BuildViewId(2, 2))); |
597 ASSERT_TRUE(AddView(vm2(), BuildViewId(1, 1), BuildViewId(2, 2))); | 589 ASSERT_TRUE(AddView(vm2(), BuildViewId(1, 1), BuildViewId(2, 2))); |
598 | 590 |
599 ASSERT_NO_FATAL_FAILURE(EstablishThirdConnection(vm2(), BuildViewId(2, 2))); | 591 ASSERT_NO_FATAL_FAILURE(EstablishThirdConnection(vm2(), BuildViewId(2, 2))); |
600 | 592 |
601 ASSERT_TRUE(CreateView(vm3(), BuildViewId(3, 3))); | 593 ASSERT_TRUE(CreateView(vm3(), BuildViewId(3, 3))); |
602 ASSERT_TRUE(AddView(vm3(), BuildViewId(2, 2), BuildViewId(3, 3))); | 594 ASSERT_TRUE(AddView(vm3(), BuildViewId(2, 2), BuildViewId(3, 3))); |
603 | 595 |
(...skipping 17 matching lines...) Expand all Loading... | |
621 std::vector<TestView> views; | 613 std::vector<TestView> views; |
622 GetViewTree(vm1(), BuildViewId(1, 1), &views); | 614 GetViewTree(vm1(), BuildViewId(1, 1), &views); |
623 ASSERT_EQ(3u, views.size()); | 615 ASSERT_EQ(3u, views.size()); |
624 EXPECT_EQ("view=1,1 parent=null", views[0].ToString()); | 616 EXPECT_EQ("view=1,1 parent=null", views[0].ToString()); |
625 EXPECT_EQ("view=2,2 parent=1,1", views[1].ToString()); | 617 EXPECT_EQ("view=2,2 parent=1,1", views[1].ToString()); |
626 EXPECT_EQ("view=3,3 parent=2,2", views[2].ToString()); | 618 EXPECT_EQ("view=3,3 parent=2,2", views[2].ToString()); |
627 } | 619 } |
628 } | 620 } |
629 | 621 |
630 // Verifies once Embed() has been invoked the parent can't mutate the children. | 622 // Verifies once Embed() has been invoked the parent can't mutate the children. |
631 // TODO(msw|sky): Fails on Android; see http://crbug.com/497920 | 623 TEST_F(ViewManagerServiceAppTest, CantModifyChildrenOfEmbeddedView) { |
632 #if defined(OS_ANDROID) | |
633 #define MAYBE_CantModifyChildrenOfEmbeddedView \ | |
634 DISABLED_CantModifyChildrenOfEmbeddedView | |
635 #else | |
636 #define MAYBE_CantModifyChildrenOfEmbeddedView CantModifyChildrenOfEmbeddedView | |
637 #endif | |
638 TEST_F(ViewManagerServiceAppTest, MAYBE_CantModifyChildrenOfEmbeddedView) { | |
639 ASSERT_NO_FATAL_FAILURE(EstablishSecondConnection(true)); | 624 ASSERT_NO_FATAL_FAILURE(EstablishSecondConnection(true)); |
640 | 625 |
641 ASSERT_TRUE(CreateView(vm2(), BuildViewId(2, 2))); | 626 ASSERT_TRUE(CreateView(vm2(), BuildViewId(2, 2))); |
642 ASSERT_TRUE(AddView(vm2(), BuildViewId(1, 1), BuildViewId(2, 2))); | 627 ASSERT_TRUE(AddView(vm2(), BuildViewId(1, 1), BuildViewId(2, 2))); |
643 | 628 |
644 ASSERT_NO_FATAL_FAILURE(EstablishThirdConnection(vm2(), BuildViewId(2, 2))); | 629 ASSERT_NO_FATAL_FAILURE(EstablishThirdConnection(vm2(), BuildViewId(2, 2))); |
645 | 630 |
646 ASSERT_TRUE(CreateView(vm2(), BuildViewId(2, 3))); | 631 ASSERT_TRUE(CreateView(vm2(), BuildViewId(2, 3))); |
647 // Connection 2 shouldn't be able to add anything to the view anymore. | 632 // Connection 2 shouldn't be able to add anything to the view anymore. |
648 ASSERT_FALSE(AddView(vm2(), BuildViewId(2, 2), BuildViewId(2, 3))); | 633 ASSERT_FALSE(AddView(vm2(), BuildViewId(2, 2), BuildViewId(2, 3))); |
649 | 634 |
650 // Create view 3 in connection 3 and add it to view 3. | 635 // Create view 3 in connection 3 and add it to view 3. |
651 ASSERT_TRUE(CreateView(vm3(), BuildViewId(3, 3))); | 636 ASSERT_TRUE(CreateView(vm3(), BuildViewId(3, 3))); |
652 ASSERT_TRUE(AddView(vm3(), BuildViewId(2, 2), BuildViewId(3, 3))); | 637 ASSERT_TRUE(AddView(vm3(), BuildViewId(2, 2), BuildViewId(3, 3))); |
653 | 638 |
654 // Connection 2 shouldn't be able to remove view 3. | 639 // Connection 2 shouldn't be able to remove view 3. |
655 ASSERT_FALSE(RemoveViewFromParent(vm2(), BuildViewId(3, 3))); | 640 ASSERT_FALSE(RemoveViewFromParent(vm2(), BuildViewId(3, 3))); |
656 } | 641 } |
657 | 642 |
658 // Verifies client gets a valid id. | 643 // Verifies client gets a valid id. |
659 // TODO(msw|sky): Fails on Android; see http://crbug.com/497920 | 644 TEST_F(ViewManagerServiceAppTest, CreateView) { |
660 #if defined(OS_ANDROID) | |
661 #define MAYBE_CreateView DISABLED_CreateView | |
662 #else | |
663 #define MAYBE_CreateView CreateView | |
664 #endif | |
665 TEST_F(ViewManagerServiceAppTest, MAYBE_CreateView) { | |
666 ASSERT_TRUE(CreateView(vm1(), BuildViewId(1, 1))); | 645 ASSERT_TRUE(CreateView(vm1(), BuildViewId(1, 1))); |
667 EXPECT_TRUE(changes1()->empty()); | 646 EXPECT_TRUE(changes1()->empty()); |
668 | 647 |
669 // Can't create a view with the same id. | 648 // Can't create a view with the same id. |
670 ASSERT_EQ(mojo::ERROR_CODE_VALUE_IN_USE, | 649 ASSERT_EQ(mojo::ERROR_CODE_VALUE_IN_USE, |
671 CreateViewWithErrorCode(vm1(), BuildViewId(1, 1))); | 650 CreateViewWithErrorCode(vm1(), BuildViewId(1, 1))); |
672 EXPECT_TRUE(changes1()->empty()); | 651 EXPECT_TRUE(changes1()->empty()); |
673 | 652 |
674 // Can't create a view with a bogus connection id. | 653 // Can't create a view with a bogus connection id. |
675 EXPECT_EQ(mojo::ERROR_CODE_ILLEGAL_ARGUMENT, | 654 EXPECT_EQ(mojo::ERROR_CODE_ILLEGAL_ARGUMENT, |
676 CreateViewWithErrorCode(vm1(), BuildViewId(2, 1))); | 655 CreateViewWithErrorCode(vm1(), BuildViewId(2, 1))); |
677 EXPECT_TRUE(changes1()->empty()); | 656 EXPECT_TRUE(changes1()->empty()); |
678 } | 657 } |
679 | 658 |
680 // Verifies AddView fails when view is already in position. | 659 // Verifies AddView fails when view is already in position. |
681 TEST_F(ViewManagerServiceAppTest, AddViewWithNoChange) { | 660 TEST_F(ViewManagerServiceAppTest, AddViewWithNoChange) { |
682 ASSERT_TRUE(CreateView(vm1(), BuildViewId(1, 2))); | 661 ASSERT_TRUE(CreateView(vm1(), BuildViewId(1, 2))); |
683 ASSERT_TRUE(CreateView(vm1(), BuildViewId(1, 3))); | 662 ASSERT_TRUE(CreateView(vm1(), BuildViewId(1, 3))); |
684 | 663 |
685 ASSERT_NO_FATAL_FAILURE(EstablishSecondConnection(true)); | 664 ASSERT_NO_FATAL_FAILURE(EstablishSecondConnection(true)); |
686 | 665 |
687 // Make 3 a child of 2. | 666 // Make 3 a child of 2. |
688 ASSERT_TRUE(AddView(vm1(), BuildViewId(1, 2), BuildViewId(1, 3))); | 667 ASSERT_TRUE(AddView(vm1(), BuildViewId(1, 2), BuildViewId(1, 3))); |
689 | 668 |
690 // Try again, this should fail. | 669 // Try again, this should fail. |
691 EXPECT_FALSE(AddView(vm1(), BuildViewId(1, 2), BuildViewId(1, 3))); | 670 EXPECT_FALSE(AddView(vm1(), BuildViewId(1, 2), BuildViewId(1, 3))); |
692 } | 671 } |
693 | 672 |
694 // Verifies AddView fails when view is already in position. | 673 // Verifies AddView fails when view is already in position. |
695 // TODO(msw|sky): Fails on Android; see http://crbug.com/497920 | 674 TEST_F(ViewManagerServiceAppTest, AddAncestorFails) { |
696 #if defined(OS_ANDROID) | |
697 #define MAYBE_AddAncestorFails DISABLED_AddAncestorFails | |
698 #else | |
699 #define MAYBE_AddAncestorFails AddAncestorFails | |
700 #endif | |
701 TEST_F(ViewManagerServiceAppTest, MAYBE_AddAncestorFails) { | |
702 ASSERT_TRUE(CreateView(vm1(), BuildViewId(1, 2))); | 675 ASSERT_TRUE(CreateView(vm1(), BuildViewId(1, 2))); |
703 ASSERT_TRUE(CreateView(vm1(), BuildViewId(1, 3))); | 676 ASSERT_TRUE(CreateView(vm1(), BuildViewId(1, 3))); |
704 | 677 |
705 ASSERT_NO_FATAL_FAILURE(EstablishSecondConnection(true)); | 678 ASSERT_NO_FATAL_FAILURE(EstablishSecondConnection(true)); |
706 | 679 |
707 // Make 3 a child of 2. | 680 // Make 3 a child of 2. |
708 ASSERT_TRUE(AddView(vm1(), BuildViewId(1, 2), BuildViewId(1, 3))); | 681 ASSERT_TRUE(AddView(vm1(), BuildViewId(1, 2), BuildViewId(1, 3))); |
709 | 682 |
710 // Try to make 2 a child of 3, this should fail since 2 is an ancestor of 3. | 683 // Try to make 2 a child of 3, this should fail since 2 is an ancestor of 3. |
711 EXPECT_FALSE(AddView(vm1(), BuildViewId(1, 3), BuildViewId(1, 2))); | 684 EXPECT_FALSE(AddView(vm1(), BuildViewId(1, 3), BuildViewId(1, 2))); |
712 } | 685 } |
713 | 686 |
714 // Verifies adding to root sends right notifications. | 687 // Verifies adding to root sends right notifications. |
715 // TODO(msw|sky): Fails on Android; see http://crbug.com/497920 | 688 TEST_F(ViewManagerServiceAppTest, AddToRoot) { |
716 #if defined(OS_ANDROID) | |
717 #define MAYBE_AddToRoot DISABLED_AddToRoot | |
718 #else | |
719 #define MAYBE_AddToRoot AddToRoot | |
720 #endif | |
721 TEST_F(ViewManagerServiceAppTest, MAYBE_AddToRoot) { | |
722 ASSERT_TRUE(CreateView(vm1(), BuildViewId(1, 21))); | 689 ASSERT_TRUE(CreateView(vm1(), BuildViewId(1, 21))); |
723 ASSERT_TRUE(CreateView(vm1(), BuildViewId(1, 3))); | 690 ASSERT_TRUE(CreateView(vm1(), BuildViewId(1, 3))); |
724 | 691 |
725 ASSERT_NO_FATAL_FAILURE(EstablishSecondConnection(true)); | 692 ASSERT_NO_FATAL_FAILURE(EstablishSecondConnection(true)); |
726 changes2()->clear(); | 693 changes2()->clear(); |
727 | 694 |
728 // Make 3 a child of 21. | 695 // Make 3 a child of 21. |
729 ASSERT_TRUE(AddView(vm1(), BuildViewId(1, 21), BuildViewId(1, 3))); | 696 ASSERT_TRUE(AddView(vm1(), BuildViewId(1, 21), BuildViewId(1, 3))); |
730 | 697 |
731 // Make 21 a child of 1. | 698 // Make 21 a child of 1. |
732 ASSERT_TRUE(AddView(vm1(), BuildViewId(1, 1), BuildViewId(1, 21))); | 699 ASSERT_TRUE(AddView(vm1(), BuildViewId(1, 1), BuildViewId(1, 21))); |
733 | 700 |
734 // Connection 2 should not be told anything (because the view is from a | 701 // Connection 2 should not be told anything (because the view is from a |
735 // different connection). Create a view to ensure we got a response from | 702 // different connection). Create a view to ensure we got a response from |
736 // the server. | 703 // the server. |
737 ASSERT_TRUE(CreateView(vm2(), BuildViewId(2, 100))); | 704 ASSERT_TRUE(CreateView(vm2(), BuildViewId(2, 100))); |
738 EXPECT_TRUE(changes2()->empty()); | 705 EXPECT_TRUE(changes2()->empty()); |
739 } | 706 } |
740 | 707 |
741 // Verifies HierarchyChanged is correctly sent for various adds/removes. | 708 // Verifies HierarchyChanged is correctly sent for various adds/removes. |
742 // TODO(msw|sky): Fails on Android; see http://crbug.com/497920 | 709 TEST_F(ViewManagerServiceAppTest, ViewHierarchyChangedViews) { |
743 #if defined(OS_ANDROID) | |
744 #define MAYBE_ViewHierarchyChangedViews DISABLED_ViewHierarchyChangedViews | |
745 #else | |
746 #define MAYBE_ViewHierarchyChangedViews ViewHierarchyChangedViews | |
747 #endif | |
748 TEST_F(ViewManagerServiceAppTest, MAYBE_ViewHierarchyChangedViews) { | |
749 // 1,2->1,11. | 710 // 1,2->1,11. |
750 ASSERT_TRUE(CreateView(vm1(), BuildViewId(1, 2))); | 711 ASSERT_TRUE(CreateView(vm1(), BuildViewId(1, 2))); |
751 ASSERT_TRUE(SetViewVisibility(vm1(), BuildViewId(1, 2), true)); | 712 ASSERT_TRUE(SetViewVisibility(vm1(), BuildViewId(1, 2), true)); |
752 ASSERT_TRUE(CreateView(vm1(), BuildViewId(1, 11))); | 713 ASSERT_TRUE(CreateView(vm1(), BuildViewId(1, 11))); |
753 ASSERT_TRUE(SetViewVisibility(vm1(), BuildViewId(1, 11), true)); | 714 ASSERT_TRUE(SetViewVisibility(vm1(), BuildViewId(1, 11), true)); |
754 ASSERT_TRUE(AddView(vm1(), BuildViewId(1, 2), BuildViewId(1, 11))); | 715 ASSERT_TRUE(AddView(vm1(), BuildViewId(1, 2), BuildViewId(1, 11))); |
755 | 716 |
756 ASSERT_NO_FATAL_FAILURE(EstablishSecondConnection(true)); | 717 ASSERT_NO_FATAL_FAILURE(EstablishSecondConnection(true)); |
757 ASSERT_TRUE(SetViewVisibility(vm1(), BuildViewId(1, 1), true)); | 718 ASSERT_TRUE(SetViewVisibility(vm1(), BuildViewId(1, 1), true)); |
758 | 719 |
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
801 // 0,1->1,1->1,2->1,11->1,111 | 762 // 0,1->1,1->1,2->1,11->1,111 |
802 { | 763 { |
803 changes2()->clear(); | 764 changes2()->clear(); |
804 ASSERT_TRUE(AddView(vm1(), BuildViewId(0, 1), BuildViewId(1, 1))); | 765 ASSERT_TRUE(AddView(vm1(), BuildViewId(0, 1), BuildViewId(1, 1))); |
805 vm_client2_->WaitForChangeCount(1); | 766 vm_client2_->WaitForChangeCount(1); |
806 EXPECT_EQ("DrawnStateChanged view=1,1 drawn=true", | 767 EXPECT_EQ("DrawnStateChanged view=1,1 drawn=true", |
807 SingleChangeToDescription(*changes2())); | 768 SingleChangeToDescription(*changes2())); |
808 } | 769 } |
809 } | 770 } |
810 | 771 |
811 // TODO(msw|sky): Times out on Android; see http://crbug.com/497920 | |
812 #if defined(OS_ANDROID) | |
813 #define MAYBE_ViewHierarchyChangedAddingKnownToUnknown \ | |
814 DISABLED_ViewHierarchyChangedAddingKnownToUnknown | |
815 #else | |
816 #define MAYBE_ViewHierarchyChangedAddingKnownToUnknown \ | |
817 ViewHierarchyChangedAddingKnownToUnknown | |
818 #endif | |
819 TEST_F(ViewManagerServiceAppTest, | 772 TEST_F(ViewManagerServiceAppTest, |
820 MAYBE_ViewHierarchyChangedAddingKnownToUnknown) { | 773 ViewHierarchyChangedAddingKnownToUnknown) { |
msw
2015/06/10 18:42:05
nit: fits on line above
sky
2015/06/10 19:36:36
Done.
| |
821 // Create the following structure: root -> 1 -> 11 and 2->21 (2 has no | 774 // Create the following structure: root -> 1 -> 11 and 2->21 (2 has no |
822 // parent). | 775 // parent). |
823 ASSERT_NO_FATAL_FAILURE(EstablishSecondConnection(true)); | 776 ASSERT_NO_FATAL_FAILURE(EstablishSecondConnection(true)); |
824 | 777 |
825 ASSERT_TRUE(CreateView(vm2(), BuildViewId(2, 11))); | 778 ASSERT_TRUE(CreateView(vm2(), BuildViewId(2, 11))); |
826 ASSERT_TRUE(CreateView(vm2(), BuildViewId(2, 2))); | 779 ASSERT_TRUE(CreateView(vm2(), BuildViewId(2, 2))); |
827 ASSERT_TRUE(CreateView(vm2(), BuildViewId(2, 21))); | 780 ASSERT_TRUE(CreateView(vm2(), BuildViewId(2, 21))); |
828 | 781 |
829 // Set up the hierarchy. | 782 // Set up the hierarchy. |
830 ASSERT_TRUE(AddView(vm1(), BuildViewId(0, 1), BuildViewId(1, 1))); | 783 ASSERT_TRUE(AddView(vm1(), BuildViewId(0, 1), BuildViewId(1, 1))); |
(...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
911 | 864 |
912 // Non-existent view-ids | 865 // Non-existent view-ids |
913 EXPECT_FALSE(ReorderView(vm1(), BuildViewId(1, 27), BuildViewId(1, 28), | 866 EXPECT_FALSE(ReorderView(vm1(), BuildViewId(1, 27), BuildViewId(1, 28), |
914 ORDER_DIRECTION_ABOVE)); | 867 ORDER_DIRECTION_ABOVE)); |
915 | 868 |
916 // view7 & view8 are un-parented. | 869 // view7 & view8 are un-parented. |
917 EXPECT_FALSE(ReorderView(vm1(), view7_id, view8_id, ORDER_DIRECTION_ABOVE)); | 870 EXPECT_FALSE(ReorderView(vm1(), view7_id, view8_id, ORDER_DIRECTION_ABOVE)); |
918 } | 871 } |
919 | 872 |
920 // Verifies DeleteView works. | 873 // Verifies DeleteView works. |
921 // TODO(msw|sky): Times out on Android; see http://crbug.com/497920 | 874 TEST_F(ViewManagerServiceAppTest, DeleteView) { |
922 #if defined(OS_ANDROID) | |
923 #define MAYBE_DeleteView DISABLED_DeleteView | |
924 #else | |
925 #define MAYBE_DeleteView DeleteView | |
926 #endif | |
927 TEST_F(ViewManagerServiceAppTest, MAYBE_DeleteView) { | |
928 ASSERT_NO_FATAL_FAILURE(EstablishSecondConnection(true)); | 875 ASSERT_NO_FATAL_FAILURE(EstablishSecondConnection(true)); |
929 ASSERT_TRUE(CreateView(vm2(), BuildViewId(2, 2))); | 876 ASSERT_TRUE(CreateView(vm2(), BuildViewId(2, 2))); |
930 | 877 |
931 // Make 2 a child of 1. | 878 // Make 2 a child of 1. |
932 { | 879 { |
933 changes1()->clear(); | 880 changes1()->clear(); |
934 ASSERT_TRUE(AddView(vm2(), BuildViewId(1, 1), BuildViewId(2, 2))); | 881 ASSERT_TRUE(AddView(vm2(), BuildViewId(1, 1), BuildViewId(2, 2))); |
935 vm_client1_->WaitForChangeCount(1); | 882 vm_client1_->WaitForChangeCount(1); |
936 EXPECT_EQ("HierarchyChanged view=2,2 new_parent=1,1 old_parent=null", | 883 EXPECT_EQ("HierarchyChanged view=2,2 new_parent=1,1 old_parent=null", |
937 SingleChangeToDescription(*changes1())); | 884 SingleChangeToDescription(*changes1())); |
(...skipping 12 matching lines...) Expand all Loading... | |
950 } | 897 } |
951 | 898 |
952 // Verifies DeleteView isn't allowed from a separate connection. | 899 // Verifies DeleteView isn't allowed from a separate connection. |
953 TEST_F(ViewManagerServiceAppTest, DeleteViewFromAnotherConnectionDisallowed) { | 900 TEST_F(ViewManagerServiceAppTest, DeleteViewFromAnotherConnectionDisallowed) { |
954 ASSERT_NO_FATAL_FAILURE(EstablishSecondConnection(true)); | 901 ASSERT_NO_FATAL_FAILURE(EstablishSecondConnection(true)); |
955 EXPECT_FALSE(DeleteView(vm2(), BuildViewId(1, 1))); | 902 EXPECT_FALSE(DeleteView(vm2(), BuildViewId(1, 1))); |
956 } | 903 } |
957 | 904 |
958 // Verifies if a view was deleted and then reused that other clients are | 905 // Verifies if a view was deleted and then reused that other clients are |
959 // properly notified. | 906 // properly notified. |
960 // TODO(msw|sky): Times out on Android; see http://crbug.com/497920 | 907 TEST_F(ViewManagerServiceAppTest, ReuseDeletedViewId) { |
961 #if defined(OS_ANDROID) | |
962 #define MAYBE_ReuseDeletedViewId DISABLED_ReuseDeletedViewId | |
963 #else | |
964 #define MAYBE_ReuseDeletedViewId ReuseDeletedViewId | |
965 #endif | |
966 TEST_F(ViewManagerServiceAppTest, MAYBE_ReuseDeletedViewId) { | |
967 ASSERT_NO_FATAL_FAILURE(EstablishSecondConnection(true)); | 908 ASSERT_NO_FATAL_FAILURE(EstablishSecondConnection(true)); |
968 ASSERT_TRUE(CreateView(vm2(), BuildViewId(2, 2))); | 909 ASSERT_TRUE(CreateView(vm2(), BuildViewId(2, 2))); |
969 | 910 |
970 // Add 2 to 1. | 911 // Add 2 to 1. |
971 { | 912 { |
972 changes1()->clear(); | 913 changes1()->clear(); |
973 ASSERT_TRUE(AddView(vm2(), BuildViewId(1, 1), BuildViewId(2, 2))); | 914 ASSERT_TRUE(AddView(vm2(), BuildViewId(1, 1), BuildViewId(2, 2))); |
974 | 915 |
975 vm_client1_->WaitForChangeCount(1); | 916 vm_client1_->WaitForChangeCount(1); |
976 EXPECT_EQ("HierarchyChanged view=2,2 new_parent=1,1 old_parent=null", | 917 EXPECT_EQ("HierarchyChanged view=2,2 new_parent=1,1 old_parent=null", |
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1039 } | 980 } |
1040 | 981 |
1041 // Connection 2 shouldn't be able to get the root tree. | 982 // Connection 2 shouldn't be able to get the root tree. |
1042 { | 983 { |
1043 std::vector<TestView> views; | 984 std::vector<TestView> views; |
1044 GetViewTree(vm2(), BuildViewId(0, 1), &views); | 985 GetViewTree(vm2(), BuildViewId(0, 1), &views); |
1045 ASSERT_EQ(0u, views.size()); | 986 ASSERT_EQ(0u, views.size()); |
1046 } | 987 } |
1047 } | 988 } |
1048 | 989 |
1049 // TODO(msw|sky): Fails on Android; see http://crbug.com/497920 | 990 TEST_F(ViewManagerServiceAppTest, SetViewBounds) { |
1050 #if defined(OS_ANDROID) | |
1051 #define MAYBE_SetViewBounds DISABLED_SetViewBounds | |
1052 #else | |
1053 #define MAYBE_SetViewBounds SetViewBounds | |
1054 #endif | |
1055 TEST_F(ViewManagerServiceAppTest, MAYBE_SetViewBounds) { | |
1056 ASSERT_TRUE(CreateView(vm1(), BuildViewId(1, 1))); | 991 ASSERT_TRUE(CreateView(vm1(), BuildViewId(1, 1))); |
1057 ASSERT_TRUE(AddView(vm1(), BuildViewId(0, 1), BuildViewId(1, 1))); | 992 ASSERT_TRUE(AddView(vm1(), BuildViewId(0, 1), BuildViewId(1, 1))); |
1058 | 993 |
1059 ASSERT_NO_FATAL_FAILURE(EstablishSecondConnection(false)); | 994 ASSERT_NO_FATAL_FAILURE(EstablishSecondConnection(false)); |
1060 | 995 |
1061 changes2()->clear(); | 996 changes2()->clear(); |
1062 ASSERT_TRUE(SetViewBounds(vm1(), BuildViewId(1, 1), 0, 0, 100, 100)); | 997 ASSERT_TRUE(SetViewBounds(vm1(), BuildViewId(1, 1), 0, 0, 100, 100)); |
1063 | 998 |
1064 vm_client2_->WaitForChangeCount(1); | 999 vm_client2_->WaitForChangeCount(1); |
1065 EXPECT_EQ("BoundsChanged view=1,1 old_bounds=0,0 0x0 new_bounds=0,0 100x100", | 1000 EXPECT_EQ("BoundsChanged view=1,1 old_bounds=0,0 0x0 new_bounds=0,0 100x100", |
(...skipping 98 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1164 } | 1099 } |
1165 | 1100 |
1166 // Connection2 has no root. Verify it can't see view 1,1 anymore. | 1101 // Connection2 has no root. Verify it can't see view 1,1 anymore. |
1167 { | 1102 { |
1168 std::vector<TestView> views; | 1103 std::vector<TestView> views; |
1169 GetViewTree(vm2(), BuildViewId(1, 1), &views); | 1104 GetViewTree(vm2(), BuildViewId(1, 1), &views); |
1170 EXPECT_TRUE(views.empty()); | 1105 EXPECT_TRUE(views.empty()); |
1171 } | 1106 } |
1172 } | 1107 } |
1173 | 1108 |
1174 // TODO(msw|sky): Times out on Android; see http://crbug.com/497920 | 1109 TEST_F(ViewManagerServiceAppTest, EmbedWithSameViewId2) { |
1175 #if defined(OS_ANDROID) | |
1176 #define MAYBE_EmbedWithSameViewId2 DISABLED_EmbedWithSameViewId2 | |
1177 #else | |
1178 #define MAYBE_EmbedWithSameViewId2 EmbedWithSameViewId2 | |
1179 #endif | |
1180 TEST_F(ViewManagerServiceAppTest, MAYBE_EmbedWithSameViewId2) { | |
1181 ASSERT_NO_FATAL_FAILURE(EstablishSecondConnection(true)); | 1110 ASSERT_NO_FATAL_FAILURE(EstablishSecondConnection(true)); |
1182 changes2()->clear(); | 1111 changes2()->clear(); |
1183 | 1112 |
1184 ASSERT_NO_FATAL_FAILURE(EstablishThirdConnection(vm1(), BuildViewId(1, 1))); | 1113 ASSERT_NO_FATAL_FAILURE(EstablishThirdConnection(vm1(), BuildViewId(1, 1))); |
1185 | 1114 |
1186 // Connection2 should have been told the view was deleted. | 1115 // Connection2 should have been told the view was deleted. |
1187 vm_client2_->WaitForChangeCount(1); | 1116 vm_client2_->WaitForChangeCount(1); |
1188 changes2()->clear(); | 1117 changes2()->clear(); |
1189 | 1118 |
1190 // Create a view in the third connection and parent it to the root. | 1119 // Create a view in the third connection and parent it to the root. |
(...skipping 107 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1298 GetViewTree(vm1(), BuildViewId(1, 1), &views); | 1227 GetViewTree(vm1(), BuildViewId(1, 1), &views); |
1299 ASSERT_EQ(2u, views.size()); | 1228 ASSERT_EQ(2u, views.size()); |
1300 EXPECT_EQ("view=1,1 parent=0,1 visible=true drawn=true", | 1229 EXPECT_EQ("view=1,1 parent=0,1 visible=true drawn=true", |
1301 views[0].ToString2()); | 1230 views[0].ToString2()); |
1302 EXPECT_EQ("view=1,2 parent=1,1 visible=true drawn=true", | 1231 EXPECT_EQ("view=1,2 parent=1,1 visible=true drawn=true", |
1303 views[1].ToString2()); | 1232 views[1].ToString2()); |
1304 } | 1233 } |
1305 } | 1234 } |
1306 | 1235 |
1307 // Assertions for SetViewVisibility sending notifications. | 1236 // Assertions for SetViewVisibility sending notifications. |
1308 // TODO(msw|sky): Fails on Android; see http://crbug.com/497920 | 1237 TEST_F(ViewManagerServiceAppTest, SetViewVisibilityNotifications) { |
1309 #if defined(OS_ANDROID) | |
1310 #define MAYBE_SetViewVisibilityNotifications \ | |
1311 DISABLED_SetViewVisibilityNotifications | |
1312 #else | |
1313 #define MAYBE_SetViewVisibilityNotifications SetViewVisibilityNotifications | |
1314 #endif | |
1315 TEST_F(ViewManagerServiceAppTest, MAYBE_SetViewVisibilityNotifications) { | |
1316 // Create 1,1 and 1,2. 1,2 is made a child of 1,1 and 1,1 a child of the root. | 1238 // Create 1,1 and 1,2. 1,2 is made a child of 1,1 and 1,1 a child of the root. |
1317 ASSERT_TRUE(CreateView(vm1(), BuildViewId(1, 1))); | 1239 ASSERT_TRUE(CreateView(vm1(), BuildViewId(1, 1))); |
1318 ASSERT_TRUE(SetViewVisibility(vm1(), BuildViewId(1, 1), true)); | 1240 ASSERT_TRUE(SetViewVisibility(vm1(), BuildViewId(1, 1), true)); |
1319 ASSERT_TRUE(CreateView(vm1(), BuildViewId(1, 2))); | 1241 ASSERT_TRUE(CreateView(vm1(), BuildViewId(1, 2))); |
1320 ASSERT_TRUE(SetViewVisibility(vm1(), BuildViewId(1, 2), true)); | 1242 ASSERT_TRUE(SetViewVisibility(vm1(), BuildViewId(1, 2), true)); |
1321 ASSERT_TRUE(AddView(vm1(), BuildViewId(0, 1), BuildViewId(1, 1))); | 1243 ASSERT_TRUE(AddView(vm1(), BuildViewId(0, 1), BuildViewId(1, 1))); |
1322 ASSERT_TRUE(AddView(vm1(), BuildViewId(1, 1), BuildViewId(1, 2))); | 1244 ASSERT_TRUE(AddView(vm1(), BuildViewId(1, 1), BuildViewId(1, 2))); |
1323 | 1245 |
1324 // Establish the second connection at 1,2. | 1246 // Establish the second connection at 1,2. |
1325 ASSERT_NO_FATAL_FAILURE(EstablishSecondConnectionWithRoot(BuildViewId(1, 2))); | 1247 ASSERT_NO_FATAL_FAILURE(EstablishSecondConnectionWithRoot(BuildViewId(1, 2))); |
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1387 changes2()->clear(); | 1309 changes2()->clear(); |
1388 // Add 1,1 back to the root, connection 2 should see drawn state changed. | 1310 // Add 1,1 back to the root, connection 2 should see drawn state changed. |
1389 ASSERT_TRUE(AddView(vm1(), BuildViewId(0, 1), BuildViewId(1, 1))); | 1311 ASSERT_TRUE(AddView(vm1(), BuildViewId(0, 1), BuildViewId(1, 1))); |
1390 { | 1312 { |
1391 vm_client2_->WaitForChangeCount(1); | 1313 vm_client2_->WaitForChangeCount(1); |
1392 EXPECT_EQ("DrawnStateChanged view=1,2 drawn=true", | 1314 EXPECT_EQ("DrawnStateChanged view=1,2 drawn=true", |
1393 SingleChangeToDescription(*changes2())); | 1315 SingleChangeToDescription(*changes2())); |
1394 } | 1316 } |
1395 } | 1317 } |
1396 | 1318 |
1397 // TODO(msw|sky): Fails on Android; see http://crbug.com/497920 | 1319 TEST_F(ViewManagerServiceAppTest, SetViewProperty) { |
1398 #if defined(OS_ANDROID) | |
1399 #define MAYBE_SetViewProperty DISABLED_SetViewProperty | |
1400 #else | |
1401 #define MAYBE_SetViewProperty SetViewProperty | |
1402 #endif | |
1403 TEST_F(ViewManagerServiceAppTest, MAYBE_SetViewProperty) { | |
1404 ASSERT_TRUE(CreateView(vm1(), BuildViewId(1, 1))); | 1320 ASSERT_TRUE(CreateView(vm1(), BuildViewId(1, 1))); |
1405 | 1321 |
1406 ASSERT_NO_FATAL_FAILURE(EstablishSecondConnection(false)); | 1322 ASSERT_NO_FATAL_FAILURE(EstablishSecondConnection(false)); |
1407 changes2()->clear(); | 1323 changes2()->clear(); |
1408 | 1324 |
1409 ASSERT_TRUE(AddView(vm1(), BuildViewId(0, 1), BuildViewId(1, 1))); | 1325 ASSERT_TRUE(AddView(vm1(), BuildViewId(0, 1), BuildViewId(1, 1))); |
1410 { | 1326 { |
1411 std::vector<TestView> views; | 1327 std::vector<TestView> views; |
1412 GetViewTree(vm1(), BuildViewId(0, 1), &views); | 1328 GetViewTree(vm1(), BuildViewId(0, 1), &views); |
1413 ASSERT_EQ(2u, views.size()); | 1329 ASSERT_EQ(2u, views.size()); |
(...skipping 24 matching lines...) Expand all Loading... | |
1438 changes2()->clear(); | 1354 changes2()->clear(); |
1439 // Set back to null. | 1355 // Set back to null. |
1440 ASSERT_TRUE(SetViewProperty(vm1(), BuildViewId(1, 1), "one", NULL)); | 1356 ASSERT_TRUE(SetViewProperty(vm1(), BuildViewId(1, 1), "one", NULL)); |
1441 { | 1357 { |
1442 vm_client2_->WaitForChangeCount(1); | 1358 vm_client2_->WaitForChangeCount(1); |
1443 EXPECT_EQ("PropertyChanged view=1,1 key=one value=NULL", | 1359 EXPECT_EQ("PropertyChanged view=1,1 key=one value=NULL", |
1444 SingleChangeToDescription(*changes2())); | 1360 SingleChangeToDescription(*changes2())); |
1445 } | 1361 } |
1446 } | 1362 } |
1447 | 1363 |
1448 // TODO(msw|sky): Fails on Android; see http://crbug.com/497920 | 1364 TEST_F(ViewManagerServiceAppTest, OnEmbeddedAppDisconnected) { |
1449 #if defined(OS_ANDROID) | |
1450 #define MAYBE_OnEmbeddedAppDisconnected DISABLED_OnEmbeddedAppDisconnected | |
1451 #else | |
1452 #define MAYBE_OnEmbeddedAppDisconnected OnEmbeddedAppDisconnected | |
1453 #endif | |
1454 TEST_F(ViewManagerServiceAppTest, MAYBE_OnEmbeddedAppDisconnected) { | |
1455 // Create connection 2 and 3. | 1365 // Create connection 2 and 3. |
1456 ASSERT_NO_FATAL_FAILURE(EstablishSecondConnection(true)); | 1366 ASSERT_NO_FATAL_FAILURE(EstablishSecondConnection(true)); |
1457 ASSERT_TRUE(CreateView(vm2(), BuildViewId(2, 2))); | 1367 ASSERT_TRUE(CreateView(vm2(), BuildViewId(2, 2))); |
1458 ASSERT_TRUE(AddView(vm2(), BuildViewId(1, 1), BuildViewId(2, 2))); | 1368 ASSERT_TRUE(AddView(vm2(), BuildViewId(1, 1), BuildViewId(2, 2))); |
1459 changes2()->clear(); | 1369 changes2()->clear(); |
1460 ASSERT_NO_FATAL_FAILURE(EstablishThirdConnection(vm2(), BuildViewId(2, 2))); | 1370 ASSERT_NO_FATAL_FAILURE(EstablishThirdConnection(vm2(), BuildViewId(2, 2))); |
1461 | 1371 |
1462 // Close connection 3. Connection 2 (which had previously embedded 3) should | 1372 // Close connection 3. Connection 2 (which had previously embedded 3) should |
1463 // be notified of this. | 1373 // be notified of this. |
1464 vm_client3_.reset(); | 1374 vm_client3_.reset(); |
1465 vm_client2_->WaitForChangeCount(1); | 1375 vm_client2_->WaitForChangeCount(1); |
1466 EXPECT_EQ("OnEmbeddedAppDisconnected view=2,2", | 1376 EXPECT_EQ("OnEmbeddedAppDisconnected view=2,2", |
1467 SingleChangeToDescription(*changes2())); | 1377 SingleChangeToDescription(*changes2())); |
1468 } | 1378 } |
1469 | 1379 |
1470 // Verifies when the parent of an Embed() is destroyed the embedded app gets | 1380 // Verifies when the parent of an Embed() is destroyed the embedded app gets |
1471 // a ViewDeleted (and doesn't trigger a DCHECK). | 1381 // a ViewDeleted (and doesn't trigger a DCHECK). |
1472 // TODO(msw|sky): Fails on Android; see http://crbug.com/497920 | 1382 TEST_F(ViewManagerServiceAppTest, OnParentOfEmbedDisconnects) { |
1473 #if defined(OS_ANDROID) | |
1474 #define MAYBE_OnParentOfEmbedDisconnects DISABLED_OnParentOfEmbedDisconnects | |
1475 #else | |
1476 #define MAYBE_OnParentOfEmbedDisconnects OnParentOfEmbedDisconnects | |
1477 #endif | |
1478 TEST_F(ViewManagerServiceAppTest, MAYBE_OnParentOfEmbedDisconnects) { | |
1479 // Create connection 2 and 3. | 1383 // Create connection 2 and 3. |
1480 ASSERT_NO_FATAL_FAILURE(EstablishSecondConnection(true)); | 1384 ASSERT_NO_FATAL_FAILURE(EstablishSecondConnection(true)); |
1481 ASSERT_TRUE(AddView(vm1(), BuildViewId(0, 1), BuildViewId(1, 1))); | 1385 ASSERT_TRUE(AddView(vm1(), BuildViewId(0, 1), BuildViewId(1, 1))); |
1482 ASSERT_TRUE(CreateView(vm2(), BuildViewId(2, 2))); | 1386 ASSERT_TRUE(CreateView(vm2(), BuildViewId(2, 2))); |
1483 ASSERT_TRUE(AddView(vm2(), BuildViewId(1, 1), BuildViewId(2, 2))); | 1387 ASSERT_TRUE(AddView(vm2(), BuildViewId(1, 1), BuildViewId(2, 2))); |
1484 ASSERT_TRUE(CreateView(vm2(), BuildViewId(2, 3))); | 1388 ASSERT_TRUE(CreateView(vm2(), BuildViewId(2, 3))); |
1485 ASSERT_TRUE(AddView(vm2(), BuildViewId(2, 2), BuildViewId(2, 3))); | 1389 ASSERT_TRUE(AddView(vm2(), BuildViewId(2, 2), BuildViewId(2, 3))); |
1486 changes2()->clear(); | 1390 changes2()->clear(); |
1487 ASSERT_NO_FATAL_FAILURE(EstablishThirdConnection(vm2(), BuildViewId(2, 3))); | 1391 ASSERT_NO_FATAL_FAILURE(EstablishThirdConnection(vm2(), BuildViewId(2, 3))); |
1488 changes3()->clear(); | 1392 changes3()->clear(); |
1489 | 1393 |
1490 // Close connection 2. Connection 3 should get a delete (for its root). | 1394 // Close connection 2. Connection 3 should get a delete (for its root). |
1491 vm_client2_.reset(); | 1395 vm_client2_.reset(); |
1492 vm_client3_->WaitForChangeCount(1); | 1396 vm_client3_->WaitForChangeCount(1); |
1493 EXPECT_EQ("ViewDeleted view=2,3", SingleChangeToDescription(*changes3())); | 1397 EXPECT_EQ("ViewDeleted view=2,3", SingleChangeToDescription(*changes3())); |
1494 } | 1398 } |
1495 | 1399 |
1496 // Verifies ViewManagerServiceImpl doesn't incorrectly erase from its internal | 1400 // Verifies ViewManagerServiceImpl doesn't incorrectly erase from its internal |
1497 // map when a view from another connection with the same view_id is removed. | 1401 // map when a view from another connection with the same view_id is removed. |
1498 // TODO(msw|sky): Fails on Android; see http://crbug.com/497920 | 1402 TEST_F(ViewManagerServiceAppTest, DontCleanMapOnDestroy) { |
1499 #if defined(OS_ANDROID) | |
1500 #define MAYBE_DontCleanMapOnDestroy DISABLED_DontCleanMapOnDestroy | |
1501 #else | |
1502 #define MAYBE_DontCleanMapOnDestroy DontCleanMapOnDestroy | |
1503 #endif | |
1504 TEST_F(ViewManagerServiceAppTest, MAYBE_DontCleanMapOnDestroy) { | |
1505 ASSERT_NO_FATAL_FAILURE(EstablishSecondConnection(true)); | 1403 ASSERT_NO_FATAL_FAILURE(EstablishSecondConnection(true)); |
1506 ASSERT_TRUE(CreateView(vm2(), BuildViewId(2, 1))); | 1404 ASSERT_TRUE(CreateView(vm2(), BuildViewId(2, 1))); |
1507 changes1()->clear(); | 1405 changes1()->clear(); |
1508 vm_client2_.reset(); | 1406 vm_client2_.reset(); |
1509 vm_client1_->WaitForChangeCount(1); | 1407 vm_client1_->WaitForChangeCount(1); |
1510 EXPECT_EQ("OnEmbeddedAppDisconnected view=1,1", | 1408 EXPECT_EQ("OnEmbeddedAppDisconnected view=1,1", |
1511 SingleChangeToDescription(*changes1())); | 1409 SingleChangeToDescription(*changes1())); |
1512 std::vector<TestView> views; | 1410 std::vector<TestView> views; |
1513 GetViewTree(vm1(), BuildViewId(1, 1), &views); | 1411 GetViewTree(vm1(), BuildViewId(1, 1), &views); |
1514 EXPECT_FALSE(views.empty()); | 1412 EXPECT_FALSE(views.empty()); |
1515 } | 1413 } |
1516 | 1414 |
1517 // TODO(msw|sky): Fails on Android; see http://crbug.com/497920 | 1415 TEST_F(ViewManagerServiceAppTest, CloneAndAnimate) { |
1518 #if defined(OS_ANDROID) | |
1519 #define MAYBE_CloneAndAnimate DISABLED_CloneAndAnimate | |
1520 #else | |
1521 #define MAYBE_CloneAndAnimate CloneAndAnimate | |
1522 #endif | |
1523 TEST_F(ViewManagerServiceAppTest, MAYBE_CloneAndAnimate) { | |
1524 // Create connection 2 and 3. | 1416 // Create connection 2 and 3. |
1525 ASSERT_NO_FATAL_FAILURE(EstablishSecondConnection(true)); | 1417 ASSERT_NO_FATAL_FAILURE(EstablishSecondConnection(true)); |
1526 ASSERT_TRUE(AddView(vm1(), BuildViewId(0, 1), BuildViewId(1, 1))); | 1418 ASSERT_TRUE(AddView(vm1(), BuildViewId(0, 1), BuildViewId(1, 1))); |
1527 ASSERT_TRUE(CreateView(vm2(), BuildViewId(2, 2))); | 1419 ASSERT_TRUE(CreateView(vm2(), BuildViewId(2, 2))); |
1528 ASSERT_TRUE(CreateView(vm2(), BuildViewId(2, 3))); | 1420 ASSERT_TRUE(CreateView(vm2(), BuildViewId(2, 3))); |
1529 ASSERT_TRUE(AddView(vm2(), BuildViewId(1, 1), BuildViewId(2, 2))); | 1421 ASSERT_TRUE(AddView(vm2(), BuildViewId(1, 1), BuildViewId(2, 2))); |
1530 ASSERT_TRUE(AddView(vm2(), BuildViewId(2, 2), BuildViewId(2, 3))); | 1422 ASSERT_TRUE(AddView(vm2(), BuildViewId(2, 2), BuildViewId(2, 3))); |
1531 changes2()->clear(); | 1423 changes2()->clear(); |
1532 | 1424 |
1533 ASSERT_TRUE(WaitForAllMessages(vm1())); | 1425 ASSERT_TRUE(WaitForAllMessages(vm1())); |
(...skipping 25 matching lines...) Expand all Loading... | |
1559 | 1451 |
1560 ViewManagerClientImpl client2; | 1452 ViewManagerClientImpl client2; |
1561 mojo::ViewManagerClientPtr client2_ptr; | 1453 mojo::ViewManagerClientPtr client2_ptr; |
1562 mojo::Binding<ViewManagerClient> client2_binding(&client2, &client2_ptr); | 1454 mojo::Binding<ViewManagerClient> client2_binding(&client2, &client2_ptr); |
1563 ASSERT_TRUE(Embed(vm1(), BuildViewId(1, 1), client2_ptr.Pass())); | 1455 ASSERT_TRUE(Embed(vm1(), BuildViewId(1, 1), client2_ptr.Pass())); |
1564 client2.WaitForOnEmbed(); | 1456 client2.WaitForOnEmbed(); |
1565 EXPECT_EQ("OnEmbed creator=" + application_impl()->url(), | 1457 EXPECT_EQ("OnEmbed creator=" + application_impl()->url(), |
1566 SingleChangeToDescription(*client2.tracker()->changes())); | 1458 SingleChangeToDescription(*client2.tracker()->changes())); |
1567 } | 1459 } |
1568 | 1460 |
1569 // TODO(msw|sky): Fails on Android; see http://crbug.com/497920 | 1461 TEST_F(ViewManagerServiceAppTest, OnWillEmbed) { |
1570 #if defined(OS_ANDROID) | |
1571 #define MAYBE_OnWillEmbed DISABLED_OnWillEmbed | |
1572 #else | |
1573 #define MAYBE_OnWillEmbed OnWillEmbed | |
1574 #endif | |
1575 TEST_F(ViewManagerServiceAppTest, MAYBE_OnWillEmbed) { | |
1576 // Create connections 2 and 3, marking 2 as an embed root. | 1462 // Create connections 2 and 3, marking 2 as an embed root. |
1577 ASSERT_NO_FATAL_FAILURE(EstablishSecondConnection(true)); | 1463 ASSERT_NO_FATAL_FAILURE(EstablishSecondConnection(true)); |
1578 ASSERT_TRUE(AddView(vm1(), BuildViewId(0, 1), BuildViewId(1, 1))); | 1464 ASSERT_TRUE(AddView(vm1(), BuildViewId(0, 1), BuildViewId(1, 1))); |
1579 ASSERT_TRUE(CreateView(vm2(), BuildViewId(2, 2))); | 1465 ASSERT_TRUE(CreateView(vm2(), BuildViewId(2, 2))); |
1580 ASSERT_TRUE(AddView(vm2(), BuildViewId(1, 1), BuildViewId(2, 2))); | 1466 ASSERT_TRUE(AddView(vm2(), BuildViewId(1, 1), BuildViewId(2, 2))); |
1581 ASSERT_NO_FATAL_FAILURE(EstablishThirdConnection(vm2(), BuildViewId(2, 2))); | 1467 ASSERT_NO_FATAL_FAILURE(EstablishThirdConnection(vm2(), BuildViewId(2, 2))); |
1582 ASSERT_TRUE(CreateView(vm3(), BuildViewId(3, 3))); | 1468 ASSERT_TRUE(CreateView(vm3(), BuildViewId(3, 3))); |
1583 ASSERT_TRUE(AddView(vm3(), BuildViewId(2, 2), BuildViewId(3, 3))); | 1469 ASSERT_TRUE(AddView(vm3(), BuildViewId(2, 2), BuildViewId(3, 3))); |
1584 vm2()->SetEmbedRoot(); | 1470 vm2()->SetEmbedRoot(); |
1585 // Make sure the viewmanager processed the SetEmbedRoot() call. | 1471 // Make sure the viewmanager processed the SetEmbedRoot() call. |
(...skipping 27 matching lines...) Expand all Loading... | |
1613 // TODO(sky): need to better track changes to initial connection. For example, | 1499 // TODO(sky): need to better track changes to initial connection. For example, |
1614 // that SetBounsdViews/AddView and the like don't result in messages to the | 1500 // that SetBounsdViews/AddView and the like don't result in messages to the |
1615 // originating connection. | 1501 // originating connection. |
1616 | 1502 |
1617 // TODO(sky): make sure coverage of what was | 1503 // TODO(sky): make sure coverage of what was |
1618 // ViewManagerTest.SecondEmbedRoot_InitService and | 1504 // ViewManagerTest.SecondEmbedRoot_InitService and |
1619 // ViewManagerTest.MultipleEmbedRootsBeforeWTHReady gets added to window manager | 1505 // ViewManagerTest.MultipleEmbedRootsBeforeWTHReady gets added to window manager |
1620 // tests. | 1506 // tests. |
1621 | 1507 |
1622 } // namespace view_manager | 1508 } // namespace view_manager |
OLD | NEW |