| OLD | NEW |
| 1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "testing/gtest/include/gtest/gtest.h" | 5 #include "testing/gtest/include/gtest/gtest.h" |
| 6 #include "third_party/skia/include/core/SkSurface.h" | 6 #include "third_party/skia/include/core/SkSurface.h" |
| 7 #include "ui/ozone/platform/wayland/fake_server.h" | 7 #include "ui/ozone/platform/wayland/fake_server.h" |
| 8 #include "ui/ozone/platform/wayland/mock_platform_window_delegate.h" | 8 #include "ui/ozone/platform/wayland/mock_platform_window_delegate.h" |
| 9 #include "ui/ozone/platform/wayland/wayland_display.h" | |
| 10 #include "ui/ozone/platform/wayland/wayland_surface_factory.h" | 9 #include "ui/ozone/platform/wayland/wayland_surface_factory.h" |
| 10 #include "ui/ozone/platform/wayland/wayland_test.h" |
| 11 #include "ui/ozone/platform/wayland/wayland_window.h" | 11 #include "ui/ozone/platform/wayland/wayland_window.h" |
| 12 #include "ui/ozone/public/surface_ozone_canvas.h" | 12 #include "ui/ozone/public/surface_ozone_canvas.h" |
| 13 | 13 |
| 14 using ::testing::Expectation; | 14 using ::testing::Expectation; |
| 15 using ::testing::Mock; | |
| 16 using ::testing::SaveArg; | 15 using ::testing::SaveArg; |
| 17 using ::testing::_; | 16 using ::testing::_; |
| 18 | 17 |
| 19 namespace ui { | 18 namespace ui { |
| 20 | 19 |
| 21 class WaylandSurfaceFactoryTest : public testing::Test { | 20 class WaylandSurfaceFactoryTest : public WaylandTest { |
| 22 public: | 21 public: |
| 23 WaylandSurfaceFactoryTest() | 22 WaylandSurfaceFactoryTest() : surface_factory(&display) {} |
| 24 : surface_factory(&display), | |
| 25 window(&delegate, &display, gfx::Rect(0, 0, 80, 60)) {} | |
| 26 | 23 |
| 27 ~WaylandSurfaceFactoryTest() override {} | 24 ~WaylandSurfaceFactoryTest() override {} |
| 28 | 25 |
| 29 void SetUp() override { | |
| 30 ASSERT_TRUE(server.Start()); | |
| 31 ASSERT_TRUE(display.Initialize()); | |
| 32 ASSERT_TRUE(window.Initialize()); | |
| 33 wl_display_roundtrip(display.display()); | |
| 34 | |
| 35 server.Pause(); | |
| 36 | |
| 37 surface = server.GetObject<wl::MockSurface>(window.GetWidget()); | |
| 38 ASSERT_TRUE(surface); | |
| 39 initialized = true; | |
| 40 } | |
| 41 | |
| 42 void TearDown() override { | |
| 43 server.Resume(); | |
| 44 if (initialized) | |
| 45 wl_display_roundtrip(display.display()); | |
| 46 } | |
| 47 | |
| 48 void Sync() { | |
| 49 server.Resume(); | |
| 50 wl_display_roundtrip(display.display()); | |
| 51 server.Pause(); | |
| 52 } | |
| 53 | |
| 54 private: | |
| 55 wl::FakeServer server; | |
| 56 bool initialized = false; | |
| 57 | |
| 58 protected: | 26 protected: |
| 59 WaylandDisplay display; | |
| 60 WaylandSurfaceFactory surface_factory; | 27 WaylandSurfaceFactory surface_factory; |
| 61 MockPlatformWindowDelegate delegate; | |
| 62 WaylandWindow window; | |
| 63 wl::MockSurface* surface; | |
| 64 | 28 |
| 65 private: | 29 private: |
| 66 DISALLOW_COPY_AND_ASSIGN(WaylandSurfaceFactoryTest); | 30 DISALLOW_COPY_AND_ASSIGN(WaylandSurfaceFactoryTest); |
| 67 }; | 31 }; |
| 68 | 32 |
| 69 TEST_F(WaylandSurfaceFactoryTest, Canvas) { | 33 TEST_F(WaylandSurfaceFactoryTest, Canvas) { |
| 70 auto canvas = surface_factory.CreateCanvasForWidget(window.GetWidget()); | 34 auto canvas = surface_factory.CreateCanvasForWidget(window.GetWidget()); |
| 71 ASSERT_TRUE(canvas); | 35 ASSERT_TRUE(canvas); |
| 72 | 36 |
| 73 canvas->GetSurface(); | 37 canvas->GetSurface(); |
| 74 canvas->PresentCanvas(gfx::Rect(5, 10, 20, 15)); | 38 canvas->PresentCanvas(gfx::Rect(5, 10, 20, 15)); |
| 75 | 39 |
| 76 Expectation damage = EXPECT_CALL(*surface, Damage(5, 10, 20, 15)); | 40 Expectation damage = EXPECT_CALL(*surface, Damage(5, 10, 20, 15)); |
| 77 wl_resource* buffer_resource = nullptr; | 41 wl_resource* buffer_resource = nullptr; |
| 78 Expectation attach = EXPECT_CALL(*surface, Attach(_, 0, 0)) | 42 Expectation attach = EXPECT_CALL(*surface, Attach(_, 0, 0)) |
| 79 .WillOnce(SaveArg<0>(&buffer_resource)); | 43 .WillOnce(SaveArg<0>(&buffer_resource)); |
| 80 EXPECT_CALL(*surface, Commit()).After(damage, attach); | 44 EXPECT_CALL(*surface, Commit()).After(damage, attach); |
| 81 | 45 |
| 82 Sync(); | 46 Sync(); |
| 83 | 47 |
| 84 ASSERT_TRUE(buffer_resource); | 48 ASSERT_TRUE(buffer_resource); |
| 85 wl_shm_buffer* buffer = wl_shm_buffer_get(buffer_resource); | 49 wl_shm_buffer* buffer = wl_shm_buffer_get(buffer_resource); |
| 86 ASSERT_TRUE(buffer); | 50 ASSERT_TRUE(buffer); |
| 87 EXPECT_EQ(wl_shm_buffer_get_width(buffer), 80); | 51 EXPECT_EQ(wl_shm_buffer_get_width(buffer), 800); |
| 88 EXPECT_EQ(wl_shm_buffer_get_height(buffer), 60); | 52 EXPECT_EQ(wl_shm_buffer_get_height(buffer), 600); |
| 89 | 53 |
| 90 // TODO(forney): We could check that the contents match something drawn to the | 54 // TODO(forney): We could check that the contents match something drawn to the |
| 91 // SkSurface above. | 55 // SkSurface above. |
| 92 } | 56 } |
| 93 | 57 |
| 94 TEST_F(WaylandSurfaceFactoryTest, CanvasResize) { | 58 TEST_F(WaylandSurfaceFactoryTest, CanvasResize) { |
| 95 auto canvas = surface_factory.CreateCanvasForWidget(window.GetWidget()); | 59 auto canvas = surface_factory.CreateCanvasForWidget(window.GetWidget()); |
| 96 ASSERT_TRUE(canvas); | 60 ASSERT_TRUE(canvas); |
| 97 | 61 |
| 98 canvas->GetSurface(); | 62 canvas->GetSurface(); |
| (...skipping 10 matching lines...) Expand all Loading... |
| 109 Sync(); | 73 Sync(); |
| 110 | 74 |
| 111 ASSERT_TRUE(buffer_resource); | 75 ASSERT_TRUE(buffer_resource); |
| 112 wl_shm_buffer* buffer = wl_shm_buffer_get(buffer_resource); | 76 wl_shm_buffer* buffer = wl_shm_buffer_get(buffer_resource); |
| 113 ASSERT_TRUE(buffer); | 77 ASSERT_TRUE(buffer); |
| 114 EXPECT_EQ(wl_shm_buffer_get_width(buffer), 100); | 78 EXPECT_EQ(wl_shm_buffer_get_width(buffer), 100); |
| 115 EXPECT_EQ(wl_shm_buffer_get_height(buffer), 50); | 79 EXPECT_EQ(wl_shm_buffer_get_height(buffer), 50); |
| 116 } | 80 } |
| 117 | 81 |
| 118 } // namespace ui | 82 } // namespace ui |
| OLD | NEW |