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

Side by Side Diff: components/view_manager/view_manager_service_apptest.cc

Issue 1174993002: Fixes viewmanager tests on android (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: wrap Created 5 years, 6 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 unified diff | Download patch
« no previous file with comments | « no previous file | mojo/tools/apptest_runner.py » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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
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
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
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
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
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
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
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 772 TEST_F(ViewManagerServiceAppTest, ViewHierarchyChangedAddingKnownToUnknown) {
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,
820 MAYBE_ViewHierarchyChangedAddingKnownToUnknown) {
821 // Create the following structure: root -> 1 -> 11 and 2->21 (2 has no 773 // Create the following structure: root -> 1 -> 11 and 2->21 (2 has no
822 // parent). 774 // parent).
823 ASSERT_NO_FATAL_FAILURE(EstablishSecondConnection(true)); 775 ASSERT_NO_FATAL_FAILURE(EstablishSecondConnection(true));
824 776
825 ASSERT_TRUE(CreateView(vm2(), BuildViewId(2, 11))); 777 ASSERT_TRUE(CreateView(vm2(), BuildViewId(2, 11)));
826 ASSERT_TRUE(CreateView(vm2(), BuildViewId(2, 2))); 778 ASSERT_TRUE(CreateView(vm2(), BuildViewId(2, 2)));
827 ASSERT_TRUE(CreateView(vm2(), BuildViewId(2, 21))); 779 ASSERT_TRUE(CreateView(vm2(), BuildViewId(2, 21)));
828 780
829 // Set up the hierarchy. 781 // Set up the hierarchy.
830 ASSERT_TRUE(AddView(vm1(), BuildViewId(0, 1), BuildViewId(1, 1))); 782 ASSERT_TRUE(AddView(vm1(), BuildViewId(0, 1), BuildViewId(1, 1)));
(...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after
911 863
912 // Non-existent view-ids 864 // Non-existent view-ids
913 EXPECT_FALSE(ReorderView(vm1(), BuildViewId(1, 27), BuildViewId(1, 28), 865 EXPECT_FALSE(ReorderView(vm1(), BuildViewId(1, 27), BuildViewId(1, 28),
914 ORDER_DIRECTION_ABOVE)); 866 ORDER_DIRECTION_ABOVE));
915 867
916 // view7 & view8 are un-parented. 868 // view7 & view8 are un-parented.
917 EXPECT_FALSE(ReorderView(vm1(), view7_id, view8_id, ORDER_DIRECTION_ABOVE)); 869 EXPECT_FALSE(ReorderView(vm1(), view7_id, view8_id, ORDER_DIRECTION_ABOVE));
918 } 870 }
919 871
920 // Verifies DeleteView works. 872 // Verifies DeleteView works.
921 // TODO(msw|sky): Times out on Android; see http://crbug.com/497920 873 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)); 874 ASSERT_NO_FATAL_FAILURE(EstablishSecondConnection(true));
929 ASSERT_TRUE(CreateView(vm2(), BuildViewId(2, 2))); 875 ASSERT_TRUE(CreateView(vm2(), BuildViewId(2, 2)));
930 876
931 // Make 2 a child of 1. 877 // Make 2 a child of 1.
932 { 878 {
933 changes1()->clear(); 879 changes1()->clear();
934 ASSERT_TRUE(AddView(vm2(), BuildViewId(1, 1), BuildViewId(2, 2))); 880 ASSERT_TRUE(AddView(vm2(), BuildViewId(1, 1), BuildViewId(2, 2)));
935 vm_client1_->WaitForChangeCount(1); 881 vm_client1_->WaitForChangeCount(1);
936 EXPECT_EQ("HierarchyChanged view=2,2 new_parent=1,1 old_parent=null", 882 EXPECT_EQ("HierarchyChanged view=2,2 new_parent=1,1 old_parent=null",
937 SingleChangeToDescription(*changes1())); 883 SingleChangeToDescription(*changes1()));
(...skipping 12 matching lines...) Expand all
950 } 896 }
951 897
952 // Verifies DeleteView isn't allowed from a separate connection. 898 // Verifies DeleteView isn't allowed from a separate connection.
953 TEST_F(ViewManagerServiceAppTest, DeleteViewFromAnotherConnectionDisallowed) { 899 TEST_F(ViewManagerServiceAppTest, DeleteViewFromAnotherConnectionDisallowed) {
954 ASSERT_NO_FATAL_FAILURE(EstablishSecondConnection(true)); 900 ASSERT_NO_FATAL_FAILURE(EstablishSecondConnection(true));
955 EXPECT_FALSE(DeleteView(vm2(), BuildViewId(1, 1))); 901 EXPECT_FALSE(DeleteView(vm2(), BuildViewId(1, 1)));
956 } 902 }
957 903
958 // Verifies if a view was deleted and then reused that other clients are 904 // Verifies if a view was deleted and then reused that other clients are
959 // properly notified. 905 // properly notified.
960 // TODO(msw|sky): Times out on Android; see http://crbug.com/497920 906 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)); 907 ASSERT_NO_FATAL_FAILURE(EstablishSecondConnection(true));
968 ASSERT_TRUE(CreateView(vm2(), BuildViewId(2, 2))); 908 ASSERT_TRUE(CreateView(vm2(), BuildViewId(2, 2)));
969 909
970 // Add 2 to 1. 910 // Add 2 to 1.
971 { 911 {
972 changes1()->clear(); 912 changes1()->clear();
973 ASSERT_TRUE(AddView(vm2(), BuildViewId(1, 1), BuildViewId(2, 2))); 913 ASSERT_TRUE(AddView(vm2(), BuildViewId(1, 1), BuildViewId(2, 2)));
974 914
975 vm_client1_->WaitForChangeCount(1); 915 vm_client1_->WaitForChangeCount(1);
976 EXPECT_EQ("HierarchyChanged view=2,2 new_parent=1,1 old_parent=null", 916 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
1039 } 979 }
1040 980
1041 // Connection 2 shouldn't be able to get the root tree. 981 // Connection 2 shouldn't be able to get the root tree.
1042 { 982 {
1043 std::vector<TestView> views; 983 std::vector<TestView> views;
1044 GetViewTree(vm2(), BuildViewId(0, 1), &views); 984 GetViewTree(vm2(), BuildViewId(0, 1), &views);
1045 ASSERT_EQ(0u, views.size()); 985 ASSERT_EQ(0u, views.size());
1046 } 986 }
1047 } 987 }
1048 988
1049 // TODO(msw|sky): Fails on Android; see http://crbug.com/497920 989 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))); 990 ASSERT_TRUE(CreateView(vm1(), BuildViewId(1, 1)));
1057 ASSERT_TRUE(AddView(vm1(), BuildViewId(0, 1), BuildViewId(1, 1))); 991 ASSERT_TRUE(AddView(vm1(), BuildViewId(0, 1), BuildViewId(1, 1)));
1058 992
1059 ASSERT_NO_FATAL_FAILURE(EstablishSecondConnection(false)); 993 ASSERT_NO_FATAL_FAILURE(EstablishSecondConnection(false));
1060 994
1061 changes2()->clear(); 995 changes2()->clear();
1062 ASSERT_TRUE(SetViewBounds(vm1(), BuildViewId(1, 1), 0, 0, 100, 100)); 996 ASSERT_TRUE(SetViewBounds(vm1(), BuildViewId(1, 1), 0, 0, 100, 100));
1063 997
1064 vm_client2_->WaitForChangeCount(1); 998 vm_client2_->WaitForChangeCount(1);
1065 EXPECT_EQ("BoundsChanged view=1,1 old_bounds=0,0 0x0 new_bounds=0,0 100x100", 999 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
1164 } 1098 }
1165 1099
1166 // Connection2 has no root. Verify it can't see view 1,1 anymore. 1100 // Connection2 has no root. Verify it can't see view 1,1 anymore.
1167 { 1101 {
1168 std::vector<TestView> views; 1102 std::vector<TestView> views;
1169 GetViewTree(vm2(), BuildViewId(1, 1), &views); 1103 GetViewTree(vm2(), BuildViewId(1, 1), &views);
1170 EXPECT_TRUE(views.empty()); 1104 EXPECT_TRUE(views.empty());
1171 } 1105 }
1172 } 1106 }
1173 1107
1174 // TODO(msw|sky): Times out on Android; see http://crbug.com/497920 1108 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)); 1109 ASSERT_NO_FATAL_FAILURE(EstablishSecondConnection(true));
1182 changes2()->clear(); 1110 changes2()->clear();
1183 1111
1184 ASSERT_NO_FATAL_FAILURE(EstablishThirdConnection(vm1(), BuildViewId(1, 1))); 1112 ASSERT_NO_FATAL_FAILURE(EstablishThirdConnection(vm1(), BuildViewId(1, 1)));
1185 1113
1186 // Connection2 should have been told the view was deleted. 1114 // Connection2 should have been told the view was deleted.
1187 vm_client2_->WaitForChangeCount(1); 1115 vm_client2_->WaitForChangeCount(1);
1188 changes2()->clear(); 1116 changes2()->clear();
1189 1117
1190 // Create a view in the third connection and parent it to the root. 1118 // 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
1298 GetViewTree(vm1(), BuildViewId(1, 1), &views); 1226 GetViewTree(vm1(), BuildViewId(1, 1), &views);
1299 ASSERT_EQ(2u, views.size()); 1227 ASSERT_EQ(2u, views.size());
1300 EXPECT_EQ("view=1,1 parent=0,1 visible=true drawn=true", 1228 EXPECT_EQ("view=1,1 parent=0,1 visible=true drawn=true",
1301 views[0].ToString2()); 1229 views[0].ToString2());
1302 EXPECT_EQ("view=1,2 parent=1,1 visible=true drawn=true", 1230 EXPECT_EQ("view=1,2 parent=1,1 visible=true drawn=true",
1303 views[1].ToString2()); 1231 views[1].ToString2());
1304 } 1232 }
1305 } 1233 }
1306 1234
1307 // Assertions for SetViewVisibility sending notifications. 1235 // Assertions for SetViewVisibility sending notifications.
1308 // TODO(msw|sky): Fails on Android; see http://crbug.com/497920 1236 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. 1237 // 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))); 1238 ASSERT_TRUE(CreateView(vm1(), BuildViewId(1, 1)));
1318 ASSERT_TRUE(SetViewVisibility(vm1(), BuildViewId(1, 1), true)); 1239 ASSERT_TRUE(SetViewVisibility(vm1(), BuildViewId(1, 1), true));
1319 ASSERT_TRUE(CreateView(vm1(), BuildViewId(1, 2))); 1240 ASSERT_TRUE(CreateView(vm1(), BuildViewId(1, 2)));
1320 ASSERT_TRUE(SetViewVisibility(vm1(), BuildViewId(1, 2), true)); 1241 ASSERT_TRUE(SetViewVisibility(vm1(), BuildViewId(1, 2), true));
1321 ASSERT_TRUE(AddView(vm1(), BuildViewId(0, 1), BuildViewId(1, 1))); 1242 ASSERT_TRUE(AddView(vm1(), BuildViewId(0, 1), BuildViewId(1, 1)));
1322 ASSERT_TRUE(AddView(vm1(), BuildViewId(1, 1), BuildViewId(1, 2))); 1243 ASSERT_TRUE(AddView(vm1(), BuildViewId(1, 1), BuildViewId(1, 2)));
1323 1244
1324 // Establish the second connection at 1,2. 1245 // Establish the second connection at 1,2.
1325 ASSERT_NO_FATAL_FAILURE(EstablishSecondConnectionWithRoot(BuildViewId(1, 2))); 1246 ASSERT_NO_FATAL_FAILURE(EstablishSecondConnectionWithRoot(BuildViewId(1, 2)));
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after
1387 changes2()->clear(); 1308 changes2()->clear();
1388 // Add 1,1 back to the root, connection 2 should see drawn state changed. 1309 // 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))); 1310 ASSERT_TRUE(AddView(vm1(), BuildViewId(0, 1), BuildViewId(1, 1)));
1390 { 1311 {
1391 vm_client2_->WaitForChangeCount(1); 1312 vm_client2_->WaitForChangeCount(1);
1392 EXPECT_EQ("DrawnStateChanged view=1,2 drawn=true", 1313 EXPECT_EQ("DrawnStateChanged view=1,2 drawn=true",
1393 SingleChangeToDescription(*changes2())); 1314 SingleChangeToDescription(*changes2()));
1394 } 1315 }
1395 } 1316 }
1396 1317
1397 // TODO(msw|sky): Fails on Android; see http://crbug.com/497920 1318 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))); 1319 ASSERT_TRUE(CreateView(vm1(), BuildViewId(1, 1)));
1405 1320
1406 ASSERT_NO_FATAL_FAILURE(EstablishSecondConnection(false)); 1321 ASSERT_NO_FATAL_FAILURE(EstablishSecondConnection(false));
1407 changes2()->clear(); 1322 changes2()->clear();
1408 1323
1409 ASSERT_TRUE(AddView(vm1(), BuildViewId(0, 1), BuildViewId(1, 1))); 1324 ASSERT_TRUE(AddView(vm1(), BuildViewId(0, 1), BuildViewId(1, 1)));
1410 { 1325 {
1411 std::vector<TestView> views; 1326 std::vector<TestView> views;
1412 GetViewTree(vm1(), BuildViewId(0, 1), &views); 1327 GetViewTree(vm1(), BuildViewId(0, 1), &views);
1413 ASSERT_EQ(2u, views.size()); 1328 ASSERT_EQ(2u, views.size());
(...skipping 24 matching lines...) Expand all
1438 changes2()->clear(); 1353 changes2()->clear();
1439 // Set back to null. 1354 // Set back to null.
1440 ASSERT_TRUE(SetViewProperty(vm1(), BuildViewId(1, 1), "one", NULL)); 1355 ASSERT_TRUE(SetViewProperty(vm1(), BuildViewId(1, 1), "one", NULL));
1441 { 1356 {
1442 vm_client2_->WaitForChangeCount(1); 1357 vm_client2_->WaitForChangeCount(1);
1443 EXPECT_EQ("PropertyChanged view=1,1 key=one value=NULL", 1358 EXPECT_EQ("PropertyChanged view=1,1 key=one value=NULL",
1444 SingleChangeToDescription(*changes2())); 1359 SingleChangeToDescription(*changes2()));
1445 } 1360 }
1446 } 1361 }
1447 1362
1448 // TODO(msw|sky): Fails on Android; see http://crbug.com/497920 1363 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. 1364 // Create connection 2 and 3.
1456 ASSERT_NO_FATAL_FAILURE(EstablishSecondConnection(true)); 1365 ASSERT_NO_FATAL_FAILURE(EstablishSecondConnection(true));
1457 ASSERT_TRUE(CreateView(vm2(), BuildViewId(2, 2))); 1366 ASSERT_TRUE(CreateView(vm2(), BuildViewId(2, 2)));
1458 ASSERT_TRUE(AddView(vm2(), BuildViewId(1, 1), BuildViewId(2, 2))); 1367 ASSERT_TRUE(AddView(vm2(), BuildViewId(1, 1), BuildViewId(2, 2)));
1459 changes2()->clear(); 1368 changes2()->clear();
1460 ASSERT_NO_FATAL_FAILURE(EstablishThirdConnection(vm2(), BuildViewId(2, 2))); 1369 ASSERT_NO_FATAL_FAILURE(EstablishThirdConnection(vm2(), BuildViewId(2, 2)));
1461 1370
1462 // Close connection 3. Connection 2 (which had previously embedded 3) should 1371 // Close connection 3. Connection 2 (which had previously embedded 3) should
1463 // be notified of this. 1372 // be notified of this.
1464 vm_client3_.reset(); 1373 vm_client3_.reset();
1465 vm_client2_->WaitForChangeCount(1); 1374 vm_client2_->WaitForChangeCount(1);
1466 EXPECT_EQ("OnEmbeddedAppDisconnected view=2,2", 1375 EXPECT_EQ("OnEmbeddedAppDisconnected view=2,2",
1467 SingleChangeToDescription(*changes2())); 1376 SingleChangeToDescription(*changes2()));
1468 } 1377 }
1469 1378
1470 // Verifies when the parent of an Embed() is destroyed the embedded app gets 1379 // Verifies when the parent of an Embed() is destroyed the embedded app gets
1471 // a ViewDeleted (and doesn't trigger a DCHECK). 1380 // a ViewDeleted (and doesn't trigger a DCHECK).
1472 // TODO(msw|sky): Fails on Android; see http://crbug.com/497920 1381 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. 1382 // Create connection 2 and 3.
1480 ASSERT_NO_FATAL_FAILURE(EstablishSecondConnection(true)); 1383 ASSERT_NO_FATAL_FAILURE(EstablishSecondConnection(true));
1481 ASSERT_TRUE(AddView(vm1(), BuildViewId(0, 1), BuildViewId(1, 1))); 1384 ASSERT_TRUE(AddView(vm1(), BuildViewId(0, 1), BuildViewId(1, 1)));
1482 ASSERT_TRUE(CreateView(vm2(), BuildViewId(2, 2))); 1385 ASSERT_TRUE(CreateView(vm2(), BuildViewId(2, 2)));
1483 ASSERT_TRUE(AddView(vm2(), BuildViewId(1, 1), BuildViewId(2, 2))); 1386 ASSERT_TRUE(AddView(vm2(), BuildViewId(1, 1), BuildViewId(2, 2)));
1484 ASSERT_TRUE(CreateView(vm2(), BuildViewId(2, 3))); 1387 ASSERT_TRUE(CreateView(vm2(), BuildViewId(2, 3)));
1485 ASSERT_TRUE(AddView(vm2(), BuildViewId(2, 2), BuildViewId(2, 3))); 1388 ASSERT_TRUE(AddView(vm2(), BuildViewId(2, 2), BuildViewId(2, 3)));
1486 changes2()->clear(); 1389 changes2()->clear();
1487 ASSERT_NO_FATAL_FAILURE(EstablishThirdConnection(vm2(), BuildViewId(2, 3))); 1390 ASSERT_NO_FATAL_FAILURE(EstablishThirdConnection(vm2(), BuildViewId(2, 3)));
1488 changes3()->clear(); 1391 changes3()->clear();
1489 1392
1490 // Close connection 2. Connection 3 should get a delete (for its root). 1393 // Close connection 2. Connection 3 should get a delete (for its root).
1491 vm_client2_.reset(); 1394 vm_client2_.reset();
1492 vm_client3_->WaitForChangeCount(1); 1395 vm_client3_->WaitForChangeCount(1);
1493 EXPECT_EQ("ViewDeleted view=2,3", SingleChangeToDescription(*changes3())); 1396 EXPECT_EQ("ViewDeleted view=2,3", SingleChangeToDescription(*changes3()));
1494 } 1397 }
1495 1398
1496 // Verifies ViewManagerServiceImpl doesn't incorrectly erase from its internal 1399 // Verifies ViewManagerServiceImpl doesn't incorrectly erase from its internal
1497 // map when a view from another connection with the same view_id is removed. 1400 // 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 1401 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)); 1402 ASSERT_NO_FATAL_FAILURE(EstablishSecondConnection(true));
1506 ASSERT_TRUE(CreateView(vm2(), BuildViewId(2, 1))); 1403 ASSERT_TRUE(CreateView(vm2(), BuildViewId(2, 1)));
1507 changes1()->clear(); 1404 changes1()->clear();
1508 vm_client2_.reset(); 1405 vm_client2_.reset();
1509 vm_client1_->WaitForChangeCount(1); 1406 vm_client1_->WaitForChangeCount(1);
1510 EXPECT_EQ("OnEmbeddedAppDisconnected view=1,1", 1407 EXPECT_EQ("OnEmbeddedAppDisconnected view=1,1",
1511 SingleChangeToDescription(*changes1())); 1408 SingleChangeToDescription(*changes1()));
1512 std::vector<TestView> views; 1409 std::vector<TestView> views;
1513 GetViewTree(vm1(), BuildViewId(1, 1), &views); 1410 GetViewTree(vm1(), BuildViewId(1, 1), &views);
1514 EXPECT_FALSE(views.empty()); 1411 EXPECT_FALSE(views.empty());
1515 } 1412 }
1516 1413
1517 // TODO(msw|sky): Fails on Android; see http://crbug.com/497920 1414 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. 1415 // Create connection 2 and 3.
1525 ASSERT_NO_FATAL_FAILURE(EstablishSecondConnection(true)); 1416 ASSERT_NO_FATAL_FAILURE(EstablishSecondConnection(true));
1526 ASSERT_TRUE(AddView(vm1(), BuildViewId(0, 1), BuildViewId(1, 1))); 1417 ASSERT_TRUE(AddView(vm1(), BuildViewId(0, 1), BuildViewId(1, 1)));
1527 ASSERT_TRUE(CreateView(vm2(), BuildViewId(2, 2))); 1418 ASSERT_TRUE(CreateView(vm2(), BuildViewId(2, 2)));
1528 ASSERT_TRUE(CreateView(vm2(), BuildViewId(2, 3))); 1419 ASSERT_TRUE(CreateView(vm2(), BuildViewId(2, 3)));
1529 ASSERT_TRUE(AddView(vm2(), BuildViewId(1, 1), BuildViewId(2, 2))); 1420 ASSERT_TRUE(AddView(vm2(), BuildViewId(1, 1), BuildViewId(2, 2)));
1530 ASSERT_TRUE(AddView(vm2(), BuildViewId(2, 2), BuildViewId(2, 3))); 1421 ASSERT_TRUE(AddView(vm2(), BuildViewId(2, 2), BuildViewId(2, 3)));
1531 changes2()->clear(); 1422 changes2()->clear();
1532 1423
1533 ASSERT_TRUE(WaitForAllMessages(vm1())); 1424 ASSERT_TRUE(WaitForAllMessages(vm1()));
(...skipping 25 matching lines...) Expand all
1559 1450
1560 ViewManagerClientImpl client2; 1451 ViewManagerClientImpl client2;
1561 mojo::ViewManagerClientPtr client2_ptr; 1452 mojo::ViewManagerClientPtr client2_ptr;
1562 mojo::Binding<ViewManagerClient> client2_binding(&client2, &client2_ptr); 1453 mojo::Binding<ViewManagerClient> client2_binding(&client2, &client2_ptr);
1563 ASSERT_TRUE(Embed(vm1(), BuildViewId(1, 1), client2_ptr.Pass())); 1454 ASSERT_TRUE(Embed(vm1(), BuildViewId(1, 1), client2_ptr.Pass()));
1564 client2.WaitForOnEmbed(); 1455 client2.WaitForOnEmbed();
1565 EXPECT_EQ("OnEmbed creator=" + application_impl()->url(), 1456 EXPECT_EQ("OnEmbed creator=" + application_impl()->url(),
1566 SingleChangeToDescription(*client2.tracker()->changes())); 1457 SingleChangeToDescription(*client2.tracker()->changes()));
1567 } 1458 }
1568 1459
1569 // TODO(msw|sky): Fails on Android; see http://crbug.com/497920 1460 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. 1461 // Create connections 2 and 3, marking 2 as an embed root.
1577 ASSERT_NO_FATAL_FAILURE(EstablishSecondConnection(true)); 1462 ASSERT_NO_FATAL_FAILURE(EstablishSecondConnection(true));
1578 ASSERT_TRUE(AddView(vm1(), BuildViewId(0, 1), BuildViewId(1, 1))); 1463 ASSERT_TRUE(AddView(vm1(), BuildViewId(0, 1), BuildViewId(1, 1)));
1579 ASSERT_TRUE(CreateView(vm2(), BuildViewId(2, 2))); 1464 ASSERT_TRUE(CreateView(vm2(), BuildViewId(2, 2)));
1580 ASSERT_TRUE(AddView(vm2(), BuildViewId(1, 1), BuildViewId(2, 2))); 1465 ASSERT_TRUE(AddView(vm2(), BuildViewId(1, 1), BuildViewId(2, 2)));
1581 ASSERT_NO_FATAL_FAILURE(EstablishThirdConnection(vm2(), BuildViewId(2, 2))); 1466 ASSERT_NO_FATAL_FAILURE(EstablishThirdConnection(vm2(), BuildViewId(2, 2)));
1582 ASSERT_TRUE(CreateView(vm3(), BuildViewId(3, 3))); 1467 ASSERT_TRUE(CreateView(vm3(), BuildViewId(3, 3)));
1583 ASSERT_TRUE(AddView(vm3(), BuildViewId(2, 2), BuildViewId(3, 3))); 1468 ASSERT_TRUE(AddView(vm3(), BuildViewId(2, 2), BuildViewId(3, 3)));
1584 vm2()->SetEmbedRoot(); 1469 vm2()->SetEmbedRoot();
1585 // Make sure the viewmanager processed the SetEmbedRoot() call. 1470 // Make sure the viewmanager processed the SetEmbedRoot() call.
(...skipping 27 matching lines...) Expand all
1613 // TODO(sky): need to better track changes to initial connection. For example, 1498 // 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 1499 // that SetBounsdViews/AddView and the like don't result in messages to the
1615 // originating connection. 1500 // originating connection.
1616 1501
1617 // TODO(sky): make sure coverage of what was 1502 // TODO(sky): make sure coverage of what was
1618 // ViewManagerTest.SecondEmbedRoot_InitService and 1503 // ViewManagerTest.SecondEmbedRoot_InitService and
1619 // ViewManagerTest.MultipleEmbedRootsBeforeWTHReady gets added to window manager 1504 // ViewManagerTest.MultipleEmbedRootsBeforeWTHReady gets added to window manager
1620 // tests. 1505 // tests.
1621 1506
1622 } // namespace view_manager 1507 } // namespace view_manager
OLDNEW
« no previous file with comments | « no previous file | mojo/tools/apptest_runner.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698