| 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/bind.h" | 8 #include "base/bind.h" |
| 9 #include "base/memory/scoped_ptr.h" | 9 #include "base/memory/scoped_ptr.h" |
| 10 #include "base/message_loop/message_loop.h" | 10 #include "base/message_loop/message_loop.h" |
| (...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 98 bool CreateNode(IViewManager* view_manager, | 98 bool CreateNode(IViewManager* view_manager, |
| 99 TransportConnectionId connection_id, | 99 TransportConnectionId connection_id, |
| 100 TransportConnectionSpecificNodeId node_id) { | 100 TransportConnectionSpecificNodeId node_id) { |
| 101 bool result = false; | 101 bool result = false; |
| 102 view_manager->CreateNode(CreateNodeId(connection_id, node_id), | 102 view_manager->CreateNode(CreateNodeId(connection_id, node_id), |
| 103 base::Bind(&BooleanCallback, &result)); | 103 base::Bind(&BooleanCallback, &result)); |
| 104 DoRunLoop(); | 104 DoRunLoop(); |
| 105 return result; | 105 return result; |
| 106 } | 106 } |
| 107 | 107 |
| 108 // Deletes a node, blocking until done. | 108 // Deletes a view, blocking until done. |
| 109 bool DeleteNode(IViewManager* view_manager, TransportNodeId node_id) { | 109 bool DeleteNode(IViewManager* view_manager, TransportNodeId node_id) { |
| 110 bool result = false; | 110 bool result = false; |
| 111 view_manager->DeleteNode(node_id, base::Bind(&BooleanCallback, &result)); | 111 view_manager->DeleteNode(node_id, base::Bind(&BooleanCallback, &result)); |
| 112 DoRunLoop(); | 112 DoRunLoop(); |
| 113 return result; | 113 return result; |
| 114 } | 114 } |
| 115 | 115 |
| 116 // Deletes a node, blocking until done. |
| 117 bool DeleteView(IViewManager* view_manager, TransportViewId view_id) { |
| 118 bool result = false; |
| 119 view_manager->DeleteView(view_id, base::Bind(&BooleanCallback, &result)); |
| 120 DoRunLoop(); |
| 121 return result; |
| 122 } |
| 123 |
| 116 // Adds a node, blocking until done. | 124 // Adds a node, blocking until done. |
| 117 bool AddNode(IViewManager* view_manager, | 125 bool AddNode(IViewManager* view_manager, |
| 118 TransportNodeId parent, | 126 TransportNodeId parent, |
| 119 TransportNodeId child, | 127 TransportNodeId child, |
| 120 TransportChangeId server_change_id) { | 128 TransportChangeId server_change_id) { |
| 121 bool result = false; | 129 bool result = false; |
| 122 view_manager->AddNode(parent, child, server_change_id, | 130 view_manager->AddNode(parent, child, server_change_id, |
| 123 base::Bind(&BooleanCallback, &result)); | 131 base::Bind(&BooleanCallback, &result)); |
| 124 DoRunLoop(); | 132 DoRunLoop(); |
| 125 return result; | 133 return result; |
| (...skipping 670 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 796 Changes changes(client_.GetAndClearChanges()); | 804 Changes changes(client_.GetAndClearChanges()); |
| 797 ASSERT_TRUE(changes.empty()); | 805 ASSERT_TRUE(changes.empty()); |
| 798 | 806 |
| 799 client2_.DoRunLoopUntilChangesCount(1); | 807 client2_.DoRunLoopUntilChangesCount(1); |
| 800 changes = client2_.GetAndClearChanges(); | 808 changes = client2_.GetAndClearChanges(); |
| 801 ASSERT_EQ(1u, changes.size()); | 809 ASSERT_EQ(1u, changes.size()); |
| 802 EXPECT_EQ("NodeDeleted change_id=3 node=1,1", changes[0]); | 810 EXPECT_EQ("NodeDeleted change_id=3 node=1,1", changes[0]); |
| 803 } | 811 } |
| 804 } | 812 } |
| 805 | 813 |
| 814 // Verifies DeleteNode isn't allowed from a separate connection. |
| 815 TEST_F(ViewManagerConnectionTest, DeleteNodeFromAnotherConnectionDisallowed) { |
| 816 ASSERT_TRUE(CreateNode(view_manager_.get(), 1, 1)); |
| 817 EstablishSecondConnection(); |
| 818 EXPECT_FALSE(DeleteNode(view_manager2_.get(), CreateNodeId(client_.id(), 1))); |
| 819 } |
| 820 |
| 821 // Verifies DeleteView isn't allowed from a separate connection. |
| 822 TEST_F(ViewManagerConnectionTest, DeleteViewFromAnotherConnectionDisallowed) { |
| 823 ASSERT_TRUE(CreateView(view_manager_.get(), 1, 1)); |
| 824 EstablishSecondConnection(); |
| 825 EXPECT_FALSE(DeleteView(view_manager2_.get(), CreateViewId(client_.id(), 1))); |
| 826 } |
| 827 |
| 806 // Verifies if a node was deleted and then reused that other clients are | 828 // Verifies if a node was deleted and then reused that other clients are |
| 807 // properly notified. | 829 // properly notified. |
| 808 TEST_F(ViewManagerConnectionTest, ReusedDeletedId) { | 830 TEST_F(ViewManagerConnectionTest, ReusedDeletedId) { |
| 809 ASSERT_TRUE(CreateNode(view_manager_.get(), 1, 1)); | 831 ASSERT_TRUE(CreateNode(view_manager_.get(), 1, 1)); |
| 810 EXPECT_TRUE(client_.GetAndClearChanges().empty()); | 832 EXPECT_TRUE(client_.GetAndClearChanges().empty()); |
| 811 | 833 |
| 812 EstablishSecondConnection(); | 834 EstablishSecondConnection(); |
| 813 | 835 |
| 814 // Make 1 a child of the root. | 836 // Make 1 a child of the root. |
| 815 { | 837 { |
| (...skipping 248 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1064 GetNodeTree(view_manager2_.get(), CreateNodeId(1, 1), &nodes); | 1086 GetNodeTree(view_manager2_.get(), CreateNodeId(1, 1), &nodes); |
| 1065 ASSERT_EQ(2u, nodes.size()); | 1087 ASSERT_EQ(2u, nodes.size()); |
| 1066 EXPECT_EQ("node=1,1 parent=0,1 view=null", nodes[0].ToString()); | 1088 EXPECT_EQ("node=1,1 parent=0,1 view=null", nodes[0].ToString()); |
| 1067 EXPECT_EQ("node=1,11 parent=1,1 view=1,51", nodes[1].ToString()); | 1089 EXPECT_EQ("node=1,11 parent=1,1 view=1,51", nodes[1].ToString()); |
| 1068 } | 1090 } |
| 1069 } | 1091 } |
| 1070 | 1092 |
| 1071 } // namespace service | 1093 } // namespace service |
| 1072 } // namespace view_manager | 1094 } // namespace view_manager |
| 1073 } // namespace mojo | 1095 } // namespace mojo |
| OLD | NEW |