Directory: | ./ |
---|---|
File: | autotests/client/input_method_v2.cpp |
Date: | 2024-01-22 17:25:27 |
Exec | Total | Coverage | |
---|---|---|---|
Lines: | 424 | 424 | 100.0% |
Branches: | 750 | 1500 | 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/input_method_v2.h" | ||
12 | #include "../../src/client/registry.h" | ||
13 | #include "../../src/client/seat.h" | ||
14 | #include "../../src/client/surface.h" | ||
15 | |||
16 | #include "../../server/compositor.h" | ||
17 | #include "../../server/display.h" | ||
18 | #include "../../server/input_method_v2.h" | ||
19 | #include "../../server/seat.h" | ||
20 | #include "../../server/surface.h" | ||
21 | |||
22 | #include "../../tests/globals.h" | ||
23 | |||
24 | #include <linux/input.h> | ||
25 | |||
26 | 1 | class input_method_v2_test : public QObject | |
27 | { | ||
28 | Q_OBJECT | ||
29 | private Q_SLOTS: | ||
30 | void init(); | ||
31 | void cleanup(); | ||
32 | |||
33 | void test_activate(); | ||
34 | void test_surrounding_text(); | ||
35 | void test_content_hints_data(); | ||
36 | void test_content_hints(); | ||
37 | void test_content_purpose_data(); | ||
38 | void test_content_purpose(); | ||
39 | void test_commit(); | ||
40 | void test_popup_surface(); | ||
41 | void test_keyboard_grab(); | ||
42 | |||
43 | private: | ||
44 | Wrapland::Client::input_method_v2* get_input_method(); | ||
45 | |||
46 | 1 | struct { | |
47 | std::unique_ptr<Wrapland::Server::Display> display; | ||
48 | Wrapland::Server::globals globals; | ||
49 | 1 | Wrapland::Server::Seat* seat{nullptr}; | |
50 | } server; | ||
51 | |||
52 | 1 | struct client { | |
53 | 1 | Wrapland::Client::ConnectionThread* connection{nullptr}; | |
54 | 1 | Wrapland::Client::EventQueue* queue{nullptr}; | |
55 | 1 | Wrapland::Client::Registry* registry{nullptr}; | |
56 | 1 | Wrapland::Client::Compositor* compositor{nullptr}; | |
57 | 1 | Wrapland::Client::Seat* seat{nullptr}; | |
58 | 1 | Wrapland::Client::text_input_manager_v3* text_input{nullptr}; | |
59 | 1 | Wrapland::Client::input_method_manager_v2* input_method{nullptr}; | |
60 | 1 | QThread* thread{nullptr}; | |
61 | } client1; | ||
62 | }; | ||
63 | |||
64 | constexpr auto socket_name{"wrapland-test-input-method-v2-0"}; | ||
65 | |||
66 | 29 | void input_method_v2_test::init() | |
67 | { | ||
68 | 29 | qRegisterMetaType<Wrapland::Server::Surface*>(); | |
69 | |||
70 | 29 | server.display = std::make_unique<Wrapland::Server::Display>(); | |
71 |
2/4✓ Branch 0 taken 29 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 29 times.
✗ Branch 3 not taken.
|
29 | server.display->set_socket_name(socket_name); |
72 | 29 | server.display->start(); | |
73 |
1/2✓ Branch 0 taken 29 times.
✗ Branch 1 not taken.
|
29 | QVERIFY(server.display->running()); |
74 | |||
75 | 29 | server.display->createShm(); | |
76 | |||
77 |
1/2✓ Branch 0 taken 29 times.
✗ Branch 1 not taken.
|
29 | server.globals.seats.push_back(std::make_unique<Wrapland::Server::Seat>(server.display.get())); |
78 | 29 | server.seat = server.globals.seats.back().get(); | |
79 | 29 | server.seat->setHasKeyboard(true); | |
80 | |||
81 | 58 | server.globals.compositor | |
82 | 58 | = std::make_unique<Wrapland::Server::Compositor>(server.display.get()); | |
83 | 58 | server.globals.text_input_manager_v3 | |
84 | 58 | = std::make_unique<Wrapland::Server::text_input_manager_v3>(server.display.get()); | |
85 | 58 | server.globals.input_method_manager_v2 | |
86 | 58 | = std::make_unique<Wrapland::Server::input_method_manager_v2>(server.display.get()); | |
87 | |||
88 | // setup connection | ||
89 |
1/2✓ Branch 0 taken 29 times.
✗ Branch 1 not taken.
|
29 | client1.connection = new Wrapland::Client::ConnectionThread; |
90 | 29 | QSignalSpy connectedSpy(client1.connection, | |
91 | &Wrapland::Client::ConnectionThread::establishedChanged); | ||
92 |
3/6✓ Branch 0 taken 29 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 29 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 29 times.
✗ Branch 5 not taken.
|
29 | QVERIFY(connectedSpy.isValid()); |
93 |
2/4✓ Branch 0 taken 29 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 29 times.
✗ Branch 3 not taken.
|
29 | client1.connection->setSocketName(socket_name); |
94 | |||
95 |
2/4✓ Branch 0 taken 29 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 29 times.
✗ Branch 3 not taken.
|
29 | client1.thread = new QThread(this); |
96 |
1/2✓ Branch 0 taken 29 times.
✗ Branch 1 not taken.
|
29 | client1.connection->moveToThread(client1.thread); |
97 |
1/2✓ Branch 0 taken 29 times.
✗ Branch 1 not taken.
|
29 | client1.thread->start(); |
98 | |||
99 |
1/2✓ Branch 0 taken 29 times.
✗ Branch 1 not taken.
|
29 | client1.connection->establishConnection(); |
100 |
6/12✓ Branch 0 taken 29 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 29 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 29 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 29 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 29 times.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✓ Branch 11 taken 29 times.
|
29 | QVERIFY(connectedSpy.count() || connectedSpy.wait()); |
101 |
2/4✓ Branch 0 taken 29 times.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✓ Branch 3 taken 29 times.
|
29 | QCOMPARE(connectedSpy.count(), 1); |
102 | |||
103 |
2/4✓ Branch 0 taken 29 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 29 times.
✗ Branch 3 not taken.
|
29 | client1.queue = new Wrapland::Client::EventQueue(this); |
104 |
1/2✓ Branch 0 taken 29 times.
✗ Branch 1 not taken.
|
29 | client1.queue->setup(client1.connection); |
105 | |||
106 |
1/2✓ Branch 0 taken 29 times.
✗ Branch 1 not taken.
|
29 | Wrapland::Client::Registry registry; |
107 |
1/2✓ Branch 0 taken 29 times.
✗ Branch 1 not taken.
|
29 | QSignalSpy interfacesAnnouncedSpy(®istry, &Wrapland::Client::Registry::interfacesAnnounced); |
108 |
3/6✓ Branch 0 taken 29 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 29 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 29 times.
✗ Branch 5 not taken.
|
29 | QVERIFY(interfacesAnnouncedSpy.isValid()); |
109 |
1/2✓ Branch 0 taken 29 times.
✗ Branch 1 not taken.
|
29 | registry.setEventQueue(client1.queue); |
110 |
1/2✓ Branch 0 taken 29 times.
✗ Branch 1 not taken.
|
29 | registry.create(client1.connection); |
111 |
3/6✓ Branch 0 taken 29 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 29 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 29 times.
✗ Branch 5 not taken.
|
29 | QVERIFY(registry.isValid()); |
112 |
1/2✓ Branch 0 taken 29 times.
✗ Branch 1 not taken.
|
29 | registry.setup(); |
113 |
5/10✓ Branch 0 taken 29 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 29 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 29 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 29 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✓ Branch 9 taken 29 times.
|
29 | QVERIFY(interfacesAnnouncedSpy.wait()); |
114 | |||
115 |
1/2✓ Branch 0 taken 29 times.
✗ Branch 1 not taken.
|
29 | client1.seat = registry.createSeat( |
116 |
1/2✓ Branch 0 taken 29 times.
✗ Branch 1 not taken.
|
29 | registry.interface(Wrapland::Client::Registry::Interface::Seat).name, |
117 |
1/2✓ Branch 0 taken 29 times.
✗ Branch 1 not taken.
|
29 | registry.interface(Wrapland::Client::Registry::Interface::Seat).version, |
118 | this); | ||
119 |
3/6✓ Branch 0 taken 29 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 29 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 29 times.
✗ Branch 5 not taken.
|
29 | QVERIFY(client1.seat->isValid()); |
120 | |||
121 |
1/2✓ Branch 0 taken 29 times.
✗ Branch 1 not taken.
|
29 | client1.compositor = registry.createCompositor( |
122 |
1/2✓ Branch 0 taken 29 times.
✗ Branch 1 not taken.
|
29 | registry.interface(Wrapland::Client::Registry::Interface::Compositor).name, |
123 |
1/2✓ Branch 0 taken 29 times.
✗ Branch 1 not taken.
|
29 | registry.interface(Wrapland::Client::Registry::Interface::Compositor).version, |
124 | this); | ||
125 |
3/6✓ Branch 0 taken 29 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 29 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 29 times.
✗ Branch 5 not taken.
|
29 | QVERIFY(client1.compositor->isValid()); |
126 | |||
127 |
1/2✓ Branch 0 taken 29 times.
✗ Branch 1 not taken.
|
29 | client1.text_input = registry.createTextInputManagerV3( |
128 |
1/2✓ Branch 0 taken 29 times.
✗ Branch 1 not taken.
|
29 | registry.interface(Wrapland::Client::Registry::Interface::TextInputManagerV3).name, |
129 |
1/2✓ Branch 0 taken 29 times.
✗ Branch 1 not taken.
|
29 | registry.interface(Wrapland::Client::Registry::Interface::TextInputManagerV3).version, |
130 | this); | ||
131 |
3/6✓ Branch 0 taken 29 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 29 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 29 times.
✗ Branch 5 not taken.
|
29 | QVERIFY(client1.text_input->isValid()); |
132 | |||
133 |
1/2✓ Branch 0 taken 29 times.
✗ Branch 1 not taken.
|
29 | client1.input_method = registry.createInputMethodManagerV2( |
134 |
1/2✓ Branch 0 taken 29 times.
✗ Branch 1 not taken.
|
29 | registry.interface(Wrapland::Client::Registry::Interface::InputMethodManagerV2).name, |
135 |
1/2✓ Branch 0 taken 29 times.
✗ Branch 1 not taken.
|
29 | registry.interface(Wrapland::Client::Registry::Interface::InputMethodManagerV2).version, |
136 | this); | ||
137 |
3/6✓ Branch 0 taken 29 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 29 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 29 times.
✗ Branch 5 not taken.
|
29 | QVERIFY(client1.input_method->isValid()); |
138 |
1/2✗ Branch 0 not taken.
✓ Branch 1 taken 29 times.
|
29 | } |
139 | |||
140 | 29 | void input_method_v2_test::cleanup() | |
141 | { | ||
142 | #define CLEANUP(variable) \ | ||
143 | if (variable) { \ | ||
144 | delete variable; \ | ||
145 | variable = nullptr; \ | ||
146 | } | ||
147 |
2/4✗ Branch 0 not taken.
✓ Branch 1 taken 29 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 29 times.
|
29 | CLEANUP(client1.input_method) |
148 |
2/4✗ Branch 0 not taken.
✓ Branch 1 taken 29 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 29 times.
|
29 | CLEANUP(client1.text_input) |
149 |
2/4✗ Branch 0 not taken.
✓ Branch 1 taken 29 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 29 times.
|
29 | CLEANUP(client1.seat) |
150 |
2/4✗ Branch 0 not taken.
✓ Branch 1 taken 29 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 29 times.
|
29 | CLEANUP(client1.compositor) |
151 |
2/4✗ Branch 0 not taken.
✓ Branch 1 taken 29 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 29 times.
|
29 | CLEANUP(client1.queue) |
152 |
1/2✗ Branch 0 not taken.
✓ Branch 1 taken 29 times.
|
29 | if (client1.connection) { |
153 | 29 | client1.connection->deleteLater(); | |
154 | 29 | client1.connection = nullptr; | |
155 | 29 | } | |
156 |
1/2✗ Branch 0 not taken.
✓ Branch 1 taken 29 times.
|
29 | if (client1.thread) { |
157 | 29 | client1.thread->quit(); | |
158 | 29 | client1.thread->wait(); | |
159 |
1/2✗ Branch 0 not taken.
✓ Branch 1 taken 29 times.
|
29 | delete client1.thread; |
160 | 29 | client1.thread = nullptr; | |
161 | 29 | } | |
162 | #undef CLEANUP | ||
163 | |||
164 |
1/2✓ Branch 0 taken 29 times.
✗ Branch 1 not taken.
|
29 | server = {}; |
165 | 29 | } | |
166 | |||
167 | 29 | Wrapland::Client::input_method_v2* input_method_v2_test::get_input_method() | |
168 | { | ||
169 | 29 | return client1.input_method->get_input_method(client1.seat); | |
170 | } | ||
171 | |||
172 | 1 | void input_method_v2_test::test_activate() | |
173 | { | ||
174 | // This test verifies that activation is done correctly. | ||
175 | 1 | QSignalSpy input_method_spy(server.seat, &Wrapland::Server::Seat::input_method_v2_changed); | |
176 |
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(input_method_spy.isValid()); |
177 | |||
178 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | auto input_method = std::unique_ptr<Wrapland::Client::input_method_v2>(get_input_method()); |
179 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
1 | QVERIFY(input_method); |
180 |
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(input_method_spy.wait()); |
181 | |||
182 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | auto server_input_method = server.seat->get_input_method_v2(); |
183 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
1 | QVERIFY(server_input_method); |
184 | |||
185 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | QSignalSpy done_spy(input_method.get(), &Wrapland::Client::input_method_v2::done); |
186 |
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(done_spy.isValid()); |
187 | |||
188 | // Now activate. | ||
189 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | server_input_method->set_active(true); |
190 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | server_input_method->done(); |
191 | |||
192 |
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(done_spy.wait()); |
193 |
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(input_method->state().active, true); |
194 | |||
195 | // Now deactivate. | ||
196 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | server_input_method->set_active(false); |
197 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | server_input_method->done(); |
198 | |||
199 |
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(done_spy.wait()); |
200 |
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(input_method->state().active, false); |
201 |
1/2✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
|
1 | } |
202 | |||
203 | 1 | void input_method_v2_test::test_surrounding_text() | |
204 | { | ||
205 | // This test verifies that surrounding text is sent correctly. | ||
206 | 1 | QSignalSpy input_method_spy(server.seat, &Wrapland::Server::Seat::input_method_v2_changed); | |
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(input_method_spy.isValid()); |
208 | |||
209 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | auto input_method = std::unique_ptr<Wrapland::Client::input_method_v2>(get_input_method()); |
210 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
1 | QVERIFY(input_method); |
211 |
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(input_method_spy.wait()); |
212 | |||
213 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | auto server_input_method = server.seat->get_input_method_v2(); |
214 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
1 | QVERIFY(server_input_method); |
215 | |||
216 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | QSignalSpy done_spy(input_method.get(), &Wrapland::Client::input_method_v2::done); |
217 |
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(done_spy.isValid()); |
218 | |||
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(input_method->state().surrounding_text.data.empty()); |
220 |
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(input_method->state().surrounding_text.cursor_position, 0); |
221 |
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(input_method->state().surrounding_text.selection_anchor, 0); |
222 |
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(input_method->state().surrounding_text.change_cause, |
223 | Wrapland::Client::text_input_v3_change_cause::other); | ||
224 | |||
225 | // Now activate and send surrounding text. | ||
226 | 1 | auto const surrounding_text = "100 €, 100 $"; | |
227 | |||
228 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | server_input_method->set_active(true); |
229 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | server_input_method->set_surrounding_text( |
230 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | surrounding_text, 5, 6, Wrapland::Server::text_input_v3_change_cause::input_method); |
231 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | server_input_method->done(); |
232 | |||
233 |
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(done_spy.wait()); |
234 |
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(input_method->state().active, true); |
235 |
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(input_method->state().surrounding_text.data, surrounding_text); |
236 |
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(input_method->state().surrounding_text.cursor_position, 5); |
237 |
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(input_method->state().surrounding_text.selection_anchor, 6); |
238 |
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(input_method->state().surrounding_text.change_cause, |
239 | Wrapland::Client::text_input_v3_change_cause::input_method); | ||
240 | |||
241 | // Now deactivate. | ||
242 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | server_input_method->set_active(false); |
243 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | server_input_method->done(); |
244 | |||
245 | // Not active anymore but surrounding text data still available. | ||
246 |
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(done_spy.wait()); |
247 |
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(input_method->state().active, false); |
248 |
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(input_method->state().surrounding_text.data, surrounding_text); |
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 | QCOMPARE(input_method->state().surrounding_text.cursor_position, 5); |
250 |
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(input_method->state().surrounding_text.selection_anchor, 6); |
251 |
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(input_method->state().surrounding_text.change_cause, |
252 | Wrapland::Client::text_input_v3_change_cause::input_method); | ||
253 | |||
254 | // Activate again but do not set surrounding text. | ||
255 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | server_input_method->set_active(true); |
256 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | server_input_method->done(); |
257 | |||
258 | // Active again and state reset now. | ||
259 |
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(done_spy.wait()); |
260 |
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(input_method->state().surrounding_text.data.empty()); |
261 |
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(input_method->state().surrounding_text.cursor_position, 0); |
262 |
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(input_method->state().surrounding_text.selection_anchor, 0); |
263 |
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(input_method->state().surrounding_text.change_cause, |
264 | Wrapland::Client::text_input_v3_change_cause::other); | ||
265 |
1/2✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
|
1 | } |
266 | |||
267 | using server_hint = Wrapland::Server::text_input_v3_content_hint; | ||
268 | using server_hints = Wrapland::Server::text_input_v3_content_hints; | ||
269 | using client_hint = Wrapland::Client::text_input_v3_content_hint; | ||
270 | using client_hints = Wrapland::Client::text_input_v3_content_hints; | ||
271 | |||
272 | using server_purpose = Wrapland::Server::text_input_v3_content_purpose; | ||
273 | using client_purpose = Wrapland::Client::text_input_v3_content_purpose; | ||
274 | |||
275 | 1 | void input_method_v2_test::test_content_hints_data() | |
276 | { | ||
277 | 1 | QTest::addColumn<client_hints>("clthints"); | |
278 | 1 | QTest::addColumn<server_hints>("srvhints"); | |
279 | |||
280 | 1 | QTest::newRow("completion") << client_hints(client_hint::completion) | |
281 | 1 | << server_hints(server_hint::completion); | |
282 | 1 | QTest::newRow("Correction") << client_hints(client_hint::spellcheck) | |
283 | 1 | << server_hints(server_hint::spellcheck); | |
284 | 1 | QTest::newRow("Capitalization") << client_hints(client_hint::auto_capitalization) | |
285 | 1 | << server_hints(server_hint::auto_capitalization); | |
286 | 1 | QTest::newRow("lowercase") << client_hints(client_hint::lowercase) | |
287 | 1 | << server_hints(server_hint::lowercase); | |
288 | 1 | QTest::newRow("uppercase") << client_hints(client_hint::uppercase) | |
289 | 1 | << server_hints(server_hint::uppercase); | |
290 | 1 | QTest::newRow("titlecase") << client_hints(client_hint::titlecase) | |
291 | 1 | << server_hints(server_hint::titlecase); | |
292 | 1 | QTest::newRow("hidden_text") << client_hints(client_hint::hidden_text) | |
293 | 1 | << server_hints(server_hint::hidden_text); | |
294 | 1 | QTest::newRow("sensitive_data") | |
295 | 1 | << client_hints(client_hint::sensitive_data) << server_hints(server_hint::sensitive_data); | |
296 | 1 | QTest::newRow("latin") << client_hints(client_hint::latin) << server_hints(server_hint::latin); | |
297 | 1 | QTest::newRow("multiline") << client_hints(client_hint::multiline) | |
298 | 1 | << server_hints(server_hint::multiline); | |
299 | |||
300 | 2 | QTest::newRow("autos") << (client_hint::completion | client_hint::spellcheck | |
301 | 1 | | client_hint::auto_capitalization) | |
302 | 2 | << (server_hint::completion | server_hint::spellcheck | |
303 | 1 | | server_hint::auto_capitalization); | |
304 | |||
305 | // all has combinations which don't make sense - for example both lowercase and uppercase. | ||
306 | 2 | QTest::newRow("all") << (client_hint::completion | client_hint::spellcheck | |
307 | 1 | | client_hint::auto_capitalization | client_hint::lowercase | |
308 | 1 | | client_hint::uppercase | client_hint::titlecase | |
309 | 1 | | client_hint::hidden_text | client_hint::sensitive_data | |
310 | 1 | | client_hint::latin | client_hint::multiline) | |
311 | 2 | << (server_hint::completion | server_hint::spellcheck | |
312 | 1 | | server_hint::auto_capitalization | server_hint::lowercase | |
313 | 1 | | server_hint::uppercase | server_hint::titlecase | |
314 | 1 | | server_hint::hidden_text | server_hint::sensitive_data | |
315 | 1 | | server_hint::latin | server_hint::multiline); | |
316 | 1 | } | |
317 | |||
318 | 12 | void input_method_v2_test::test_content_hints() | |
319 | { | ||
320 | // This test verifies that content hints are sent correctly. | ||
321 | 12 | QSignalSpy input_method_spy(server.seat, &Wrapland::Server::Seat::input_method_v2_changed); | |
322 |
3/6✓ Branch 0 taken 12 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 12 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 12 times.
✗ Branch 5 not taken.
|
12 | QVERIFY(input_method_spy.isValid()); |
323 | |||
324 |
1/2✓ Branch 0 taken 12 times.
✗ Branch 1 not taken.
|
12 | auto input_method = std::unique_ptr<Wrapland::Client::input_method_v2>(get_input_method()); |
325 |
2/4✓ Branch 0 taken 12 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 12 times.
✗ Branch 3 not taken.
|
12 | QVERIFY(input_method); |
326 |
5/10✓ Branch 0 taken 12 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 12 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 12 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 12 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✓ Branch 9 taken 12 times.
|
12 | QVERIFY(input_method_spy.wait()); |
327 | |||
328 |
1/2✓ Branch 0 taken 12 times.
✗ Branch 1 not taken.
|
12 | auto server_input_method = server.seat->get_input_method_v2(); |
329 |
2/4✓ Branch 0 taken 12 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 12 times.
✗ Branch 3 not taken.
|
12 | QVERIFY(server_input_method); |
330 | |||
331 |
1/2✓ Branch 0 taken 12 times.
✗ Branch 1 not taken.
|
12 | QSignalSpy done_spy(input_method.get(), &Wrapland::Client::input_method_v2::done); |
332 |
3/6✓ Branch 0 taken 12 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 12 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 12 times.
✗ Branch 5 not taken.
|
12 | QVERIFY(done_spy.isValid()); |
333 | |||
334 |
3/6✓ Branch 0 taken 12 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 12 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 12 times.
|
12 | QCOMPARE(input_method->state().content.hints, client_hints()); |
335 | |||
336 | // Now activate and send content hints. | ||
337 |
1/2✓ Branch 0 taken 12 times.
✗ Branch 1 not taken.
|
12 | server_input_method->set_active(true); |
338 |
2/4✓ Branch 0 taken 12 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 12 times.
✗ Branch 3 not taken.
|
12 | QFETCH(server_hints, srvhints); |
339 |
2/4✓ Branch 0 taken 12 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 12 times.
✗ Branch 3 not taken.
|
12 | QFETCH(client_hints, clthints); |
340 |
1/2✓ Branch 0 taken 12 times.
✗ Branch 1 not taken.
|
12 | server_input_method->set_content_type(srvhints, server_purpose::normal); |
341 |
1/2✓ Branch 0 taken 12 times.
✗ Branch 1 not taken.
|
12 | server_input_method->done(); |
342 | |||
343 |
5/10✓ Branch 0 taken 12 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 12 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 12 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 12 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✓ Branch 9 taken 12 times.
|
12 | QVERIFY(done_spy.wait()); |
344 |
3/6✓ Branch 0 taken 12 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 12 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 12 times.
|
12 | QCOMPARE(input_method->state().active, true); |
345 |
3/6✓ Branch 0 taken 12 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 12 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 12 times.
✗ Branch 5 not taken.
|
12 | QCOMPARE(input_method->state().content.hints, clthints); |
346 | |||
347 | // Now deactivate. | ||
348 |
1/2✓ Branch 0 taken 12 times.
✗ Branch 1 not taken.
|
12 | server_input_method->set_active(false); |
349 |
1/2✓ Branch 0 taken 12 times.
✗ Branch 1 not taken.
|
12 | server_input_method->done(); |
350 | |||
351 | // Not active anymore but content hints data still available. | ||
352 |
5/10✓ Branch 0 taken 12 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 12 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 12 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 12 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✓ Branch 9 taken 12 times.
|
12 | QVERIFY(done_spy.wait()); |
353 |
3/6✓ Branch 0 taken 12 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 12 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 12 times.
|
12 | QCOMPARE(input_method->state().active, false); |
354 |
3/6✓ Branch 0 taken 12 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 12 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 12 times.
✗ Branch 5 not taken.
|
12 | QCOMPARE(input_method->state().content.hints, clthints); |
355 | |||
356 | // Activate again but do not set content hints. | ||
357 |
1/2✓ Branch 0 taken 12 times.
✗ Branch 1 not taken.
|
12 | server_input_method->set_active(true); |
358 |
1/2✓ Branch 0 taken 12 times.
✗ Branch 1 not taken.
|
12 | server_input_method->done(); |
359 | |||
360 | // Active again and state reset now. | ||
361 |
5/10✓ Branch 0 taken 12 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 12 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 12 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 12 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✓ Branch 9 taken 12 times.
|
12 | QVERIFY(done_spy.wait()); |
362 |
3/6✓ Branch 0 taken 12 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 12 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 12 times.
|
12 | QCOMPARE(input_method->state().content.hints, client_hints()); |
363 |
1/2✗ Branch 0 not taken.
✓ Branch 1 taken 12 times.
|
12 | } |
364 | |||
365 | 1 | void input_method_v2_test::test_content_purpose_data() | |
366 | { | ||
367 | 1 | QTest::addColumn<client_purpose>("cltpurpose"); | |
368 | 1 | QTest::addColumn<server_purpose>("srvpurpose"); | |
369 | |||
370 | 1 | QTest::newRow("alpha") << client_purpose::alpha << server_purpose::alpha; | |
371 | 1 | QTest::newRow("digits") << client_purpose::digits << server_purpose::digits; | |
372 | 1 | QTest::newRow("number") << client_purpose::number << server_purpose::number; | |
373 | 1 | QTest::newRow("phone") << client_purpose::phone << server_purpose::phone; | |
374 | 1 | QTest::newRow("url") << client_purpose::url << server_purpose::url; | |
375 | 1 | QTest::newRow("email") << client_purpose::email << server_purpose::email; | |
376 | 1 | QTest::newRow("name") << client_purpose::name << server_purpose::name; | |
377 | 1 | QTest::newRow("password") << client_purpose::password << server_purpose::password; | |
378 | 1 | QTest::newRow("date") << client_purpose::date << server_purpose::date; | |
379 | 1 | QTest::newRow("time") << client_purpose::time << server_purpose::time; | |
380 | 1 | QTest::newRow("datetime") << client_purpose::datetime << server_purpose::datetime; | |
381 | 1 | QTest::newRow("terminal") << client_purpose::terminal << server_purpose::terminal; | |
382 | 1 | } | |
383 | |||
384 | 12 | void input_method_v2_test::test_content_purpose() | |
385 | { | ||
386 | // This test verifies that the content purpose is sent correctly. | ||
387 | 12 | QSignalSpy input_method_spy(server.seat, &Wrapland::Server::Seat::input_method_v2_changed); | |
388 |
3/6✓ Branch 0 taken 12 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 12 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 12 times.
✗ Branch 5 not taken.
|
12 | QVERIFY(input_method_spy.isValid()); |
389 | |||
390 |
1/2✓ Branch 0 taken 12 times.
✗ Branch 1 not taken.
|
12 | auto input_method = std::unique_ptr<Wrapland::Client::input_method_v2>(get_input_method()); |
391 |
2/4✓ Branch 0 taken 12 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 12 times.
✗ Branch 3 not taken.
|
12 | QVERIFY(input_method); |
392 |
5/10✓ Branch 0 taken 12 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 12 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 12 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 12 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✓ Branch 9 taken 12 times.
|
12 | QVERIFY(input_method_spy.wait()); |
393 | |||
394 |
1/2✓ Branch 0 taken 12 times.
✗ Branch 1 not taken.
|
12 | auto server_input_method = server.seat->get_input_method_v2(); |
395 |
2/4✓ Branch 0 taken 12 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 12 times.
✗ Branch 3 not taken.
|
12 | QVERIFY(server_input_method); |
396 | |||
397 |
1/2✓ Branch 0 taken 12 times.
✗ Branch 1 not taken.
|
12 | QSignalSpy done_spy(input_method.get(), &Wrapland::Client::input_method_v2::done); |
398 |
3/6✓ Branch 0 taken 12 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 12 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 12 times.
✗ Branch 5 not taken.
|
12 | QVERIFY(done_spy.isValid()); |
399 | |||
400 |
3/6✓ Branch 0 taken 12 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 12 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 12 times.
|
12 | QCOMPARE(input_method->state().content.purpose, client_purpose::normal); |
401 | |||
402 | // Now activate and send content hints. | ||
403 |
1/2✓ Branch 0 taken 12 times.
✗ Branch 1 not taken.
|
12 | server_input_method->set_active(true); |
404 |
2/4✓ Branch 0 taken 12 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 12 times.
✗ Branch 3 not taken.
|
12 | QFETCH(server_purpose, srvpurpose); |
405 |
2/4✓ Branch 0 taken 12 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 12 times.
✗ Branch 3 not taken.
|
12 | QFETCH(client_purpose, cltpurpose); |
406 |
1/2✓ Branch 0 taken 12 times.
✗ Branch 1 not taken.
|
12 | server_input_method->set_content_type(server_hints(), srvpurpose); |
407 |
1/2✓ Branch 0 taken 12 times.
✗ Branch 1 not taken.
|
12 | server_input_method->done(); |
408 | |||
409 |
5/10✓ Branch 0 taken 12 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 12 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 12 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 12 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✓ Branch 9 taken 12 times.
|
12 | QVERIFY(done_spy.wait()); |
410 |
3/6✓ Branch 0 taken 12 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 12 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 12 times.
|
12 | QCOMPARE(input_method->state().active, true); |
411 |
3/6✓ Branch 0 taken 12 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 12 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 12 times.
✗ Branch 5 not taken.
|
12 | QCOMPARE(input_method->state().content.purpose, cltpurpose); |
412 | |||
413 | // Now deactivate. | ||
414 |
1/2✓ Branch 0 taken 12 times.
✗ Branch 1 not taken.
|
12 | server_input_method->set_active(false); |
415 |
1/2✓ Branch 0 taken 12 times.
✗ Branch 1 not taken.
|
12 | server_input_method->done(); |
416 | |||
417 | // Not active anymore but content hints data still available. | ||
418 |
5/10✓ Branch 0 taken 12 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 12 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 12 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 12 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✓ Branch 9 taken 12 times.
|
12 | QVERIFY(done_spy.wait()); |
419 |
3/6✓ Branch 0 taken 12 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 12 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 12 times.
|
12 | QCOMPARE(input_method->state().active, false); |
420 |
3/6✓ Branch 0 taken 12 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 12 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 12 times.
✗ Branch 5 not taken.
|
12 | QCOMPARE(input_method->state().content.purpose, cltpurpose); |
421 | |||
422 | // Activate again but do not set content hints. | ||
423 |
1/2✓ Branch 0 taken 12 times.
✗ Branch 1 not taken.
|
12 | server_input_method->set_active(true); |
424 |
1/2✓ Branch 0 taken 12 times.
✗ Branch 1 not taken.
|
12 | server_input_method->done(); |
425 | |||
426 | // Active again and state reset now. | ||
427 |
5/10✓ Branch 0 taken 12 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 12 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 12 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 12 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✓ Branch 9 taken 12 times.
|
12 | QVERIFY(done_spy.wait()); |
428 |
3/6✓ Branch 0 taken 12 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 12 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 12 times.
|
12 | QCOMPARE(input_method->state().content.purpose, client_purpose::normal); |
429 |
1/2✗ Branch 0 not taken.
✓ Branch 1 taken 12 times.
|
12 | } |
430 | |||
431 | 1 | void input_method_v2_test::test_commit() | |
432 | { | ||
433 | // This test verifies that commit string, preedit and delete surrounding text is sent correctly. | ||
434 | 1 | QSignalSpy input_method_spy(server.seat, &Wrapland::Server::Seat::input_method_v2_changed); | |
435 |
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(input_method_spy.isValid()); |
436 | |||
437 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | auto input_method = std::unique_ptr<Wrapland::Client::input_method_v2>(get_input_method()); |
438 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✓ Branch 3 taken 1 times.
|
1 | QVERIFY(input_method); |
439 |
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(input_method_spy.wait()); |
440 | |||
441 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | auto server_input_method = server.seat->get_input_method_v2(); |
442 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✓ Branch 3 taken 1 times.
|
1 | QVERIFY(server_input_method); |
443 | |||
444 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | QSignalSpy done_spy(input_method.get(), &Wrapland::Client::input_method_v2::done); |
445 |
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(done_spy.isValid()); |
446 | |||
447 |
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(input_method->state().content.purpose, client_purpose::normal); |
448 | |||
449 | // Now activate and send surrounding text to indicate support for it. | ||
450 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | server_input_method->set_active(true); |
451 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | server_input_method->set_surrounding_text( |
452 |
1/2✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
|
1 | "", 0, 0, Wrapland::Server::text_input_v3_change_cause::other); |
453 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | server_input_method->done(); |
454 | |||
455 |
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(done_spy.wait()); |
456 |
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(input_method->state().active, true); |
457 |
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(input_method->state().surrounding_text.data.empty()); |
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 | QCOMPARE(input_method->state().surrounding_text.cursor_position, 0); |
459 |
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(input_method->state().surrounding_text.selection_anchor, 0); |
460 |
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(input_method->state().surrounding_text.change_cause, |
461 | Wrapland::Client::text_input_v3_change_cause::other); | ||
462 | |||
463 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | QSignalSpy commit_spy(server_input_method, &Wrapland::Server::input_method_v2::state_committed); |
464 |
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 | QVERIFY(commit_spy.isValid()); |
465 | |||
466 | // Now send data. | ||
467 | 1 | auto commit_text = "commit string text"; | |
468 | 1 | auto preedit_text = "preedit string text"; | |
469 |
2/4✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 1 times.
|
1 | input_method->commit_string(commit_text); |
470 |
2/4✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
1 | input_method->set_preedit_string(preedit_text, 1, 2); |
471 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | input_method->commit(); |
472 | |||
473 |
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_input_method->state().preedit_string.update, false); |
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 | QCOMPARE(server_input_method->state().preedit_string.data, ""); |
475 |
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_input_method->state().preedit_string.cursor_begin, 0); |
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(server_input_method->state().preedit_string.cursor_end, 0); |
477 |
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_input_method->state().commit_string.update, false); |
478 |
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_input_method->state().commit_string.data, ""); |
479 |
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_input_method->state().delete_surrounding_text.update, false); |
480 |
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_input_method->state().delete_surrounding_text.before_length, 0); |
481 |
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_input_method->state().delete_surrounding_text.after_length, 0); |
482 | |||
483 |
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()); |
484 |
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_input_method->state().preedit_string.update, true); |
485 |
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_input_method->state().preedit_string.data, preedit_text); |
486 |
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_input_method->state().preedit_string.cursor_begin, 1); |
487 |
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_input_method->state().preedit_string.cursor_end, 2); |
488 |
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_input_method->state().commit_string.update, true); |
489 |
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_input_method->state().commit_string.data, commit_text); |
490 |
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_input_method->state().delete_surrounding_text.update, false); |
491 |
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_input_method->state().delete_surrounding_text.before_length, 0); |
492 |
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_input_method->state().delete_surrounding_text.after_length, 0); |
493 | |||
494 | // Now deactivate. | ||
495 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | server_input_method->set_active(false); |
496 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | server_input_method->done(); |
497 | |||
498 | // Not active anymore but data is still available. | ||
499 |
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(done_spy.wait()); |
500 |
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_input_method->state().preedit_string.update, true); |
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(server_input_method->state().preedit_string.data, preedit_text); |
502 |
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_input_method->state().preedit_string.cursor_begin, 1); |
503 |
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_input_method->state().preedit_string.cursor_end, 2); |
504 |
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_input_method->state().commit_string.update, true); |
505 |
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_input_method->state().commit_string.data, commit_text); |
506 |
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_input_method->state().delete_surrounding_text.update, false); |
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(server_input_method->state().delete_surrounding_text.before_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 not taken.
✓ Branch 5 taken 1 times.
|
1 | QCOMPARE(server_input_method->state().delete_surrounding_text.after_length, 0); |
509 | |||
510 | // Activate again. Data is reset immediately. | ||
511 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | server_input_method->set_active(true); |
512 |
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_input_method->state().preedit_string.update, false); |
513 |
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_input_method->state().preedit_string.data, ""); |
514 |
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_input_method->state().preedit_string.cursor_begin, 0); |
515 |
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_input_method->state().preedit_string.cursor_end, 0); |
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(server_input_method->state().commit_string.update, false); |
517 |
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_input_method->state().commit_string.data, ""); |
518 |
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_input_method->state().delete_surrounding_text.update, false); |
519 |
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_input_method->state().delete_surrounding_text.before_length, 0); |
520 |
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_input_method->state().delete_surrounding_text.after_length, 0); |
521 | |||
522 | // Set surrounding text for testing deletion of surrounding text. | ||
523 | 1 | auto const surrounding_text = "100 €, 100 $"; | |
524 | |||
525 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | server_input_method->set_active(true); |
526 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | server_input_method->set_surrounding_text( |
527 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | surrounding_text, 5, 6, Wrapland::Server::text_input_v3_change_cause::input_method); |
528 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | server_input_method->done(); |
529 | |||
530 |
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(done_spy.wait()); |
531 |
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(input_method->state().active, true); |
532 |
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(input_method->state().surrounding_text.data, surrounding_text); |
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 | QCOMPARE(input_method->state().surrounding_text.cursor_position, 5); |
534 |
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(input_method->state().surrounding_text.selection_anchor, 6); |
535 |
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(input_method->state().surrounding_text.change_cause, |
536 | Wrapland::Client::text_input_v3_change_cause::input_method); | ||
537 | |||
538 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | input_method->delete_surrounding_text(1, 2); |
539 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | input_method->commit(); |
540 | |||
541 |
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()); |
542 |
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_input_method->state().preedit_string.update, false); |
543 |
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_input_method->state().preedit_string.data, ""); |
544 |
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_input_method->state().preedit_string.cursor_begin, 0); |
545 |
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_input_method->state().preedit_string.cursor_end, 0); |
546 |
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_input_method->state().commit_string.update, false); |
547 |
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_input_method->state().commit_string.data, ""); |
548 |
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_input_method->state().delete_surrounding_text.update, true); |
549 |
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_input_method->state().delete_surrounding_text.before_length, 1); |
550 |
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_input_method->state().delete_surrounding_text.after_length, 2); |
551 |
1/2✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
|
1 | } |
552 | |||
553 | 1 | void input_method_v2_test::test_popup_surface() | |
554 | { | ||
555 | // This test verifies that the popup surface works as expected. | ||
556 | 1 | auto surface = std::unique_ptr<Wrapland::Client::Surface>(client1.compositor->createSurface()); | |
557 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | QSignalSpy input_method_spy(server.seat, &Wrapland::Server::Seat::input_method_v2_changed); |
558 |
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(input_method_spy.isValid()); |
559 | |||
560 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | auto input_method = std::unique_ptr<Wrapland::Client::input_method_v2>(get_input_method()); |
561 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
1 | QVERIFY(input_method); |
562 |
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(input_method_spy.wait()); |
563 | |||
564 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | auto server_input_method = server.seat->get_input_method_v2(); |
565 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
1 | QVERIFY(server_input_method); |
566 | |||
567 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | QSignalSpy popup_spy(server_input_method, |
568 | &Wrapland::Server::input_method_v2::popup_surface_created); | ||
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 | QVERIFY(popup_spy.isValid()); |
570 | |||
571 | 1 | auto popup = std::unique_ptr<Wrapland::Client::input_popup_surface_v2>( | |
572 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | input_method->get_input_popup_surface(surface.get())); |
573 | |||
574 |
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_spy.wait()); |
575 | 1 | auto server_popup | |
576 |
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 | = popup_spy.first().first().value<Wrapland::Server::input_method_popup_surface_v2*>(); |
577 | |||
578 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | QSignalSpy rect_spy(popup.get(), |
579 | &Wrapland::Client::input_popup_surface_v2::text_input_rectangle_changed); | ||
580 |
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(rect_spy.isValid()); |
581 | |||
582 | 1 | auto rect = QRect(1, 2, 3, 4); | |
583 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | server_popup->set_text_input_rectangle(rect); |
584 |
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(rect_spy.wait()); |
585 | |||
586 |
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(popup->text_input_rectangle(), rect); |
587 |
1/2✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
|
1 | } |
588 | |||
589 | 1 | void input_method_v2_test::test_keyboard_grab() | |
590 | { | ||
591 | // This test verifies that a keyboard grab works as expected. | ||
592 | 1 | auto surface = std::unique_ptr<Wrapland::Client::Surface>(client1.compositor->createSurface()); | |
593 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | QSignalSpy input_method_spy(server.seat, &Wrapland::Server::Seat::input_method_v2_changed); |
594 |
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(input_method_spy.isValid()); |
595 | |||
596 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | auto input_method = std::unique_ptr<Wrapland::Client::input_method_v2>(get_input_method()); |
597 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
1 | QVERIFY(input_method); |
598 |
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(input_method_spy.wait()); |
599 | |||
600 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | auto server_input_method = server.seat->get_input_method_v2(); |
601 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
1 | QVERIFY(server_input_method); |
602 | |||
603 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | QSignalSpy grab_spy(server_input_method, &Wrapland::Server::input_method_v2::keyboard_grabbed); |
604 |
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(grab_spy.isValid()); |
605 | |||
606 | 1 | auto grab = std::unique_ptr<Wrapland::Client::input_method_keyboard_grab_v2>( | |
607 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | input_method->grab_keyboard()); |
608 | |||
609 |
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(grab_spy.wait()); |
610 | 1 | auto server_grab | |
611 |
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 | = grab_spy.first().first().value<Wrapland::Server::input_method_keyboard_grab_v2*>(); |
612 | |||
613 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | QSignalSpy keymap_spy(grab.get(), |
614 | &Wrapland::Client::input_method_keyboard_grab_v2::keymap_changed); | ||
615 |
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(keymap_spy.isValid()); |
616 | |||
617 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
1 | server_grab->set_keymap("foo"); |
618 |
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(keymap_spy.wait()); |
619 | |||
620 |
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 fd = keymap_spy.first().first().toInt(); |
621 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
1 | QVERIFY(fd != -1); |
622 |
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(keymap_spy.first().last().value<quint32>(), 3u); |
623 | |||
624 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | QFile file; |
625 |
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(file.open(fd, QIODevice::ReadOnly)); |
626 |
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 | auto address = reinterpret_cast<char*>(file.map(0, keymap_spy.first().last().value<quint32>())); |
627 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
1 | QVERIFY(address); |
628 |
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(qstrcmp(address, "foo"), 0); |
629 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | file.close(); |
630 | |||
631 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | QSignalSpy key_spy(grab.get(), &Wrapland::Client::input_method_keyboard_grab_v2::key_changed); |
632 |
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(key_spy.isValid()); |
633 | |||
634 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | server_grab->key(1, KEY_K, Wrapland::Server::key_state::pressed); |
635 |
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(key_spy.wait()); |
636 | |||
637 |
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(key_spy.first().at(0).value<uint32_t>(), KEY_K); |
638 |
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(key_spy.first().at(1).value<Wrapland::Client::Keyboard::KeyState>(), |
639 | Wrapland::Client::Keyboard::KeyState::Pressed); | ||
640 |
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(key_spy.first().at(2).value<uint32_t>(), 1); |
641 | |||
642 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | QSignalSpy modifiers_spy(grab.get(), |
643 | &Wrapland::Client::input_method_keyboard_grab_v2::modifiers_changed); | ||
644 |
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(modifiers_spy.isValid()); |
645 | |||
646 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | server_grab->update_modifiers(1, 2, 3, 4); |
647 |
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(modifiers_spy.wait()); |
648 | |||
649 |
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(modifiers_spy.first().at(0).value<uint32_t>(), 1); |
650 |
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(modifiers_spy.first().at(1).value<uint32_t>(), 2); |
651 |
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(modifiers_spy.first().at(2).value<uint32_t>(), 3); |
652 |
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(modifiers_spy.first().at(3).value<uint32_t>(), 4); |
653 | |||
654 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | QSignalSpy repeat_spy(grab.get(), |
655 | &Wrapland::Client::input_method_keyboard_grab_v2::repeat_changed); | ||
656 |
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(repeat_spy.isValid()); |
657 | |||
658 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | server_grab->set_repeat_info(1, 2); |
659 |
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(repeat_spy.wait()); |
660 | |||
661 |
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(grab->repeat_rate(), 1); |
662 |
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(grab->repeat_delay(), 2); |
663 |
1/2✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
|
1 | } |
664 | |||
665 |
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(input_method_v2_test) |
666 | #include "input_method_v2.moc" | ||
667 |