GCC Code Coverage Report


Directory: ./
File: autotests/server/test_seat.cpp
Date: 2024-01-22 17:25:27
Exec Total Coverage
Lines: 129 129 100.0%
Branches: 255 510 50.0%

Line Branch Exec Source
1 /********************************************************************
2 Copyright © 2014 Martin Gräßlin <mgraesslin@kde.org>
3 Copyright © 2020 Roman Gilg <subdiff@gmail.com>
4
5 This library is free software; you can redistribute it and/or
6 modify it under the terms of the GNU Lesser General Public
7 License as published by the Free Software Foundation; either
8 version 2.1 of the License, or (at your option) version 3, or any
9 later version accepted by the membership of KDE e.V. (or its
10 successor approved by the membership of KDE e.V.), which shall
11 act as a proxy defined in Section 6 of version 3 of the license.
12
13 This library is distributed in the hope that it will be useful,
14 but WITHOUT ANY WARRANTY; without even the implied warranty of
15 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16 Lesser General Public License for more details.
17
18 You should have received a copy of the GNU Lesser General Public
19 License along with this library. If not, see <http://www.gnu.org/licenses/>.
20 *********************************************************************/
21 #include <QtTest>
22
23 #include "../../server/display.h"
24 #include "../../server/keyboard_pool.h"
25 #include "../../server/pointer_pool.h"
26 #include "../../server/seat.h"
27
28 class TestWaylandServerSeat : public QObject
29 {
30 Q_OBJECT
31 private Q_SLOTS:
32 void testCapabilities();
33 void testName();
34 void testPointerButton();
35 void testPointerPos();
36 void testDestroyThroughTerminate();
37 void testRepeatInfo();
38 void testMultiple();
39 };
40
41 constexpr auto socket_name{"kwin-wayland-server-seat-test-0"};
42
43 1 void TestWaylandServerSeat::testCapabilities()
44 {
45 1 Wrapland::Server::Display display;
46
2/4
✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
1 display.set_socket_name(socket_name);
47
1/2
✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
1 display.start();
48
49
1/2
✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
1 auto seat = std::make_unique<Wrapland::Server::Seat>(&display);
50
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(!seat->hasKeyboard());
51
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(!seat->hasPointer());
52
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(!seat->hasTouch());
53
54
1/2
✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
1 seat->setHasKeyboard(true);
55
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(seat->hasKeyboard());
56
1/2
✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
1 seat->setHasKeyboard(false);
57
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(!seat->hasKeyboard());
58
59
1/2
✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
1 seat->setHasPointer(true);
60
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(seat->hasPointer());
61
1/2
✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
1 seat->setHasPointer(false);
62
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(!seat->hasPointer());
63
64
1/2
✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
1 seat->setHasTouch(true);
65
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(seat->hasTouch());
66
1/2
✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
1 seat->setHasTouch(false);
67
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(!seat->hasTouch());
68
1/2
✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
1 }
69
70 1 void TestWaylandServerSeat::testName()
71 {
72 1 Wrapland::Server::Display display;
73
2/4
✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
1 display.set_socket_name(socket_name);
74
1/2
✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
1 display.start();
75
76
1/2
✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
1 auto seat = std::make_unique<Wrapland::Server::Seat>(&display);
77
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(seat->name().size(), 0);
78
79
1/2
✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
1 const std::string name = "foobar";
80
1/2
✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
1 seat->setName(name);
81
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(seat->name(), name);
82
1/2
✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
1 }
83
84 1 void TestWaylandServerSeat::testPointerButton()
85 {
86 1 Wrapland::Server::Display display;
87
2/4
✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
1 display.set_socket_name(socket_name);
88
1/2
✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
1 display.start();
89
90
1/2
✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
1 auto seat = std::make_unique<Wrapland::Server::Seat>(&display);
91
1/2
✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
1 seat->setHasPointer(true);
92
93
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 QVERIFY(seat->pointers().get_focus().devices.empty());
94
95 // no button pressed yet, should be released and no serial
96
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 QVERIFY(!seat->pointers().is_button_pressed(0));
97
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 QVERIFY(!seat->pointers().is_button_pressed(1));
98
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(seat->pointers().button_serial(0), quint32(0));
99
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(seat->pointers().button_serial(1), quint32(0));
100
101 // mark the button as pressed
102
2/4
✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
1 seat->pointers().button_pressed(0);
103
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 QVERIFY(seat->pointers().is_button_pressed(0));
104
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(seat->pointers().button_serial(0), display.serial());
105
106 // other button should still be unpressed
107
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 QVERIFY(!seat->pointers().is_button_pressed(1));
108
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(seat->pointers().button_serial(1), quint32(0));
109
110 // release it again
111
2/4
✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
1 seat->pointers().button_released(0);
112
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 QVERIFY(!seat->pointers().is_button_pressed(0));
113
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(seat->pointers().button_serial(0), display.serial());
114
1/2
✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
1 }
115
116 1 void TestWaylandServerSeat::testPointerPos()
117 {
118 1 Wrapland::Server::Display display;
119
2/4
✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
1 display.set_socket_name(socket_name);
120
1/2
✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
1 display.start();
121
122
1/2
✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
1 auto seat = std::make_unique<Wrapland::Server::Seat>(&display);
123
2/4
✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
1 QSignalSpy seatPosSpy(seat.get(), SIGNAL(pointerPosChanged(QPointF)));
124
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(seatPosSpy.isValid());
125
1/2
✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
1 seat->setHasPointer(true);
126
127
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 QVERIFY(seat->pointers().get_focus().devices.empty());
128
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 not taken.
✓ Branch 7 taken 1 times.
1 QCOMPARE(seat->pointers().get_position(), QPointF());
129
130
2/4
✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
1 seat->pointers().set_position(QPointF(10, 15));
131
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 not taken.
✓ Branch 7 taken 1 times.
1 QCOMPARE(seat->pointers().get_position(), QPointF(10, 15));
132
2/4
✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✓ Branch 3 taken 1 times.
1 QCOMPARE(seatPosSpy.count(), 1);
133
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(seatPosSpy.first().first().toPointF(), QPointF(10, 15));
134
135
2/4
✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
1 seat->pointers().set_position(QPointF(10, 15));
136
2/4
✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✓ Branch 3 taken 1 times.
1 QCOMPARE(seatPosSpy.count(), 1);
137
138
2/4
✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
1 seat->pointers().set_position(QPointF(5, 7));
139
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 not taken.
✓ Branch 7 taken 1 times.
1 QCOMPARE(seat->pointers().get_position(), QPointF(5, 7));
140
2/4
✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✓ Branch 3 taken 1 times.
1 QCOMPARE(seatPosSpy.count(), 2);
141
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(seatPosSpy.first().first().toPointF(), QPointF(10, 15));
142
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(seatPosSpy.last().first().toPointF(), QPointF(5, 7));
143
1/2
✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
1 }
144
145 1 void TestWaylandServerSeat::testDestroyThroughTerminate()
146 {
147 1 Wrapland::Server::Display display;
148
2/4
✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
1 display.set_socket_name(socket_name);
149
1/2
✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
1 display.start();
150
151
1/2
✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
1 auto seat = std::make_unique<Wrapland::Server::Seat>(&display);
152
1/2
✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
1 QSignalSpy destroyedSpy(seat.get(), &QObject::destroyed);
153
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(destroyedSpy.isValid());
154
1/2
✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
1 display.terminate();
155
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(!destroyedSpy.wait(100));
156 1 seat.reset();
157
2/4
✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✓ Branch 3 taken 1 times.
1 QCOMPARE(destroyedSpy.count(), 1);
158
1/2
✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
1 }
159
160 1 void TestWaylandServerSeat::testRepeatInfo()
161 {
162 1 Wrapland::Server::Display display;
163
2/4
✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
1 display.set_socket_name(socket_name);
164
1/2
✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
1 display.start();
165
166
1/2
✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
1 auto seat = std::make_unique<Wrapland::Server::Seat>(&display);
167
1/2
✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
1 seat->setHasKeyboard(true);
168
1/2
✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
1 auto& keyboards = seat->keyboards();
169
170
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(keyboards.get_repeat_info().rate, 0);
171
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(keyboards.get_repeat_info().delay, 0);
172
1/2
✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
1 keyboards.set_repeat_info(25, 660);
173
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(keyboards.get_repeat_info().rate, 25);
174
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(keyboards.get_repeat_info().delay, 660);
175
176 // setting negative values should result in 0
177
1/2
✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
1 keyboards.set_repeat_info(-25, -660);
178
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(keyboards.get_repeat_info().rate, 0);
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 QCOMPARE(keyboards.get_repeat_info().delay, 0);
180
1/2
✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
1 }
181
182 1 void TestWaylandServerSeat::testMultiple()
183 {
184 1 Wrapland::Server::Display display;
185
2/4
✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
1 display.set_socket_name(socket_name);
186
1/2
✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
1 display.start();
187
2/4
✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
1 QVERIFY(display.globals.seats.empty());
188
189
1/2
✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
1 auto seat1 = std::make_unique<Wrapland::Server::Seat>(&display);
190
2/4
✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✓ Branch 3 taken 1 times.
1 QCOMPARE(display.globals.seats.size(), 1);
191
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(display.globals.seats.at(0), seat1.get());
192
193
1/2
✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
1 auto seat2 = std::make_unique<Wrapland::Server::Seat>(&display);
194
2/4
✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✓ Branch 3 taken 1 times.
1 QCOMPARE(display.globals.seats.size(), 2);
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 QCOMPARE(display.globals.seats.at(0), seat1.get());
196
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(display.globals.seats.at(1), seat2.get());
197
198
1/2
✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
1 auto seat3 = std::make_unique<Wrapland::Server::Seat>(&display);
199
2/4
✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✓ Branch 3 taken 1 times.
1 QCOMPARE(display.globals.seats.size(), 3);
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 QCOMPARE(display.globals.seats.at(0), seat1.get());
201
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(display.globals.seats.at(1), seat2.get());
202
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(display.globals.seats.at(2), seat3.get());
203
204 1 seat3.reset();
205
2/4
✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✓ Branch 3 taken 1 times.
1 QCOMPARE(display.globals.seats.size(), 2);
206
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(display.globals.seats.at(0), seat1.get());
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 QCOMPARE(display.globals.seats.at(1), seat2.get());
208
209 1 seat2.reset();
210
2/4
✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✓ Branch 3 taken 1 times.
1 QCOMPARE(display.globals.seats.size(), 1);
211
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(display.globals.seats.at(0), seat1.get());
212
213 1 seat1.reset();
214
2/4
✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✓ Branch 3 taken 1 times.
1 QCOMPARE(display.globals.seats.size(), 0);
215
1/2
✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
1 }
216
217
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(TestWaylandServerSeat)
218 #include "test_seat.moc"
219