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