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

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: comment 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
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
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
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
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
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
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
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
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
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
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
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
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
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