Index: ui/compositor/compositor_unittest.cc |
diff --git a/ui/compositor/compositor_unittest.cc b/ui/compositor/compositor_unittest.cc |
index b182033dabdc861d64a7bfee61beceea1b315430..a53bdc2ab0f2b5d1095bde808917bb7947ca3c72 100644 |
--- a/ui/compositor/compositor_unittest.cc |
+++ b/ui/compositor/compositor_unittest.cc |
@@ -9,7 +9,9 @@ |
#include "testing/gmock/include/gmock/gmock.h" |
#include "testing/gtest/include/gtest/gtest.h" |
#include "ui/compositor/compositor.h" |
+#include "ui/compositor/layer.h" |
#include "ui/compositor/test/context_factories_for_test.h" |
+#include "ui/compositor/test/draw_waiter_for_test.h" |
using testing::Mock; |
using testing::_; |
@@ -125,4 +127,30 @@ TEST_F(CompositorTest, AddAndRemoveBeginFrameObserver) { |
compositor()->RemoveBeginFrameObserver(&test_observer2); |
} |
+TEST_F(CompositorTest, ReleaseWidgetWithOutputSurfaceNeverCreated) { |
+ compositor()->SetVisible(false); |
+ EXPECT_EQ(gfx::kNullAcceleratedWidget, |
+ compositor()->ReleaseAcceleratedWidget()); |
+ compositor()->SetAcceleratedWidget(gfx::kNullAcceleratedWidget); |
+ compositor()->SetVisible(true); |
+} |
+ |
+TEST_F(CompositorTest, CreateAndReleaseOutputSurface) { |
+ scoped_ptr<Layer> root_layer(new Layer(ui::LAYER_SOLID_COLOR)); |
+ root_layer->SetBounds(gfx::Rect(10, 10)); |
+ compositor()->SetRootLayer(root_layer.get()); |
+ compositor()->SetScaleAndSize(1.0f, gfx::Size(10, 10)); |
+ DCHECK(compositor()->IsVisible()); |
+ compositor()->ScheduleDraw(); |
+ DrawWaiterForTest::WaitForCompositingEnded(compositor()); |
+ compositor()->SetVisible(false); |
+ EXPECT_EQ(gfx::kNullAcceleratedWidget, |
danakj
2015/10/06 18:28:12
might be worth a test that verifies it gets back t
no sievers
2015/10/06 23:46:27
But it goes into the non-offscreen creation path t
danakj
2015/10/07 20:44:42
I was thinking of https://code.google.com/p/chromi
|
+ compositor()->ReleaseAcceleratedWidget()); |
+ compositor()->SetAcceleratedWidget(gfx::kNullAcceleratedWidget); |
+ compositor()->SetVisible(true); |
+ compositor()->ScheduleDraw(); |
+ DrawWaiterForTest::WaitForCompositingEnded(compositor()); |
+ compositor()->SetRootLayer(nullptr); |
+} |
+ |
} // namespace ui |