#include "../clipboardresultdialog.h" #include 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"