| 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 dbfe231ca40058b3868ca07160d25c7da48ff52e..86b7f685e5215f8c6316d86be9da513c5074a896 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
|
| @@ -174,6 +174,15 @@ 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 {
|
| @@ -626,33 +635,36 @@ TEST_F(ViewManagerTest, Reorder) {
|
| Node* node1 = Node::Create(window_manager());
|
| window_manager()->GetRoots().front()->AddChild(node1);
|
|
|
| - Node* node11 = Node::Create(window_manager());
|
| - node1->AddChild(node11);
|
| - Node* node12 = Node::Create(window_manager());
|
| - node1->AddChild(node12);
|
| -
|
| ViewManager* embedded = Embed(window_manager(), node1);
|
|
|
| - Node* node1_in_embedded = embedded->GetNodeById(node1->id());
|
| + Node* node11 = Node::Create(embedded);
|
| + embedded->GetRoots().front()->AddChild(node11);
|
| + Node* node12 = Node::Create(embedded);
|
| + embedded->GetRoots().front()->AddChild(node12);
|
| +
|
| + Node* node1_in_wm = window_manager()->GetNodeById(node1->id());
|
|
|
| {
|
| + WaitForTreeSizeToMatch(node1, 2u);
|
| node11->MoveToFront();
|
| - WaitForOrderChange(embedded, embedded->GetNodeById(node11->id()));
|
| + WaitForOrderChange(window_manager(),
|
| + window_manager()->GetNodeById(node11->id()));
|
|
|
| - EXPECT_EQ(node1_in_embedded->children().front(),
|
| - embedded->GetNodeById(node12->id()));
|
| - EXPECT_EQ(node1_in_embedded->children().back(),
|
| - embedded->GetNodeById(node11->id()));
|
| + EXPECT_EQ(node1_in_wm->children().front(),
|
| + window_manager()->GetNodeById(node12->id()));
|
| + EXPECT_EQ(node1_in_wm->children().back(),
|
| + window_manager()->GetNodeById(node11->id()));
|
| }
|
|
|
| {
|
| node11->MoveToBack();
|
| - WaitForOrderChange(embedded, embedded->GetNodeById(node11->id()));
|
| + WaitForOrderChange(window_manager(),
|
| + window_manager()->GetNodeById(node11->id()));
|
|
|
| - EXPECT_EQ(node1_in_embedded->children().front(),
|
| - embedded->GetNodeById(node11->id()));
|
| - EXPECT_EQ(node1_in_embedded->children().back(),
|
| - embedded->GetNodeById(node12->id()));
|
| + EXPECT_EQ(node1_in_wm->children().front(),
|
| + window_manager()->GetNodeById(node11->id()));
|
| + EXPECT_EQ(node1_in_wm->children().back(),
|
| + window_manager()->GetNodeById(node12->id()));
|
| }
|
| }
|
|
|
|
|