41 lines
1.7 KiB
C++
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"
|