GCC Code Coverage Report


Directory: ./
File: autotests/client/plasma_virtual_desktop.cpp
Date: 2024-01-22 17:25:27
Exec Total Coverage
Lines: 328 328 100.0%
Branches: 691 1472 46.9%

Line Branch Exec Source
1 /********************************************************************
2 Copyright 2018 Marco Martin <mart@kde.org>
3
4 This library is free software; you can redistribute it and/or
5 modify it under the terms of the GNU Lesser General Public
6 License as published by the Free Software Foundation; either
7 version 2.1 of the License, or (at your option) version 3, or any
8 later version accepted by the membership of KDE e.V. (or its
9 successor approved by the membership of KDE e.V.), which shall
10 act as a proxy defined in Section 6 of version 3 of the license.
11
12 This library is distributed in the hope that it will be useful,
13 but WITHOUT ANY WARRANTY; without even the implied warranty of
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15 Lesser General Public License for more details.
16
17 You should have received a copy of the GNU Lesser General Public
18 License along with this library. If not, see <http://www.gnu.org/licenses/>.
19 *********************************************************************/
20 #include <QtTest>
21
22 #include "../../src/client/compositor.h"
23 #include "../../src/client/connection_thread.h"
24 #include "../../src/client/event_queue.h"
25 #include "../../src/client/plasmavirtualdesktop.h"
26 #include "../../src/client/plasmawindowmanagement.h"
27 #include "../../src/client/region.h"
28 #include "../../src/client/registry.h"
29 #include "../../src/client/surface.h"
30
31 #include "../../server/compositor.h"
32 #include "../../server/display.h"
33 #include "../../server/plasma_virtual_desktop.h"
34 #include "../../server/plasma_window.h"
35 #include "../../server/region.h"
36
37 #include "../../tests/globals.h"
38
39 class TestVirtualDesktop : public QObject
40 {
41 Q_OBJECT
42 public:
43 explicit TestVirtualDesktop(QObject* parent = nullptr);
44 private Q_SLOTS:
45 void init();
46 void cleanup();
47
48 void testCreate();
49 void testSetRows();
50 void testConnectNewClient();
51 void testDestroy();
52 void testActivate();
53
54 void testEnterLeaveDesktop();
55 void testAllDesktops();
56 void testCreateRequested();
57 void testRemoveRequested();
58
59 private:
60 1 struct {
61 std::unique_ptr<Wrapland::Server::Display> display;
62 Wrapland::Server::globals globals;
63 1 Wrapland::Server::PlasmaWindow* plasma_window{nullptr};
64 1 Wrapland::Server::PlasmaVirtualDesktopManager* plasma_vd{nullptr};
65 } server;
66
67 Wrapland::Client::ConnectionThread* m_connection;
68 Wrapland::Client::Compositor* m_compositor;
69 Wrapland::Client::PlasmaVirtualDesktopManagement* m_plasmaVirtualDesktopManagement;
70 Wrapland::Client::EventQueue* m_queue;
71 Wrapland::Client::PlasmaWindowManagement* m_windowManagement;
72 Wrapland::Client::PlasmaWindow* m_window;
73
74 QThread* m_thread;
75 };
76
77 constexpr auto socket_name{"wrapland-test-wayland-virtual-desktop-0"};
78
79
2/4
✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
2 TestVirtualDesktop::TestVirtualDesktop(QObject* parent)
80 1 : QObject(parent)
81 1 , m_connection(nullptr)
82 1 , m_compositor(nullptr)
83 1 , m_queue(nullptr)
84 1 , m_thread(nullptr)
85 1 {
86
1/2
✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
1 qRegisterMetaType<uint32_t>();
87 1 }
88
89 9 void TestVirtualDesktop::init()
90 {
91 9 server.display = std::make_unique<Wrapland::Server::Display>();
92
2/4
✓ Branch 0 taken 9 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 9 times.
✗ Branch 3 not taken.
9 server.display->set_socket_name(socket_name);
93 9 server.display->start();
94
1/2
✓ Branch 0 taken 9 times.
✗ Branch 1 not taken.
9 QVERIFY(server.display->running());
95
96 // setup connection
97
1/2
✓ Branch 0 taken 9 times.
✗ Branch 1 not taken.
9 m_connection = new Wrapland::Client::ConnectionThread;
98 9 QSignalSpy connectedSpy(m_connection, &Wrapland::Client::ConnectionThread::establishedChanged);
99
3/6
✓ Branch 0 taken 9 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 9 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 9 times.
✗ Branch 5 not taken.
9 QVERIFY(connectedSpy.isValid());
100
2/4
✓ Branch 0 taken 9 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 9 times.
✗ Branch 3 not taken.
9 m_connection->setSocketName(socket_name);
101
102
2/4
✓ Branch 0 taken 9 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 9 times.
✗ Branch 3 not taken.
9 m_thread = new QThread(this);
103
1/2
✓ Branch 0 taken 9 times.
✗ Branch 1 not taken.
9 m_connection->moveToThread(m_thread);
104
1/2
✓ Branch 0 taken 9 times.
✗ Branch 1 not taken.
9 m_thread->start();
105
106
1/2
✓ Branch 0 taken 9 times.
✗ Branch 1 not taken.
9 m_connection->establishConnection();
107
6/12
✓ Branch 0 taken 9 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 9 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 9 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 9 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 9 times.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✓ Branch 11 taken 9 times.
9 QVERIFY(connectedSpy.count() || connectedSpy.wait());
108
2/4
✓ Branch 0 taken 9 times.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✓ Branch 3 taken 9 times.
9 QCOMPARE(connectedSpy.count(), 1);
109
110
2/4
✓ Branch 0 taken 9 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 9 times.
✗ Branch 3 not taken.
9 m_queue = new Wrapland::Client::EventQueue(this);
111
3/6
✓ Branch 0 taken 9 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 9 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 9 times.
✗ Branch 5 not taken.
9 QVERIFY(!m_queue->isValid());
112
1/2
✓ Branch 0 taken 9 times.
✗ Branch 1 not taken.
9 m_queue->setup(m_connection);
113
3/6
✓ Branch 0 taken 9 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 9 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 9 times.
✗ Branch 5 not taken.
9 QVERIFY(m_queue->isValid());
114
115
1/2
✓ Branch 0 taken 9 times.
✗ Branch 1 not taken.
9 Wrapland::Client::Registry registry;
116
1/2
✓ Branch 0 taken 9 times.
✗ Branch 1 not taken.
9 QSignalSpy compositorSpy(&registry, &Wrapland::Client::Registry::compositorAnnounced);
117
3/6
✓ Branch 0 taken 9 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 9 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 9 times.
✗ Branch 5 not taken.
9 QVERIFY(compositorSpy.isValid());
118
119
1/2
✓ Branch 0 taken 9 times.
✗ Branch 1 not taken.
9 QSignalSpy plasmaVirtualDesktopManagementSpy(
120 &registry, &Wrapland::Client::Registry::plasmaVirtualDesktopManagementAnnounced);
121
3/6
✓ Branch 0 taken 9 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 9 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 9 times.
✗ Branch 5 not taken.
9 QVERIFY(plasmaVirtualDesktopManagementSpy.isValid());
122
123
1/2
✓ Branch 0 taken 9 times.
✗ Branch 1 not taken.
9 QSignalSpy windowManagementSpy(&registry,
124
1/2
✓ Branch 0 taken 9 times.
✗ Branch 1 not taken.
9 SIGNAL(plasmaWindowManagementAnnounced(quint32, quint32)));
125
3/6
✓ Branch 0 taken 9 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 9 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 9 times.
✗ Branch 5 not taken.
9 QVERIFY(windowManagementSpy.isValid());
126
127
3/6
✓ Branch 0 taken 9 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 9 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 9 times.
✗ Branch 5 not taken.
9 QVERIFY(!registry.eventQueue());
128
1/2
✓ Branch 0 taken 9 times.
✗ Branch 1 not taken.
9 registry.setEventQueue(m_queue);
129
3/6
✓ Branch 0 taken 9 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 9 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 9 times.
✗ Branch 5 not taken.
9 QCOMPARE(registry.eventQueue(), m_queue);
130
2/4
✓ Branch 0 taken 9 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 9 times.
✗ Branch 3 not taken.
9 registry.create(m_connection->display());
131
3/6
✓ Branch 0 taken 9 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 9 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 9 times.
✗ Branch 5 not taken.
9 QVERIFY(registry.isValid());
132
1/2
✓ Branch 0 taken 9 times.
✗ Branch 1 not taken.
9 registry.setup();
133
134 18 server.globals.compositor
135
1/2
✓ Branch 0 taken 9 times.
✗ Branch 1 not taken.
9 = std::make_unique<Wrapland::Server::Compositor>(server.display.get());
136
5/10
✓ Branch 0 taken 9 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 9 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 9 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 9 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✓ Branch 9 taken 9 times.
9 QVERIFY(compositorSpy.wait());
137
4/8
✓ Branch 0 taken 9 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 9 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 9 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 9 times.
✗ Branch 7 not taken.
18 m_compositor = registry.createCompositor(compositorSpy.first().first().value<quint32>(),
138
3/6
✓ Branch 0 taken 9 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 9 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 9 times.
✗ Branch 5 not taken.
9 compositorSpy.first().last().value<quint32>(),
139 this);
140
141 18 server.globals.plasma_virtual_desktop_manager
142
1/2
✓ Branch 0 taken 9 times.
✗ Branch 1 not taken.
9 = std::make_unique<Wrapland::Server::PlasmaVirtualDesktopManager>(server.display.get());
143 9 server.plasma_vd = server.globals.plasma_virtual_desktop_manager.get();
144
145
5/10
✓ Branch 0 taken 9 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 9 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 9 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 9 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✓ Branch 9 taken 9 times.
9 QVERIFY(plasmaVirtualDesktopManagementSpy.wait());
146
1/2
✓ Branch 0 taken 9 times.
✗ Branch 1 not taken.
9 m_plasmaVirtualDesktopManagement = registry.createPlasmaVirtualDesktopManagement(
147
3/6
✓ Branch 0 taken 9 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 9 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 9 times.
✗ Branch 5 not taken.
9 plasmaVirtualDesktopManagementSpy.first().first().value<quint32>(),
148
3/6
✓ Branch 0 taken 9 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 9 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 9 times.
✗ Branch 5 not taken.
9 plasmaVirtualDesktopManagementSpy.first().last().value<quint32>(),
149 this);
150
151 18 server.globals.plasma_window_manager
152
1/2
✓ Branch 0 taken 9 times.
✗ Branch 1 not taken.
9 = std::make_unique<Wrapland::Server::PlasmaWindowManager>(server.display.get());
153
1/2
✓ Branch 0 taken 9 times.
✗ Branch 1 not taken.
9 server.globals.plasma_window_manager->setVirtualDesktopManager(server.plasma_vd);
154
155
5/10
✓ Branch 0 taken 9 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 9 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 9 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 9 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✓ Branch 9 taken 9 times.
9 QVERIFY(windowManagementSpy.wait());
156
1/2
✓ Branch 0 taken 9 times.
✗ Branch 1 not taken.
9 m_windowManagement = registry.createPlasmaWindowManagement(
157
3/6
✓ Branch 0 taken 9 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 9 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 9 times.
✗ Branch 5 not taken.
9 windowManagementSpy.first().first().value<quint32>(),
158
3/6
✓ Branch 0 taken 9 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 9 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 9 times.
✗ Branch 5 not taken.
9 windowManagementSpy.first().last().value<quint32>(),
159 this);
160
161
1/2
✓ Branch 0 taken 9 times.
✗ Branch 1 not taken.
9 QSignalSpy windowSpy(m_windowManagement,
162
1/2
✓ Branch 0 taken 9 times.
✗ Branch 1 not taken.
9 SIGNAL(windowCreated(Wrapland::Client::PlasmaWindow*)));
163
3/6
✓ Branch 0 taken 9 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 9 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 9 times.
✗ Branch 5 not taken.
9 QVERIFY(windowSpy.isValid());
164
1/2
✓ Branch 0 taken 9 times.
✗ Branch 1 not taken.
9 server.plasma_window = server.globals.plasma_window_manager->createWindow();
165
1/2
✓ Branch 0 taken 9 times.
✗ Branch 1 not taken.
9 server.plasma_window->setPid(1337);
166
167
5/10
✓ Branch 0 taken 9 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 9 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 9 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 9 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✓ Branch 9 taken 9 times.
9 QVERIFY(windowSpy.wait());
168
3/6
✓ Branch 0 taken 9 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 9 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 9 times.
✗ Branch 5 not taken.
9 m_window = windowSpy.first().first().value<Wrapland::Client::PlasmaWindow*>();
169
1/2
✗ Branch 0 not taken.
✓ Branch 1 taken 9 times.
9 }
170
171 9 void TestVirtualDesktop::cleanup()
172 {
173 #define CLEANUP(variable) \
174 if (variable) { \
175 delete variable; \
176 variable = nullptr; \
177 }
178
2/4
✗ Branch 0 not taken.
✓ Branch 1 taken 9 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 9 times.
9 CLEANUP(m_compositor)
179
2/4
✗ Branch 0 not taken.
✓ Branch 1 taken 9 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 9 times.
9 CLEANUP(m_plasmaVirtualDesktopManagement)
180
2/4
✗ Branch 0 not taken.
✓ Branch 1 taken 9 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 9 times.
9 CLEANUP(server.plasma_window)
181
2/4
✗ Branch 0 not taken.
✓ Branch 1 taken 9 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 9 times.
9 CLEANUP(m_windowManagement)
182
2/4
✗ Branch 0 not taken.
✓ Branch 1 taken 9 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 9 times.
9 CLEANUP(m_queue)
183
1/2
✗ Branch 0 not taken.
✓ Branch 1 taken 9 times.
9 if (m_connection) {
184 9 m_connection->deleteLater();
185 9 m_connection = nullptr;
186 9 }
187
1/2
✗ Branch 0 not taken.
✓ Branch 1 taken 9 times.
9 if (m_thread) {
188 9 m_thread->quit();
189 9 m_thread->wait();
190
1/2
✗ Branch 0 not taken.
✓ Branch 1 taken 9 times.
9 delete m_thread;
191 9 m_thread = nullptr;
192 9 }
193 #undef CLEANUP
194
195
1/2
✓ Branch 0 taken 9 times.
✗ Branch 1 not taken.
9 server = {};
196 9 }
197
198 9 void TestVirtualDesktop::testCreate()
199 {
200 9 QSignalSpy desktopCreatedSpy(m_plasmaVirtualDesktopManagement,
201 &Wrapland::Client::PlasmaVirtualDesktopManagement::desktopCreated);
202
1/2
✓ Branch 0 taken 9 times.
✗ Branch 1 not taken.
9 QSignalSpy managementDoneSpy(m_plasmaVirtualDesktopManagement,
203 &Wrapland::Client::PlasmaVirtualDesktopManagement::done);
204
205 // on this createDesktop bind() isn't called already, the desktopadded signals will be sent
206 // after bind happened
207
2/4
✓ Branch 0 taken 9 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 9 times.
✗ Branch 3 not taken.
9 auto serverDesktop1 = server.plasma_vd->createDesktop("0-1");
208
2/4
✓ Branch 0 taken 9 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 9 times.
✗ Branch 3 not taken.
9 serverDesktop1->setName("Desktop 1");
209
210
3/6
✓ Branch 0 taken 9 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 9 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 9 times.
✗ Branch 5 not taken.
9 desktopCreatedSpy.wait();
211
1/2
✓ Branch 0 taken 9 times.
✗ Branch 1 not taken.
9 QList<QVariant> arguments = desktopCreatedSpy.takeFirst();
212
5/10
✓ Branch 0 taken 9 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 9 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 9 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 9 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✓ Branch 9 taken 9 times.
9 QCOMPARE(arguments.at(0).toString(), QStringLiteral("0-1"));
213
3/6
✓ Branch 0 taken 9 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 9 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 9 times.
✗ Branch 5 not taken.
9 QCOMPARE(arguments.at(1).toUInt(), (quint32)0);
214
1/2
✓ Branch 0 taken 9 times.
✗ Branch 1 not taken.
9 server.plasma_vd->sendDone();
215
3/6
✓ Branch 0 taken 9 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 9 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 9 times.
✗ Branch 5 not taken.
9 managementDoneSpy.wait();
216
217
2/4
✓ Branch 0 taken 9 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 9 times.
✗ Branch 3 not taken.
9 auto desktop1 = m_plasmaVirtualDesktopManagement->desktops().first();
218
1/2
✓ Branch 0 taken 9 times.
✗ Branch 1 not taken.
9 QSignalSpy desktop1DoneSpy(desktop1, &Wrapland::Client::PlasmaVirtualDesktop::done);
219
3/6
✓ Branch 0 taken 9 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 9 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 9 times.
✗ Branch 5 not taken.
9 QVERIFY(desktop1DoneSpy.isValid());
220
221
1/2
✓ Branch 0 taken 9 times.
✗ Branch 1 not taken.
9 serverDesktop1->sendDone();
222
3/6
✓ Branch 0 taken 9 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 9 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 9 times.
✗ Branch 5 not taken.
9 desktop1DoneSpy.wait();
223
224
5/10
✓ Branch 0 taken 9 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 9 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 9 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 9 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✓ Branch 9 taken 9 times.
9 QCOMPARE(desktop1->id(), QStringLiteral("0-1"));
225
5/10
✓ Branch 0 taken 9 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 9 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 9 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 9 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✓ Branch 9 taken 9 times.
9 QCOMPARE(desktop1->name(), QStringLiteral("Desktop 1"));
226
227 // on those createDesktop the bind will already be done
228
2/4
✓ Branch 0 taken 9 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 9 times.
✗ Branch 3 not taken.
9 auto serverDesktop2 = server.plasma_vd->createDesktop("0-2");
229
2/4
✓ Branch 0 taken 9 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 9 times.
✗ Branch 3 not taken.
9 serverDesktop2->setName("Desktop 2");
230
3/6
✓ Branch 0 taken 9 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 9 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 9 times.
✗ Branch 5 not taken.
9 desktopCreatedSpy.wait();
231
1/2
✓ Branch 0 taken 9 times.
✗ Branch 1 not taken.
9 arguments = desktopCreatedSpy.takeFirst();
232
5/10
✓ Branch 0 taken 9 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 9 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 9 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 9 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✓ Branch 9 taken 9 times.
9 QCOMPARE(arguments.at(0).toString(), QStringLiteral("0-2"));
233
3/6
✓ Branch 0 taken 9 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 9 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 9 times.
✗ Branch 5 not taken.
9 QCOMPARE(arguments.at(1).toUInt(), (quint32)1);
234
3/6
✓ Branch 0 taken 9 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 9 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 9 times.
9 QCOMPARE(m_plasmaVirtualDesktopManagement->desktops().length(), 2);
235
236
2/4
✓ Branch 0 taken 9 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 9 times.
✗ Branch 3 not taken.
9 Wrapland::Server::PlasmaVirtualDesktop* desktop3Int = server.plasma_vd->createDesktop("0-3");
237
2/4
✓ Branch 0 taken 9 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 9 times.
✗ Branch 3 not taken.
9 desktop3Int->setName("Desktop 3");
238
3/6
✓ Branch 0 taken 9 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 9 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 9 times.
✗ Branch 5 not taken.
9 desktopCreatedSpy.wait();
239
1/2
✓ Branch 0 taken 9 times.
✗ Branch 1 not taken.
9 arguments = desktopCreatedSpy.takeFirst();
240
5/10
✓ Branch 0 taken 9 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 9 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 9 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 9 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✓ Branch 9 taken 9 times.
9 QCOMPARE(arguments.at(0).toString(), QStringLiteral("0-3"));
241
3/6
✓ Branch 0 taken 9 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 9 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 9 times.
9 QCOMPARE(m_plasmaVirtualDesktopManagement->desktops().length(), 3);
242
243
1/2
✓ Branch 0 taken 9 times.
✗ Branch 1 not taken.
9 server.plasma_vd->sendDone();
244
3/6
✓ Branch 0 taken 9 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 9 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 9 times.
✗ Branch 5 not taken.
9 managementDoneSpy.wait();
245
246 // get the clients
247 9 Wrapland::Client::PlasmaVirtualDesktop* desktop2
248
2/4
✓ Branch 0 taken 9 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 9 times.
✗ Branch 3 not taken.
9 = m_plasmaVirtualDesktopManagement->desktops()[1];
249
1/2
✓ Branch 0 taken 9 times.
✗ Branch 1 not taken.
9 QSignalSpy desktop2DoneSpy(desktop2, &Wrapland::Client::PlasmaVirtualDesktop::done);
250
1/2
✓ Branch 0 taken 9 times.
✗ Branch 1 not taken.
9 serverDesktop2->sendDone();
251
3/6
✓ Branch 0 taken 9 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 9 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 9 times.
✗ Branch 5 not taken.
9 desktop2DoneSpy.wait();
252
253 9 Wrapland::Client::PlasmaVirtualDesktop* desktop3
254
2/4
✓ Branch 0 taken 9 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 9 times.
✗ Branch 3 not taken.
9 = m_plasmaVirtualDesktopManagement->desktops()[2];
255
1/2
✓ Branch 0 taken 9 times.
✗ Branch 1 not taken.
9 QSignalSpy desktop3DoneSpy(desktop3, &Wrapland::Client::PlasmaVirtualDesktop::done);
256
1/2
✓ Branch 0 taken 9 times.
✗ Branch 1 not taken.
9 desktop3Int->sendDone();
257
3/6
✓ Branch 0 taken 9 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 9 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 9 times.
✗ Branch 5 not taken.
9 desktop3DoneSpy.wait();
258
259
5/10
✓ Branch 0 taken 9 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 9 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 9 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 9 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✓ Branch 9 taken 9 times.
9 QCOMPARE(desktop1->id(), QStringLiteral("0-1"));
260
5/10
✓ Branch 0 taken 9 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 9 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 9 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 9 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✓ Branch 9 taken 9 times.
9 QCOMPARE(desktop1->name(), QStringLiteral("Desktop 1"));
261
262
5/10
✓ Branch 0 taken 9 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 9 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 9 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 9 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✓ Branch 9 taken 9 times.
9 QCOMPARE(desktop2->id(), QStringLiteral("0-2"));
263
5/10
✓ Branch 0 taken 9 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 9 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 9 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 9 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✓ Branch 9 taken 9 times.
9 QCOMPARE(desktop2->name(), QStringLiteral("Desktop 2"));
264
265
5/10
✓ Branch 0 taken 9 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 9 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 9 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 9 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✓ Branch 9 taken 9 times.
9 QCOMPARE(desktop3->id(), QStringLiteral("0-3"));
266
5/10
✓ Branch 0 taken 9 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 9 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 9 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 9 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✓ Branch 9 taken 9 times.
9 QCOMPARE(desktop3->name(), QStringLiteral("Desktop 3"));
267
268 // coherence of order between client and server
269
3/6
✓ Branch 0 taken 9 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 9 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 9 times.
9 QCOMPARE(server.plasma_vd->desktops().size(), 3);
270
3/6
✓ Branch 0 taken 9 times.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✓ Branch 3 taken 9 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 9 times.
9 QCOMPARE(m_plasmaVirtualDesktopManagement->desktops().length(), 3);
271
272
3/4
✓ Branch 0 taken 36 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 27 times.
✓ Branch 3 taken 9 times.
36 for (int i = 0; i < m_plasmaVirtualDesktopManagement->desktops().length(); ++i) {
273
8/16
✓ Branch 0 taken 27 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 27 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 27 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 27 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 27 times.
✗ Branch 9 not taken.
✓ Branch 10 taken 27 times.
✗ Branch 11 not taken.
✓ Branch 12 taken 27 times.
✗ Branch 13 not taken.
✓ Branch 14 taken 27 times.
✗ Branch 15 not taken.
27 QCOMPARE(server.plasma_vd->desktops().at(i)->id(),
274 m_plasmaVirtualDesktopManagement->desktops().at(i)->id().toStdString());
275 27 }
276
1/2
✗ Branch 0 not taken.
✓ Branch 1 taken 9 times.
9 }
277
278 1 void TestVirtualDesktop::testSetRows()
279 {
280 // rebuild some desktops
281 1 testCreate();
282
283 1 QSignalSpy rowsChangedSpy(m_plasmaVirtualDesktopManagement,
284 &Wrapland::Client::PlasmaVirtualDesktopManagement::rowsChanged);
285
286
1/2
✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
1 server.plasma_vd->setRows(3);
287
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(rowsChangedSpy.wait());
288
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(m_plasmaVirtualDesktopManagement->rows(), 3);
289
1/2
✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
1 }
290
291 1 void TestVirtualDesktop::testConnectNewClient()
292 {
293 // rebuild some desktops
294 1 testCreate();
295
296 1 Wrapland::Client::Registry registry;
297
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(!registry.eventQueue());
298
1/2
✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
1 registry.setEventQueue(m_queue);
299
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(registry.eventQueue(), m_queue);
300
2/4
✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
1 registry.create(m_connection->display());
301
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(registry.isValid());
302
1/2
✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
1 registry.setup();
303
304
1/2
✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
1 QSignalSpy plasmaVirtualDesktopManagementSpy(
305 &registry, &Wrapland::Client::Registry::plasmaVirtualDesktopManagementAnnounced);
306
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(plasmaVirtualDesktopManagementSpy.isValid());
307
308
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(plasmaVirtualDesktopManagementSpy.wait());
309
310 1 Wrapland::Client::PlasmaVirtualDesktopManagement* otherPlasmaVirtualDesktopManagement
311
1/2
✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
1 = registry.createPlasmaVirtualDesktopManagement(
312
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 plasmaVirtualDesktopManagementSpy.first().first().value<quint32>(),
313
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 plasmaVirtualDesktopManagementSpy.first().last().value<quint32>(),
314 this);
315
316
1/2
✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
1 QSignalSpy managementDoneSpy(otherPlasmaVirtualDesktopManagement,
317 &Wrapland::Client::PlasmaVirtualDesktopManagement::done);
318
319
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 managementDoneSpy.wait();
320
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(otherPlasmaVirtualDesktopManagement->desktops().length(), 3);
321
322
1/2
✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
1 delete otherPlasmaVirtualDesktopManagement;
323
1/2
✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
1 }
324
325 1 void TestVirtualDesktop::testDestroy()
326 {
327 // rebuild some desktops
328 1 testCreate();
329
330 1 auto serverDesktop1 = server.plasma_vd->desktops().front();
331 1 Wrapland::Client::PlasmaVirtualDesktop* desktop1
332
1/2
✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
1 = m_plasmaVirtualDesktopManagement->desktops().first();
333
334 1 QSignalSpy serverDesktop1DestroyedSpy(serverDesktop1, &QObject::destroyed);
335
1/2
✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
1 QSignalSpy desktop1DestroyedSpy(desktop1, &QObject::destroyed);
336
1/2
✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
1 QSignalSpy desktop1RemovedSpy(desktop1, &Wrapland::Client::PlasmaVirtualDesktop::removed);
337
2/4
✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
1 server.plasma_vd->removeDesktop("0-1");
338
339 // test that both server and client desktop interfaces go away
340
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 desktop1DestroyedSpy.wait();
341
12/58
✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✗ 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.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✗ Branch 12 not taken.
✓ Branch 13 taken 1 times.
✓ Branch 14 taken 1 times.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✓ Branch 18 taken 1 times.
✗ Branch 19 not taken.
✓ Branch 20 taken 1 times.
✗ Branch 21 not taken.
✓ Branch 22 taken 1 times.
✗ Branch 23 not taken.
✗ Branch 24 not taken.
✗ Branch 25 not taken.
✗ Branch 26 not taken.
✗ Branch 27 not taken.
✗ Branch 28 not taken.
✗ Branch 29 not taken.
✗ Branch 30 not taken.
✗ Branch 31 not taken.
✗ Branch 32 not taken.
✗ Branch 33 not taken.
✗ Branch 34 not taken.
✗ Branch 35 not taken.
✗ Branch 36 not taken.
✗ Branch 37 not taken.
✗ Branch 38 not taken.
✗ Branch 39 not taken.
✗ Branch 40 not taken.
✗ Branch 41 not taken.
✗ Branch 42 not taken.
✗ Branch 43 not taken.
✗ Branch 44 not taken.
✗ Branch 45 not taken.
✗ Branch 46 not taken.
✗ Branch 47 not taken.
✗ Branch 48 not taken.
✗ Branch 49 not taken.
✗ Branch 50 not taken.
✗ Branch 51 not taken.
✗ Branch 52 not taken.
✗ Branch 53 not taken.
✓ Branch 54 taken 1 times.
✗ Branch 55 not taken.
✗ Branch 56 not taken.
✓ Branch 57 taken 1 times.
1 QTRY_COMPARE(serverDesktop1DestroyedSpy.count(), 1);
342
12/58
✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✗ 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.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✗ Branch 12 not taken.
✓ Branch 13 taken 1 times.
✓ Branch 14 taken 1 times.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✓ Branch 18 taken 1 times.
✗ Branch 19 not taken.
✓ Branch 20 taken 1 times.
✗ Branch 21 not taken.
✓ Branch 22 taken 1 times.
✗ Branch 23 not taken.
✗ Branch 24 not taken.
✗ Branch 25 not taken.
✗ Branch 26 not taken.
✗ Branch 27 not taken.
✗ Branch 28 not taken.
✗ Branch 29 not taken.
✗ Branch 30 not taken.
✗ Branch 31 not taken.
✗ Branch 32 not taken.
✗ Branch 33 not taken.
✗ Branch 34 not taken.
✗ Branch 35 not taken.
✗ Branch 36 not taken.
✗ Branch 37 not taken.
✗ Branch 38 not taken.
✗ Branch 39 not taken.
✗ Branch 40 not taken.
✗ Branch 41 not taken.
✗ Branch 42 not taken.
✗ Branch 43 not taken.
✗ Branch 44 not taken.
✗ Branch 45 not taken.
✗ Branch 46 not taken.
✗ Branch 47 not taken.
✗ Branch 48 not taken.
✗ Branch 49 not taken.
✗ Branch 50 not taken.
✗ Branch 51 not taken.
✗ Branch 52 not taken.
✗ Branch 53 not taken.
✓ Branch 54 taken 1 times.
✗ Branch 55 not taken.
✗ Branch 56 not taken.
✓ Branch 57 taken 1 times.
1 QTRY_COMPARE(desktop1RemovedSpy.count(), 1);
343
12/58
✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✗ 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.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✗ Branch 12 not taken.
✓ Branch 13 taken 1 times.
✓ Branch 14 taken 1 times.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✓ Branch 18 taken 1 times.
✗ Branch 19 not taken.
✓ Branch 20 taken 1 times.
✗ Branch 21 not taken.
✓ Branch 22 taken 1 times.
✗ Branch 23 not taken.
✗ Branch 24 not taken.
✗ Branch 25 not taken.
✗ Branch 26 not taken.
✗ Branch 27 not taken.
✗ Branch 28 not taken.
✗ Branch 29 not taken.
✗ Branch 30 not taken.
✗ Branch 31 not taken.
✗ Branch 32 not taken.
✗ Branch 33 not taken.
✗ Branch 34 not taken.
✗ Branch 35 not taken.
✗ Branch 36 not taken.
✗ Branch 37 not taken.
✗ Branch 38 not taken.
✗ Branch 39 not taken.
✗ Branch 40 not taken.
✗ Branch 41 not taken.
✗ Branch 42 not taken.
✗ Branch 43 not taken.
✗ Branch 44 not taken.
✗ Branch 45 not taken.
✗ Branch 46 not taken.
✗ Branch 47 not taken.
✗ Branch 48 not taken.
✗ Branch 49 not taken.
✗ Branch 50 not taken.
✗ Branch 51 not taken.
✗ Branch 52 not taken.
✗ Branch 53 not taken.
✓ Branch 54 taken 1 times.
✗ Branch 55 not taken.
✗ Branch 56 not taken.
✓ Branch 57 taken 1 times.
1 QTRY_COMPARE(desktop1DestroyedSpy.count(), 1);
344
345 // coherence of order between client and server
346
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.plasma_vd->desktops().size(), 2);
347
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(m_plasmaVirtualDesktopManagement->desktops().length(), 2);
348
349
3/4
✓ Branch 0 taken 3 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✓ Branch 3 taken 2 times.
3 for (int i = 0; i < m_plasmaVirtualDesktopManagement->desktops().length(); ++i) {
350
8/16
✓ Branch 0 taken 2 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 2 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 2 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 2 times.
✗ Branch 9 not taken.
✓ Branch 10 taken 2 times.
✗ Branch 11 not taken.
✓ Branch 12 taken 2 times.
✗ Branch 13 not taken.
✓ Branch 14 taken 2 times.
✗ Branch 15 not taken.
2 QCOMPARE(server.plasma_vd->desktops().at(i)->id(),
351 m_plasmaVirtualDesktopManagement->desktops().at(i)->id().toStdString());
352 2 }
353
354 // Test the desktopRemoved signal of the manager, remove another desktop as the signals can't be
355 // tested at the same time
356
1/2
✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
1 QSignalSpy desktopManagerRemovedSpy(
357 1 m_plasmaVirtualDesktopManagement,
358 &Wrapland::Client::PlasmaVirtualDesktopManagement::desktopRemoved);
359
2/4
✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
1 server.plasma_vd->removeDesktop("0-2");
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 desktopManagerRemovedSpy.wait();
361
6/12
✓ 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.
✗ Branch 10 not taken.
✓ Branch 11 taken 1 times.
1 QCOMPARE(desktopManagerRemovedSpy.takeFirst().at(0).toString(), QStringLiteral("0-2"));
362
363
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.plasma_vd->desktops().size(), 1);
364
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(m_plasmaVirtualDesktopManagement->desktops().length(), 1);
365
1/2
✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
1 }
366
367 1 void TestVirtualDesktop::testActivate()
368 {
369 // rebuild some desktops
370 1 testCreate();
371
372 1 Wrapland::Server::PlasmaVirtualDesktop* serverDesktop1 = server.plasma_vd->desktops().front();
373 1 Wrapland::Client::PlasmaVirtualDesktop* desktop1
374
1/2
✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
1 = m_plasmaVirtualDesktopManagement->desktops().first();
375
1/2
✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
1 QVERIFY(desktop1->isActive());
376
1/2
✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
1 QVERIFY(serverDesktop1->active());
377
378 1 Wrapland::Server::PlasmaVirtualDesktop* serverDesktop2 = server.plasma_vd->desktops()[1];
379 1 Wrapland::Client::PlasmaVirtualDesktop* desktop2
380
1/2
✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
1 = m_plasmaVirtualDesktopManagement->desktops()[1];
381
1/2
✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
1 QVERIFY(!serverDesktop2->active());
382
383 1 QSignalSpy requestActivateSpy(serverDesktop2,
384 &Wrapland::Server::PlasmaVirtualDesktop::activateRequested);
385
1/2
✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
1 QSignalSpy activatedSpy(desktop2, &Wrapland::Client::PlasmaVirtualDesktop::activated);
386
387
1/2
✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
1 desktop2->requestActivate();
388
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 requestActivateSpy.wait();
389
390 // This simulates a compositor which supports only one active desktop at a time
391
3/4
✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✓ Branch 3 taken 3 times.
4 for (auto deskInt : server.plasma_vd->desktops()) {
392
5/8
✓ Branch 0 taken 3 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 3 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 3 times.
✓ Branch 6 taken 1 times.
✓ Branch 7 taken 2 times.
3 if (deskInt->id() == desktop2->id().toStdString()) {
393
1/2
✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
1 deskInt->setActive(true);
394 1 } else {
395
1/2
✓ Branch 0 taken 2 times.
✗ Branch 1 not taken.
2 deskInt->setActive(false);
396 }
397 }
398
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 activatedSpy.wait();
399
400 // correct state in the server
401
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(serverDesktop2->active());
402
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(!serverDesktop1->active());
403 // correct state in the client
404
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(serverDesktop2->active());
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(!serverDesktop1->active());
406
407 // Test the deactivated signal
408
1/2
✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
1 QSignalSpy deactivatedSpy(desktop2, &Wrapland::Client::PlasmaVirtualDesktop::deactivated);
409
410
3/4
✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✓ Branch 3 taken 3 times.
4 for (auto* deskInt : server.plasma_vd->desktops()) {
411
5/8
✓ Branch 0 taken 3 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 3 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 3 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
✓ Branch 7 taken 2 times.
3 if (deskInt->id() == desktop1->id().toStdString()) {
412
1/2
✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
1 deskInt->setActive(true);
413 1 } else {
414
1/2
✓ Branch 0 taken 2 times.
✗ Branch 1 not taken.
2 deskInt->setActive(false);
415 }
416 }
417
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 deactivatedSpy.wait();
418
1/2
✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
1 }
419
420 1 void TestVirtualDesktop::testEnterLeaveDesktop()
421 {
422 1 testCreate();
423
424 1 QSignalSpy enterRequestedSpy(
425 1 server.plasma_window, &Wrapland::Server::PlasmaWindow::enterPlasmaVirtualDesktopRequested);
426
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 m_window->requestEnterVirtualDesktop(QStringLiteral("0-1"));
427
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 enterRequestedSpy.wait();
428
429
6/12
✓ 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.
✗ Branch 10 not taken.
✓ Branch 11 taken 1 times.
1 QCOMPARE(enterRequestedSpy.takeFirst().at(0).toString(), QStringLiteral("0-1"));
430
431
1/2
✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
1 QSignalSpy virtualDesktopEnteredSpy(
432 1 m_window, &Wrapland::Client::PlasmaWindow::plasmaVirtualDesktopEntered);
433
434 // agree to the request
435
2/4
✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
1 server.plasma_window->addPlasmaVirtualDesktop("0-1");
436
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.plasma_window->plasmaVirtualDesktops().size(), 1);
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 QCOMPARE(server.plasma_window->plasmaVirtualDesktops().front(), "0-1");
438
439 // check if the client received the enter
440
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 virtualDesktopEnteredSpy.wait();
441
6/12
✓ 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.
✗ Branch 10 not taken.
✓ Branch 11 taken 1 times.
1 QCOMPARE(virtualDesktopEnteredSpy.takeFirst().at(0).toString(), QStringLiteral("0-1"));
442
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(m_window->plasmaVirtualDesktops().length(), 1);
443
6/12
✓ 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.
✗ Branch 10 not taken.
✓ Branch 11 taken 1 times.
1 QCOMPARE(m_window->plasmaVirtualDesktops().first(), QStringLiteral("0-1"));
444
445 // add another desktop, server side
446
2/4
✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
1 server.plasma_window->addPlasmaVirtualDesktop("0-3");
447
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 virtualDesktopEnteredSpy.wait();
448
6/12
✓ 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.
✗ Branch 10 not taken.
✓ Branch 11 taken 1 times.
1 QCOMPARE(virtualDesktopEnteredSpy.takeFirst().at(0).toString(), QStringLiteral("0-3"));
449
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.plasma_window->plasmaVirtualDesktops().size(), 2);
450
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(m_window->plasmaVirtualDesktops().length(), 2);
451
6/12
✓ 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.
✗ Branch 10 not taken.
✓ Branch 11 taken 1 times.
1 QCOMPARE(m_window->plasmaVirtualDesktops()[1], QStringLiteral("0-3"));
452
453 // try to add an invalid desktop
454
2/4
✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
1 server.plasma_window->addPlasmaVirtualDesktop("invalid");
455
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(m_window->plasmaVirtualDesktops().length(), 2);
456
457 // remove a desktop
458
1/2
✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
1 QSignalSpy leaveRequestedSpy(
459 1 server.plasma_window, &Wrapland::Server::PlasmaWindow::leavePlasmaVirtualDesktopRequested);
460
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 m_window->requestLeaveVirtualDesktop(QStringLiteral("0-1"));
461
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 leaveRequestedSpy.wait();
462
463
6/12
✓ 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.
✗ Branch 10 not taken.
✓ Branch 11 taken 1 times.
1 QCOMPARE(leaveRequestedSpy.takeFirst().at(0).toString(), QStringLiteral("0-1"));
464
465
1/2
✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
1 QSignalSpy virtualDesktopLeftSpy(m_window,
466 &Wrapland::Client::PlasmaWindow::plasmaVirtualDesktopLeft);
467
468 // agree to the request
469
2/4
✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
1 server.plasma_window->removePlasmaVirtualDesktop("0-1");
470
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.plasma_window->plasmaVirtualDesktops().size(), 1);
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 QCOMPARE(server.plasma_window->plasmaVirtualDesktops().front(), "0-3");
472
473 // check if the client received the leave
474
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 virtualDesktopLeftSpy.wait();
475
6/12
✓ 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.
✗ Branch 10 not taken.
✓ Branch 11 taken 1 times.
1 QCOMPARE(virtualDesktopLeftSpy.takeFirst().at(0).toString(), QStringLiteral("0-1"));
476
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(m_window->plasmaVirtualDesktops().length(), 1);
477
6/12
✓ 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.
✗ Branch 10 not taken.
✓ Branch 11 taken 1 times.
1 QCOMPARE(m_window->plasmaVirtualDesktops().first(), QStringLiteral("0-3"));
478
479 // Destroy desktop 2
480
2/4
✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
1 server.plasma_vd->removeDesktop("0-3");
481 // the window should receive a left signal from the destroyed desktop
482
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 virtualDesktopLeftSpy.wait();
483
484
3/6
✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✓ Branch 3 taken 1 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 1 times.
1 QCOMPARE(m_window->plasmaVirtualDesktops().length(), 0);
485
1/2
✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
1 }
486
487 1 void TestVirtualDesktop::testAllDesktops()
488 {
489 1 testCreate();
490 1 QSignalSpy virtualDesktopEnteredSpy(
491 1 m_window, &Wrapland::Client::PlasmaWindow::plasmaVirtualDesktopEntered);
492
1/2
✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
1 QSignalSpy virtualDesktopLeftSpy(m_window,
493 &Wrapland::Client::PlasmaWindow::plasmaVirtualDesktopLeft);
494
495 // in the beginning the window is on desktop 1 and desktop 3
496
2/4
✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
1 server.plasma_window->addPlasmaVirtualDesktop("0-1");
497
2/4
✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
1 server.plasma_window->addPlasmaVirtualDesktop("0-3");
498
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 virtualDesktopEnteredSpy.wait();
499
500 // setting on all desktops
501
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(m_window->plasmaVirtualDesktops().length(), 2);
502
1/2
✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
1 server.plasma_window->setOnAllDesktops(true);
503 // setting on all desktops, the window will leave every desktop
504
505
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 virtualDesktopLeftSpy.wait();
506
2/4
✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✓ Branch 3 taken 1 times.
1 QCOMPARE(virtualDesktopLeftSpy.count(), 2);
507
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(m_window->plasmaVirtualDesktops().length(), 0);
508
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(m_window->isOnAllDesktops());
509
510
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(m_window->plasmaVirtualDesktops().length(), 0);
511
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(m_window->isOnAllDesktops());
512
513 // return to the active desktop (0-1)
514
1/2
✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
1 server.plasma_window->setOnAllDesktops(false);
515
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 virtualDesktopEnteredSpy.wait();
516
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(m_window->plasmaVirtualDesktops().length(), 1);
517
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.plasma_window->plasmaVirtualDesktops().front(), "0-1");
518
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(!m_window->isOnAllDesktops());
519
1/2
✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
1 }
520
521 1 void TestVirtualDesktop::testCreateRequested()
522 {
523 // rebuild some desktops
524 1 testCreate();
525
526 1 QSignalSpy desktopCreateRequestedSpy(
527 1 server.plasma_vd, &Wrapland::Server::PlasmaVirtualDesktopManager::desktopCreateRequested);
528
1/2
✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
1 QSignalSpy desktopCreatedSpy(m_plasmaVirtualDesktopManagement,
529 &Wrapland::Client::PlasmaVirtualDesktopManagement::desktopCreated);
530
531 // listen for createdRequested
532
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 m_plasmaVirtualDesktopManagement->requestCreateVirtualDesktop(QStringLiteral("Desktop"), 1);
533
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 desktopCreateRequestedSpy.wait();
534
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(desktopCreateRequestedSpy.first().first().value<std::string>(), "Desktop");
535
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 QCOMPARE(desktopCreateRequestedSpy.first().at(1).value<uint32_t>(), (uint32_t)1);
536
537 // actually create
538
2/4
✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
1 server.plasma_vd->createDesktop("0-4", 1);
539
2/4
✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
1 Wrapland::Server::PlasmaVirtualDesktop* desktopInt = server.plasma_vd->desktops().at(1);
540
541
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(desktopInt->id(), "0-4");
542
2/4
✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
1 desktopInt->setName("Desktop");
543
544
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 desktopCreatedSpy.wait();
545
546
7/14
✓ 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.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✗ Branch 12 not taken.
✓ Branch 13 taken 1 times.
1 QCOMPARE(desktopCreatedSpy.first().first().toString(), QStringLiteral("0-4"));
547
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(m_plasmaVirtualDesktopManagement->desktops().count(), 4);
548
549
1/2
✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
1 auto desktop = m_plasmaVirtualDesktopManagement->desktops().at(1);
550
1/2
✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
1 QSignalSpy desktopDoneSpy(desktop, &Wrapland::Client::PlasmaVirtualDesktop::done);
551
1/2
✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
1 desktopInt->sendDone();
552 // desktopDoneSpy.wait();
553 // check the order is correct
554
6/12
✓ 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.
✗ Branch 10 not taken.
✓ Branch 11 taken 1 times.
1 QCOMPARE(m_plasmaVirtualDesktopManagement->desktops().at(0)->id(), QStringLiteral("0-1"));
555
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(desktop->id(), QStringLiteral("0-4"));
556
6/12
✓ 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.
✗ Branch 10 not taken.
✓ Branch 11 taken 1 times.
1 QCOMPARE(m_plasmaVirtualDesktopManagement->desktops().at(2)->id(), QStringLiteral("0-2"));
557
6/12
✓ 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.
✗ Branch 10 not taken.
✓ Branch 11 taken 1 times.
1 QCOMPARE(m_plasmaVirtualDesktopManagement->desktops().at(3)->id(), QStringLiteral("0-3"));
558
1/2
✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
1 }
559
560 1 void TestVirtualDesktop::testRemoveRequested()
561 {
562 // rebuild some desktops
563 1 testCreate();
564
565 1 QSignalSpy desktopRemoveRequestedSpy(
566 1 server.plasma_vd, &Wrapland::Server::PlasmaVirtualDesktopManager::desktopRemoveRequested);
567
568 // request a remove, just check the request arrived, ignore the request.
569
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 m_plasmaVirtualDesktopManagement->requestRemoveVirtualDesktop(QStringLiteral("0-1"));
570
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 desktopRemoveRequestedSpy.wait();
571
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(desktopRemoveRequestedSpy.first().first().value<std::string>(), "0-1");
572
1/2
✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
1 }
573
574
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(TestVirtualDesktop)
575 #include "plasma_virtual_desktop.moc"
576