Skip to content

Commit 6a25165

Browse files
committed
Add test case for ic and pending events.
1 parent 13f7d4c commit 6a25165

File tree

1 file changed

+39
-0
lines changed

1 file changed

+39
-0
lines changed

test/testinputcontext.cpp

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -216,10 +216,49 @@ void test_preedit_override() {
216216
FCITX_ASSERT(ic->capabilityFlags().test(CapabilityFlag::Preedit));
217217
}
218218

219+
void test_event_blocking() {
220+
InputContextManager manager;
221+
auto ic = std::make_unique<TestInputContext>(manager, "Firefox");
222+
ic->setCapabilityFlags(CapabilityFlag::Preedit);
223+
ic->commitString("ABC");
224+
225+
FCITX_ASSERT(!ic->hasPendingEvents());
226+
FCITX_ASSERT(!ic->hasPendingEventsStrictOrder());
227+
228+
ic->setBlockEventToClient(true);
229+
ic->commitString("ABC");
230+
FCITX_ASSERT(ic->hasPendingEvents());
231+
FCITX_ASSERT(ic->hasPendingEventsStrictOrder());
232+
233+
ic->setBlockEventToClient(false);
234+
FCITX_ASSERT(!ic->hasPendingEvents());
235+
FCITX_ASSERT(!ic->hasPendingEventsStrictOrder());
236+
237+
ic->setBlockEventToClient(true);
238+
ic->commitString("ABC");
239+
ic->updatePreedit();
240+
FCITX_ASSERT(ic->hasPendingEvents());
241+
FCITX_ASSERT(ic->hasPendingEventsStrictOrder());
242+
243+
ic->setBlockEventToClient(false);
244+
FCITX_ASSERT(!ic->hasPendingEvents());
245+
FCITX_ASSERT(!ic->hasPendingEventsStrictOrder());
246+
247+
ic->setBlockEventToClient(true);
248+
ic->updatePreedit();
249+
FCITX_ASSERT(ic->hasPendingEvents());
250+
FCITX_ASSERT(!ic->hasPendingEventsStrictOrder());
251+
252+
ic->setBlockEventToClient(false);
253+
FCITX_ASSERT(!ic->hasPendingEvents());
254+
FCITX_ASSERT(!ic->hasPendingEventsStrictOrder());
255+
}
256+
219257
int main() {
220258
test_simple();
221259
test_property();
222260
test_preedit_override();
261+
test_event_blocking();
223262

224263
return 0;
225264
}

0 commit comments

Comments
 (0)