summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorAllan Sandfeld Jensen <allan.jensen@qt.io>2018-02-16 11:04:13 +0100
committerAllan Sandfeld Jensen <allan.jensen@qt.io>2018-02-21 14:06:38 +0000
commit91bf3b3f87c0275ac4e7b1805a74ce931522adda (patch)
treeff60df7d0816275a0336cf2ae52ac9d88f422198 /tests
parent025952a9673264c3557f6f7c195eebc11892e80a (diff)
Fixup merge of downloadType from 5.10.1
In 5.11 we deprecated downloadType and at the same time ripped out most of the faulty logic. Later we partially fixed the logic in 5.10.1, but kept the 5.11 version during the merge. This restores the improved logic from 5.10.1, while keeping the property deprecated since it is still misleading at times. Change-Id: I12ee09a2b212506f7ba1a336c9c2e88aa3b1de24 Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io> Reviewed-by: Jüri Valdmann <juri.valdmann@qt.io> Reviewed-by: Michal Klocek <michal.klocek@qt.io>
Diffstat (limited to 'tests')
-rw-r--r--tests/auto/widgets/qwebenginedownloads/tst_qwebenginedownloads.cpp57
1 files changed, 38 insertions, 19 deletions
diff --git a/tests/auto/widgets/qwebenginedownloads/tst_qwebenginedownloads.cpp b/tests/auto/widgets/qwebenginedownloads/tst_qwebenginedownloads.cpp
index ee11bab9d..e6db114b1 100644
--- a/tests/auto/widgets/qwebenginedownloads/tst_qwebenginedownloads.cpp
+++ b/tests/auto/widgets/qwebenginedownloads/tst_qwebenginedownloads.cpp
@@ -88,6 +88,7 @@ void tst_QWebEngineDownloads::downloadLink_data()
QTest::addColumn<QByteArray>("fileDisposition");
QTest::addColumn<bool>("fileHasReferer");
QTest::addColumn<DownloadTestFileAction>("fileAction");
+ QTest::addColumn<QWebEngineDownloadItem::DownloadType>("downloadType");
// SaveLink should always trigger a download, even for empty files.
QTest::newRow("save link to empty file")
@@ -99,7 +100,8 @@ void tst_QWebEngineDownloads::downloadLink_data()
/* fileMimeTypeDetected */ << QByteArrayLiteral("")
/* fileDisposition */ << QByteArrayLiteral("")
/* fileHasReferer */ << true
- /* fileAction */ << FileIsDownloaded;
+ /* fileAction */ << FileIsDownloaded
+ /* downloadType */ << QWebEngineDownloadItem::UserRequested;
// SaveLink should always trigger a download, also for text files.
QTest::newRow("save link to text file")
@@ -111,7 +113,8 @@ void tst_QWebEngineDownloads::downloadLink_data()
/* fileMimeTypeDetected */ << QByteArrayLiteral("text/plain")
/* fileDisposition */ << QByteArrayLiteral("")
/* fileHasReferer */ << true
- /* fileAction */ << FileIsDownloaded;
+ /* fileAction */ << FileIsDownloaded
+ /* downloadType */ << QWebEngineDownloadItem::UserRequested;
// ... adding the "download" attribute should have no effect.
QTest::newRow("save link to text file (attribute)")
@@ -123,7 +126,8 @@ void tst_QWebEngineDownloads::downloadLink_data()
/* fileMimeTypeDetected */ << QByteArrayLiteral("text/plain")
/* fileDisposition */ << QByteArrayLiteral("")
/* fileHasReferer */ << true
- /* fileAction */ << FileIsDownloaded;
+ /* fileAction */ << FileIsDownloaded
+ /* downloadType */ << QWebEngineDownloadItem::UserRequested;
// ... adding the "attachment" content disposition should also have no effect.
QTest::newRow("save link to text file (attachment)")
@@ -135,7 +139,8 @@ void tst_QWebEngineDownloads::downloadLink_data()
/* fileMimeTypeDetected */ << QByteArrayLiteral("text/plain")
/* fileDisposition */ << QByteArrayLiteral("attachment")
/* fileHasReferer */ << true
- /* fileAction */ << FileIsDownloaded;
+ /* fileAction */ << FileIsDownloaded
+ /* downloadType */ << QWebEngineDownloadItem::UserRequested;
// ... even adding both should have no effect.
QTest::newRow("save link to text file (attribute+attachment)")
@@ -147,7 +152,8 @@ void tst_QWebEngineDownloads::downloadLink_data()
/* fileMimeTypeDetected */ << QByteArrayLiteral("text/plain")
/* fileDisposition */ << QByteArrayLiteral("attachment")
/* fileHasReferer */ << true
- /* fileAction */ << FileIsDownloaded;
+ /* fileAction */ << FileIsDownloaded
+ /* downloadType */ << QWebEngineDownloadItem::UserRequested;
// Navigating to an empty file should show an empty page.
QTest::newRow("navigate to empty file")
@@ -159,7 +165,8 @@ void tst_QWebEngineDownloads::downloadLink_data()
/* fileMimeTypeDetected */ << QByteArrayLiteral("")
/* fileDisposition */ << QByteArrayLiteral("")
/* fileHasReferer */ << true
- /* fileAction */ << FileIsDisplayed;
+ /* fileAction */ << FileIsDisplayed
+ /* downloadType */ << QWebEngineDownloadItem::UserRequested;
// Navigating to a text file should show the text file.
QTest::newRow("navigate to text file")
@@ -171,7 +178,8 @@ void tst_QWebEngineDownloads::downloadLink_data()
/* fileMimeTypeDetected */ << QByteArrayLiteral("text/plain")
/* fileDisposition */ << QByteArrayLiteral("")
/* fileHasReferer */ << true
- /* fileAction */ << FileIsDisplayed;
+ /* fileAction */ << FileIsDisplayed
+ /* downloadType */ << QWebEngineDownloadItem::UserRequested;
// ... unless the link has the "download" attribute: then the file should be downloaded.
QTest::newRow("navigate to text file (attribute)")
@@ -183,7 +191,8 @@ void tst_QWebEngineDownloads::downloadLink_data()
/* fileMimeTypeDetected */ << QByteArrayLiteral("text/plain")
/* fileDisposition */ << QByteArrayLiteral("")
/* fileHasReferer */ << false // crbug.com/455987
- /* fileAction */ << FileIsDownloaded;
+ /* fileAction */ << FileIsDownloaded
+ /* downloadType */ << QWebEngineDownloadItem::DownloadAttribute;
// ... same with the content disposition header save for the download type.
QTest::newRow("navigate to text file (attachment)")
@@ -195,7 +204,8 @@ void tst_QWebEngineDownloads::downloadLink_data()
/* fileMimeTypeDetected */ << QByteArrayLiteral("text/plain")
/* fileDisposition */ << QByteArrayLiteral("attachment")
/* fileHasReferer */ << true
- /* fileAction */ << FileIsDownloaded;
+ /* fileAction */ << FileIsDownloaded
+ /* downloadType */ << QWebEngineDownloadItem::Attachment;
// ... and both.
QTest::newRow("navigate to text file (attribute+attachment)")
@@ -207,7 +217,8 @@ void tst_QWebEngineDownloads::downloadLink_data()
/* fileMimeTypeDetected */ << QByteArrayLiteral("text/plain")
/* fileDisposition */ << QByteArrayLiteral("attachment")
/* fileHasReferer */ << false // crbug.com/455987
- /* fileAction */ << FileIsDownloaded;
+ /* fileAction */ << FileIsDownloaded
+ /* downloadType */ << QWebEngineDownloadItem::Attachment;
// The file's extension has no effect.
QTest::newRow("navigate to supposed zip file")
@@ -219,7 +230,8 @@ void tst_QWebEngineDownloads::downloadLink_data()
/* fileMimeTypeDetected */ << QByteArrayLiteral("")
/* fileDisposition */ << QByteArrayLiteral("")
/* fileHasReferer */ << true
- /* fileAction */ << FileIsDisplayed;
+ /* fileAction */ << FileIsDisplayed
+ /* downloadType */ << QWebEngineDownloadItem::DownloadAttribute;
// ... the file's mime type however does.
QTest::newRow("navigate to supposed zip file (application/zip)")
@@ -231,7 +243,8 @@ void tst_QWebEngineDownloads::downloadLink_data()
/* fileMimeTypeDetected */ << QByteArrayLiteral("application/zip")
/* fileDisposition */ << QByteArrayLiteral("")
/* fileHasReferer */ << true
- /* fileAction */ << FileIsDownloaded;
+ /* fileAction */ << FileIsDownloaded
+ /* downloadType */ << QWebEngineDownloadItem::DownloadAttribute;
// ... but we're not very picky about the exact type.
QTest::newRow("navigate to supposed zip file (application/octet-stream)")
@@ -243,7 +256,8 @@ void tst_QWebEngineDownloads::downloadLink_data()
/* fileMimeTypeDetected */ << QByteArrayLiteral("application/octet-stream")
/* fileDisposition */ << QByteArrayLiteral("")
/* fileHasReferer */ << true
- /* fileAction */ << FileIsDownloaded;
+ /* fileAction */ << FileIsDownloaded
+ /* downloadType */ << QWebEngineDownloadItem::DownloadAttribute;
// empty zip file (consisting only of "end of central directory record")
QByteArray zipFile = QByteArrayLiteral("PK\x05\x06") + QByteArray(18, 0);
@@ -258,7 +272,8 @@ void tst_QWebEngineDownloads::downloadLink_data()
/* fileMimeTypeDetected */ << QByteArrayLiteral("application/octet-stream")
/* fileDisposition */ << QByteArrayLiteral("")
/* fileHasReferer */ << true
- /* fileAction */ << FileIsDownloaded;
+ /* fileAction */ << FileIsDownloaded
+ /* downloadType */ << QWebEngineDownloadItem::DownloadAttribute;
// The mime type is not guessed automatically if provided by the server.
QTest::newRow("navigate to actual zip file (application/zip)")
@@ -270,7 +285,8 @@ void tst_QWebEngineDownloads::downloadLink_data()
/* fileMimeTypeDetected */ << QByteArrayLiteral("application/zip")
/* fileDisposition */ << QByteArrayLiteral("")
/* fileHasReferer */ << true
- /* fileAction */ << FileIsDownloaded;
+ /* fileAction */ << FileIsDownloaded
+ /* downloadType */ << QWebEngineDownloadItem::DownloadAttribute;
}
void tst_QWebEngineDownloads::downloadLink()
@@ -284,6 +300,7 @@ void tst_QWebEngineDownloads::downloadLink()
QFETCH(QByteArray, fileDisposition);
QFETCH(bool, fileHasReferer);
QFETCH(DownloadTestFileAction, fileAction);
+ QFETCH(QWebEngineDownloadItem::DownloadType, downloadType);
HttpServer server;
QWebEngineProfile profile;
@@ -381,7 +398,7 @@ void tst_QWebEngineDownloads::downloadLink()
QCOMPARE(item->totalBytes(), -1);
QCOMPARE(item->receivedBytes(), 0);
QCOMPARE(item->interruptReason(), QWebEngineDownloadItem::NoReason);
- QCOMPARE(item->type(), QWebEngineDownloadItem::UserRequested);
+ QCOMPARE(item->type(), downloadType);
QCOMPARE(item->isSavePageDownload(), false);
QCOMPARE(item->mimeType(), QString(fileMimeTypeDetected));
QCOMPARE(item->path(), suggestedPath);
@@ -400,7 +417,7 @@ void tst_QWebEngineDownloads::downloadLink()
QCOMPARE(item->totalBytes(), fileContents.size());
QCOMPARE(item->receivedBytes(), fileContents.size());
QCOMPARE(item->interruptReason(), QWebEngineDownloadItem::NoReason);
- QCOMPARE(item->type(), QWebEngineDownloadItem::UserRequested);
+ QCOMPARE(item->type(), downloadType);
QCOMPARE(item->isSavePageDownload(), false);
QCOMPARE(item->mimeType(), QString(fileMimeTypeDetected));
QCOMPARE(item->path(), downloadPath);
@@ -510,15 +527,17 @@ void tst_QWebEngineDownloads::downloadTwoLinks()
if (item1->url().fileName() == QByteArrayLiteral("file2"))
qSwap(item1, item2);
- QTRY_COMPARE(item1->state(), QWebEngineDownloadItem::DownloadCompleted);
+ QCOMPARE(item1->type(), QWebEngineDownloadItem::DownloadAttribute);
QCOMPARE(item1->mimeType(), QStringLiteral("text/plain"));
QCOMPARE(item1->savePageFormat(), QWebEngineDownloadItem::UnknownSaveFormat);
QCOMPARE(item1->url(), server.url(QByteArrayLiteral("/file1")));
+ QTRY_COMPARE(item1->state(), QWebEngineDownloadItem::DownloadCompleted);
- QTRY_COMPARE(item2->state(), QWebEngineDownloadItem::DownloadCompleted);
+ QCOMPARE(item2->type(), QWebEngineDownloadItem::Attachment);
QCOMPARE(item2->mimeType(), QStringLiteral("text/plain"));
QCOMPARE(item2->savePageFormat(), QWebEngineDownloadItem::UnknownSaveFormat);
QCOMPARE(item2->url(), server.url(QByteArrayLiteral("/file2")));
+ QTRY_COMPARE(item2->state(), QWebEngineDownloadItem::DownloadCompleted);
}
void tst_QWebEngineDownloads::downloadPage_data()