Chromium Code Reviews| Index: cc/trees/layer_tree_host_impl_unittest.cc |
| diff --git a/cc/trees/layer_tree_host_impl_unittest.cc b/cc/trees/layer_tree_host_impl_unittest.cc |
| index 64758be799b5d6319c6d597a32076180bd23ee42..1eb380b52bba7b97586e77f55a65a96efbeca5c2 100644 |
| --- a/cc/trees/layer_tree_host_impl_unittest.cc |
| +++ b/cc/trees/layer_tree_host_impl_unittest.cc |
| @@ -7443,47 +7443,67 @@ TEST_F(LayerTreeHostImplTest, ScrollAnimated) { |
| TEST_F(LayerTreeHostImplTest, GetPictureLayerImplPairs) { |
| host_impl_->CreatePendingTree(); |
| + host_impl_->pending_tree()->SetRootLayer( |
| + PictureLayerImpl::Create(host_impl_->pending_tree(), 10)); |
| + |
| + LayerTreeImpl* pending_tree = host_impl_->pending_tree(); |
| + LayerImpl* pending_layer = pending_tree->root_layer(); |
| + |
| + std::vector<PictureLayerImpl::Pair> layer_pairs; |
| + host_impl_->GetPictureLayerImplPairs(&layer_pairs); |
| + EXPECT_EQ(1u, layer_pairs.size()); |
| + EXPECT_EQ(pending_layer, layer_pairs[0].pending); |
| + EXPECT_EQ(nullptr, layer_pairs[0].active); |
| + |
| host_impl_->ActivateSyncTree(); |
| - host_impl_->CreatePendingTree(); |
| LayerTreeImpl* active_tree = host_impl_->active_tree(); |
| - LayerTreeImpl* pending_tree = host_impl_->pending_tree(); |
| + LayerImpl* active_layer = active_tree->root_layer(); |
| EXPECT_NE(active_tree, pending_tree); |
| + EXPECT_NE(active_layer, pending_layer); |
| + EXPECT_NE(nullptr, active_tree); |
| + EXPECT_NE(nullptr, active_layer); |
| - scoped_ptr<FakePictureLayerImpl> active_layer = |
| - FakePictureLayerImpl::Create(active_tree, 10); |
| - scoped_ptr<FakePictureLayerImpl> pending_layer = |
| - FakePictureLayerImpl::Create(pending_tree, 10); |
| + host_impl_->CreatePendingTree(); |
| - std::vector<PictureLayerImpl::Pair> layer_pairs; |
| + layer_pairs.clear(); |
| host_impl_->GetPictureLayerImplPairs(&layer_pairs); |
| + EXPECT_EQ(1u, layer_pairs.size()); |
| + EXPECT_EQ(active_layer, layer_pairs[0].active); |
| + EXPECT_EQ(pending_layer, layer_pairs[0].pending); |
| - EXPECT_EQ(2u, layer_pairs.size()); |
| - if (layer_pairs[0].active) { |
| - EXPECT_EQ(active_layer.get(), layer_pairs[0].active); |
| - EXPECT_EQ(NULL, layer_pairs[0].pending); |
| - } else { |
| - EXPECT_EQ(pending_layer.get(), layer_pairs[0].pending); |
| - EXPECT_EQ(NULL, layer_pairs[0].active); |
| - } |
| + // Activate, the active layer has no twin now. |
| + host_impl_->ActivateSyncTree(); |
| - if (layer_pairs[1].active) { |
| - EXPECT_EQ(active_layer.get(), layer_pairs[1].active); |
| - EXPECT_EQ(NULL, layer_pairs[1].pending); |
| - } else { |
| - EXPECT_EQ(pending_layer.get(), layer_pairs[1].pending); |
| - EXPECT_EQ(NULL, layer_pairs[1].active); |
| - } |
| + layer_pairs.clear(); |
| + host_impl_->GetPictureLayerImplPairs(&layer_pairs); |
| + EXPECT_EQ(1u, layer_pairs.size()); |
| + EXPECT_EQ(active_layer, layer_pairs[0].active); |
| + EXPECT_EQ(nullptr, layer_pairs[0].pending); |
| + |
| + // Create another layer in the pending tree that's not in the active tree. We |
| + // should get two pairs. |
| + host_impl_->CreatePendingTree(); |
| + host_impl_->pending_tree()->root_layer()->AddChild( |
| + PictureLayerImpl::Create(host_impl_->pending_tree(), 11)); |
| - active_layer->set_twin_layer(pending_layer.get()); |
| - pending_layer->set_twin_layer(active_layer.get()); |
| + LayerImpl* new_pending_layer = pending_tree->root_layer()->children()[0]; |
| layer_pairs.clear(); |
| host_impl_->GetPictureLayerImplPairs(&layer_pairs); |
| - EXPECT_EQ(1u, layer_pairs.size()); |
| + EXPECT_EQ(2u, layer_pairs.size()); |
| + |
| + // The pair ordering is flaky, so make it consistent. |
| + if (layer_pairs[0].active != active_layer) { |
| + PictureLayerImpl::Pair p = layer_pairs[1]; |
|
vmpstr
2014/10/24 17:20:10
std::swap!
danakj
2014/10/24 18:00:24
ooh
|
| + layer_pairs[1] = layer_pairs[0]; |
| + layer_pairs[0] = p; |
| + } |
| - EXPECT_EQ(active_layer.get(), layer_pairs[0].active); |
| - EXPECT_EQ(pending_layer.get(), layer_pairs[0].pending); |
| + EXPECT_EQ(active_layer, layer_pairs[0].active); |
| + EXPECT_EQ(pending_layer, layer_pairs[0].pending); |
| + EXPECT_EQ(new_pending_layer, layer_pairs[1].pending); |
| + EXPECT_EQ(nullptr, layer_pairs[1].active); |
| } |
| TEST_F(LayerTreeHostImplTest, DidBecomeActive) { |