Index: mojo/services/public/cpp/view_manager/tests/view_manager_unittest.cc |
diff --git a/mojo/services/public/cpp/view_manager/tests/view_manager_unittest.cc b/mojo/services/public/cpp/view_manager/tests/view_manager_unittest.cc |
index b39f55dbca4ce35353dc3f1aad07b393306bb487..dbfe231ca40058b3868ca07160d25c7da48ff52e 100644 |
--- a/mojo/services/public/cpp/view_manager/tests/view_manager_unittest.cc |
+++ b/mojo/services/public/cpp/view_manager/tests/view_manager_unittest.cc |
@@ -41,12 +41,6 @@ void QuitRunLoop() { |
current_run_loop->Quit(); |
} |
-void WaitForChangeToBeAcked(ViewManagerClientImpl* client) { |
- client->set_change_acked_callback(base::Bind(&QuitRunLoop)); |
- DoRunLoop(); |
- client->ClearChangeAckedCallback(); |
-} |
- |
class ConnectServiceLoader : public ServiceLoader, |
public ApplicationDelegate, |
public ViewManagerDelegate { |
@@ -180,16 +174,6 @@ class TreeSizeMatchesObserver : public NodeObserver { |
DISALLOW_COPY_AND_ASSIGN(TreeSizeMatchesObserver); |
}; |
-void WaitForTreeSizeToMatch(Node* node, size_t tree_size) { |
- TreeSizeMatchesObserver observer(node, tree_size); |
- if (observer.IsTreeCorrectSize()) |
- return; |
- node->AddObserver(&observer); |
- DoRunLoop(); |
- node->RemoveObserver(&observer); |
-} |
- |
- |
// Utility class that waits for the destruction of some number of nodes and |
// views. |
class DestructionObserver : public NodeObserver, public ViewObserver { |
@@ -424,51 +408,10 @@ TEST_F(ViewManagerTest, Embed) { |
EXPECT_EQ(NULL, node_in_embedded->parent()); |
} |
-// When Window Manager embeds A @ N, then creates N2 and parents to N, N becomes |
-// visible to A. |
-// TODO(beng): verify whether or not this is a policy we like. |
-TEST_F(ViewManagerTest, HierarchyChanged_NodeAdded) { |
- Node* node = Node::Create(window_manager()); |
- window_manager()->GetRoots().front()->AddChild(node); |
- ViewManager* embedded = Embed(window_manager(), node); |
- Node* nested = Node::Create(window_manager()); |
- node->AddChild(nested); |
- WaitForTreeSizeToMatch(embedded->GetRoots().front(), 2); |
- EXPECT_EQ(embedded->GetRoots().front()->children().front()->id(), |
- nested->id()); |
-} |
- |
-// Window manager has two nodes, N1 & N2. Embeds A at N1. Creates node N21, |
-// a child of N2. Reparents N2 to N1. N1 should become visible to A. |
-// TODO(beng): verify whether or not this is a policy we like. |
-TEST_F(ViewManagerTest, HierarchyChanged_NodeMoved) { |
- Node* node1 = Node::Create(window_manager()); |
- window_manager()->GetRoots().front()->AddChild(node1); |
- ViewManager* embedded = Embed(window_manager(), node1); |
- WaitForTreeSizeToMatch(embedded->GetRoots().front(), 1); |
- |
- Node* node2 = Node::Create(window_manager()); |
- window_manager()->GetRoots().front()->AddChild(node2); |
- WaitForTreeSizeToMatch(embedded->GetRoots().front(), 1); |
- EXPECT_TRUE(embedded->GetRoots().front()->children().empty()); |
- |
- Node* node21 = Node::Create(window_manager()); |
- node2->AddChild(node21); |
- WaitForTreeSizeToMatch(embedded->GetRoots().front(), 1); |
- EXPECT_TRUE(embedded->GetRoots().front()->children().empty()); |
- |
- // Makes node21 visible to |embedded|. |
- node1->AddChild(node21); |
- WaitForTreeSizeToMatch(embedded->GetRoots().front(), 2); |
- EXPECT_FALSE(embedded->GetRoots().front()->children().empty()); |
- EXPECT_EQ(embedded->GetRoots().front()->children().front()->id(), |
- node21->id()); |
-} |
- |
-// Window manager has two nodes, N1 and N11. Embeds A at N1. Removes N11 from |
-// N1. N11 should disappear from A. |
-// TODO(beng): verify whether or not this is a policy we like. |
-TEST_F(ViewManagerTest, HierarchyChanged_NodeRemoved) { |
+// Window manager has two nodes, N1 and N11. Embeds A at N1. A should not see |
+// N11. |
+// TODO(sky): Update client lib to match server. |
+TEST_F(ViewManagerTest, DISABLED_EmbeddedDoesntSeeChild) { |
Node* node = Node::Create(window_manager()); |
window_manager()->GetRoots().front()->AddChild(node); |
Node* nested = Node::Create(window_manager()); |
@@ -477,35 +420,8 @@ TEST_F(ViewManagerTest, HierarchyChanged_NodeRemoved) { |
ViewManager* embedded = Embed(window_manager(), node); |
EXPECT_EQ(embedded->GetRoots().front()->children().front()->id(), |
nested->id()); |
- |
- node->RemoveChild(nested); |
- WaitForTreeSizeToMatch(embedded->GetRoots().front(), 1); |
EXPECT_TRUE(embedded->GetRoots().front()->children().empty()); |
-} |
- |
-// Window manager has two nodes, N1 and N11. Embeds A at N1. Destroys N11. |
-// N11 should disappear from A. |
-// TODO(beng): verify whether or not this is a policy we like. |
-TEST_F(ViewManagerTest, NodeDestroyed) { |
- Node* node = Node::Create(window_manager()); |
- window_manager()->GetRoots().front()->AddChild(node); |
- Node* nested = Node::Create(window_manager()); |
- node->AddChild(nested); |
- |
- ViewManager* embedded = Embed(window_manager(), node); |
- EXPECT_EQ(embedded->GetRoots().front()->children().front()->id(), |
- nested->id()); |
- |
- // |nested| will be deleted after calling Destroy() below. |
- Id id = nested->id(); |
- nested->Destroy(); |
- |
- std::set<Id> nodes; |
- nodes.insert(id); |
- WaitForDestruction(embedded, &nodes, NULL); |
- |
- EXPECT_TRUE(embedded->GetRoots().front()->children().empty()); |
- EXPECT_EQ(NULL, embedded->GetNodeById(id)); |
+ EXPECT_TRUE(nested->parent() == NULL); |
} |
// http://crbug.com/396300 |
@@ -539,7 +455,9 @@ TEST_F(ViewManagerTest, SetActiveView) { |
EXPECT_EQ(node_in_embedded->active_view()->id(), view->id()); |
} |
-TEST_F(ViewManagerTest, DestroyView) { |
+// TODO(sky): rethink this and who should be notified when views are |
+// detached/destroyed. |
+TEST_F(ViewManagerTest, DISABLED_DestroyView) { |
Node* node = Node::Create(window_manager()); |
window_manager()->GetRoots().front()->AddChild(node); |
ViewManager* embedded = Embed(window_manager(), node); |
@@ -637,41 +555,6 @@ TEST_F(ViewManagerTest, SetActiveViewAcrossConnection) { |
EXPECT_DEATH_IF_SUPPORTED(node->SetActiveView(view_in_embedded), ""); |
} |
-// This test verifies that a node hierarchy constructed in one connection |
-// becomes entirely visible to the second connection when the hierarchy is |
-// attached. |
-TEST_F(ViewManagerTest, MapSubtreeOnAttach) { |
- Node* node = Node::Create(window_manager()); |
- window_manager()->GetRoots().front()->AddChild(node); |
- ViewManager* embedded = Embed(window_manager(), node); |
- |
- // Create a subtree private to the window manager and make some changes to it. |
- Node* child1 = Node::Create(window_manager()); |
- Node* child11 = Node::Create(window_manager()); |
- child1->AddChild(child11); |
- WaitForChangeToBeAcked( |
- static_cast<ViewManagerClientImpl*>(window_manager())); |
- gfx::Rect child11_bounds(800, 600); |
- child11->SetBounds(child11_bounds); |
- WaitForChangeToBeAcked( |
- static_cast<ViewManagerClientImpl*>(window_manager())); |
- View* view11 = View::Create(window_manager()); |
- child11->SetActiveView(view11); |
- WaitForChangeToBeAcked( |
- static_cast<ViewManagerClientImpl*>(window_manager())); |
- |
- // When added to the shared node, the entire hierarchy and all property |
- // changes should become visible to the embedded app. |
- node->AddChild(child1); |
- WaitForTreeSizeToMatch(embedded->GetRoots().front(), 3); |
- |
- Node* child11_in_embedded = embedded->GetNodeById(child11->id()); |
- View* view11_in_embedded = embedded->GetViewById(view11->id()); |
- EXPECT_TRUE(child11_in_embedded != NULL); |
- EXPECT_EQ(view11_in_embedded, child11_in_embedded->active_view()); |
- EXPECT_EQ(child11_bounds, child11_in_embedded->bounds()); |
-} |
- |
// Verifies that bounds changes applied to a node hierarchy in one connection |
// are reflected to another. |
TEST_F(ViewManagerTest, SetBounds) { |