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

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

Issue 8360018: Revert 106606 - Use WebKit compositor in ui::Layer (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Created 9 years, 2 months 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
« no previous file with comments | « ui/gfx/compositor/layer.cc ('k') | ui/gfx/compositor/test_compositor.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: ui/gfx/compositor/layer_unittest.cc
===================================================================
--- ui/gfx/compositor/layer_unittest.cc (revision 106614)
+++ ui/gfx/compositor/layer_unittest.cc (working copy)
@@ -25,26 +25,6 @@
// - LayerWithRealCompositorTest when a real compositor is required for testing.
// - Slow because they bring up a window and run the real compositor. This
// is typically not what you want.
-
-class ColoredLayer : public Layer, public LayerDelegate {
- public:
- ColoredLayer(Compositor* compositor, SkColor color)
- : Layer(compositor, Layer::LAYER_HAS_TEXTURE),
- color_(color) {
- set_delegate(this);
- }
-
- virtual ~ColoredLayer() { }
-
- // Overridden from LayerDelegate:
- virtual void OnPaintLayer(gfx::Canvas* canvas) OVERRIDE {
- canvas->GetSkCanvas()->drawColor(color_);
- }
-
- private:
- SkColor color_;
-};
-
class LayerWithRealCompositorTest : public testing::Test {
public:
LayerWithRealCompositorTest() {}
@@ -69,8 +49,9 @@
}
Layer* CreateColorLayer(SkColor color, const gfx::Rect& bounds) {
- Layer* layer = new ColoredLayer(GetCompositor(), color);
+ Layer* layer = CreateLayer(Layer::LAYER_HAS_TEXTURE);
layer->SetBounds(bounds);
+ PaintColorToLayer(layer, color);
return layer;
}
@@ -86,6 +67,13 @@
false);
}
+ void PaintColorToLayer(Layer* layer, SkColor color) {
+ scoped_ptr<gfx::Canvas> canvas(CreateCanvasForLayer(layer));
+ canvas->FillRectInt(color, 0, 0, layer->bounds().width(),
+ layer->bounds().height());
+ layer->SetCanvas(*canvas->GetSkCanvas(), layer->bounds().origin());
+ }
+
void DrawTree(Layer* root) {
GetCompositor()->SetRootLayer(root);
GetCompositor()->Draw(false);
@@ -102,6 +90,7 @@
}
private:
+ MessageLoopForUI message_loop_;
scoped_ptr<TestCompositorHost> window_;
DISALLOW_COPY_AND_ASSIGN(LayerWithRealCompositorTest);
@@ -110,7 +99,7 @@
// LayerDelegate that paints colors to the layer.
class TestLayerDelegate : public LayerDelegate {
public:
- explicit TestLayerDelegate() : color_index_(0) {}
+ explicit TestLayerDelegate(Layer* owner) : owner_(owner), color_index_(0) {}
virtual ~TestLayerDelegate() {}
void AddColor(SkColor color) {
@@ -131,6 +120,7 @@
}
private:
+ Layer* owner_;
std::vector<SkColor> colors_;
int color_index_;
gfx::Size paint_size_;
@@ -180,17 +170,11 @@
#if defined(OS_WIN)
// These are disabled on windows as they don't run correctly on the buildbot.
// Reenable once we move to the real compositor.
-#define MAYBE_Delegate DISABLED_Delegate
#define MAYBE_Draw DISABLED_Draw
-#define MAYBE_DrawTree DISABLED_DrawTree
#define MAYBE_Hierarchy DISABLED_Hierarchy
-#define MAYBE_HierarchyNoTexture DISABLED_HierarchyNoTexture
#else
-#define MAYBE_Delegate Delegate
#define MAYBE_Draw Draw
-#define MAYBE_DrawTree DrawTree
#define MAYBE_Hierarchy Hierarchy
-#define MAYBE_HierarchyNoTexture HierarchyNoTexture
#endif
TEST_F(LayerWithRealCompositorTest, MAYBE_Draw) {
@@ -242,8 +226,9 @@
}
Layer* CreateColorLayer(SkColor color, const gfx::Rect& bounds) {
- Layer* layer = new ColoredLayer(compositor(), color);
+ Layer* layer = CreateLayer(Layer::LAYER_HAS_TEXTURE);
layer->SetBounds(bounds);
+ PaintColorToLayer(layer, color);
return layer;
}
@@ -259,6 +244,13 @@
false);
}
+ void PaintColorToLayer(Layer* layer, SkColor color) {
+ scoped_ptr<gfx::Canvas> canvas(CreateCanvasForLayer(layer));
+ canvas->FillRectInt(color, 0, 0, layer->bounds().width(),
+ layer->bounds().height());
+ layer->SetCanvas(*canvas->GetSkCanvas(), layer->bounds().origin());
+ }
+
void DrawTree(Layer* root) {
compositor()->SetRootLayer(root);
compositor()->Draw(false);
@@ -272,7 +264,7 @@
// Invokes DrawTree on the compositor.
void Draw() {
- compositor_->Draw(false);
+ compositor_->root_layer()->DrawTree();
}
private:
@@ -327,35 +319,34 @@
EXPECT_EQ(point2_in_l3_coords, point2_in_l1_coords);
}
-TEST_F(LayerWithRealCompositorTest, MAYBE_Delegate) {
+TEST_F(LayerWithDelegateTest, Delegate) {
scoped_ptr<Layer> l1(CreateColorLayer(SK_ColorBLACK,
gfx::Rect(20, 20, 400, 400)));
- GetCompositor()->SetRootLayer(l1.get());
- RunPendingMessages();
-
- TestLayerDelegate delegate;
+ TestLayerDelegate delegate(l1.get());
l1->set_delegate(&delegate);
delegate.AddColor(SK_ColorWHITE);
delegate.AddColor(SK_ColorYELLOW);
delegate.AddColor(SK_ColorGREEN);
+ compositor()->SetRootLayer(l1.get());
+
l1->SchedulePaint(gfx::Rect(0, 0, 400, 400));
- RunPendingMessages();
+ Draw();
EXPECT_EQ(delegate.color_index(), 1);
EXPECT_EQ(delegate.paint_size(), l1->bounds().size());
l1->SchedulePaint(gfx::Rect(10, 10, 200, 200));
- RunPendingMessages();
+ Draw();
EXPECT_EQ(delegate.color_index(), 2);
EXPECT_EQ(delegate.paint_size(), gfx::Size(200, 200));
l1->SchedulePaint(gfx::Rect(5, 5, 50, 50));
- RunPendingMessages();
+ Draw();
EXPECT_EQ(delegate.color_index(), 0);
EXPECT_EQ(delegate.paint_size(), gfx::Size(50, 50));
}
-TEST_F(LayerWithRealCompositorTest, MAYBE_DrawTree) {
+TEST_F(LayerWithDelegateTest, DrawTree) {
scoped_ptr<Layer> l1(CreateColorLayer(SK_ColorRED,
gfx::Rect(20, 20, 400, 400)));
scoped_ptr<Layer> l2(CreateColorLayer(SK_ColorBLUE,
@@ -365,9 +356,6 @@
l1->Add(l2.get());
l2->Add(l3.get());
- GetCompositor()->SetRootLayer(l1.get());
- RunPendingMessages();
-
DrawTreeLayerDelegate d1;
l1->set_delegate(&d1);
DrawTreeLayerDelegate d2;
@@ -375,8 +363,10 @@
DrawTreeLayerDelegate d3;
l3->set_delegate(&d3);
+ compositor()->SetRootLayer(l1.get());
+
l2->SchedulePaint(gfx::Rect(5, 5, 5, 5));
- RunPendingMessages();
+ Draw();
EXPECT_FALSE(d1.painted());
EXPECT_TRUE(d2.painted());
EXPECT_FALSE(d3.painted());
@@ -389,7 +379,7 @@
// | +-- L3 - yellow
// +-- L4 - magenta
//
-TEST_F(LayerWithRealCompositorTest, MAYBE_HierarchyNoTexture) {
+TEST_F(LayerWithDelegateTest, HierarchyNoTexture) {
scoped_ptr<Layer> l1(CreateColorLayer(SK_ColorRED,
gfx::Rect(20, 20, 400, 400)));
scoped_ptr<Layer> l2(CreateNoTextureLayer(gfx::Rect(10, 10, 350, 350)));
@@ -402,17 +392,16 @@
l1->Add(l4.get());
l2->Add(l3.get());
- GetCompositor()->SetRootLayer(l1.get());
- RunPendingMessages();
-
DrawTreeLayerDelegate d2;
l2->set_delegate(&d2);
DrawTreeLayerDelegate d3;
l3->set_delegate(&d3);
+ compositor()->SetRootLayer(l1.get());
+
l2->SchedulePaint(gfx::Rect(5, 5, 5, 5));
l3->SchedulePaint(gfx::Rect(5, 5, 5, 5));
- RunPendingMessages();
+ Draw();
// |d2| should not have received a paint notification since it has no texture.
EXPECT_FALSE(d2.painted());
@@ -477,18 +466,9 @@
EXPECT_TRUE(parent->texture() == NULL);
}
-// With the webkit compositor, we don't explicitly textures for layers, making
-// tests that check that we do fail.
-#if defined(USE_WEBKIT_COMPOSITOR)
-#define WEBKIT_COMPOSITOR_FAILS(X) FAILS_ ## X
-#else
-#define WEBKIT_COMPOSITOR_FAILS(X) X
-#endif
-
// Verifies that a layer does not have a texture when the hole is the size
// of the parent layer.
-TEST_F(LayerWithNullDelegateTest,
- WEBKIT_COMPOSITOR_FAILS(LayerNoTextureHoleSizeOfLayer)) {
+TEST_F(LayerWithNullDelegateTest, LayerNoTextureHoleSizeOfLayer) {
scoped_ptr<Layer> parent(CreateTextureRootLayer(gfx::Rect(0, 0, 400, 400)));
scoped_ptr<Layer> child(CreateTextureLayer(gfx::Rect(50, 50, 100, 100)));
parent->Add(child.get());
@@ -503,8 +483,7 @@
}
// Verifies that a layer which has opacity == 0 does not have a texture.
-TEST_F(LayerWithNullDelegateTest,
- WEBKIT_COMPOSITOR_FAILS(LayerNoTextureTransparent)) {
+TEST_F(LayerWithNullDelegateTest, LayerNoTextureTransparent) {
scoped_ptr<Layer> parent(CreateTextureRootLayer(gfx::Rect(0, 0, 400, 400)));
scoped_ptr<Layer> child(CreateTextureLayer(gfx::Rect(50, 50, 100, 100)));
parent->Add(child.get());
@@ -527,8 +506,7 @@
}
// Verifies that no texture is created for a layer with empty bounds.
-TEST_F(LayerWithNullDelegateTest,
- WEBKIT_COMPOSITOR_FAILS(LayerTextureNonEmptySchedulePaint)) {
+TEST_F(LayerWithNullDelegateTest, LayerTextureNonEmptySchedulePaint) {
scoped_ptr<Layer> layer(CreateTextureRootLayer(gfx::Rect(0, 0, 0, 0)));
Draw();
EXPECT_TRUE(layer->texture() == NULL);
@@ -611,7 +589,7 @@
// +- L12 (no texture) (added after L1 is already set as root-layer)
// +- L121 (texture)
// +- L122 (texture)
-TEST_F(LayerWithNullDelegateTest, WEBKIT_COMPOSITOR_FAILS(NoCompositor)) {
+TEST_F(LayerWithNullDelegateTest, NoCompositor) {
scoped_ptr<Layer> l1(CreateLayer(Layer::LAYER_HAS_NO_TEXTURE));
scoped_ptr<Layer> l11(CreateLayer(Layer::LAYER_HAS_TEXTURE));
scoped_ptr<Layer> l12(CreateLayer(Layer::LAYER_HAS_NO_TEXTURE));
« no previous file with comments | « ui/gfx/compositor/layer.cc ('k') | ui/gfx/compositor/test_compositor.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698