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

Side by Side Diff: ui/ozone/platform/wayland/wayland_window_unittest.cc

Issue 1673063002: ozone/platform/wayland: Add some tests (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 10 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 unified diff | Download patch
OLDNEW
(Empty)
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
3 // found in the LICENSE file.
4
5 #include <wayland-server-core.h>
6 #include <xdg-shell-unstable-v5-server-protocol.h>
7
8 #include "base/strings/utf_string_conversions.h"
9 #include "testing/gmock/include/gmock/gmock.h"
10 #include "testing/gtest/include/gtest/gtest.h"
11 #include "ui/ozone/platform/wayland/fake_server.h"
12 #include "ui/ozone/platform/wayland/mock_platform_window_delegate.h"
13 #include "ui/ozone/platform/wayland/wayland_display.h"
14 #include "ui/ozone/platform/wayland/wayland_window.h"
15
16 using ::testing::Eq;
17 using ::testing::Mock;
18 using ::testing::SaveArg;
19 using ::testing::StrEq;
20 using ::testing::_;
21
22 namespace ui {
23
24 TEST(WaylandWindowInitializeTest, Initialize) {
25 wl::FakeServer server;
26 ASSERT_TRUE(server.Start());
27
28 WaylandDisplay display;
29 ASSERT_TRUE(display.Initialize());
30
31 MockPlatformWindowDelegate delegate;
32 gfx::AcceleratedWidget widget;
33 EXPECT_CALL(delegate, OnAcceleratedWidgetAvailable(_, _))
34 .WillOnce(SaveArg<0>(&widget));
35
36 WaylandWindow window(&delegate, &display, gfx::Rect(0, 0, 800, 600));
37 ASSERT_TRUE(window.Initialize());
38
39 EXPECT_EQ(widget, window.GetWidget());
40 wl_display_roundtrip(display.display());
41 EXPECT_TRUE(server.GetObject<wl::FakeSurface>(window.GetWidget()));
42 }
43
44 class WaylandWindowTest : public testing::Test {
45 public:
46 WaylandWindowTest()
47 : window(&delegate, &display, gfx::Rect(0, 0, 800, 600)) {}
48
49 void SetUp() override {
50 ASSERT_TRUE(server.Start());
51 ASSERT_TRUE(display.Initialize());
52
53 EXPECT_CALL(delegate, OnAcceleratedWidgetAvailable(_, _));
54 ASSERT_TRUE(window.Initialize());
55
56 wl_display_roundtrip(display.display());
57 surface = server.GetObject<wl::FakeSurface>(window.GetWidget());
58 ASSERT_TRUE(surface);
59 xdg_surface = surface->xdg_surface;
60 ASSERT_TRUE(xdg_surface);
61 xdg_surface->mock = &mock_xdg_surface;
62
63 initialized = true;
64 }
65
66 void TearDown() override {
67 if (initialized)
68 wl_display_roundtrip(display.display());
69 }
70
71 protected:
72 wl::FakeServer server;
73 WaylandDisplay display;
74
75 MockPlatformWindowDelegate delegate;
76 WaylandWindow window;
77
78 wl::FakeSurface* surface;
79 wl::FakeXdgSurface* xdg_surface;
80
81 wl::MockXdgSurface mock_xdg_surface;
82
83 private:
84 bool initialized = false;
85
86 DISALLOW_COPY_AND_ASSIGN(WaylandWindowTest);
87 };
88
89 TEST_F(WaylandWindowTest, SetTitle) {
90 EXPECT_CALL(mock_xdg_surface, SetTitle(StrEq("hello")));
91 window.SetTitle(base::ASCIIToUTF16("hello"));
92 }
93
94 TEST_F(WaylandWindowTest, Maximize) {
95 EXPECT_CALL(mock_xdg_surface, SetMaximized());
96 window.Maximize();
97 }
98
99 TEST_F(WaylandWindowTest, Minimize) {
100 EXPECT_CALL(mock_xdg_surface, SetMinimized());
101 window.Minimize();
102 }
103
104 TEST_F(WaylandWindowTest, Restore) {
105 EXPECT_CALL(mock_xdg_surface, UnsetMaximized());
106 window.Restore();
107 }
108
109 TEST_F(WaylandWindowTest, ConfigureEvent) {
110 wl_array states;
111 wl_array_init(&states);
112 xdg_surface_send_configure(xdg_surface->resource, 1000, 1000, &states, 12);
113 xdg_surface_send_configure(xdg_surface->resource, 1500, 1000, &states, 13);
114
115 // Make sure that the implementation does not call OnBoundsChanged for each
116 // configure event if it receives multiple in a row.
117 EXPECT_CALL(delegate, OnBoundsChanged(_)).Times(0);
118 wl_display_roundtrip(display.display());
119 Mock::VerifyAndClearExpectations(&delegate);
120
121 EXPECT_CALL(delegate, OnBoundsChanged(Eq(gfx::Rect(0, 0, 1500, 1000))));
122 EXPECT_CALL(mock_xdg_surface, AckConfigure(13));
123 window.ApplyPendingBounds();
124 }
125
126 } // namespace ui
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698