summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorTamas Zakor <ztamas@inf.u-szeged.hu>2019-05-09 14:49:56 +0200
committerTamas Zakor <ztamas@inf.u-szeged.hu>2019-05-16 11:57:07 +0000
commita4eeb9dbd995d598bd3a639dd450def7c242b383 (patch)
tree99d1b0fe8fa64be15948b601960c54e5b632783b /tests
parent0c2beb49b858f49489fa4f1ecee6bfdd6ce57e68 (diff)
Add API to get the suggested download file name
[ChangeLog][DownloadItem] Add functions and property to get the suggested download file name. Task-number: QTBUG-56978 Change-Id: I902870c6358271322da613a15ccc11639384e404 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
Diffstat (limited to 'tests')
-rw-r--r--tests/auto/quick/publicapi/tst_publicapi.cpp1
-rw-r--r--tests/auto/quick/qmltests/data/tst_download.qml6
-rw-r--r--tests/auto/widgets/qwebenginedownloaditem/tst_qwebenginedownloaditem.cpp13
3 files changed, 20 insertions, 0 deletions
diff --git a/tests/auto/quick/publicapi/tst_publicapi.cpp b/tests/auto/quick/publicapi/tst_publicapi.cpp
index 096c3d2ca..3d4506b38 100644
--- a/tests/auto/quick/publicapi/tst_publicapi.cpp
+++ b/tests/auto/quick/publicapi/tst_publicapi.cpp
@@ -261,6 +261,7 @@ static const QStringList expectedAPI = QStringList()
<< "QQuickWebEngineDownloadItem.typeChanged() --> void"
<< "QQuickWebEngineDownloadItem.view --> QQuickWebEngineView*"
<< "QQuickWebEngineDownloadItem.url --> QUrl"
+ << "QQuickWebEngineDownloadItem.suggestedFileName --> QString"
<< "QQuickWebEngineFileDialogRequest.FileModeOpen --> FileMode"
<< "QQuickWebEngineFileDialogRequest.FileModeOpenMultiple --> FileMode"
<< "QQuickWebEngineFileDialogRequest.FileModeSave --> FileMode"
diff --git a/tests/auto/quick/qmltests/data/tst_download.qml b/tests/auto/quick/qmltests/data/tst_download.qml
index 04838f57d..c8f783b03 100644
--- a/tests/auto/quick/qmltests/data/tst_download.qml
+++ b/tests/auto/quick/qmltests/data/tst_download.qml
@@ -43,6 +43,7 @@ TestWebEngineView {
property var downloadState: []
property var downloadInterruptReason: null
property url downloadUrl: ""
+ property string suggestedFileName: ""
function urlToPath(url) {
var path = url.toString()
@@ -83,6 +84,7 @@ TestWebEngineView {
download.accept()
}
downloadUrl = download.url
+ suggestedFileName = download.suggestedFileName
}
onDownloadFinished: {
receivedBytes = download.receivedBytes;
@@ -109,6 +111,7 @@ TestWebEngineView {
downLoadRequestedSpy.wait()
compare(downLoadRequestedSpy.count, 1)
compare(downloadUrl, webEngineView.url)
+ compare(suggestedFileName, "download.zip")
compare(downloadState[0], WebEngineDownloadItem.DownloadRequested)
verify(!downloadInterruptReason)
}
@@ -119,6 +122,7 @@ TestWebEngineView {
downLoadRequestedSpy.wait()
compare(downLoadRequestedSpy.count, 1)
compare(downloadUrl, webEngineView.url)
+ compare(suggestedFileName, "download.zip")
compare(totalBytes, 325)
verify(!downloadInterruptReason)
}
@@ -129,6 +133,7 @@ TestWebEngineView {
downLoadRequestedSpy.wait()
compare(downLoadRequestedSpy.count, 1)
compare(downloadUrl, webEngineView.url)
+ compare(suggestedFileName, "download.zip")
compare(downloadState[0], WebEngineDownloadItem.DownloadRequested)
tryCompare(downloadState, "1", WebEngineDownloadItem.DownloadInProgress)
downloadFinishedSpy.wait()
@@ -144,6 +149,7 @@ TestWebEngineView {
downLoadRequestedSpy.wait()
compare(downLoadRequestedSpy.count, 1)
compare(downloadUrl, webEngineView.url)
+ compare(suggestedFileName, "download.zip")
compare(downloadFinishedSpy.count, 1)
tryCompare(downloadState, "1", WebEngineDownloadItem.DownloadCancelled)
tryCompare(webEngineView, "downloadInterruptReason", WebEngineDownloadItem.UserCanceled)
diff --git a/tests/auto/widgets/qwebenginedownloaditem/tst_qwebenginedownloaditem.cpp b/tests/auto/widgets/qwebenginedownloaditem/tst_qwebenginedownloaditem.cpp
index 3a38c115d..ab576135f 100644
--- a/tests/auto/widgets/qwebenginedownloaditem/tst_qwebenginedownloaditem.cpp
+++ b/tests/auto/widgets/qwebenginedownloaditem/tst_qwebenginedownloaditem.cpp
@@ -868,6 +868,7 @@ void tst_QWebEngineDownloadItem::downloadUniqueFilename()
QFETCH(QString, extension);
QString fileName = QString("%1.%2").arg(baseName).arg(extension);
QString downloadedFilePath;
+ QString suggestedFileName;
bool downloadFinished = false;
QTemporaryDir tmpDir;
@@ -889,6 +890,7 @@ void tst_QWebEngineDownloadItem::downloadUniqueFilename()
// Set up profile and download handler
ScopedConnection sc2 = connect(m_profile, &QWebEngineProfile::downloadRequested, [&](QWebEngineDownloadItem *item) {
+ suggestedFileName = item->suggestedFileName();
item->accept();
connect(item, &QWebEngineDownloadItem::finished, [&, item]() {
QCOMPARE(item->state(), QWebEngineDownloadItem::DownloadCompleted);
@@ -914,6 +916,7 @@ void tst_QWebEngineDownloadItem::downloadUniqueFilename()
QTRY_VERIFY(downloadFinished);
QVERIFY(QFile(downloadedFilePath).exists());
QCOMPARE(downloadedFilePath, m_profile->downloadPath() + "/" + baseName + " (" + QString::number(i) + ")." + extension);
+ QCOMPARE(suggestedFileName, fileName);
}
}
@@ -924,6 +927,7 @@ void tst_QWebEngineDownloadItem::downloadUniqueFilenameWithTimestamp()
QString extension("txt");
QString fileName = QString("%1.%2").arg(baseName).arg(extension);
QString downloadedFilePath;
+ QString suggestedFileName;
bool downloadFinished = false;
QTemporaryDir tmpDir;
@@ -944,6 +948,7 @@ void tst_QWebEngineDownloadItem::downloadUniqueFilenameWithTimestamp()
// Set up profile and download handler
ScopedConnection sc2 = connect(m_profile, &QWebEngineProfile::downloadRequested, [&](QWebEngineDownloadItem *item) {
+ suggestedFileName = item->suggestedFileName();
item->accept();
connect(item, &QWebEngineDownloadItem::finished, [&, item]() {
QCOMPARE(item->state(), QWebEngineDownloadItem::DownloadCompleted);
@@ -974,6 +979,7 @@ void tst_QWebEngineDownloadItem::downloadUniqueFilenameWithTimestamp()
QTRY_VERIFY(downloadFinished);
QVERIFY(QFile(downloadedFilePath).exists());
QCOMPARE(downloadedFilePath, m_profile->downloadPath() + "/" + baseName + " (100)." + extension);
+ QCOMPARE(suggestedFileName, fileName);
// Check if the downloaded files are suffixed with timestamp after the 100th download.
for (int i = 101; i < 103; i++) {
@@ -987,6 +993,7 @@ void tst_QWebEngineDownloadItem::downloadUniqueFilenameWithTimestamp()
// ISO 8601 Date and time in UTC
QRegExp timestamp("^(-?(?:[1-9][0-9]*)?[0-9]{4})-(1[0-2]|0[1-9])-(3[01]|0[1-9]|[12][0-9])T(2[0-3]|[01][0-9])([0-5][0-9])([0-5][0-9])([.][0-9]+)?(Z|[+-](?:2[0-3]|[01][0-9])[0-5][0-9])?$");
QVERIFY(timestamp.exactMatch(match.captured(1)));
+ QCOMPARE(suggestedFileName, fileName);
}
}
@@ -1013,6 +1020,7 @@ void tst_QWebEngineDownloadItem::downloadToNonExistentDir()
QString extension("txt");
QString fileName = QString("%1.%2").arg(baseName).arg(extension);
QString downloadedFilePath;
+ QString suggestedFileName;
bool downloadFinished = false;
QTemporaryDir tmpDir;
@@ -1034,6 +1042,7 @@ void tst_QWebEngineDownloadItem::downloadToNonExistentDir()
// Set up profile and download handler
ScopedConnection sc2 = connect(m_profile, &QWebEngineProfile::downloadRequested, [&](QWebEngineDownloadItem *item) {
+ suggestedFileName = item->suggestedFileName();
item->accept();
connect(item, &QWebEngineDownloadItem::finished, [&, item]() {
QCOMPARE(item->state(), QWebEngineDownloadItem::DownloadCompleted);
@@ -1055,6 +1064,7 @@ void tst_QWebEngineDownloadItem::downloadToNonExistentDir()
QTRY_VERIFY(downloadFinished);
QVERIFY(QFile(downloadedFilePath).exists());
QCOMPARE(downloadedFilePath, nonExistentDownloadPath + "/" + fileName);
+ QCOMPARE(suggestedFileName, fileName);
}
void tst_QWebEngineDownloadItem::downloadToReadOnlyDir()
@@ -1066,6 +1076,7 @@ void tst_QWebEngineDownloadItem::downloadToReadOnlyDir()
QString extension("txt");
QString fileName = QString("%1.%2").arg(baseName).arg(extension);
QString downloadedFilePath;
+ QString suggestedFileName;
bool downloadAccepted = false;
bool downloadFinished = false;
@@ -1088,6 +1099,7 @@ void tst_QWebEngineDownloadItem::downloadToReadOnlyDir()
QPointer<QWebEngineDownloadItem> downloadItem;
ScopedConnection sc2 = connect(m_profile, &QWebEngineProfile::downloadRequested, [&](QWebEngineDownloadItem *item) {
+ suggestedFileName = item->suggestedFileName();
downloadItem = item;
item->accept();
connect(item, &QWebEngineDownloadItem::finished, [&, item]() {
@@ -1108,6 +1120,7 @@ void tst_QWebEngineDownloadItem::downloadToReadOnlyDir()
QCOMPARE(downloadItem->isFinished(), false);
QCOMPARE(downloadItem->interruptReason(), QWebEngineDownloadItem::FileAccessDenied);
QVERIFY(!QFile(downloadedFilePath).exists());
+ QCOMPARE(suggestedFileName, fileName);
// Clear m_requestedDownloads explicitly because download is accepted but never finished.
m_requestedDownloads.clear();