Index: mojo/services/view_manager/view_manager_connection_unittest.cc |
diff --git a/mojo/services/view_manager/view_manager_connection_unittest.cc b/mojo/services/view_manager/view_manager_connection_unittest.cc |
index 4f5d1c92dd02bdad92afaebbb57c0c287d169d0a..d1e83f853344381c45f1a75418564ef3d67ab64d 100644 |
--- a/mojo/services/view_manager/view_manager_connection_unittest.cc |
+++ b/mojo/services/view_manager/view_manager_connection_unittest.cc |
@@ -112,6 +112,19 @@ class ViewManagerProxy : public TestChangeTracker::Delegate { |
RunMainLoop(); |
return result; |
} |
+ bool ReorderNode(Id node_id, |
+ Id relative_node_id, |
+ OrderDirection direction, |
+ Id server_change_id) { |
+ changes_.clear(); |
+ bool result = false; |
+ view_manager_->ReorderNode(node_id, relative_node_id, direction, |
+ server_change_id, |
+ base::Bind(&ViewManagerProxy::GotResult, |
+ base::Unretained(this), &result)); |
+ RunMainLoop(); |
+ return result; |
+ } |
bool SetView(Id node_id, Id view_id) { |
changes_.clear(); |
bool result = false; |
@@ -305,6 +318,13 @@ class TestViewManagerClientConnection |
tracker_.OnNodeHierarchyChanged(node, new_parent, old_parent, |
server_change_id, nodes.Pass()); |
} |
+ virtual void OnNodeReordered(Id node_id, |
+ Id relative_node_id, |
+ OrderDirection direction, |
+ Id server_change_id) OVERRIDE { |
+ tracker_.OnNodeReordered(node_id, relative_node_id, direction, |
+ server_change_id); |
+ } |
virtual void OnNodeDeleted(Id node, Id server_change_id) OVERRIDE { |
tracker_.OnNodeDeleted(node, server_change_id); |
} |
@@ -758,6 +778,41 @@ TEST_F(ViewManagerConnectionTest, NodeHierarchyChangedAddingKnownToUnknown) { |
} |
} |
+TEST_F(ViewManagerConnectionTest, ReorderNode) { |
+ Id node1_id = BuildNodeId(1, 1); |
+ Id node2_id = BuildNodeId(1, 2); |
+ Id node3_id = BuildNodeId(1, 3); |
+ ASSERT_TRUE(connection_->CreateNode(node1_id)); |
+ ASSERT_TRUE(connection_->CreateNode(node2_id)); |
+ ASSERT_TRUE(connection_->CreateNode(node3_id)); |
+ ASSERT_TRUE(connection_->AddNode(node1_id, node2_id, 1)); |
+ ASSERT_TRUE(connection_->AddNode(node1_id, node3_id, 2)); |
+ |
+ ASSERT_NO_FATAL_FAILURE(EstablishSecondConnection(false)); |
+ |
+ { |
+ connection_->ReorderNode(node2_id, node3_id, ORDER_ABOVE, 3); |
+ |
+ connection2_->DoRunLoopUntilChangesCount(1); |
+ const Changes changes(ChangesToDescription1(connection2_->changes())); |
+ ASSERT_EQ(1u, changes.size()); |
+ EXPECT_EQ( |
+ "Reordered change_id=3 node=1,2 relative=1,3 direction=above", |
+ changes[0]); |
+ } |
+ |
+ { |
+ connection_->ReorderNode(node2_id, node3_id, ORDER_BELOW, 4); |
+ |
+ connection2_->DoRunLoopUntilChangesCount(1); |
+ const Changes changes(ChangesToDescription1(connection2_->changes())); |
+ ASSERT_EQ(1u, changes.size()); |
+ EXPECT_EQ( |
+ "Reordered change_id=4 node=1,2 relative=1,3 direction=below", |
+ changes[0]); |
+ } |
+} |
+ |
// Verifies DeleteNode works. |
TEST_F(ViewManagerConnectionTest, DeleteNode) { |
ASSERT_TRUE(connection_->CreateNode(BuildNodeId(1, 2))); |