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 897 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
908 // the server. | 908 // the server. |
909 ASSERT_TRUE(connection2_->CreateView(BuildViewId(2, 100))); | 909 ASSERT_TRUE(connection2_->CreateView(BuildViewId(2, 100))); |
910 connection2_->CopyChangesFromTracker(); | 910 connection2_->CopyChangesFromTracker(); |
911 EXPECT_TRUE(connection2_->changes().empty()); | 911 EXPECT_TRUE(connection2_->changes().empty()); |
912 } | 912 } |
913 | 913 |
914 // Verifies HierarchyChanged is correctly sent for various adds/removes. | 914 // Verifies HierarchyChanged is correctly sent for various adds/removes. |
915 TEST_F(ViewManagerTest, ViewHierarchyChangedViews) { | 915 TEST_F(ViewManagerTest, ViewHierarchyChangedViews) { |
916 // 1,2->1,11. | 916 // 1,2->1,11. |
917 ASSERT_TRUE(connection_->CreateView(BuildViewId(1, 2))); | 917 ASSERT_TRUE(connection_->CreateView(BuildViewId(1, 2))); |
| 918 ASSERT_TRUE(connection_->SetViewVisibility(BuildViewId(1, 2), true)); |
918 ASSERT_TRUE(connection_->CreateView(BuildViewId(1, 11))); | 919 ASSERT_TRUE(connection_->CreateView(BuildViewId(1, 11))); |
| 920 ASSERT_TRUE(connection_->SetViewVisibility(BuildViewId(1, 11), true)); |
919 ASSERT_TRUE(connection_->AddView(BuildViewId(1, 2), BuildViewId(1, 11))); | 921 ASSERT_TRUE(connection_->AddView(BuildViewId(1, 2), BuildViewId(1, 11))); |
920 | 922 |
921 ASSERT_NO_FATAL_FAILURE(EstablishSecondConnection(true)); | 923 ASSERT_NO_FATAL_FAILURE(EstablishSecondConnection(true)); |
| 924 ASSERT_TRUE(connection_->SetViewVisibility(BuildViewId(1, 1), true)); |
922 | 925 |
923 // 1,1->1,2->1,11 | 926 // 1,1->1,2->1,11 |
924 { | 927 { |
| 928 ASSERT_TRUE(connection2_->CreateView(BuildViewId(2, 101))); |
925 // Client 2 should not get anything (1,2 is from another connection). | 929 // Client 2 should not get anything (1,2 is from another connection). |
926 connection2_->ClearChanges(); | 930 connection2_->ClearChanges(); |
927 ASSERT_TRUE(connection_->AddView(BuildViewId(1, 1), BuildViewId(1, 2))); | 931 ASSERT_TRUE(connection_->AddView(BuildViewId(1, 1), BuildViewId(1, 2))); |
928 ASSERT_TRUE(connection2_->CreateView(BuildViewId(2, 100))); | 932 ASSERT_TRUE(connection2_->CreateView(BuildViewId(2, 100))); |
929 connection2_->CopyChangesFromTracker(); | 933 connection2_->CopyChangesFromTracker(); |
930 EXPECT_TRUE(connection2_->changes().empty()); | 934 EXPECT_TRUE(connection2_->changes().empty()); |
931 } | 935 } |
932 | 936 |
933 // 0,1->1,1->1,2->1,11. | 937 // 0,1->1,1->1,2->1,11. |
934 { | 938 { |
(...skipping 12 matching lines...) Expand all Loading... |
947 // changed. | 951 // changed. |
948 ASSERT_TRUE(connection_->RemoveViewFromParent(BuildViewId(1, 1))); | 952 ASSERT_TRUE(connection_->RemoveViewFromParent(BuildViewId(1, 1))); |
949 connection2_->DoRunLoopUntilChangesCount(1); | 953 connection2_->DoRunLoopUntilChangesCount(1); |
950 ASSERT_EQ(1u, connection2_->changes().size()); | 954 ASSERT_EQ(1u, connection2_->changes().size()); |
951 EXPECT_EQ("DrawnStateChanged view=1,1 drawn=false", | 955 EXPECT_EQ("DrawnStateChanged view=1,1 drawn=false", |
952 ChangesToDescription1(connection2_->changes())[0]); | 956 ChangesToDescription1(connection2_->changes())[0]); |
953 } | 957 } |
954 | 958 |
955 // 1,1->1,2->1,11->1,111. | 959 // 1,1->1,2->1,11->1,111. |
956 ASSERT_TRUE(connection_->CreateView(BuildViewId(1, 111))); | 960 ASSERT_TRUE(connection_->CreateView(BuildViewId(1, 111))); |
| 961 ASSERT_TRUE(connection_->SetViewVisibility(BuildViewId(1, 111), true)); |
957 { | 962 { |
958 connection2_->ClearChanges(); | 963 connection2_->ClearChanges(); |
959 ASSERT_TRUE(connection_->AddView(BuildViewId(1, 11), BuildViewId(1, 111))); | 964 ASSERT_TRUE(connection_->AddView(BuildViewId(1, 11), BuildViewId(1, 111))); |
960 ASSERT_TRUE(connection2_->CreateView(BuildViewId(2, 103))); | 965 ASSERT_TRUE(connection2_->CreateView(BuildViewId(2, 103))); |
961 connection2_->CopyChangesFromTracker(); | 966 connection2_->CopyChangesFromTracker(); |
962 EXPECT_TRUE(connection2_->changes().empty()); | 967 EXPECT_TRUE(connection2_->changes().empty()); |
963 } | 968 } |
964 | 969 |
965 // 0,1->1,1->1,2->1,11->1,111 | 970 // 0,1->1,1->1,2->1,11->1,111 |
966 { | 971 { |
(...skipping 455 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1422 ASSERT_TRUE(connection_->CreateView(BuildViewId(1, 1))); | 1427 ASSERT_TRUE(connection_->CreateView(BuildViewId(1, 1))); |
1423 ASSERT_TRUE(connection_->CreateView(BuildViewId(1, 2))); | 1428 ASSERT_TRUE(connection_->CreateView(BuildViewId(1, 2))); |
1424 | 1429 |
1425 ASSERT_TRUE(connection_->AddView(BuildViewId(0, 1), BuildViewId(1, 1))); | 1430 ASSERT_TRUE(connection_->AddView(BuildViewId(0, 1), BuildViewId(1, 1))); |
1426 { | 1431 { |
1427 std::vector<TestView> views; | 1432 std::vector<TestView> views; |
1428 connection_->GetViewTree(BuildViewId(0, 1), &views); | 1433 connection_->GetViewTree(BuildViewId(0, 1), &views); |
1429 ASSERT_EQ(2u, views.size()); | 1434 ASSERT_EQ(2u, views.size()); |
1430 EXPECT_EQ("view=0,1 parent=null visible=true drawn=true", | 1435 EXPECT_EQ("view=0,1 parent=null visible=true drawn=true", |
1431 views[0].ToString2()); | 1436 views[0].ToString2()); |
| 1437 EXPECT_EQ("view=1,1 parent=0,1 visible=false drawn=false", |
| 1438 views[1].ToString2()); |
| 1439 } |
| 1440 |
| 1441 ASSERT_TRUE(connection_->SetViewVisibility(BuildViewId(1, 1), true)); |
| 1442 ASSERT_TRUE(connection_->SetViewVisibility(BuildViewId(1, 2), true)); |
| 1443 { |
| 1444 std::vector<TestView> views; |
| 1445 connection_->GetViewTree(BuildViewId(0, 1), &views); |
| 1446 ASSERT_EQ(2u, views.size()); |
| 1447 EXPECT_EQ("view=0,1 parent=null visible=true drawn=true", |
| 1448 views[0].ToString2()); |
1432 EXPECT_EQ("view=1,1 parent=0,1 visible=true drawn=true", | 1449 EXPECT_EQ("view=1,1 parent=0,1 visible=true drawn=true", |
1433 views[1].ToString2()); | 1450 views[1].ToString2()); |
1434 } | 1451 } |
1435 | 1452 |
1436 // Hide 1. | 1453 // Hide 1. |
1437 ASSERT_TRUE(connection_->SetViewVisibility(BuildViewId(1, 1), false)); | 1454 ASSERT_TRUE(connection_->SetViewVisibility(BuildViewId(1, 1), false)); |
1438 { | 1455 { |
1439 std::vector<TestView> views; | 1456 std::vector<TestView> views; |
1440 connection_->GetViewTree(BuildViewId(1, 1), &views); | 1457 connection_->GetViewTree(BuildViewId(1, 1), &views); |
1441 ASSERT_EQ(1u, views.size()); | 1458 ASSERT_EQ(1u, views.size()); |
(...skipping 23 matching lines...) Expand all Loading... |
1465 views[0].ToString2()); | 1482 views[0].ToString2()); |
1466 EXPECT_EQ("view=1,2 parent=1,1 visible=true drawn=true", | 1483 EXPECT_EQ("view=1,2 parent=1,1 visible=true drawn=true", |
1467 views[1].ToString2()); | 1484 views[1].ToString2()); |
1468 } | 1485 } |
1469 } | 1486 } |
1470 | 1487 |
1471 // Assertions for SetViewVisibility sending notifications. | 1488 // Assertions for SetViewVisibility sending notifications. |
1472 TEST_F(ViewManagerTest, SetViewVisibilityNotifications) { | 1489 TEST_F(ViewManagerTest, SetViewVisibilityNotifications) { |
1473 // Create 1,1 and 1,2, 1,2 and child of 1,1 and 1,1 a child of the root. | 1490 // Create 1,1 and 1,2, 1,2 and child of 1,1 and 1,1 a child of the root. |
1474 ASSERT_TRUE(connection_->CreateView(BuildViewId(1, 1))); | 1491 ASSERT_TRUE(connection_->CreateView(BuildViewId(1, 1))); |
| 1492 ASSERT_TRUE(connection_->SetViewVisibility(BuildViewId(1, 1), true)); |
1475 ASSERT_TRUE(connection_->CreateView(BuildViewId(1, 2))); | 1493 ASSERT_TRUE(connection_->CreateView(BuildViewId(1, 2))); |
| 1494 ASSERT_TRUE(connection_->SetViewVisibility(BuildViewId(1, 2), true)); |
1476 ASSERT_TRUE(connection_->AddView(BuildViewId(0, 1), BuildViewId(1, 1))); | 1495 ASSERT_TRUE(connection_->AddView(BuildViewId(0, 1), BuildViewId(1, 1))); |
1477 ASSERT_TRUE(connection_->AddView(BuildViewId(1, 1), BuildViewId(1, 2))); | 1496 ASSERT_TRUE(connection_->AddView(BuildViewId(1, 1), BuildViewId(1, 2))); |
1478 | 1497 |
1479 // Establish the second connection at 1,2. | 1498 // Establish the second connection at 1,2. |
1480 ASSERT_NO_FATAL_FAILURE( | 1499 ASSERT_NO_FATAL_FAILURE( |
1481 EstablishSecondConnectionWithRoot(BuildViewId(1, 2))); | 1500 EstablishSecondConnectionWithRoot(BuildViewId(1, 2))); |
1482 | 1501 |
1483 // Add 2,3 as a child of 1,2. | 1502 // Add 2,3 as a child of 1,2. |
1484 ASSERT_TRUE(connection2_->CreateView(BuildViewId(2, 3))); | 1503 ASSERT_TRUE(connection2_->CreateView(BuildViewId(2, 3))); |
| 1504 ASSERT_TRUE(connection2_->SetViewVisibility(BuildViewId(2, 3), true)); |
1485 connection_->ClearChanges(); | 1505 connection_->ClearChanges(); |
1486 ASSERT_TRUE(connection2_->AddView(BuildViewId(1, 2), BuildViewId(2, 3))); | 1506 ASSERT_TRUE(connection2_->AddView(BuildViewId(1, 2), BuildViewId(2, 3))); |
1487 connection_->DoRunLoopUntilChangesCount(1); | 1507 connection_->DoRunLoopUntilChangesCount(1); |
1488 | 1508 |
1489 // Hide 1,2 from connection 1. Connection 2 should see this. | 1509 // Hide 1,2 from connection 1. Connection 2 should see this. |
1490 ASSERT_TRUE(connection_->SetViewVisibility(BuildViewId(1, 2), false)); | 1510 ASSERT_TRUE(connection_->SetViewVisibility(BuildViewId(1, 2), false)); |
1491 { | 1511 { |
1492 connection2_->DoRunLoopUntilChangesCount(1); | 1512 connection2_->DoRunLoopUntilChangesCount(1); |
1493 ASSERT_EQ(1u, connection2_->changes().size()); | 1513 ASSERT_EQ(1u, connection2_->changes().size()); |
1494 EXPECT_EQ("VisibilityChanged view=1,2 visible=false", | 1514 EXPECT_EQ("VisibilityChanged view=1,2 visible=false", |
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1557 | 1577 |
1558 ASSERT_NO_FATAL_FAILURE(EstablishSecondConnection(false)); | 1578 ASSERT_NO_FATAL_FAILURE(EstablishSecondConnection(false)); |
1559 | 1579 |
1560 ASSERT_TRUE(connection_->AddView(BuildViewId(0, 1), BuildViewId(1, 1))); | 1580 ASSERT_TRUE(connection_->AddView(BuildViewId(0, 1), BuildViewId(1, 1))); |
1561 { | 1581 { |
1562 std::vector<TestView> views; | 1582 std::vector<TestView> views; |
1563 connection_->GetViewTree(BuildViewId(0, 1), &views); | 1583 connection_->GetViewTree(BuildViewId(0, 1), &views); |
1564 ASSERT_EQ(2u, views.size()); | 1584 ASSERT_EQ(2u, views.size()); |
1565 EXPECT_EQ("view=0,1 parent=null visible=true drawn=true", | 1585 EXPECT_EQ("view=0,1 parent=null visible=true drawn=true", |
1566 views[0].ToString2()); | 1586 views[0].ToString2()); |
1567 EXPECT_EQ("view=1,1 parent=0,1 visible=true drawn=true", | 1587 EXPECT_EQ("view=1,1 parent=0,1 visible=false drawn=false", |
1568 views[1].ToString2()); | 1588 views[1].ToString2()); |
1569 | 1589 |
1570 ASSERT_EQ(0u, views[1].properties.size()); | 1590 ASSERT_EQ(0u, views[1].properties.size()); |
1571 | |
1572 connection2_->DoRunLoopUntilChangesCount(1); | |
1573 ASSERT_EQ(1u, connection2_->changes().size()); | |
1574 EXPECT_EQ("DrawnStateChanged view=1,1 drawn=true", | |
1575 ChangesToDescription1(connection2_->changes())[0]); | |
1576 } | 1591 } |
1577 | 1592 |
1578 // Set properties on 1. | 1593 // Set properties on 1. |
1579 std::vector<uint8_t> one(1, '1'); | 1594 std::vector<uint8_t> one(1, '1'); |
1580 ASSERT_TRUE(connection_->SetViewProperty(BuildViewId(1, 1), "one", &one)); | 1595 ASSERT_TRUE(connection_->SetViewProperty(BuildViewId(1, 1), "one", &one)); |
1581 { | 1596 { |
1582 connection2_->DoRunLoopUntilChangesCount(1); | 1597 connection2_->DoRunLoopUntilChangesCount(1); |
1583 ASSERT_EQ(1u, connection2_->changes().size()); | 1598 ASSERT_EQ(1u, connection2_->changes().size()); |
1584 EXPECT_EQ("PropertyChanged view=1,1 key=one value=1", | 1599 EXPECT_EQ("PropertyChanged view=1,1 key=one value=1", |
1585 ChangesToDescription1(connection2_->changes())[0]); | 1600 ChangesToDescription1(connection2_->changes())[0]); |
(...skipping 16 matching lines...) Expand all Loading... |
1602 EXPECT_EQ("PropertyChanged view=1,1 key=one value=NULL", | 1617 EXPECT_EQ("PropertyChanged view=1,1 key=one value=NULL", |
1603 ChangesToDescription1(connection2_->changes())[0]); | 1618 ChangesToDescription1(connection2_->changes())[0]); |
1604 } | 1619 } |
1605 } | 1620 } |
1606 | 1621 |
1607 // WARNING: this class is deprecated and will be replaced with | 1622 // WARNING: this class is deprecated and will be replaced with |
1608 // view_manager_server_apptest soonish. Add new tests there. | 1623 // view_manager_server_apptest soonish. Add new tests there. |
1609 | 1624 |
1610 } // namespace service | 1625 } // namespace service |
1611 } // namespace mojo | 1626 } // namespace mojo |
OLD | NEW |