Files
sloposk/tests/tst_visibility.cpp
T
ericek111andClaude Opus 5.5 23e957660f Reword code comments in plain technical language
Comments only, no code changes. Replaces vague or personified phrasing
with explicit statements of what the code does and why, uses bullet
lists for multi-case behavior, and fixes the settings path in
WindowSettings.h (~/.config/sloposk/sloposk.conf).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-03 19:58:59 +01:00

96 lines
2.3 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 fieldShowsOnlyWhenTheSystemWantsIt()
{
VisibilityController v;
v.setShowOnField(false);
v.setFieldActive(true);
QVERIFY(!v.isVisible());
v.show(); // explicit requests still work
QVERIFY(v.isVisible());
v.setShowOnField(true);
v.setFieldActive(true);
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 systemToggleGatesEverything()
{
VisibilityController v;
v.setAlwaysVisible(true);
v.setEnabled(false);
QVERIFY(!v.isVisible());
v.show();
QVERIFY(!v.isVisible());
v.hide();
v.setEnabled(true); // re-enabling clears the earlier hide()
QVERIFY(v.isVisible());
}
void standaloneAlwaysVisible()
{
VisibilityController v;
v.setStandalone(true);
QVERIFY(v.isVisible());
}
};
QTEST_GUILESS_MAIN(TestVisibility)
#include "tst_visibility.moc"