Skip to content

Commit 09269e9

Browse files
committed
improve testResumeAfterCancellation
1 parent f70bc8e commit 09269e9

File tree

1 file changed

+13
-6
lines changed

1 file changed

+13
-6
lines changed

Tests/deferredTests/URLSessionTests.swift

Lines changed: 13 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -755,24 +755,31 @@ class URLSessionResumeTests: XCTestCase
755755
let resumeData = TBD<Data> {
756756
resolver in
757757
let deferred = session.deferredDownloadTask(with: URLSessionResumeTests.largeURL)
758-
deferred.onError {
759-
error in
760-
switch error
761-
{
762-
case URLSessionError.interruptedDownload(let error, let data):
758+
deferred.notify {
759+
result in
760+
do {
761+
let url = try result.get().0
762+
let data = try FileHandle(forReadingFrom: url).readDataToEndOfFile()
763+
resolver.resolve(value: data)
764+
}
765+
catch URLSessionError.interruptedDownload(let error, let data) {
763766
XCTAssertEqual(error.code, .cancelled)
764767
resolver.resolve(value: data)
765-
default:
768+
}
769+
catch {
766770
resolver.resolve(error: error)
767771
}
768772
}
769773
deferred.timeout(seconds: 0.5)
774+
resolver.retainSource(deferred)
770775
}
771776
#if os(Linux)
777+
XCTAssertNil(resumeData.value, "download did not time out")
772778
XCTAssertNotNil(resumeData.error)
773779
XCTAssert(URLError.cancelled ~= resumeData.error!)
774780
#else
775781
let data = try resumeData.get()
782+
XCTAssertNotEqual(data, URLSessionResumeTests.largeData, "download did not time out")
776783

777784
let resumed = session.deferredDownloadTask(withResumeData: data)
778785
let (url, response) = resumed.split()

0 commit comments

Comments
 (0)