blob: 9f1d4323187efaa8b15274dbee8642229a4b44be [file] [log] [blame]
import QtQuick 2.0
import QtTest 1.0
import QtWebKit 3.0
import QtWebKit.experimental 1.0
WebView {
id: webView
width: 200
height: 200
property int expectedLength: 0
property int totalBytes: 0
signal downloadFinished()
SignalSpy {
id: spy
target: experimental
signalName: "downloadRequested"
}
SignalSpy {
id: downloadFinishedSpy
target: webView
signalName: "downloadFinished"
}
experimental.onDownloadRequested: {
download.target = downloadItem
expectedLength = downloadItem.expectedContentLength
downloadItem.destinationPath = downloadItem.suggestedFilename
downloadItem.start()
}
Connections {
id: download
ignoreUnknownSignals: true
onSucceeded: {
totalBytes = download.target.totalBytesReceived
webView.downloadFinished()
}
}
TestCase {
name: "WebViewDownload"
// Delayed windowShown to workaround problems with Qt5 in debug mode.
when: false
Timer {
running: parent.windowShown
repeat: false
interval: 1
onTriggered: parent.when = true
}
function init() {
spy.clear()
downloadFinishedSpy.clear()
expectedLength = 0
}
function test_downloadRequest() {
compare(spy.count, 0)
webView.url = Qt.resolvedUrl("../common/download.zip")
spy.wait()
compare(spy.count, 1)
}
function test_expectedLength() {
compare(spy.count, 0)
webView.url = Qt.resolvedUrl("../common/download.zip")
spy.wait()
compare(spy.count, 1)
compare(expectedLength, 325)
}
function test_succeeded() {
compare(spy.count, 0)
webView.url = Qt.resolvedUrl("../common/download.zip")
spy.wait()
compare(spy.count, 1)
downloadFinishedSpy.wait()
compare(totalBytes, expectedLength)
}
}
}