Files
yourls-ui/tests/clipboardresultdialog_test.cpp
T
2026-10-01 12:21:40 -04:00

41 lines
1.7 KiB
C++

#include "../clipboardresultdialog.h"
#include <QTest>
class ClipboardResultDialogTest : public QObject {
Q_OBJECT
private slots:
void inactiveWindowDoesNotOverwriteClipboard() {
auto *clipboard = QGuiApplication::clipboard();
clipboard->setText(QStringLiteral("original"));
ClipboardResultDialog dialog(QUrl(QStringLiteral("https://cut.himro.ca/h")), true);
QVERIFY(!dialog.copyShortUrl());
QCOMPARE(clipboard->text(), QStringLiteral("original"));
}
void focusCopiesAndRetryRestoresShortUrl() {
const QUrl shortUrl(QStringLiteral("https://cut.himro.ca/h?value=a%26b#section"));
auto *clipboard = QGuiApplication::clipboard();
clipboard->setText(QStringLiteral("original"));
ClipboardResultDialog dialog(shortUrl, true);
dialog.show();
dialog.activateWindow();
QTRY_VERIFY(dialog.isActiveWindow());
QTRY_COMPARE(clipboard->text(), shortUrl.toString(QUrl::FullyEncoded));
QVERIFY(dialog.copyStatusLabel()->text().contains(QStringLiteral("copied")));
clipboard->setText(QStringLiteral("other text"));
QVERIFY(dialog.copyShortUrl());
QCOMPARE(clipboard->text(), shortUrl.toString(QUrl::FullyEncoded));
dialog.accept();
QCOMPARE(clipboard->text(), shortUrl.toString(QUrl::FullyEncoded));
}
void platformsWithoutFocusRequirementCopyImmediately() {
ClipboardResultDialog dialog(QUrl(QStringLiteral("https://cut.himro.ca/h")), false);
QVERIFY(dialog.copyShortUrl());
QCOMPARE(QGuiApplication::clipboard()->text(), QStringLiteral("https://cut.himro.ca/h"));
}
};
QTEST_MAIN(ClipboardResultDialogTest)
#include "clipboardresultdialog_test.moc"