Directory: | ./ |
---|---|
File: | autotests/client/layer_shell.cpp |
Date: | 2024-01-22 17:25:27 |
Exec | Total | Coverage | |
---|---|---|---|
Lines: | 314 | 314 | 100.0% |
Branches: | 551 | 1102 | 50.0% |
Line | Branch | Exec | Source |
---|---|---|---|
1 | /* | ||
2 | SPDX-FileCopyrightText: 2021 Roman Gilg <subdiff@gmail.com> | ||
3 | |||
4 | SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only | ||
5 | */ | ||
6 | #include <QtTest> | ||
7 | |||
8 | #include "../../src/client/compositor.h" | ||
9 | #include "../../src/client/connection_thread.h" | ||
10 | #include "../../src/client/event_queue.h" | ||
11 | #include "../../src/client/layer_shell_v1.h" | ||
12 | #include "../../src/client/output.h" | ||
13 | #include "../../src/client/registry.h" | ||
14 | #include "../../src/client/shm_pool.h" | ||
15 | #include "../../src/client/surface.h" | ||
16 | #include "../../src/client/xdg_shell.h" | ||
17 | |||
18 | #include "../../server/buffer.h" | ||
19 | #include "../../server/client.h" | ||
20 | #include "../../server/compositor.h" | ||
21 | #include "../../server/display.h" | ||
22 | #include "../../server/layer_shell_v1.h" | ||
23 | #include "../../server/surface.h" | ||
24 | #include "../../server/xdg_shell.h" | ||
25 | |||
26 | #include "../../tests/globals.h" | ||
27 | |||
28 | namespace Clt = Wrapland::Client; | ||
29 | namespace Srv = Wrapland::Server; | ||
30 | |||
31 | 1 | class layer_shell_test : public QObject | |
32 | { | ||
33 | Q_OBJECT | ||
34 | private Q_SLOTS: | ||
35 | void init(); | ||
36 | void cleanup(); | ||
37 | |||
38 | void test_create_layer_surface(); | ||
39 | void test_data_transfer(); | ||
40 | |||
41 | void test_exclusive_edge_data(); | ||
42 | void test_exclusive_edge(); | ||
43 | |||
44 | void test_margin(); | ||
45 | void test_xdg_popup(); | ||
46 | void test_output_removal(); | ||
47 | |||
48 | private: | ||
49 | 1 | struct { | |
50 | std::unique_ptr<Wrapland::Server::Display> display; | ||
51 | std::unique_ptr<Wrapland::Server::output> output; | ||
52 | Wrapland::Server::globals globals; | ||
53 | } server; | ||
54 | |||
55 | 1 | QThread* m_thread{nullptr}; | |
56 | 1 | Clt::ConnectionThread* connection{nullptr}; | |
57 | 1 | Clt::EventQueue* queue{nullptr}; | |
58 | 1 | Clt::ShmPool* shm{nullptr}; | |
59 | 1 | Clt::Compositor* compositor{nullptr}; | |
60 | 1 | Clt::LayerShellV1* layer_shell{nullptr}; | |
61 | 1 | Clt::XdgShell* xdg_shell{nullptr}; | |
62 | 1 | Clt::Output* output{nullptr}; | |
63 | }; | ||
64 | |||
65 | constexpr auto socket_name{"wrapland-test-layer-shell-0"}; | ||
66 | |||
67 | 10 | void layer_shell_test::init() | |
68 | { | ||
69 | 10 | qRegisterMetaType<Srv::Surface*>(); | |
70 | |||
71 | 10 | server.display = std::make_unique<Wrapland::Server::Display>(); | |
72 |
2/4✓ Branch 0 taken 10 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 10 times.
✗ Branch 3 not taken.
|
10 | server.display->set_socket_name(std::string(socket_name)); |
73 | 10 | server.display->start(); | |
74 |
1/2✓ Branch 0 taken 10 times.
✗ Branch 1 not taken.
|
10 | QVERIFY(server.display->running()); |
75 | |||
76 | 20 | server.globals.output_manager | |
77 | 20 | = std::make_unique<Wrapland::Server::output_manager>(*server.display); | |
78 | 10 | server.display->createShm(); | |
79 | 20 | server.globals.compositor | |
80 | 20 | = std::make_unique<Wrapland::Server::Compositor>(server.display.get()); | |
81 | 20 | server.globals.layer_shell_v1 | |
82 | 20 | = std::make_unique<Wrapland::Server::LayerShellV1>(server.display.get()); | |
83 | 10 | server.globals.xdg_shell = std::make_unique<Wrapland::Server::XdgShell>(server.display.get()); | |
84 | |||
85 | 10 | server.output = std::make_unique<Wrapland::Server::output>(*server.globals.output_manager); | |
86 | 10 | server.output->add_mode({.size = QSize{1920, 1080}, .id = 0}); | |
87 | 10 | auto state = server.output->get_state(); | |
88 | 10 | state.enabled = true; | |
89 | 10 | server.output->set_state(state); | |
90 | 10 | server.output->done(); | |
91 | |||
92 | // setup connection | ||
93 |
1/2✓ Branch 0 taken 10 times.
✗ Branch 1 not taken.
|
10 | connection = new Clt::ConnectionThread; |
94 | 10 | QSignalSpy connectedSpy(connection, &Clt::ConnectionThread::establishedChanged); | |
95 |
3/6✓ Branch 0 taken 10 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 10 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 10 times.
✗ Branch 5 not taken.
|
10 | QVERIFY(connectedSpy.isValid()); |
96 |
2/4✓ Branch 0 taken 10 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 10 times.
✗ Branch 3 not taken.
|
10 | connection->setSocketName(socket_name); |
97 | |||
98 |
2/4✓ Branch 0 taken 10 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 10 times.
✗ Branch 3 not taken.
|
10 | m_thread = new QThread(this); |
99 |
1/2✓ Branch 0 taken 10 times.
✗ Branch 1 not taken.
|
10 | connection->moveToThread(m_thread); |
100 |
1/2✓ Branch 0 taken 10 times.
✗ Branch 1 not taken.
|
10 | m_thread->start(); |
101 | |||
102 |
1/2✓ Branch 0 taken 10 times.
✗ Branch 1 not taken.
|
10 | connection->establishConnection(); |
103 |
6/12✓ Branch 0 taken 10 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 10 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 10 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 10 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 10 times.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✓ Branch 11 taken 10 times.
|
10 | QVERIFY(connectedSpy.count() || connectedSpy.wait()); |
104 |
2/4✓ Branch 0 taken 10 times.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✓ Branch 3 taken 10 times.
|
10 | QCOMPARE(connectedSpy.count(), 1); |
105 | |||
106 |
2/4✓ Branch 0 taken 10 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 10 times.
✗ Branch 3 not taken.
|
10 | queue = new Clt::EventQueue(this); |
107 |
1/2✓ Branch 0 taken 10 times.
✗ Branch 1 not taken.
|
10 | queue->setup(connection); |
108 | |||
109 |
1/2✓ Branch 0 taken 10 times.
✗ Branch 1 not taken.
|
10 | Clt::Registry registry; |
110 |
1/2✓ Branch 0 taken 10 times.
✗ Branch 1 not taken.
|
10 | QSignalSpy output_announced_spy(®istry, &Clt::Registry::outputAnnounced); |
111 |
3/6✓ Branch 0 taken 10 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 10 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 10 times.
✗ Branch 5 not taken.
|
10 | QVERIFY(output_announced_spy.isValid()); |
112 |
1/2✓ Branch 0 taken 10 times.
✗ Branch 1 not taken.
|
10 | QSignalSpy interfaces_announced_spy(®istry, &Clt::Registry::interfacesAnnounced); |
113 |
3/6✓ Branch 0 taken 10 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 10 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 10 times.
✗ Branch 5 not taken.
|
10 | QVERIFY(interfaces_announced_spy.isValid()); |
114 | |||
115 |
1/2✓ Branch 0 taken 10 times.
✗ Branch 1 not taken.
|
10 | registry.setEventQueue(queue); |
116 |
1/2✓ Branch 0 taken 10 times.
✗ Branch 1 not taken.
|
10 | registry.create(connection); |
117 |
3/6✓ Branch 0 taken 10 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 10 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 10 times.
✗ Branch 5 not taken.
|
10 | QVERIFY(registry.isValid()); |
118 |
1/2✓ Branch 0 taken 10 times.
✗ Branch 1 not taken.
|
10 | registry.setup(); |
119 |
5/10✓ Branch 0 taken 10 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 10 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 10 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 10 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✓ Branch 9 taken 10 times.
|
10 | QVERIFY(interfaces_announced_spy.wait()); |
120 | |||
121 |
2/4✓ Branch 0 taken 10 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 10 times.
✗ Branch 3 not taken.
|
10 | shm = registry.createShmPool(registry.interface(Clt::Registry::Interface::Shm).name, |
122 |
1/2✓ Branch 0 taken 10 times.
✗ Branch 1 not taken.
|
10 | registry.interface(Clt::Registry::Interface::Shm).version, |
123 | this); | ||
124 |
3/6✓ Branch 0 taken 10 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 10 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 10 times.
✗ Branch 5 not taken.
|
10 | QVERIFY(shm->isValid()); |
125 |
1/2✓ Branch 0 taken 10 times.
✗ Branch 1 not taken.
|
10 | compositor = registry.createCompositor( |
126 |
1/2✓ Branch 0 taken 10 times.
✗ Branch 1 not taken.
|
10 | registry.interface(Clt::Registry::Interface::Compositor).name, |
127 |
1/2✓ Branch 0 taken 10 times.
✗ Branch 1 not taken.
|
10 | registry.interface(Clt::Registry::Interface::Compositor).version, |
128 | this); | ||
129 |
3/6✓ Branch 0 taken 10 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 10 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 10 times.
✗ Branch 5 not taken.
|
10 | QVERIFY(compositor->isValid()); |
130 |
1/2✓ Branch 0 taken 10 times.
✗ Branch 1 not taken.
|
10 | layer_shell = registry.createLayerShellV1( |
131 |
1/2✓ Branch 0 taken 10 times.
✗ Branch 1 not taken.
|
10 | registry.interface(Clt::Registry::Interface::LayerShellV1).name, |
132 |
1/2✓ Branch 0 taken 10 times.
✗ Branch 1 not taken.
|
10 | registry.interface(Clt::Registry::Interface::LayerShellV1).version, |
133 | this); | ||
134 |
3/6✓ Branch 0 taken 10 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 10 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 10 times.
✗ Branch 5 not taken.
|
10 | QVERIFY(layer_shell->isValid()); |
135 | 10 | xdg_shell | |
136 |
2/4✓ Branch 0 taken 10 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 10 times.
✗ Branch 3 not taken.
|
10 | = registry.createXdgShell(registry.interface(Clt::Registry::Interface::XdgShell).name, |
137 |
1/2✓ Branch 0 taken 10 times.
✗ Branch 1 not taken.
|
10 | registry.interface(Clt::Registry::Interface::XdgShell).version, |
138 | this); | ||
139 |
3/6✓ Branch 0 taken 10 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 10 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 10 times.
✗ Branch 5 not taken.
|
10 | QVERIFY(xdg_shell->isValid()); |
140 |
4/8✓ Branch 0 taken 10 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 10 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 10 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 10 times.
✗ Branch 7 not taken.
|
20 | output = registry.createOutput(output_announced_spy.first().first().value<quint32>(), |
141 |
3/6✓ Branch 0 taken 10 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 10 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 10 times.
✗ Branch 5 not taken.
|
10 | output_announced_spy.first().last().value<quint32>(), |
142 | this); | ||
143 |
3/6✓ Branch 0 taken 10 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 10 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 10 times.
✗ Branch 5 not taken.
|
10 | QVERIFY(output->isValid()); |
144 |
1/2✗ Branch 0 not taken.
✓ Branch 1 taken 10 times.
|
10 | } |
145 | |||
146 | 10 | void layer_shell_test::cleanup() | |
147 | { | ||
148 | #define CLEANUP(variable) \ | ||
149 | if (variable) { \ | ||
150 | delete variable; \ | ||
151 | variable = nullptr; \ | ||
152 | } | ||
153 |
2/4✗ Branch 0 not taken.
✓ Branch 1 taken 10 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 10 times.
|
10 | CLEANUP(shm) |
154 |
2/4✗ Branch 0 not taken.
✓ Branch 1 taken 10 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 10 times.
|
10 | CLEANUP(compositor) |
155 |
2/4✗ Branch 0 not taken.
✓ Branch 1 taken 10 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 10 times.
|
10 | CLEANUP(layer_shell) |
156 |
2/4✗ Branch 0 not taken.
✓ Branch 1 taken 10 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 10 times.
|
10 | CLEANUP(xdg_shell) |
157 |
2/4✗ Branch 0 not taken.
✓ Branch 1 taken 10 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 10 times.
|
10 | CLEANUP(output) |
158 |
2/4✗ Branch 0 not taken.
✓ Branch 1 taken 10 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 10 times.
|
10 | CLEANUP(queue) |
159 |
1/2✗ Branch 0 not taken.
✓ Branch 1 taken 10 times.
|
10 | if (connection) { |
160 | 10 | connection->deleteLater(); | |
161 | 10 | connection = nullptr; | |
162 | 10 | } | |
163 |
1/2✗ Branch 0 not taken.
✓ Branch 1 taken 10 times.
|
10 | if (m_thread) { |
164 | 10 | m_thread->quit(); | |
165 | 10 | m_thread->wait(); | |
166 |
1/2✗ Branch 0 not taken.
✓ Branch 1 taken 10 times.
|
10 | delete m_thread; |
167 | 10 | m_thread = nullptr; | |
168 | 10 | } | |
169 | #undef CLEANUP | ||
170 | |||
171 |
1/2✓ Branch 0 taken 10 times.
✗ Branch 1 not taken.
|
10 | server = {}; |
172 | 10 | } | |
173 | |||
174 | 1 | void layer_shell_test::test_create_layer_surface() | |
175 | { | ||
176 | // This test verifies that a layer surface can be created and communicates. | ||
177 | 1 | QSignalSpy server_surface_spy(server.globals.compositor.get(), | |
178 | &Srv::Compositor::surfaceCreated); | ||
179 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | QVERIFY(server_surface_spy.isValid()); |
180 | |||
181 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | std::unique_ptr<Clt::Surface> surface{compositor->createSurface()}; |
182 |
5/10✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✓ Branch 9 taken 1 times.
|
1 | QVERIFY(server_surface_spy.wait()); |
183 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | auto server_surface = server_surface_spy.first().first().value<Srv::Surface*>(); |
184 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
1 | QVERIFY(server_surface); |
185 | |||
186 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | QSignalSpy layer_surface_spy(server.globals.layer_shell_v1.get(), |
187 | &Srv::LayerShellV1::surface_created); | ||
188 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | QVERIFY(layer_surface_spy.isValid()); |
189 | |||
190 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | std::unique_ptr<Clt::LayerSurfaceV1> layer_surface{layer_shell->get_layer_surface( |
191 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | surface.get(), nullptr, Clt::LayerShellV1::layer::background, "")}; |
192 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | layer_surface->set_size(QSize(1, 1)); |
193 | |||
194 |
5/10✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✓ Branch 9 taken 1 times.
|
1 | QVERIFY(layer_surface_spy.wait()); |
195 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | auto server_layer_surface = layer_surface_spy.first().first().value<Srv::LayerSurfaceV1*>(); |
196 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
1 | QVERIFY(server_layer_surface); |
197 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | QCOMPARE(server_layer_surface->surface(), server_surface); |
198 | |||
199 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | QSignalSpy commit_spy(server_surface, &Srv::Surface::committed); |
200 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | QVERIFY(commit_spy.isValid()); |
201 | |||
202 | // Now do a first commit according to protocol. | ||
203 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | surface->commit(Clt::Surface::CommitFlag::None); |
204 |
5/10✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✓ Branch 9 taken 1 times.
|
1 | QVERIFY(commit_spy.wait()); |
205 | |||
206 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | QSignalSpy configure_spy(layer_surface.get(), &Clt::LayerSurfaceV1::configure_requested); |
207 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | QVERIFY(configure_spy.isValid()); |
208 | |||
209 | // Server replies with configure event. | ||
210 | 1 | auto const size = QSize(100, 100); | |
211 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | server_layer_surface->configure(size); |
212 |
5/10✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✓ Branch 9 taken 1 times.
|
1 | QVERIFY(configure_spy.wait()); |
213 |
5/10✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✓ Branch 9 taken 1 times.
|
1 | QCOMPARE(configure_spy.first().first().value<QSize>(), size); |
214 | |||
215 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | auto const serial = configure_spy.first().last().value<quint32>(); |
216 | |||
217 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | QSignalSpy ack_configure_spy(server_layer_surface, |
218 | &Srv::LayerSurfaceV1::configure_acknowledged); | ||
219 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | QVERIFY(ack_configure_spy.isValid()); |
220 | |||
221 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | QImage img(size, QImage::Format_ARGB32_Premultiplied); |
222 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | img.fill(Qt::black); |
223 | |||
224 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | auto buf = shm->createBuffer(img); |
225 |
1/2✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
|
1 | surface->attachBuffer(buf); |
226 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | surface->damage(QRect(QPoint(), size)); |
227 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | layer_surface->ack_configure(serial); |
228 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | surface->commit(Clt::Surface::CommitFlag::None); |
229 | |||
230 |
5/10✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✓ Branch 9 taken 1 times.
|
1 | QVERIFY(commit_spy.wait()); |
231 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✓ Branch 3 taken 1 times.
|
1 | QCOMPARE(ack_configure_spy.size(), 1); |
232 |
5/10✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 1 times.
✗ Branch 9 not taken.
|
1 | QCOMPARE(ack_configure_spy.first().first().value<quint32>(), serial); |
233 |
1/2✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
|
1 | } |
234 | |||
235 | 1 | void layer_shell_test::test_data_transfer() | |
236 | { | ||
237 | // Tests that basic data is set and received. | ||
238 | 1 | QSignalSpy server_surface_spy(server.globals.compositor.get(), | |
239 | &Srv::Compositor::surfaceCreated); | ||
240 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | QVERIFY(server_surface_spy.isValid()); |
241 | |||
242 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | std::unique_ptr<Clt::Surface> surface{compositor->createSurface()}; |
243 |
5/10✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✓ Branch 9 taken 1 times.
|
1 | QVERIFY(server_surface_spy.wait()); |
244 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | auto server_surface = server_surface_spy.first().first().value<Srv::Surface*>(); |
245 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
1 | QVERIFY(server_surface); |
246 | |||
247 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | QSignalSpy layer_surface_spy(server.globals.layer_shell_v1.get(), |
248 | &Srv::LayerShellV1::surface_created); | ||
249 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | QVERIFY(layer_surface_spy.isValid()); |
250 | |||
251 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | std::unique_ptr<Clt::LayerSurfaceV1> layer_surface{layer_shell->get_layer_surface( |
252 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | surface.get(), output, Clt::LayerShellV1::layer::background, "")}; |
253 | |||
254 |
5/10✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✓ Branch 9 taken 1 times.
|
1 | QVERIFY(layer_surface_spy.wait()); |
255 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | auto server_layer_surface = layer_surface_spy.first().first().value<Srv::LayerSurfaceV1*>(); |
256 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
1 | QVERIFY(server_layer_surface); |
257 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | QCOMPARE(server_layer_surface->surface(), server_surface); |
258 | |||
259 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | layer_surface->set_anchor(Qt::LeftEdge); |
260 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | layer_surface->set_exclusive_zone(10); |
261 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | layer_surface->set_keyboard_interactivity(Clt::LayerShellV1::keyboard_interactivity::on_demand); |
262 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | layer_surface->set_layer(Clt::LayerShellV1::layer::top); |
263 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | layer_surface->set_margin(QMargins(1, 0, 0, 0)); |
264 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | layer_surface->set_size(QSize(100, 100)); |
265 | |||
266 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | QSignalSpy commit_spy(server_surface, &Srv::Surface::committed); |
267 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | QVERIFY(commit_spy.isValid()); |
268 | |||
269 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | surface->commit(Clt::Surface::CommitFlag::None); |
270 |
5/10✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✓ Branch 9 taken 1 times.
|
1 | QVERIFY(commit_spy.wait()); |
271 | |||
272 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | QCOMPARE(server_layer_surface->output(), server.output.get()); |
273 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 1 times.
|
1 | QCOMPARE(server_layer_surface->anchor(), Qt::LeftEdge); |
274 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | QCOMPARE(server_layer_surface->exclusive_zone(), 10); |
275 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 1 times.
|
1 | QCOMPARE(server_layer_surface->layer(), Srv::LayerSurfaceV1::Layer::Top); |
276 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 1 times.
|
1 | QCOMPARE(server_layer_surface->margins(), QMargins(1, 0, 0, 0)); |
277 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 1 times.
|
1 | QCOMPARE(server_layer_surface->size(), QSize(100, 100)); |
278 |
1/2✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
|
1 | } |
279 | |||
280 | 1 | void layer_shell_test::test_exclusive_edge_data() | |
281 | { | ||
282 | 1 | QTest::addColumn<Qt::Edges>("anchor"); | |
283 | 1 | QTest::addColumn<Qt::Edge>("excl_anchor"); | |
284 | 1 | QTest::addColumn<int>("zone"); | |
285 | |||
286 | 1 | QTest::newRow("single") << Qt::Edges(Qt::LeftEdge) << Qt::LeftEdge << 1; | |
287 | 1 | QTest::newRow("horizontal") << (Qt::LeftEdge | Qt::RightEdge) << Qt::Edge() << 0; | |
288 | 1 | QTest::newRow("vertical") << (Qt::TopEdge | Qt::BottomEdge) << Qt::Edge() << 0; | |
289 | 1 | QTest::newRow("orthogonal") << (Qt::LeftEdge | Qt::BottomEdge) << Qt::Edge() << 0; | |
290 | 1 | QTest::newRow("3-way") << (Qt::LeftEdge | Qt::BottomEdge | Qt::RightEdge) << Qt::BottomEdge | |
291 | 1 | << 1; | |
292 | 1 | } | |
293 | |||
294 | 5 | void layer_shell_test::test_exclusive_edge() | |
295 | { | ||
296 | // Tests that the exclusive edge is correctly set. | ||
297 | 5 | QSignalSpy server_surface_spy(server.globals.compositor.get(), | |
298 | &Srv::Compositor::surfaceCreated); | ||
299 |
3/6✓ Branch 0 taken 5 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 5 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 5 times.
✗ Branch 5 not taken.
|
5 | QVERIFY(server_surface_spy.isValid()); |
300 | |||
301 |
1/2✓ Branch 0 taken 5 times.
✗ Branch 1 not taken.
|
5 | std::unique_ptr<Clt::Surface> surface{compositor->createSurface()}; |
302 |
5/10✓ Branch 0 taken 5 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 5 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 5 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 5 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✓ Branch 9 taken 5 times.
|
5 | QVERIFY(server_surface_spy.wait()); |
303 |
3/6✓ Branch 0 taken 5 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 5 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 5 times.
✗ Branch 5 not taken.
|
5 | auto server_surface = server_surface_spy.first().first().value<Srv::Surface*>(); |
304 |
2/4✓ Branch 0 taken 5 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 5 times.
✗ Branch 3 not taken.
|
5 | QVERIFY(server_surface); |
305 | |||
306 |
1/2✓ Branch 0 taken 5 times.
✗ Branch 1 not taken.
|
5 | QSignalSpy layer_surface_spy(server.globals.layer_shell_v1.get(), |
307 | &Srv::LayerShellV1::surface_created); | ||
308 |
3/6✓ Branch 0 taken 5 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 5 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 5 times.
✗ Branch 5 not taken.
|
5 | QVERIFY(layer_surface_spy.isValid()); |
309 | |||
310 |
1/2✓ Branch 0 taken 5 times.
✗ Branch 1 not taken.
|
5 | std::unique_ptr<Clt::LayerSurfaceV1> layer_surface{layer_shell->get_layer_surface( |
311 |
1/2✓ Branch 0 taken 5 times.
✗ Branch 1 not taken.
|
5 | surface.get(), nullptr, Clt::LayerShellV1::layer::background, "")}; |
312 | |||
313 |
5/10✓ Branch 0 taken 5 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 5 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 5 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 5 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✓ Branch 9 taken 5 times.
|
5 | QVERIFY(layer_surface_spy.wait()); |
314 |
3/6✓ Branch 0 taken 5 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 5 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 5 times.
✗ Branch 5 not taken.
|
5 | auto server_layer_surface = layer_surface_spy.first().first().value<Srv::LayerSurfaceV1*>(); |
315 |
2/4✓ Branch 0 taken 5 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 5 times.
✗ Branch 3 not taken.
|
5 | QVERIFY(server_layer_surface); |
316 |
3/6✓ Branch 0 taken 5 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 5 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 5 times.
✗ Branch 5 not taken.
|
5 | QCOMPARE(server_layer_surface->surface(), server_surface); |
317 | |||
318 |
2/4✓ Branch 0 taken 5 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 5 times.
✗ Branch 3 not taken.
|
5 | QFETCH(Qt::Edges, anchor); |
319 |
1/2✓ Branch 0 taken 5 times.
✗ Branch 1 not taken.
|
5 | layer_surface->set_anchor(anchor); |
320 |
1/2✓ Branch 0 taken 5 times.
✗ Branch 1 not taken.
|
5 | layer_surface->set_size(QSize(1, 1)); |
321 | |||
322 | // Exclusive zone set to -1 should always produce the value. | ||
323 |
1/2✓ Branch 0 taken 5 times.
✗ Branch 1 not taken.
|
5 | layer_surface->set_exclusive_zone(-1); |
324 | |||
325 |
3/6✓ Branch 0 taken 5 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 5 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 5 times.
✗ Branch 5 not taken.
|
5 | QCOMPARE(server_layer_surface->exclusive_zone(), 0); |
326 | |||
327 |
1/2✓ Branch 0 taken 5 times.
✗ Branch 1 not taken.
|
5 | QSignalSpy commit_spy(server_surface, &Srv::Surface::committed); |
328 |
3/6✓ Branch 0 taken 5 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 5 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 5 times.
✗ Branch 5 not taken.
|
5 | QVERIFY(commit_spy.isValid()); |
329 | |||
330 |
1/2✓ Branch 0 taken 5 times.
✗ Branch 1 not taken.
|
5 | surface->commit(Clt::Surface::CommitFlag::None); |
331 |
5/10✓ Branch 0 taken 5 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 5 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 5 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 5 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✓ Branch 9 taken 5 times.
|
5 | QVERIFY(commit_spy.wait()); |
332 | |||
333 |
3/6✓ Branch 0 taken 5 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 5 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 5 times.
|
5 | QCOMPARE(server_layer_surface->exclusive_edge(), Qt::Edge()); |
334 |
3/6✓ Branch 0 taken 5 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 5 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 5 times.
✗ Branch 5 not taken.
|
5 | QCOMPARE(server_layer_surface->exclusive_zone(), -1); |
335 | |||
336 |
1/2✓ Branch 0 taken 5 times.
✗ Branch 1 not taken.
|
5 | layer_surface->set_exclusive_zone(1); |
337 |
1/2✓ Branch 0 taken 5 times.
✗ Branch 1 not taken.
|
5 | surface->commit(Clt::Surface::CommitFlag::None); |
338 |
5/10✓ Branch 0 taken 5 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 5 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 5 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 5 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✓ Branch 9 taken 5 times.
|
5 | QVERIFY(commit_spy.wait()); |
339 | |||
340 |
2/4✓ Branch 0 taken 5 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 5 times.
✗ Branch 3 not taken.
|
5 | QFETCH(Qt::Edge, excl_anchor); |
341 |
2/4✓ Branch 0 taken 5 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 5 times.
✗ Branch 3 not taken.
|
5 | QFETCH(int, zone); |
342 |
3/6✓ Branch 0 taken 5 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 5 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 5 times.
|
5 | QCOMPARE(server_layer_surface->exclusive_edge(), excl_anchor); |
343 |
3/6✓ Branch 0 taken 5 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 5 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 5 times.
✗ Branch 5 not taken.
|
5 | QCOMPARE(server_layer_surface->exclusive_zone(), zone); |
344 |
1/2✗ Branch 0 not taken.
✓ Branch 1 taken 5 times.
|
5 | } |
345 | |||
346 | 1 | void layer_shell_test::test_margin() | |
347 | { | ||
348 | // Tests that margins are set and unset according to the anchor. | ||
349 | 1 | QSignalSpy server_surface_spy(server.globals.compositor.get(), | |
350 | &Srv::Compositor::surfaceCreated); | ||
351 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | QVERIFY(server_surface_spy.isValid()); |
352 | |||
353 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | std::unique_ptr<Clt::Surface> surface{compositor->createSurface()}; |
354 |
5/10✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✓ Branch 9 taken 1 times.
|
1 | QVERIFY(server_surface_spy.wait()); |
355 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | auto server_surface = server_surface_spy.first().first().value<Srv::Surface*>(); |
356 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
1 | QVERIFY(server_surface); |
357 | |||
358 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | QSignalSpy layer_surface_spy(server.globals.layer_shell_v1.get(), |
359 | &Srv::LayerShellV1::surface_created); | ||
360 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | QVERIFY(layer_surface_spy.isValid()); |
361 | |||
362 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | std::unique_ptr<Clt::LayerSurfaceV1> layer_surface{layer_shell->get_layer_surface( |
363 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | surface.get(), nullptr, Clt::LayerShellV1::layer::background, "")}; |
364 | |||
365 |
5/10✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✓ Branch 9 taken 1 times.
|
1 | QVERIFY(layer_surface_spy.wait()); |
366 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | auto server_layer_surface = layer_surface_spy.first().first().value<Srv::LayerSurfaceV1*>(); |
367 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
1 | QVERIFY(server_layer_surface); |
368 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | QCOMPARE(server_layer_surface->surface(), server_surface); |
369 | |||
370 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | layer_surface->set_anchor(Qt::LeftEdge | Qt::RightEdge); |
371 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | layer_surface->set_size(QSize(1, 1)); |
372 | |||
373 | // Exclusive zone set to -1 should always produce the value. | ||
374 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | layer_surface->set_margin(QMargins(1, 2, 3, 4)); |
375 | |||
376 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 1 times.
|
1 | QCOMPARE(server_layer_surface->margins(), QMargins()); |
377 | |||
378 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | QSignalSpy commit_spy(server_surface, &Srv::Surface::committed); |
379 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | QVERIFY(commit_spy.isValid()); |
380 | |||
381 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | surface->commit(Clt::Surface::CommitFlag::None); |
382 |
5/10✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✓ Branch 9 taken 1 times.
|
1 | QVERIFY(commit_spy.wait()); |
383 | |||
384 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 1 times.
|
1 | QCOMPARE(server_layer_surface->margins(), QMargins(1, 0, 3, 0)); |
385 | |||
386 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | layer_surface->set_margin(QMargins(11, 12, 13, 14)); |
387 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | surface->commit(Clt::Surface::CommitFlag::None); |
388 |
5/10✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✓ Branch 9 taken 1 times.
|
1 | QVERIFY(commit_spy.wait()); |
389 | |||
390 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 1 times.
|
1 | QCOMPARE(server_layer_surface->margins(), QMargins(11, 0, 13, 0)); |
391 | |||
392 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | layer_surface->set_anchor(Qt::TopEdge); |
393 | |||
394 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | surface->commit(Clt::Surface::CommitFlag::None); |
395 |
5/10✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✓ Branch 9 taken 1 times.
|
1 | QVERIFY(commit_spy.wait()); |
396 | |||
397 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 1 times.
|
1 | QCOMPARE(server_layer_surface->margins(), QMargins(0, 12, 0, 0)); |
398 |
1/2✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
|
1 | } |
399 | |||
400 | 1 | void layer_shell_test::test_xdg_popup() | |
401 | { | ||
402 | // Tests setting the layer surface as parent to an xdg-popup. | ||
403 | 1 | QSignalSpy server_surface_spy(server.globals.compositor.get(), | |
404 | &Srv::Compositor::surfaceCreated); | ||
405 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | QVERIFY(server_surface_spy.isValid()); |
406 | |||
407 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | std::unique_ptr<Clt::Surface> surface{compositor->createSurface()}; |
408 |
5/10✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✓ Branch 9 taken 1 times.
|
1 | QVERIFY(server_surface_spy.wait()); |
409 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | auto server_surface = server_surface_spy.first().first().value<Srv::Surface*>(); |
410 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
1 | QVERIFY(server_surface); |
411 | |||
412 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | QSignalSpy layer_surface_spy(server.globals.layer_shell_v1.get(), |
413 | &Srv::LayerShellV1::surface_created); | ||
414 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | QVERIFY(layer_surface_spy.isValid()); |
415 | |||
416 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | std::unique_ptr<Clt::LayerSurfaceV1> layer_surface{layer_shell->get_layer_surface( |
417 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | surface.get(), nullptr, Clt::LayerShellV1::layer::background, "")}; |
418 | |||
419 |
5/10✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✓ Branch 9 taken 1 times.
|
1 | QVERIFY(layer_surface_spy.wait()); |
420 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | auto server_layer_surface = layer_surface_spy.first().first().value<Srv::LayerSurfaceV1*>(); |
421 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
1 | QVERIFY(server_layer_surface); |
422 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | QCOMPARE(server_layer_surface->surface(), server_surface); |
423 | |||
424 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | QSignalSpy popup_created_spy(server.globals.xdg_shell.get(), &Srv::XdgShell::popupCreated); |
425 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | QVERIFY(popup_created_spy.isValid()); |
426 | |||
427 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | std::unique_ptr<Clt::Surface> popup_surface{compositor->createSurface()}; |
428 | 1 | Clt::xdg_shell_positioner_data positioner_data; | |
429 | 1 | positioner_data.size = QSize(10, 10); | |
430 | 1 | positioner_data.anchor.rect = QRect(100, 100, 50, 50); | |
431 | |||
432 | // Now create the popup. | ||
433 | 1 | std::unique_ptr<Clt::XdgShellPopup> xdg_popup{ | |
434 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | xdg_shell->create_popup(popup_surface.get(), positioner_data)}; |
435 |
5/10✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✓ Branch 9 taken 1 times.
|
1 | QVERIFY(popup_created_spy.wait()); |
436 | |||
437 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | auto server_xdg_popup = popup_created_spy.first().first().value<Srv::XdgShellPopup*>(); |
438 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
1 | QVERIFY(server_xdg_popup); |
439 | |||
440 | // Get the popup on the layer surface. | ||
441 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | QSignalSpy got_popup_spy(server_layer_surface, &Srv::LayerSurfaceV1::got_popup); |
442 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | QVERIFY(got_popup_spy.isValid()); |
443 | |||
444 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | layer_surface->get_popup(xdg_popup.get()); |
445 |
5/10✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✓ Branch 9 taken 1 times.
|
1 | QVERIFY(got_popup_spy.wait()); |
446 |
5/10✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 1 times.
✗ Branch 9 not taken.
|
1 | QCOMPARE(got_popup_spy.first().first().value<Srv::XdgShellPopup*>(), server_xdg_popup); |
447 |
1/2✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
|
1 | } |
448 | |||
449 | 1 | void layer_shell_test::test_output_removal() | |
450 | { | ||
451 | // This test verifies that a layer surface is closed once the associated output is removed. | ||
452 | 1 | QSignalSpy server_surface_spy(server.globals.compositor.get(), | |
453 | &Srv::Compositor::surfaceCreated); | ||
454 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | QVERIFY(server_surface_spy.isValid()); |
455 | |||
456 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | std::unique_ptr<Clt::Surface> surface{compositor->createSurface()}; |
457 |
5/10✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✓ Branch 9 taken 1 times.
|
1 | QVERIFY(server_surface_spy.wait()); |
458 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | auto server_surface = server_surface_spy.first().first().value<Srv::Surface*>(); |
459 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
1 | QVERIFY(server_surface); |
460 | |||
461 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | QSignalSpy layer_surface_spy(server.globals.layer_shell_v1.get(), |
462 | &Srv::LayerShellV1::surface_created); | ||
463 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | QVERIFY(layer_surface_spy.isValid()); |
464 | |||
465 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | std::unique_ptr<Clt::LayerSurfaceV1> layer_surface{layer_shell->get_layer_surface( |
466 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | surface.get(), output, Clt::LayerShellV1::layer::background, "")}; |
467 | 1 | auto const size = QSize(100, 100); | |
468 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | layer_surface->set_size(size); |
469 | |||
470 |
5/10✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✓ Branch 9 taken 1 times.
|
1 | QVERIFY(layer_surface_spy.wait()); |
471 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | auto server_layer_surface = layer_surface_spy.first().first().value<Srv::LayerSurfaceV1*>(); |
472 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
1 | QVERIFY(server_layer_surface); |
473 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | QCOMPARE(server_layer_surface->surface(), server_surface); |
474 | |||
475 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | QSignalSpy commit_spy(server_surface, &Srv::Surface::committed); |
476 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | QVERIFY(commit_spy.isValid()); |
477 | |||
478 | // Now do a first commit according to protocol. | ||
479 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | surface->commit(Clt::Surface::CommitFlag::None); |
480 |
5/10✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✓ Branch 9 taken 1 times.
|
1 | QVERIFY(commit_spy.wait()); |
481 | |||
482 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | QSignalSpy configure_spy(layer_surface.get(), &Clt::LayerSurfaceV1::configure_requested); |
483 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | QVERIFY(configure_spy.isValid()); |
484 | |||
485 | // Server replies with configure event. | ||
486 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | server_layer_surface->configure(size); |
487 |
5/10✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✓ Branch 9 taken 1 times.
|
1 | QVERIFY(configure_spy.wait()); |
488 |
5/10✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✓ Branch 9 taken 1 times.
|
1 | QCOMPARE(configure_spy.first().first().value<QSize>(), size); |
489 | |||
490 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | QImage img(size, QImage::Format_ARGB32_Premultiplied); |
491 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | img.fill(Qt::black); |
492 | |||
493 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | auto buf = shm->createBuffer(img); |
494 |
1/2✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
|
1 | surface->attachBuffer(buf); |
495 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | surface->damage(QRect(QPoint(), size)); |
496 |
4/8✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
|
1 | layer_surface->ack_configure(configure_spy.first().last().value<quint32>()); |
497 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | surface->commit(Clt::Surface::CommitFlag::None); |
498 | |||
499 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | QSignalSpy closed_spy(layer_surface.get(), &Clt::LayerSurfaceV1::closed); |
500 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | QVERIFY(closed_spy.isValid()); |
501 | |||
502 | // Now destroy output. | ||
503 | 1 | server.output.reset(); | |
504 | |||
505 |
5/10✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✓ Branch 9 taken 1 times.
|
1 | QVERIFY(closed_spy.wait()); |
506 | |||
507 | // Later commits are dropped. | ||
508 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | surface->damage(QRect(QPoint(), size)); |
509 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | surface->commit(Clt::Surface::CommitFlag::None); |
510 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | QVERIFY(!commit_spy.wait(100)); |
511 |
1/2✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
|
1 | } |
512 | |||
513 |
4/8✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
|
1 | QTEST_GUILESS_MAIN(layer_shell_test) |
514 | #include "layer_shell.moc" | ||
515 |