OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include <string> | 5 #include <string> |
6 #include <vector> | 6 #include <vector> |
7 | 7 |
8 #include "base/at_exit.h" | 8 #include "base/at_exit.h" |
9 #include "base/auto_reset.h" | 9 #include "base/auto_reset.h" |
10 #include "base/bind.h" | 10 #include "base/bind.h" |
(...skipping 475 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
486 shell::ShellTestHelper test_helper_; | 486 shell::ShellTestHelper test_helper_; |
487 | 487 |
488 ViewManagerInitServicePtr view_manager_init_; | 488 ViewManagerInitServicePtr view_manager_init_; |
489 | 489 |
490 ViewManagerProxy* connection_; | 490 ViewManagerProxy* connection_; |
491 ViewManagerProxy* connection2_; | 491 ViewManagerProxy* connection2_; |
492 | 492 |
493 DISALLOW_COPY_AND_ASSIGN(ViewManagerTest); | 493 DISALLOW_COPY_AND_ASSIGN(ViewManagerTest); |
494 }; | 494 }; |
495 | 495 |
| 496 // TODO(sky): reenable tests: http://crbug.com/385475 |
| 497 |
496 // Verifies client gets a valid id. | 498 // Verifies client gets a valid id. |
497 TEST_F(ViewManagerTest, ValidId) { | 499 TEST_F(ViewManagerTest, DISABLED_ValidId) { |
498 // TODO(beng): this should really have the URL of the application that | 500 // TODO(beng): this should really have the URL of the application that |
499 // connected to ViewManagerInit. | 501 // connected to ViewManagerInit. |
500 EXPECT_EQ("OnConnectionEstablished creator=", | 502 EXPECT_EQ("OnConnectionEstablished creator=", |
501 ChangesToDescription1(connection_->changes())[0]); | 503 ChangesToDescription1(connection_->changes())[0]); |
502 | 504 |
503 // All these tests assume 1 for the client id. The only real assertion here is | 505 // All these tests assume 1 for the client id. The only real assertion here is |
504 // the client id is not zero, but adding this as rest of code here assumes 1. | 506 // the client id is not zero, but adding this as rest of code here assumes 1. |
505 EXPECT_EQ(1, connection_->changes()[0].connection_id); | 507 EXPECT_EQ(1, connection_->changes()[0].connection_id); |
506 | 508 |
507 // Change ids start at 1 as well. | 509 // Change ids start at 1 as well. |
508 EXPECT_EQ(static_cast<Id>(1), connection_->changes()[0].change_id); | 510 EXPECT_EQ(static_cast<Id>(1), connection_->changes()[0].change_id); |
509 } | 511 } |
510 | 512 |
511 // Verifies two clients/connections get different ids. | 513 // Verifies two clients/connections get different ids. |
512 TEST_F(ViewManagerTest, TwoClientsGetDifferentConnectionIds) { | 514 TEST_F(ViewManagerTest, DISABLED_TwoClientsGetDifferentConnectionIds) { |
513 ASSERT_NO_FATAL_FAILURE(EstablishSecondConnection(true)); | 515 ASSERT_NO_FATAL_FAILURE(EstablishSecondConnection(true)); |
514 EXPECT_EQ("OnConnectionEstablished creator=mojo:test_url", | 516 EXPECT_EQ("OnConnectionEstablished creator=mojo:test_url", |
515 ChangesToDescription1(connection2_->changes())[0]); | 517 ChangesToDescription1(connection2_->changes())[0]); |
516 | 518 |
517 // It isn't strickly necessary that the second connection gets 2, but these | 519 // It isn't strickly necessary that the second connection gets 2, but these |
518 // tests are written assuming that is the case. The key thing is the | 520 // tests are written assuming that is the case. The key thing is the |
519 // connection ids of |connection_| and |connection2_| differ. | 521 // connection ids of |connection_| and |connection2_| differ. |
520 EXPECT_EQ(2, connection2_->changes()[0].connection_id); | 522 EXPECT_EQ(2, connection2_->changes()[0].connection_id); |
521 | 523 |
522 // Change ids start at 1 as well. | 524 // Change ids start at 1 as well. |
523 EXPECT_EQ(static_cast<Id>(1), connection2_->changes()[0].change_id); | 525 EXPECT_EQ(static_cast<Id>(1), connection2_->changes()[0].change_id); |
524 } | 526 } |
525 | 527 |
526 // Verifies client gets a valid id. | 528 // Verifies client gets a valid id. |
527 TEST_F(ViewManagerTest, CreateNode) { | 529 TEST_F(ViewManagerTest, DISABLED_CreateNode) { |
528 ASSERT_TRUE(connection_->CreateNode(BuildNodeId(1, 1))); | 530 ASSERT_TRUE(connection_->CreateNode(BuildNodeId(1, 1))); |
529 EXPECT_TRUE(connection_->changes().empty()); | 531 EXPECT_TRUE(connection_->changes().empty()); |
530 | 532 |
531 // Can't create a node with the same id. | 533 // Can't create a node with the same id. |
532 ASSERT_FALSE(connection_->CreateNode(BuildNodeId(1, 1))); | 534 ASSERT_FALSE(connection_->CreateNode(BuildNodeId(1, 1))); |
533 EXPECT_TRUE(connection_->changes().empty()); | 535 EXPECT_TRUE(connection_->changes().empty()); |
534 | 536 |
535 // Can't create a node with a bogus connection id. | 537 // Can't create a node with a bogus connection id. |
536 EXPECT_FALSE(connection_->CreateNode(BuildNodeId(2, 1))); | 538 EXPECT_FALSE(connection_->CreateNode(BuildNodeId(2, 1))); |
537 EXPECT_TRUE(connection_->changes().empty()); | 539 EXPECT_TRUE(connection_->changes().empty()); |
538 } | 540 } |
539 | 541 |
540 TEST_F(ViewManagerTest, CreateViewFailsWithBogusConnectionId) { | 542 TEST_F(ViewManagerTest, DISABLED_CreateViewFailsWithBogusConnectionId) { |
541 EXPECT_FALSE(connection_->CreateView(BuildViewId(2, 1))); | 543 EXPECT_FALSE(connection_->CreateView(BuildViewId(2, 1))); |
542 EXPECT_TRUE(connection_->changes().empty()); | 544 EXPECT_TRUE(connection_->changes().empty()); |
543 } | 545 } |
544 | 546 |
545 // Verifies hierarchy changes. | 547 // Verifies hierarchy changes. |
546 TEST_F(ViewManagerTest, AddRemoveNotify) { | 548 TEST_F(ViewManagerTest, DISABLED_AddRemoveNotify) { |
547 ASSERT_TRUE(connection_->CreateNode(BuildNodeId(1, 2))); | 549 ASSERT_TRUE(connection_->CreateNode(BuildNodeId(1, 2))); |
548 ASSERT_TRUE(connection_->CreateNode(BuildNodeId(1, 3))); | 550 ASSERT_TRUE(connection_->CreateNode(BuildNodeId(1, 3))); |
549 | 551 |
550 ASSERT_NO_FATAL_FAILURE(EstablishSecondConnection(true)); | 552 ASSERT_NO_FATAL_FAILURE(EstablishSecondConnection(true)); |
551 | 553 |
552 // Make 3 a child of 2. | 554 // Make 3 a child of 2. |
553 { | 555 { |
554 ASSERT_TRUE(connection_->AddNode(BuildNodeId(1, 2), BuildNodeId(1, 3), 1)); | 556 ASSERT_TRUE(connection_->AddNode(BuildNodeId(1, 2), BuildNodeId(1, 3), 1)); |
555 EXPECT_TRUE(connection_->changes().empty()); | 557 EXPECT_TRUE(connection_->changes().empty()); |
556 | 558 |
557 connection2_->DoRunLoopUntilChangesCount(1); | 559 connection2_->DoRunLoopUntilChangesCount(1); |
558 const Changes changes(ChangesToDescription1(connection2_->changes())); | 560 const Changes changes(ChangesToDescription1(connection2_->changes())); |
559 ASSERT_EQ(1u, changes.size()); | 561 ASSERT_EQ(1u, changes.size()); |
560 EXPECT_EQ("ServerChangeIdAdvanced 2", changes[0]); | 562 EXPECT_EQ("ServerChangeIdAdvanced 2", changes[0]); |
561 } | 563 } |
562 | 564 |
563 // Remove 3 from its parent. | 565 // Remove 3 from its parent. |
564 { | 566 { |
565 ASSERT_TRUE(connection_->RemoveNodeFromParent(BuildNodeId(1, 3), 2)); | 567 ASSERT_TRUE(connection_->RemoveNodeFromParent(BuildNodeId(1, 3), 2)); |
566 EXPECT_TRUE(connection_->changes().empty()); | 568 EXPECT_TRUE(connection_->changes().empty()); |
567 | 569 |
568 connection2_->DoRunLoopUntilChangesCount(1); | 570 connection2_->DoRunLoopUntilChangesCount(1); |
569 const Changes changes(ChangesToDescription1(connection2_->changes())); | 571 const Changes changes(ChangesToDescription1(connection2_->changes())); |
570 ASSERT_EQ(1u, changes.size()); | 572 ASSERT_EQ(1u, changes.size()); |
571 EXPECT_EQ("ServerChangeIdAdvanced 3", changes[0]); | 573 EXPECT_EQ("ServerChangeIdAdvanced 3", changes[0]); |
572 } | 574 } |
573 } | 575 } |
574 | 576 |
575 // Verifies AddNode fails when node is already in position. | 577 // Verifies AddNode fails when node is already in position. |
576 TEST_F(ViewManagerTest, AddNodeWithNoChange) { | 578 TEST_F(ViewManagerTest, DISABLED_AddNodeWithNoChange) { |
577 ASSERT_TRUE(connection_->CreateNode(BuildNodeId(1, 2))); | 579 ASSERT_TRUE(connection_->CreateNode(BuildNodeId(1, 2))); |
578 ASSERT_TRUE(connection_->CreateNode(BuildNodeId(1, 3))); | 580 ASSERT_TRUE(connection_->CreateNode(BuildNodeId(1, 3))); |
579 | 581 |
580 ASSERT_NO_FATAL_FAILURE(EstablishSecondConnection(true)); | 582 ASSERT_NO_FATAL_FAILURE(EstablishSecondConnection(true)); |
581 | 583 |
582 // Make 3 a child of 2. | 584 // Make 3 a child of 2. |
583 { | 585 { |
584 ASSERT_TRUE(connection_->AddNode(BuildNodeId(1, 2), BuildNodeId(1, 3), 1)); | 586 ASSERT_TRUE(connection_->AddNode(BuildNodeId(1, 2), BuildNodeId(1, 3), 1)); |
585 | 587 |
586 connection2_->DoRunLoopUntilChangesCount(1); | 588 connection2_->DoRunLoopUntilChangesCount(1); |
587 const Changes changes(ChangesToDescription1(connection2_->changes())); | 589 const Changes changes(ChangesToDescription1(connection2_->changes())); |
588 ASSERT_EQ(1u, changes.size()); | 590 ASSERT_EQ(1u, changes.size()); |
589 EXPECT_EQ("ServerChangeIdAdvanced 2", changes[0]); | 591 EXPECT_EQ("ServerChangeIdAdvanced 2", changes[0]); |
590 } | 592 } |
591 | 593 |
592 // Try again, this should fail. | 594 // Try again, this should fail. |
593 { | 595 { |
594 EXPECT_FALSE(connection_->AddNode(BuildNodeId(1, 2), BuildNodeId(1, 3), 2)); | 596 EXPECT_FALSE(connection_->AddNode(BuildNodeId(1, 2), BuildNodeId(1, 3), 2)); |
595 } | 597 } |
596 } | 598 } |
597 | 599 |
598 // Verifies AddNode fails when node is already in position. | 600 // Verifies AddNode fails when node is already in position. |
599 TEST_F(ViewManagerTest, AddAncestorFails) { | 601 TEST_F(ViewManagerTest, DISABLED_AddAncestorFails) { |
600 ASSERT_TRUE(connection_->CreateNode(BuildNodeId(1, 2))); | 602 ASSERT_TRUE(connection_->CreateNode(BuildNodeId(1, 2))); |
601 ASSERT_TRUE(connection_->CreateNode(BuildNodeId(1, 3))); | 603 ASSERT_TRUE(connection_->CreateNode(BuildNodeId(1, 3))); |
602 | 604 |
603 ASSERT_NO_FATAL_FAILURE(EstablishSecondConnection(true)); | 605 ASSERT_NO_FATAL_FAILURE(EstablishSecondConnection(true)); |
604 | 606 |
605 // Make 3 a child of 2. | 607 // Make 3 a child of 2. |
606 { | 608 { |
607 ASSERT_TRUE(connection_->AddNode(BuildNodeId(1, 2), BuildNodeId(1, 3), 1)); | 609 ASSERT_TRUE(connection_->AddNode(BuildNodeId(1, 2), BuildNodeId(1, 3), 1)); |
608 connection2_->DoRunLoopUntilChangesCount(1); | 610 connection2_->DoRunLoopUntilChangesCount(1); |
609 const Changes changes(ChangesToDescription1(connection2_->changes())); | 611 const Changes changes(ChangesToDescription1(connection2_->changes())); |
610 ASSERT_EQ(1u, changes.size()); | 612 ASSERT_EQ(1u, changes.size()); |
611 EXPECT_EQ("ServerChangeIdAdvanced 2", changes[0]); | 613 EXPECT_EQ("ServerChangeIdAdvanced 2", changes[0]); |
612 } | 614 } |
613 | 615 |
614 // Try to make 2 a child of 3, this should fail since 2 is an ancestor of 3. | 616 // Try to make 2 a child of 3, this should fail since 2 is an ancestor of 3. |
615 { | 617 { |
616 EXPECT_FALSE(connection_->AddNode(BuildNodeId(1, 3), BuildNodeId(1, 2), 2)); | 618 EXPECT_FALSE(connection_->AddNode(BuildNodeId(1, 3), BuildNodeId(1, 2), 2)); |
617 } | 619 } |
618 } | 620 } |
619 | 621 |
620 // Verifies adding with an invalid id fails. | 622 // Verifies adding with an invalid id fails. |
621 TEST_F(ViewManagerTest, AddWithInvalidServerId) { | 623 TEST_F(ViewManagerTest, DISABLED_AddWithInvalidServerId) { |
622 // Create two nodes. | 624 // Create two nodes. |
623 ASSERT_TRUE(connection_->CreateNode(BuildNodeId(1, 1))); | 625 ASSERT_TRUE(connection_->CreateNode(BuildNodeId(1, 1))); |
624 ASSERT_TRUE(connection_->CreateNode(BuildNodeId(1, 2))); | 626 ASSERT_TRUE(connection_->CreateNode(BuildNodeId(1, 2))); |
625 | 627 |
626 // Make 2 a child of 1. Supply an invalid change id, which should fail. | 628 // Make 2 a child of 1. Supply an invalid change id, which should fail. |
627 ASSERT_FALSE(connection_->AddNode(BuildNodeId(1, 1), BuildNodeId(1, 2), 0)); | 629 ASSERT_FALSE(connection_->AddNode(BuildNodeId(1, 1), BuildNodeId(1, 2), 0)); |
628 } | 630 } |
629 | 631 |
630 // Verifies adding to root sends right notifications. | 632 // Verifies adding to root sends right notifications. |
631 TEST_F(ViewManagerTest, AddToRoot) { | 633 TEST_F(ViewManagerTest, DISABLED_AddToRoot) { |
632 ASSERT_TRUE(connection_->CreateNode(BuildNodeId(1, 21))); | 634 ASSERT_TRUE(connection_->CreateNode(BuildNodeId(1, 21))); |
633 ASSERT_TRUE(connection_->CreateNode(BuildNodeId(1, 3))); | 635 ASSERT_TRUE(connection_->CreateNode(BuildNodeId(1, 3))); |
634 | 636 |
635 ASSERT_NO_FATAL_FAILURE(EstablishSecondConnection(true)); | 637 ASSERT_NO_FATAL_FAILURE(EstablishSecondConnection(true)); |
636 | 638 |
637 // Make 3 a child of 21. | 639 // Make 3 a child of 21. |
638 { | 640 { |
639 ASSERT_TRUE(connection_->AddNode(BuildNodeId(1, 21), BuildNodeId(1, 3), 1)); | 641 ASSERT_TRUE(connection_->AddNode(BuildNodeId(1, 21), BuildNodeId(1, 3), 1)); |
640 | 642 |
641 connection2_->DoRunLoopUntilChangesCount(1); | 643 connection2_->DoRunLoopUntilChangesCount(1); |
642 const Changes changes(ChangesToDescription1(connection2_->changes())); | 644 const Changes changes(ChangesToDescription1(connection2_->changes())); |
643 ASSERT_EQ(1u, changes.size()); | 645 ASSERT_EQ(1u, changes.size()); |
644 EXPECT_EQ("ServerChangeIdAdvanced 2", changes[0]); | 646 EXPECT_EQ("ServerChangeIdAdvanced 2", changes[0]); |
645 } | 647 } |
646 | 648 |
647 // Make 21 a child of 1. | 649 // Make 21 a child of 1. |
648 { | 650 { |
649 ASSERT_TRUE(connection_->AddNode(BuildNodeId(1, 1), BuildNodeId(1, 21), 2)); | 651 ASSERT_TRUE(connection_->AddNode(BuildNodeId(1, 1), BuildNodeId(1, 21), 2)); |
650 | 652 |
651 connection2_->DoRunLoopUntilChangesCount(1); | 653 connection2_->DoRunLoopUntilChangesCount(1); |
652 const Changes changes(ChangesToDescription1(connection2_->changes())); | 654 const Changes changes(ChangesToDescription1(connection2_->changes())); |
653 ASSERT_EQ(1u, changes.size()); | 655 ASSERT_EQ(1u, changes.size()); |
654 EXPECT_EQ( | 656 EXPECT_EQ( |
655 "HierarchyChanged change_id=2 node=1,21 new_parent=1,1 old_parent=null", | 657 "HierarchyChanged change_id=2 node=1,21 new_parent=1,1 old_parent=null", |
656 changes[0]); | 658 changes[0]); |
657 } | 659 } |
658 } | 660 } |
659 | 661 |
660 // Verifies HierarchyChanged is correctly sent for various adds/removes. | 662 // Verifies HierarchyChanged is correctly sent for various adds/removes. |
661 TEST_F(ViewManagerTest, NodeHierarchyChangedNodes) { | 663 TEST_F(ViewManagerTest, DISABLED_NodeHierarchyChangedNodes) { |
662 ASSERT_TRUE(connection_->CreateNode(BuildNodeId(1, 2))); | 664 ASSERT_TRUE(connection_->CreateNode(BuildNodeId(1, 2))); |
663 ASSERT_TRUE(connection_->CreateNode(BuildNodeId(1, 11))); | 665 ASSERT_TRUE(connection_->CreateNode(BuildNodeId(1, 11))); |
664 // Make 11 a child of 2. | 666 // Make 11 a child of 2. |
665 ASSERT_TRUE(connection_->AddNode(BuildNodeId(1, 2), BuildNodeId(1, 11), 1)); | 667 ASSERT_TRUE(connection_->AddNode(BuildNodeId(1, 2), BuildNodeId(1, 11), 1)); |
666 | 668 |
667 ASSERT_NO_FATAL_FAILURE(EstablishSecondConnection(true)); | 669 ASSERT_NO_FATAL_FAILURE(EstablishSecondConnection(true)); |
668 | 670 |
669 // Make 2 a child of 1. | 671 // Make 2 a child of 1. |
670 { | 672 { |
671 ASSERT_TRUE(connection_->AddNode(BuildNodeId(1, 1), BuildNodeId(1, 2), 2)); | 673 ASSERT_TRUE(connection_->AddNode(BuildNodeId(1, 1), BuildNodeId(1, 2), 2)); |
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
734 connection2_->DoRunLoopUntilChangesCount(1); | 736 connection2_->DoRunLoopUntilChangesCount(1); |
735 const Changes changes(ChangesToDescription1(connection2_->changes())); | 737 const Changes changes(ChangesToDescription1(connection2_->changes())); |
736 ASSERT_EQ(1u, changes.size()); | 738 ASSERT_EQ(1u, changes.size()); |
737 EXPECT_EQ( | 739 EXPECT_EQ( |
738 "HierarchyChanged change_id=6 node=1,1 new_parent=null old_parent=null", | 740 "HierarchyChanged change_id=6 node=1,1 new_parent=null old_parent=null", |
739 changes[0]); | 741 changes[0]); |
740 EXPECT_EQ(std::string(), ChangeNodeDescription(connection2_->changes())); | 742 EXPECT_EQ(std::string(), ChangeNodeDescription(connection2_->changes())); |
741 } | 743 } |
742 } | 744 } |
743 | 745 |
744 TEST_F(ViewManagerTest, NodeHierarchyChangedAddingKnownToUnknown) { | 746 TEST_F(ViewManagerTest, DISABLED_NodeHierarchyChangedAddingKnownToUnknown) { |
745 // Create the following structure: root -> 1 -> 11 and 2->21 (2 has no | 747 // Create the following structure: root -> 1 -> 11 and 2->21 (2 has no |
746 // parent). | 748 // parent). |
747 ASSERT_TRUE(connection_->CreateNode(BuildNodeId(1, 1))); | 749 ASSERT_TRUE(connection_->CreateNode(BuildNodeId(1, 1))); |
748 ASSERT_TRUE(connection_->CreateNode(BuildNodeId(1, 11))); | 750 ASSERT_TRUE(connection_->CreateNode(BuildNodeId(1, 11))); |
749 ASSERT_TRUE(connection_->CreateNode(BuildNodeId(1, 2))); | 751 ASSERT_TRUE(connection_->CreateNode(BuildNodeId(1, 2))); |
750 ASSERT_TRUE(connection_->CreateNode(BuildNodeId(1, 21))); | 752 ASSERT_TRUE(connection_->CreateNode(BuildNodeId(1, 21))); |
751 | 753 |
752 // Set up the hierarchy. | 754 // Set up the hierarchy. |
753 ASSERT_TRUE(connection_->AddNode(BuildNodeId(0, 1), BuildNodeId(1, 1), 1)); | 755 ASSERT_TRUE(connection_->AddNode(BuildNodeId(0, 1), BuildNodeId(1, 1), 1)); |
754 ASSERT_TRUE(connection_->AddNode(BuildNodeId(1, 1), BuildNodeId(1, 11), 2)); | 756 ASSERT_TRUE(connection_->AddNode(BuildNodeId(1, 1), BuildNodeId(1, 11), 2)); |
(...skipping 26 matching lines...) Expand all Loading... |
781 ASSERT_EQ(1u, changes.size()); | 783 ASSERT_EQ(1u, changes.size()); |
782 EXPECT_EQ( | 784 EXPECT_EQ( |
783 "HierarchyChanged change_id=5 node=1,2 new_parent=1,1 old_parent=null", | 785 "HierarchyChanged change_id=5 node=1,2 new_parent=1,1 old_parent=null", |
784 changes[0]); | 786 changes[0]); |
785 EXPECT_EQ("[node=1,2 parent=1,1 view=null]," | 787 EXPECT_EQ("[node=1,2 parent=1,1 view=null]," |
786 "[node=1,21 parent=1,2 view=null]", | 788 "[node=1,21 parent=1,2 view=null]", |
787 ChangeNodeDescription(connection2_->changes())); | 789 ChangeNodeDescription(connection2_->changes())); |
788 } | 790 } |
789 } | 791 } |
790 | 792 |
791 TEST_F(ViewManagerTest, ReorderNode) { | 793 TEST_F(ViewManagerTest, DISABLED_ReorderNode) { |
792 Id node1_id = BuildNodeId(1, 1); | 794 Id node1_id = BuildNodeId(1, 1); |
793 Id node2_id = BuildNodeId(1, 2); | 795 Id node2_id = BuildNodeId(1, 2); |
794 Id node3_id = BuildNodeId(1, 3); | 796 Id node3_id = BuildNodeId(1, 3); |
795 Id node4_id = BuildNodeId(1, 4); // Peer to 1,1 | 797 Id node4_id = BuildNodeId(1, 4); // Peer to 1,1 |
796 Id node5_id = BuildNodeId(1, 5); // Peer to 1,1 | 798 Id node5_id = BuildNodeId(1, 5); // Peer to 1,1 |
797 Id node6_id = BuildNodeId(1, 6); // Child of 1,2. | 799 Id node6_id = BuildNodeId(1, 6); // Child of 1,2. |
798 Id node7_id = BuildNodeId(1, 7); // Unparented. | 800 Id node7_id = BuildNodeId(1, 7); // Unparented. |
799 Id node8_id = BuildNodeId(1, 8); // Unparented. | 801 Id node8_id = BuildNodeId(1, 8); // Unparented. |
800 ASSERT_TRUE(connection_->CreateNode(node1_id)); | 802 ASSERT_TRUE(connection_->CreateNode(node1_id)); |
801 ASSERT_TRUE(connection_->CreateNode(node2_id)); | 803 ASSERT_TRUE(connection_->CreateNode(node2_id)); |
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
860 8)); | 862 8)); |
861 } | 863 } |
862 | 864 |
863 { | 865 { |
864 // node7 & node8 are un-parented. | 866 // node7 & node8 are un-parented. |
865 EXPECT_FALSE(connection_->ReorderNode(node7_id, node8_id, ORDER_ABOVE, 8)); | 867 EXPECT_FALSE(connection_->ReorderNode(node7_id, node8_id, ORDER_ABOVE, 8)); |
866 } | 868 } |
867 } | 869 } |
868 | 870 |
869 // Verifies DeleteNode works. | 871 // Verifies DeleteNode works. |
870 TEST_F(ViewManagerTest, DeleteNode) { | 872 TEST_F(ViewManagerTest, DISABLED_DeleteNode) { |
871 ASSERT_TRUE(connection_->CreateNode(BuildNodeId(1, 2))); | 873 ASSERT_TRUE(connection_->CreateNode(BuildNodeId(1, 2))); |
872 | 874 |
873 ASSERT_NO_FATAL_FAILURE(EstablishSecondConnection(true)); | 875 ASSERT_NO_FATAL_FAILURE(EstablishSecondConnection(true)); |
874 | 876 |
875 // Make 2 a child of 1. | 877 // Make 2 a child of 1. |
876 { | 878 { |
877 ASSERT_TRUE(connection_->AddNode(BuildNodeId(1, 1), BuildNodeId(1, 2), 1)); | 879 ASSERT_TRUE(connection_->AddNode(BuildNodeId(1, 1), BuildNodeId(1, 2), 1)); |
878 connection2_->DoRunLoopUntilChangesCount(1); | 880 connection2_->DoRunLoopUntilChangesCount(1); |
879 const Changes changes(ChangesToDescription1(connection2_->changes())); | 881 const Changes changes(ChangesToDescription1(connection2_->changes())); |
880 ASSERT_EQ(1u, changes.size()); | 882 ASSERT_EQ(1u, changes.size()); |
881 EXPECT_EQ("HierarchyChanged change_id=1 node=1,2 new_parent=1,1 " | 883 EXPECT_EQ("HierarchyChanged change_id=1 node=1,2 new_parent=1,1 " |
882 "old_parent=null", changes[0]); | 884 "old_parent=null", changes[0]); |
883 } | 885 } |
884 | 886 |
885 // Delete 2. | 887 // Delete 2. |
886 { | 888 { |
887 ASSERT_TRUE(connection_->DeleteNode(BuildNodeId(1, 2), 2)); | 889 ASSERT_TRUE(connection_->DeleteNode(BuildNodeId(1, 2), 2)); |
888 EXPECT_TRUE(connection_->changes().empty()); | 890 EXPECT_TRUE(connection_->changes().empty()); |
889 | 891 |
890 connection2_->DoRunLoopUntilChangesCount(1); | 892 connection2_->DoRunLoopUntilChangesCount(1); |
891 const Changes changes(ChangesToDescription1(connection2_->changes())); | 893 const Changes changes(ChangesToDescription1(connection2_->changes())); |
892 ASSERT_EQ(1u, changes.size()); | 894 ASSERT_EQ(1u, changes.size()); |
893 EXPECT_EQ("NodeDeleted change_id=2 node=1,2", changes[0]); | 895 EXPECT_EQ("NodeDeleted change_id=2 node=1,2", changes[0]); |
894 } | 896 } |
895 } | 897 } |
896 | 898 |
897 // Verifies DeleteNode isn't allowed from a separate connection. | 899 // Verifies DeleteNode isn't allowed from a separate connection. |
898 TEST_F(ViewManagerTest, DeleteNodeFromAnotherConnectionDisallowed) { | 900 TEST_F(ViewManagerTest, DISABLED_DeleteNodeFromAnotherConnectionDisallowed) { |
899 ASSERT_NO_FATAL_FAILURE(EstablishSecondConnection(true)); | 901 ASSERT_NO_FATAL_FAILURE(EstablishSecondConnection(true)); |
900 EXPECT_FALSE(connection2_->DeleteNode(BuildNodeId(1, 1), 1)); | 902 EXPECT_FALSE(connection2_->DeleteNode(BuildNodeId(1, 1), 1)); |
901 } | 903 } |
902 | 904 |
903 // Verifies DeleteView isn't allowed from a separate connection. | 905 // Verifies DeleteView isn't allowed from a separate connection. |
904 TEST_F(ViewManagerTest, DeleteViewFromAnotherConnectionDisallowed) { | 906 TEST_F(ViewManagerTest, DISABLED_DeleteViewFromAnotherConnectionDisallowed) { |
905 ASSERT_TRUE(connection_->CreateView(BuildViewId(1, 1))); | 907 ASSERT_TRUE(connection_->CreateView(BuildViewId(1, 1))); |
906 ASSERT_NO_FATAL_FAILURE(EstablishSecondConnection(true)); | 908 ASSERT_NO_FATAL_FAILURE(EstablishSecondConnection(true)); |
907 EXPECT_FALSE(connection2_->DeleteView(BuildViewId(1, 1))); | 909 EXPECT_FALSE(connection2_->DeleteView(BuildViewId(1, 1))); |
908 } | 910 } |
909 | 911 |
910 // Verifies if a node was deleted and then reused that other clients are | 912 // Verifies if a node was deleted and then reused that other clients are |
911 // properly notified. | 913 // properly notified. |
912 TEST_F(ViewManagerTest, ReuseDeletedNodeId) { | 914 TEST_F(ViewManagerTest, DISABLED_ReuseDeletedNodeId) { |
913 ASSERT_NO_FATAL_FAILURE(EstablishSecondConnection(true)); | 915 ASSERT_NO_FATAL_FAILURE(EstablishSecondConnection(true)); |
914 ASSERT_TRUE(connection_->CreateNode(BuildNodeId(1, 2))); | 916 ASSERT_TRUE(connection_->CreateNode(BuildNodeId(1, 2))); |
915 | 917 |
916 // Add 2 to 1. | 918 // Add 2 to 1. |
917 { | 919 { |
918 ASSERT_TRUE(connection_->AddNode(BuildNodeId(1, 1), BuildNodeId(1, 2), 1)); | 920 ASSERT_TRUE(connection_->AddNode(BuildNodeId(1, 1), BuildNodeId(1, 2), 1)); |
919 | 921 |
920 connection2_->DoRunLoopUntilChangesCount(1); | 922 connection2_->DoRunLoopUntilChangesCount(1); |
921 const Changes changes(ChangesToDescription1(connection2_->changes())); | 923 const Changes changes(ChangesToDescription1(connection2_->changes())); |
922 EXPECT_EQ( | 924 EXPECT_EQ( |
(...skipping 22 matching lines...) Expand all Loading... |
945 const Changes changes(ChangesToDescription1(connection2_->changes())); | 947 const Changes changes(ChangesToDescription1(connection2_->changes())); |
946 EXPECT_EQ( | 948 EXPECT_EQ( |
947 "HierarchyChanged change_id=3 node=1,2 new_parent=1,1 old_parent=null", | 949 "HierarchyChanged change_id=3 node=1,2 new_parent=1,1 old_parent=null", |
948 changes[0]); | 950 changes[0]); |
949 EXPECT_EQ("[node=1,2 parent=1,1 view=null]", | 951 EXPECT_EQ("[node=1,2 parent=1,1 view=null]", |
950 ChangeNodeDescription(connection2_->changes())); | 952 ChangeNodeDescription(connection2_->changes())); |
951 } | 953 } |
952 } | 954 } |
953 | 955 |
954 // Assertions around setting a view. | 956 // Assertions around setting a view. |
955 TEST_F(ViewManagerTest, SetView) { | 957 TEST_F(ViewManagerTest, DISABLED_SetView) { |
956 // Create nodes 1, 2 and 3 and the view 11. Nodes 2 and 3 are parented to 1. | 958 // Create nodes 1, 2 and 3 and the view 11. Nodes 2 and 3 are parented to 1. |
957 ASSERT_TRUE(connection_->CreateNode(BuildNodeId(1, 1))); | 959 ASSERT_TRUE(connection_->CreateNode(BuildNodeId(1, 1))); |
958 ASSERT_TRUE(connection_->CreateNode(BuildNodeId(1, 2))); | 960 ASSERT_TRUE(connection_->CreateNode(BuildNodeId(1, 2))); |
959 ASSERT_TRUE(connection_->CreateNode(BuildNodeId(1, 3))); | 961 ASSERT_TRUE(connection_->CreateNode(BuildNodeId(1, 3))); |
960 ASSERT_TRUE(connection_->CreateView(BuildViewId(1, 11))); | 962 ASSERT_TRUE(connection_->CreateView(BuildViewId(1, 11))); |
961 ASSERT_TRUE(connection_->AddNode(BuildNodeId(1, 1), BuildNodeId(1, 2), 1)); | 963 ASSERT_TRUE(connection_->AddNode(BuildNodeId(1, 1), BuildNodeId(1, 2), 1)); |
962 ASSERT_TRUE(connection_->AddNode(BuildNodeId(1, 1), BuildNodeId(1, 3), 2)); | 964 ASSERT_TRUE(connection_->AddNode(BuildNodeId(1, 1), BuildNodeId(1, 3), 2)); |
963 | 965 |
964 ASSERT_NO_FATAL_FAILURE(EstablishSecondConnection(false)); | 966 ASSERT_NO_FATAL_FAILURE(EstablishSecondConnection(false)); |
965 | 967 |
(...skipping 17 matching lines...) Expand all Loading... |
983 const Changes changes(ChangesToDescription1(connection2_->changes())); | 985 const Changes changes(ChangesToDescription1(connection2_->changes())); |
984 ASSERT_EQ(2u, changes.size()); | 986 ASSERT_EQ(2u, changes.size()); |
985 EXPECT_EQ("ViewReplaced node=1,1 new_view=null old_view=1,11", | 987 EXPECT_EQ("ViewReplaced node=1,1 new_view=null old_view=1,11", |
986 changes[0]); | 988 changes[0]); |
987 EXPECT_EQ("ViewReplaced node=1,2 new_view=1,11 old_view=null", | 989 EXPECT_EQ("ViewReplaced node=1,2 new_view=1,11 old_view=null", |
988 changes[1]); | 990 changes[1]); |
989 } | 991 } |
990 } | 992 } |
991 | 993 |
992 // Verifies deleting a node with a view sends correct notifications. | 994 // Verifies deleting a node with a view sends correct notifications. |
993 TEST_F(ViewManagerTest, DeleteNodeWithView) { | 995 TEST_F(ViewManagerTest, DISABLED_DeleteNodeWithView) { |
994 ASSERT_TRUE(connection_->CreateNode(BuildNodeId(1, 1))); | 996 ASSERT_TRUE(connection_->CreateNode(BuildNodeId(1, 1))); |
995 ASSERT_TRUE(connection_->CreateNode(BuildNodeId(1, 2))); | 997 ASSERT_TRUE(connection_->CreateNode(BuildNodeId(1, 2))); |
996 ASSERT_TRUE(connection_->CreateNode(BuildNodeId(1, 3))); | 998 ASSERT_TRUE(connection_->CreateNode(BuildNodeId(1, 3))); |
997 ASSERT_TRUE(connection_->CreateView(BuildViewId(1, 11))); | 999 ASSERT_TRUE(connection_->CreateView(BuildViewId(1, 11))); |
998 | 1000 |
999 // Set view 11 on node 2. | 1001 // Set view 11 on node 2. |
1000 ASSERT_TRUE(connection_->SetView(BuildNodeId(1, 2), BuildViewId(1, 11))); | 1002 ASSERT_TRUE(connection_->SetView(BuildNodeId(1, 2), BuildViewId(1, 11))); |
1001 | 1003 |
1002 ASSERT_NO_FATAL_FAILURE(EstablishSecondConnection(false)); | 1004 ASSERT_NO_FATAL_FAILURE(EstablishSecondConnection(false)); |
1003 | 1005 |
(...skipping 27 matching lines...) Expand all Loading... |
1031 ASSERT_TRUE(connection_->DeleteNode(BuildNodeId(1, 3), 3)); | 1033 ASSERT_TRUE(connection_->DeleteNode(BuildNodeId(1, 3), 3)); |
1032 | 1034 |
1033 connection2_->DoRunLoopUntilChangesCount(1); | 1035 connection2_->DoRunLoopUntilChangesCount(1); |
1034 const Changes changes(ChangesToDescription1(connection2_->changes())); | 1036 const Changes changes(ChangesToDescription1(connection2_->changes())); |
1035 ASSERT_EQ(1u, changes.size()); | 1037 ASSERT_EQ(1u, changes.size()); |
1036 EXPECT_EQ("NodeDeleted change_id=3 node=1,3", changes[0]); | 1038 EXPECT_EQ("NodeDeleted change_id=3 node=1,3", changes[0]); |
1037 } | 1039 } |
1038 } | 1040 } |
1039 | 1041 |
1040 // Sets view from one connection on another. | 1042 // Sets view from one connection on another. |
1041 TEST_F(ViewManagerTest, SetViewFromSecondConnection) { | 1043 TEST_F(ViewManagerTest, DISABLED_SetViewFromSecondConnection) { |
1042 ASSERT_NO_FATAL_FAILURE(EstablishSecondConnection(true)); | 1044 ASSERT_NO_FATAL_FAILURE(EstablishSecondConnection(true)); |
1043 | 1045 |
1044 ASSERT_TRUE(connection_->CreateNode(BuildNodeId(1, 2))); | 1046 ASSERT_TRUE(connection_->CreateNode(BuildNodeId(1, 2))); |
1045 | 1047 |
1046 // Create a view in the second connection. | 1048 // Create a view in the second connection. |
1047 ASSERT_TRUE(connection2_->CreateView(BuildViewId(2, 51))); | 1049 ASSERT_TRUE(connection2_->CreateView(BuildViewId(2, 51))); |
1048 | 1050 |
1049 // Attach view to node 1 in the first connection. | 1051 // Attach view to node 1 in the first connection. |
1050 { | 1052 { |
1051 ASSERT_TRUE(connection2_->SetView(BuildNodeId(1, 1), BuildViewId(2, 51))); | 1053 ASSERT_TRUE(connection2_->SetView(BuildNodeId(1, 1), BuildViewId(2, 51))); |
1052 connection_->DoRunLoopUntilChangesCount(1); | 1054 connection_->DoRunLoopUntilChangesCount(1); |
1053 const Changes changes(ChangesToDescription1(connection_->changes())); | 1055 const Changes changes(ChangesToDescription1(connection_->changes())); |
1054 ASSERT_EQ(1u, changes.size()); | 1056 ASSERT_EQ(1u, changes.size()); |
1055 EXPECT_EQ("ViewReplaced node=1,1 new_view=2,51 old_view=null", changes[0]); | 1057 EXPECT_EQ("ViewReplaced node=1,1 new_view=2,51 old_view=null", changes[0]); |
1056 } | 1058 } |
1057 | 1059 |
1058 // Shutdown the second connection and verify view is removed. | 1060 // Shutdown the second connection and verify view is removed. |
1059 { | 1061 { |
1060 DestroySecondConnection(); | 1062 DestroySecondConnection(); |
1061 connection_->DoRunLoopUntilChangesCount(2); | 1063 connection_->DoRunLoopUntilChangesCount(2); |
1062 const Changes changes(ChangesToDescription1(connection_->changes())); | 1064 const Changes changes(ChangesToDescription1(connection_->changes())); |
1063 ASSERT_EQ(2u, changes.size()); | 1065 ASSERT_EQ(2u, changes.size()); |
1064 EXPECT_EQ("ViewReplaced node=1,1 new_view=null old_view=2,51", changes[0]); | 1066 EXPECT_EQ("ViewReplaced node=1,1 new_view=null old_view=2,51", changes[0]); |
1065 EXPECT_EQ("ViewDeleted view=2,51", changes[1]); | 1067 EXPECT_EQ("ViewDeleted view=2,51", changes[1]); |
1066 } | 1068 } |
1067 } | 1069 } |
1068 | 1070 |
1069 // Assertions for GetNodeTree. | 1071 // Assertions for GetNodeTree. |
1070 TEST_F(ViewManagerTest, GetNodeTree) { | 1072 TEST_F(ViewManagerTest, DISABLED_GetNodeTree) { |
1071 ASSERT_NO_FATAL_FAILURE(EstablishSecondConnection(true)); | 1073 ASSERT_NO_FATAL_FAILURE(EstablishSecondConnection(true)); |
1072 | 1074 |
1073 // Create 11 in first connection and make it a child of 1. | 1075 // Create 11 in first connection and make it a child of 1. |
1074 ASSERT_TRUE(connection_->CreateNode(BuildNodeId(1, 11))); | 1076 ASSERT_TRUE(connection_->CreateNode(BuildNodeId(1, 11))); |
1075 ASSERT_TRUE(connection_->AddNode(BuildNodeId(0, 1), BuildNodeId(1, 1), 1)); | 1077 ASSERT_TRUE(connection_->AddNode(BuildNodeId(0, 1), BuildNodeId(1, 1), 1)); |
1076 ASSERT_TRUE(connection_->AddNode(BuildNodeId(1, 1), BuildNodeId(1, 11), 2)); | 1078 ASSERT_TRUE(connection_->AddNode(BuildNodeId(1, 1), BuildNodeId(1, 11), 2)); |
1077 | 1079 |
1078 // Create two nodes in second connection, 2 and 3, both children of 1. | 1080 // Create two nodes in second connection, 2 and 3, both children of 1. |
1079 ASSERT_TRUE(connection2_->CreateNode(BuildNodeId(2, 2))); | 1081 ASSERT_TRUE(connection2_->CreateNode(BuildNodeId(2, 2))); |
1080 ASSERT_TRUE(connection2_->CreateNode(BuildNodeId(2, 3))); | 1082 ASSERT_TRUE(connection2_->CreateNode(BuildNodeId(2, 3))); |
(...skipping 28 matching lines...) Expand all Loading... |
1109 } | 1111 } |
1110 | 1112 |
1111 // Connection 2 shouldn't be able to get the root tree. | 1113 // Connection 2 shouldn't be able to get the root tree. |
1112 { | 1114 { |
1113 std::vector<TestNode> nodes; | 1115 std::vector<TestNode> nodes; |
1114 connection2_->GetNodeTree(BuildNodeId(0, 1), &nodes); | 1116 connection2_->GetNodeTree(BuildNodeId(0, 1), &nodes); |
1115 ASSERT_EQ(0u, nodes.size()); | 1117 ASSERT_EQ(0u, nodes.size()); |
1116 } | 1118 } |
1117 } | 1119 } |
1118 | 1120 |
1119 TEST_F(ViewManagerTest, SetNodeBounds) { | 1121 TEST_F(ViewManagerTest, DISABLED_SetNodeBounds) { |
1120 ASSERT_TRUE(connection_->CreateNode(BuildNodeId(1, 1))); | 1122 ASSERT_TRUE(connection_->CreateNode(BuildNodeId(1, 1))); |
1121 ASSERT_TRUE(connection_->AddNode(BuildNodeId(0, 1), BuildNodeId(1, 1), 1)); | 1123 ASSERT_TRUE(connection_->AddNode(BuildNodeId(0, 1), BuildNodeId(1, 1), 1)); |
1122 | 1124 |
1123 ASSERT_NO_FATAL_FAILURE(EstablishSecondConnection(false)); | 1125 ASSERT_NO_FATAL_FAILURE(EstablishSecondConnection(false)); |
1124 | 1126 |
1125 ASSERT_TRUE(connection_->SetNodeBounds(BuildNodeId(1, 1), | 1127 ASSERT_TRUE(connection_->SetNodeBounds(BuildNodeId(1, 1), |
1126 gfx::Rect(0, 0, 100, 100))); | 1128 gfx::Rect(0, 0, 100, 100))); |
1127 | 1129 |
1128 connection2_->DoRunLoopUntilChangesCount(1); | 1130 connection2_->DoRunLoopUntilChangesCount(1); |
1129 const Changes changes(ChangesToDescription1(connection2_->changes())); | 1131 const Changes changes(ChangesToDescription1(connection2_->changes())); |
1130 ASSERT_EQ(1u, changes.size()); | 1132 ASSERT_EQ(1u, changes.size()); |
1131 EXPECT_EQ("BoundsChanged node=1,1 old_bounds=0,0 0x0 new_bounds=0,0 100x100", | 1133 EXPECT_EQ("BoundsChanged node=1,1 old_bounds=0,0 0x0 new_bounds=0,0 100x100", |
1132 changes[0]); | 1134 changes[0]); |
1133 | 1135 |
1134 // Should not be possible to change the bounds of a node created by another | 1136 // Should not be possible to change the bounds of a node created by another |
1135 // connection. | 1137 // connection. |
1136 ASSERT_FALSE(connection2_->SetNodeBounds(BuildNodeId(1, 1), | 1138 ASSERT_FALSE(connection2_->SetNodeBounds(BuildNodeId(1, 1), |
1137 gfx::Rect(0, 0, 0, 0))); | 1139 gfx::Rect(0, 0, 0, 0))); |
1138 } | 1140 } |
1139 | 1141 |
1140 // Various assertions around SetRoots. | 1142 // Various assertions around SetRoots. |
1141 TEST_F(ViewManagerTest, SetRoots) { | 1143 TEST_F(ViewManagerTest, DISABLED_SetRoots) { |
1142 // Create 1, 2, and 3 in the first connection. | 1144 // Create 1, 2, and 3 in the first connection. |
1143 ASSERT_TRUE(connection_->CreateNode(BuildNodeId(1, 1))); | 1145 ASSERT_TRUE(connection_->CreateNode(BuildNodeId(1, 1))); |
1144 ASSERT_TRUE(connection_->CreateNode(BuildNodeId(1, 2))); | 1146 ASSERT_TRUE(connection_->CreateNode(BuildNodeId(1, 2))); |
1145 ASSERT_TRUE(connection_->CreateNode(BuildNodeId(1, 3))); | 1147 ASSERT_TRUE(connection_->CreateNode(BuildNodeId(1, 3))); |
1146 | 1148 |
1147 // Parent 1 to the root. | 1149 // Parent 1 to the root. |
1148 ASSERT_TRUE(connection_->AddNode(BuildNodeId(0, 1), BuildNodeId(1, 1), 1)); | 1150 ASSERT_TRUE(connection_->AddNode(BuildNodeId(0, 1), BuildNodeId(1, 1), 1)); |
1149 | 1151 |
1150 // Establish the second connection and give it the roots 1 and 3. | 1152 // Establish the second connection and give it the roots 1 and 3. |
1151 { | 1153 { |
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1198 ASSERT_TRUE(connection_->DeleteNode(BuildNodeId(1, 4), 5)); | 1200 ASSERT_TRUE(connection_->DeleteNode(BuildNodeId(1, 4), 5)); |
1199 | 1201 |
1200 connection2_->DoRunLoopUntilChangesCount(1); | 1202 connection2_->DoRunLoopUntilChangesCount(1); |
1201 const Changes changes(ChangesToDescription1(connection2_->changes())); | 1203 const Changes changes(ChangesToDescription1(connection2_->changes())); |
1202 ASSERT_EQ(1u, changes.size()); | 1204 ASSERT_EQ(1u, changes.size()); |
1203 EXPECT_EQ("ServerChangeIdAdvanced 6", changes[0]); | 1205 EXPECT_EQ("ServerChangeIdAdvanced 6", changes[0]); |
1204 } | 1206 } |
1205 } | 1207 } |
1206 | 1208 |
1207 // Verify AddNode fails when trying to manipulate nodes in other roots. | 1209 // Verify AddNode fails when trying to manipulate nodes in other roots. |
1208 TEST_F(ViewManagerTest, CantMoveNodesFromOtherRoot) { | 1210 TEST_F(ViewManagerTest, DISABLED_CantMoveNodesFromOtherRoot) { |
1209 // Create 1 and 2 in the first connection. | 1211 // Create 1 and 2 in the first connection. |
1210 ASSERT_TRUE(connection_->CreateNode(BuildNodeId(1, 1))); | 1212 ASSERT_TRUE(connection_->CreateNode(BuildNodeId(1, 1))); |
1211 ASSERT_TRUE(connection_->CreateNode(BuildNodeId(1, 2))); | 1213 ASSERT_TRUE(connection_->CreateNode(BuildNodeId(1, 2))); |
1212 | 1214 |
1213 ASSERT_NO_FATAL_FAILURE(EstablishSecondConnection(false)); | 1215 ASSERT_NO_FATAL_FAILURE(EstablishSecondConnection(false)); |
1214 | 1216 |
1215 // Try to move 2 to be a child of 1 from connection 2. This should fail as 2 | 1217 // Try to move 2 to be a child of 1 from connection 2. This should fail as 2 |
1216 // should not be able to access 1. | 1218 // should not be able to access 1. |
1217 ASSERT_FALSE(connection2_->AddNode(BuildNodeId(1, 1), BuildNodeId(1, 2), 1)); | 1219 ASSERT_FALSE(connection2_->AddNode(BuildNodeId(1, 1), BuildNodeId(1, 2), 1)); |
1218 | 1220 |
1219 // Try to reparent 1 to the root. A connection is not allowed to reparent its | 1221 // Try to reparent 1 to the root. A connection is not allowed to reparent its |
1220 // roots. | 1222 // roots. |
1221 ASSERT_FALSE(connection2_->AddNode(BuildNodeId(0, 1), BuildNodeId(1, 1), 1)); | 1223 ASSERT_FALSE(connection2_->AddNode(BuildNodeId(0, 1), BuildNodeId(1, 1), 1)); |
1222 } | 1224 } |
1223 | 1225 |
1224 // Verify RemoveNodeFromParent fails for nodes that are descendants of the | 1226 // Verify RemoveNodeFromParent fails for nodes that are descendants of the |
1225 // roots. | 1227 // roots. |
1226 TEST_F(ViewManagerTest, CantRemoveNodesInOtherRoots) { | 1228 TEST_F(ViewManagerTest, DISABLED_CantRemoveNodesInOtherRoots) { |
1227 // Create 1 and 2 in the first connection and parent both to the root. | 1229 // Create 1 and 2 in the first connection and parent both to the root. |
1228 ASSERT_TRUE(connection_->CreateNode(BuildNodeId(1, 1))); | 1230 ASSERT_TRUE(connection_->CreateNode(BuildNodeId(1, 1))); |
1229 ASSERT_TRUE(connection_->CreateNode(BuildNodeId(1, 2))); | 1231 ASSERT_TRUE(connection_->CreateNode(BuildNodeId(1, 2))); |
1230 | 1232 |
1231 ASSERT_TRUE(connection_->AddNode(BuildNodeId(0, 1), BuildNodeId(1, 1), 1)); | 1233 ASSERT_TRUE(connection_->AddNode(BuildNodeId(0, 1), BuildNodeId(1, 1), 1)); |
1232 ASSERT_TRUE(connection_->AddNode(BuildNodeId(0, 1), BuildNodeId(1, 2), 2)); | 1234 ASSERT_TRUE(connection_->AddNode(BuildNodeId(0, 1), BuildNodeId(1, 2), 2)); |
1233 | 1235 |
1234 // Establish the second connection and give it the root 1. | 1236 // Establish the second connection and give it the root 1. |
1235 ASSERT_NO_FATAL_FAILURE(EstablishSecondConnection(false)); | 1237 ASSERT_NO_FATAL_FAILURE(EstablishSecondConnection(false)); |
1236 | 1238 |
(...skipping 15 matching lines...) Expand all Loading... |
1252 std::vector<TestNode> nodes; | 1254 std::vector<TestNode> nodes; |
1253 connection_->GetNodeTree(BuildNodeId(0, 1), &nodes); | 1255 connection_->GetNodeTree(BuildNodeId(0, 1), &nodes); |
1254 ASSERT_EQ(3u, nodes.size()); | 1256 ASSERT_EQ(3u, nodes.size()); |
1255 EXPECT_EQ("node=0,1 parent=null view=null", nodes[0].ToString()); | 1257 EXPECT_EQ("node=0,1 parent=null view=null", nodes[0].ToString()); |
1256 EXPECT_EQ("node=1,1 parent=0,1 view=null", nodes[1].ToString()); | 1258 EXPECT_EQ("node=1,1 parent=0,1 view=null", nodes[1].ToString()); |
1257 EXPECT_EQ("node=1,2 parent=0,1 view=null", nodes[2].ToString()); | 1259 EXPECT_EQ("node=1,2 parent=0,1 view=null", nodes[2].ToString()); |
1258 } | 1260 } |
1259 } | 1261 } |
1260 | 1262 |
1261 // Verify SetView fails for nodes that are not descendants of the roots. | 1263 // Verify SetView fails for nodes that are not descendants of the roots. |
1262 TEST_F(ViewManagerTest, CantRemoveSetViewInOtherRoots) { | 1264 TEST_F(ViewManagerTest, DISABLED_CantRemoveSetViewInOtherRoots) { |
1263 // Create 1 and 2 in the first connection and parent both to the root. | 1265 // Create 1 and 2 in the first connection and parent both to the root. |
1264 ASSERT_TRUE(connection_->CreateNode(BuildNodeId(1, 1))); | 1266 ASSERT_TRUE(connection_->CreateNode(BuildNodeId(1, 1))); |
1265 ASSERT_TRUE(connection_->CreateNode(BuildNodeId(1, 2))); | 1267 ASSERT_TRUE(connection_->CreateNode(BuildNodeId(1, 2))); |
1266 | 1268 |
1267 ASSERT_TRUE(connection_->AddNode(BuildNodeId(0, 1), BuildNodeId(1, 1), 1)); | 1269 ASSERT_TRUE(connection_->AddNode(BuildNodeId(0, 1), BuildNodeId(1, 1), 1)); |
1268 ASSERT_TRUE(connection_->AddNode(BuildNodeId(0, 1), BuildNodeId(1, 2), 2)); | 1270 ASSERT_TRUE(connection_->AddNode(BuildNodeId(0, 1), BuildNodeId(1, 2), 2)); |
1269 | 1271 |
1270 ASSERT_NO_FATAL_FAILURE(EstablishSecondConnection(false)); | 1272 ASSERT_NO_FATAL_FAILURE(EstablishSecondConnection(false)); |
1271 | 1273 |
1272 // Create a view in the second connection. | 1274 // Create a view in the second connection. |
1273 ASSERT_TRUE(connection2_->CreateView(BuildViewId(2, 51))); | 1275 ASSERT_TRUE(connection2_->CreateView(BuildViewId(2, 51))); |
1274 | 1276 |
1275 // Connection 2 should be able to set the view on node 1 (it's root), but not | 1277 // Connection 2 should be able to set the view on node 1 (it's root), but not |
1276 // on 2. | 1278 // on 2. |
1277 ASSERT_TRUE(connection2_->SetView(BuildNodeId(1, 1), BuildViewId(2, 51))); | 1279 ASSERT_TRUE(connection2_->SetView(BuildNodeId(1, 1), BuildViewId(2, 51))); |
1278 ASSERT_FALSE(connection2_->SetView(BuildNodeId(1, 2), BuildViewId(2, 51))); | 1280 ASSERT_FALSE(connection2_->SetView(BuildNodeId(1, 2), BuildViewId(2, 51))); |
1279 } | 1281 } |
1280 | 1282 |
1281 // Verify GetNodeTree fails for nodes that are not descendants of the roots. | 1283 // Verify GetNodeTree fails for nodes that are not descendants of the roots. |
1282 TEST_F(ViewManagerTest, CantGetNodeTreeOfOtherRoots) { | 1284 TEST_F(ViewManagerTest, DISABLED_CantGetNodeTreeOfOtherRoots) { |
1283 // Create 1 and 2 in the first connection and parent both to the root. | 1285 // Create 1 and 2 in the first connection and parent both to the root. |
1284 ASSERT_TRUE(connection_->CreateNode(BuildNodeId(1, 1))); | 1286 ASSERT_TRUE(connection_->CreateNode(BuildNodeId(1, 1))); |
1285 ASSERT_TRUE(connection_->CreateNode(BuildNodeId(1, 2))); | 1287 ASSERT_TRUE(connection_->CreateNode(BuildNodeId(1, 2))); |
1286 | 1288 |
1287 ASSERT_TRUE(connection_->AddNode(BuildNodeId(0, 1), BuildNodeId(1, 1), 1)); | 1289 ASSERT_TRUE(connection_->AddNode(BuildNodeId(0, 1), BuildNodeId(1, 1), 1)); |
1288 ASSERT_TRUE(connection_->AddNode(BuildNodeId(0, 1), BuildNodeId(1, 2), 2)); | 1290 ASSERT_TRUE(connection_->AddNode(BuildNodeId(0, 1), BuildNodeId(1, 2), 2)); |
1289 | 1291 |
1290 ASSERT_NO_FATAL_FAILURE(EstablishSecondConnection(false)); | 1292 ASSERT_NO_FATAL_FAILURE(EstablishSecondConnection(false)); |
1291 | 1293 |
1292 std::vector<TestNode> nodes; | 1294 std::vector<TestNode> nodes; |
1293 | 1295 |
1294 // Should get nothing for the root. | 1296 // Should get nothing for the root. |
1295 connection2_->GetNodeTree(BuildNodeId(0, 1), &nodes); | 1297 connection2_->GetNodeTree(BuildNodeId(0, 1), &nodes); |
1296 ASSERT_TRUE(nodes.empty()); | 1298 ASSERT_TRUE(nodes.empty()); |
1297 | 1299 |
1298 // Should get nothing for node 2. | 1300 // Should get nothing for node 2. |
1299 connection2_->GetNodeTree(BuildNodeId(1, 2), &nodes); | 1301 connection2_->GetNodeTree(BuildNodeId(1, 2), &nodes); |
1300 ASSERT_TRUE(nodes.empty()); | 1302 ASSERT_TRUE(nodes.empty()); |
1301 | 1303 |
1302 // Should get node 1 if asked for. | 1304 // Should get node 1 if asked for. |
1303 connection2_->GetNodeTree(BuildNodeId(1, 1), &nodes); | 1305 connection2_->GetNodeTree(BuildNodeId(1, 1), &nodes); |
1304 ASSERT_EQ(1u, nodes.size()); | 1306 ASSERT_EQ(1u, nodes.size()); |
1305 EXPECT_EQ("node=1,1 parent=null view=null", nodes[0].ToString()); | 1307 EXPECT_EQ("node=1,1 parent=null view=null", nodes[0].ToString()); |
1306 } | 1308 } |
1307 | 1309 |
1308 TEST_F(ViewManagerTest, ConnectTwice) { | 1310 TEST_F(ViewManagerTest, DISABLED_ConnectTwice) { |
1309 ASSERT_TRUE(connection_->CreateNode(BuildNodeId(1, 1))); | 1311 ASSERT_TRUE(connection_->CreateNode(BuildNodeId(1, 1))); |
1310 ASSERT_TRUE(connection_->CreateNode(BuildNodeId(1, 2))); | 1312 ASSERT_TRUE(connection_->CreateNode(BuildNodeId(1, 2))); |
1311 | 1313 |
1312 ASSERT_TRUE(connection_->AddNode(BuildNodeId(1, 1), BuildNodeId(1, 2), 1)); | 1314 ASSERT_TRUE(connection_->AddNode(BuildNodeId(1, 1), BuildNodeId(1, 2), 1)); |
1313 | 1315 |
1314 ASSERT_NO_FATAL_FAILURE(EstablishSecondConnection(false)); | 1316 ASSERT_NO_FATAL_FAILURE(EstablishSecondConnection(false)); |
1315 | 1317 |
1316 // Try to connect again to 1,1, this should fail as already connected to that | 1318 // Try to connect again to 1,1, this should fail as already connected to that |
1317 // root. | 1319 // root. |
1318 { | 1320 { |
1319 std::vector<Id> node_ids; | 1321 std::vector<Id> node_ids; |
1320 node_ids.push_back(BuildNodeId(1, 1)); | 1322 node_ids.push_back(BuildNodeId(1, 1)); |
1321 ASSERT_FALSE(connection_->Embed(node_ids)); | 1323 ASSERT_FALSE(connection_->Embed(node_ids)); |
1322 } | 1324 } |
1323 | 1325 |
1324 // Connecting to 1,2 should succeed and end up in connection2. | 1326 // Connecting to 1,2 should succeed and end up in connection2. |
1325 { | 1327 { |
1326 std::vector<Id> node_ids; | 1328 std::vector<Id> node_ids; |
1327 node_ids.push_back(BuildNodeId(1, 2)); | 1329 node_ids.push_back(BuildNodeId(1, 2)); |
1328 ASSERT_TRUE(connection_->Embed(node_ids)); | 1330 ASSERT_TRUE(connection_->Embed(node_ids)); |
1329 connection2_->DoRunLoopUntilChangesCount(1); | 1331 connection2_->DoRunLoopUntilChangesCount(1); |
1330 const Changes changes(ChangesToDescription1(connection2_->changes())); | 1332 const Changes changes(ChangesToDescription1(connection2_->changes())); |
1331 ASSERT_EQ(1u, changes.size()); | 1333 ASSERT_EQ(1u, changes.size()); |
1332 EXPECT_EQ("OnRootsAdded", changes[0]); | 1334 EXPECT_EQ("OnRootsAdded", changes[0]); |
1333 EXPECT_EQ("[node=1,2 parent=1,1 view=null]", | 1335 EXPECT_EQ("[node=1,2 parent=1,1 view=null]", |
1334 ChangeNodeDescription(connection2_->changes())); | 1336 ChangeNodeDescription(connection2_->changes())); |
1335 } | 1337 } |
1336 } | 1338 } |
1337 | 1339 |
1338 TEST_F(ViewManagerTest, OnViewInput) { | 1340 TEST_F(ViewManagerTest, DISABLED_OnViewInput) { |
1339 // Create node 1 and assign a view from connection 2 to it. | 1341 // Create node 1 and assign a view from connection 2 to it. |
1340 ASSERT_TRUE(connection_->CreateNode(BuildNodeId(1, 1))); | 1342 ASSERT_TRUE(connection_->CreateNode(BuildNodeId(1, 1))); |
1341 ASSERT_NO_FATAL_FAILURE(EstablishSecondConnection(false)); | 1343 ASSERT_NO_FATAL_FAILURE(EstablishSecondConnection(false)); |
1342 ASSERT_TRUE(connection2_->CreateView(BuildViewId(2, 11))); | 1344 ASSERT_TRUE(connection2_->CreateView(BuildViewId(2, 11))); |
1343 ASSERT_TRUE(connection2_->SetView(BuildNodeId(1, 1), BuildViewId(2, 11))); | 1345 ASSERT_TRUE(connection2_->SetView(BuildNodeId(1, 1), BuildViewId(2, 11))); |
1344 | 1346 |
1345 // Dispatch an event to the view and verify its received. | 1347 // Dispatch an event to the view and verify its received. |
1346 { | 1348 { |
1347 EventPtr event(Event::New()); | 1349 EventPtr event(Event::New()); |
1348 event->action = 1; | 1350 event->action = 1; |
(...skipping 10 matching lines...) Expand all Loading... |
1359 // TODO(sky): add coverage of test that destroys connections and ensures other | 1361 // TODO(sky): add coverage of test that destroys connections and ensures other |
1360 // connections get deletion notification (or advanced server id). | 1362 // connections get deletion notification (or advanced server id). |
1361 | 1363 |
1362 // TODO(sky): need to better track changes to initial connection. For example, | 1364 // TODO(sky): need to better track changes to initial connection. For example, |
1363 // that SetBounsdNodes/AddNode and the like don't result in messages to the | 1365 // that SetBounsdNodes/AddNode and the like don't result in messages to the |
1364 // originating connection. | 1366 // originating connection. |
1365 | 1367 |
1366 } // namespace service | 1368 } // namespace service |
1367 } // namespace view_manager | 1369 } // namespace view_manager |
1368 } // namespace mojo | 1370 } // namespace mojo |
OLD | NEW |