Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(640)

Unified Diff: ui/gfx/compositor/layer_unittest.cc

Issue 8653005: Make Aura and compositor stacking methods more intuitive. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 9 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« ui/aura_shell/shadow_controller_unittest.cc ('K') | « ui/gfx/compositor/layer.cc ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: ui/gfx/compositor/layer_unittest.cc
diff --git a/ui/gfx/compositor/layer_unittest.cc b/ui/gfx/compositor/layer_unittest.cc
index 2e96cca041dec458fdedc61846ea6e3bfe89a10f..253683cb3fa69a4968d0912bb7cbf3f00b1e1741 100644
--- a/ui/gfx/compositor/layer_unittest.cc
+++ b/ui/gfx/compositor/layer_unittest.cc
@@ -90,6 +90,19 @@ bool IsSameAsPNGFile(const SkBitmap& gen_bmp, FilePath ref_img_path) {
return true;
}
+// Returns a comma-separated list of the names of |layer|'s children in
+// bottom-to-top stacking order.
+std::string GetLayerChildrenNames(const Layer& layer) {
+ std::string names;
+ for (std::vector<Layer*>::const_iterator it = layer.children().begin();
+ it != layer.children().end(); ++it) {
+ if (!names.empty())
+ names += ",";
+ names += (*it)->name();
+ }
+ return names;
+}
+
// There are three test classes in here that configure the Compositor and
// Layer's slightly differently:
@@ -1047,6 +1060,41 @@ TEST_F(LayerWithNullDelegateTest, Visibility) {
#endif
}
+// Checks that stacking-related methods behave as advertised.
+TEST_F(LayerWithNullDelegateTest, Stacking) {
+ scoped_ptr<Layer> root(new Layer(Layer::LAYER_HAS_NO_TEXTURE));
+ scoped_ptr<Layer> l1(new Layer(Layer::LAYER_HAS_TEXTURE));
+ scoped_ptr<Layer> l2(new Layer(Layer::LAYER_HAS_TEXTURE));
+ scoped_ptr<Layer> l3(new Layer(Layer::LAYER_HAS_TEXTURE));
+ l1->set_name("1");
+ l2->set_name("2");
+ l3->set_name("3");
+ root->Add(l3.get());
+ root->Add(l2.get());
+ root->Add(l1.get());
+
+ // Layers' children are stored in bottom-to-top order.
+ EXPECT_EQ("3,2,1", GetLayerChildrenNames(*root.get()));
+
+ root->StackAtTop(l3.get());
+ EXPECT_EQ("2,1,3", GetLayerChildrenNames(*root.get()));
+
+ root->StackAtTop(l1.get());
+ EXPECT_EQ("2,3,1", GetLayerChildrenNames(*root.get()));
+
+ root->StackAtTop(l1.get());
+ EXPECT_EQ("2,3,1", GetLayerChildrenNames(*root.get()));
+
+ root->StackAbove(l2.get(), l3.get());
+ EXPECT_EQ("3,2,1", GetLayerChildrenNames(*root.get()));
+
+ root->StackAbove(l1.get(), l3.get());
+ EXPECT_EQ("3,1,2", GetLayerChildrenNames(*root.get()));
+
+ root->StackAbove(l2.get(), l1.get());
+ EXPECT_EQ("3,1,2", GetLayerChildrenNames(*root.get()));
+}
+
// Checks that the invalid rect assumes correct values when setting bounds.
// TODO(vollick): for USE_WEBKIT_COMPOSITOR, use WebKit's dirty rect.
TEST_F(LayerWithNullDelegateTest,
« ui/aura_shell/shadow_controller_unittest.cc ('K') | « ui/gfx/compositor/layer.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698