Chromium Code Reviews| 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 |