Files
sloposk/tests/tst_visibility.cpp
T
ericek111andClaude Opus 5.5 139a845151 Track input-method contexts by identity
- deactivate only drops the context it names; one replaced by an activate
  is kept until KWin deactivates it
- Moving focus straight from one field to another ends a manual hide

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-15 10:13:27 +02:00

70 lines
1.6 KiB
C++

#include "window/VisibilityController.h"
#include <QTest>
class TestVisibility : public QObject
{
Q_OBJECT
private Q_SLOTS:
void followsFieldFocus()
{
VisibilityController v;
v.setFieldActive(true);
QVERIFY(v.isVisible());
v.setFieldActive(false);
QVERIFY(!v.isVisible());
}
void dismissLastsUntilFocusChanges()
{
VisibilityController v;
v.setFieldActive(true);
v.hide();
QVERIFY(!v.isVisible());
v.setFieldActive(false);
v.setFieldActive(true);
QVERIFY(v.isVisible());
}
void dismissEndsWhenAnotherFieldIsFocused()
{
VisibilityController v;
v.setFieldActive(true);
v.hide();
v.setFieldActive(true); // activated straight from one field to the next
QVERIFY(v.isVisible());
}
void alwaysVisibleShowsWithoutField()
{
VisibilityController v;
v.setAlwaysVisible(true);
QVERIFY(v.isVisible());
v.hide(); // dismiss key still works...
QVERIFY(!v.isVisible());
v.setFieldActive(true); // ...until the focus changes
v.setFieldActive(false);
QVERIFY(v.isVisible());
}
void toggleShowsWithoutField()
{
VisibilityController v;
v.toggle();
QVERIFY(v.isVisible());
v.toggle();
QVERIFY(!v.isVisible());
}
void standaloneAlwaysVisible()
{
VisibilityController v;
v.setStandalone(true);
QVERIFY(v.isVisible());
}
};
QTEST_GUILESS_MAIN(TestVisibility)
#include "tst_visibility.moc"