Skip to content

Commit 7be9f94

Browse files
author
Pushkar Kulkarni
committed
URLSession tests - remove some forced unwraps
1 parent dffecf1 commit 7be9f94

File tree

1 file changed

+30
-32
lines changed

1 file changed

+30
-32
lines changed

TestFoundation/TestNSURLSession.swift

Lines changed: 30 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -24,19 +24,19 @@ class TestURLSession : XCTestCase {
2424
//Disabling to avoid https://bugs.swift.org/browse/SR-4677 and a timeout failure
2525
// ("test_dataTaskWithURL", test_dataTaskWithURL),
2626
// ("test_dataTaskWithURLRequest", test_dataTaskWithURLRequest),
27-
// ("test_dataTaskWithURLCompletionHandler", test_dataTaskWithURLCompletionHandler),
28-
// ("test_dataTaskWithURLRequestCompletionHandler", test_dataTaskWithURLRequestCompletionHandler),
27+
("test_dataTaskWithURLCompletionHandler", test_dataTaskWithURLCompletionHandler),
28+
("test_dataTaskWithURLRequestCompletionHandler", test_dataTaskWithURLRequestCompletionHandler),
2929
// ("test_downloadTaskWithURL", test_downloadTaskWithURL),
3030
// ("test_downloadTaskWithURLRequest", test_downloadTaskWithURLRequest),
31-
// ("test_downloadTaskWithRequestAndHandler", test_downloadTaskWithRequestAndHandler),
32-
// ("test_downloadTaskWithURLAndHandler", test_downloadTaskWithURLAndHandler),
31+
("test_downloadTaskWithRequestAndHandler", test_downloadTaskWithRequestAndHandler),
32+
("test_downloadTaskWithURLAndHandler", test_downloadTaskWithURLAndHandler),
3333
// ("test_finishTaskAndInvalidate", test_finishTasksAndInvalidate),
3434
// ("test_taskError", test_taskError),
35-
// ("test_taskCopy", test_taskCopy),
35+
("test_taskCopy", test_taskCopy),
3636
// ("test_cancelTask", test_cancelTask),
3737
// ("test_taskTimeout", test_taskTimeout),
38-
// ("test_verifyRequestHeaders", test_verifyRequestHeaders),
39-
// ("test_verifyHttpAdditionalHeaders", test_verifyHttpAdditionalHeaders),
38+
("test_verifyRequestHeaders", test_verifyRequestHeaders),
39+
("test_verifyHttpAdditionalHeaders", test_verifyHttpAdditionalHeaders),
4040
("test_timeoutInterval", test_timeoutInterval),
4141
]
4242
}
@@ -97,17 +97,14 @@ class TestURLSession : XCTestCase {
9797
let expect = expectation(description: "URL test with completion handler")
9898
var expectedResult = "unknown"
9999
let task = session.dataTask(with: url) { data, response, error in
100-
if let e = error as? URLError {
101-
XCTAssertEqual(e.code, .timedOut, "Unexpected error code")
102-
expect.fulfill()
103-
return
104-
}
105-
106-
let httpResponse = response as! HTTPURLResponse?
107-
XCTAssertEqual(200, httpResponse!.statusCode, "HTTP response code is not 200")
108-
expectedResult = String(data: data!, encoding: String.Encoding.utf8)!
100+
defer { expect.fulfill() }
101+
XCTAssertNil(error as? URLError, "error = \(error as! URLError)")
102+
XCTAssertNotNil(response)
103+
XCTAssertNotNil(data)
104+
guard let httpResponse = response as? HTTPURLResponse, let data = data else { return }
105+
XCTAssertEqual(200, httpResponse.statusCode, "HTTP response code is not 200")
106+
expectedResult = String(data: data, encoding: String.Encoding.utf8) ?? ""
109107
XCTAssertEqual("Washington, D.C.", expectedResult, "Did not receive expected value")
110-
expect.fulfill()
111108
}
112109
task.resume()
113110
waitForExpectations(timeout: 12)
@@ -153,16 +150,14 @@ class TestURLSession : XCTestCase {
153150
let expect = expectation(description: "URL test with completion handler")
154151
var expectedResult = "unknown"
155152
let task = session.dataTask(with: urlRequest) { data, response, error in
156-
if let e = error as? URLError {
157-
XCTAssertEqual(e.code, .timedOut, "Unexpected error code")
158-
expect.fulfill()
159-
return
160-
}
161-
let httpResponse = response as! HTTPURLResponse?
162-
XCTAssertEqual(200, httpResponse!.statusCode, "HTTP response code is not 200")
163-
expectedResult = String(data: data!, encoding: String.Encoding.utf8)!
153+
defer { expect.fulfill() }
154+
XCTAssertNotNil(data)
155+
XCTAssertNotNil(response)
156+
XCTAssertNil(error as? URLError, "error = \(error as! URLError)")
157+
guard let httpResponse = response as? HTTPURLResponse, let data = data else { return }
158+
XCTAssertEqual(200, httpResponse.statusCode, "HTTP response code is not 200")
159+
expectedResult = String(data: data, encoding: String.Encoding.utf8) ?? ""
164160
XCTAssertEqual("Rome", expectedResult, "Did not receive expected value")
165-
expect.fulfill()
166161
}
167162
task.resume()
168163
waitForExpectations(timeout: 12)
@@ -221,9 +216,7 @@ class TestURLSession : XCTestCase {
221216
let expect = expectation(description: "download task with handler")
222217
let req = URLRequest(url: URL(string: "http://127.0.0.1:\(serverPort)/country.txt")!)
223218
let task = session.downloadTask(with: req) { (_, _, error) -> Void in
224-
if let e = error as? URLError {
225-
XCTAssertEqual(e.code, .timedOut, "Unexpected error code")
226-
}
219+
XCTAssertNil(error as? URLError, "error = \(error as! URLError)")
227220
expect.fulfill()
228221
}
229222
task.resume()
@@ -344,7 +337,10 @@ class TestURLSession : XCTestCase {
344337
req.allHTTPHeaderFields = headers
345338
var task = session.dataTask(with: req) { (data, _, error) -> Void in
346339
defer { expect.fulfill() }
347-
let headers = String(data: data!, encoding: String.Encoding.utf8)!
340+
XCTAssertNotNil(data)
341+
XCTAssertNil(error as? URLError, "error = \(error as! URLError)")
342+
guard let data = data else { return }
343+
let headers = String(data: data, encoding: String.Encoding.utf8) ?? ""
348344
XCTAssertNotNil(headers.range(of: "header1: value1"))
349345
}
350346
task.resume()
@@ -377,7 +373,9 @@ class TestURLSession : XCTestCase {
377373
req.allHTTPHeaderFields = headers
378374
var task = session.dataTask(with: req) { (data, _, error) -> Void in
379375
defer { expect.fulfill() }
380-
let headers = String(data: data!, encoding: String.Encoding.utf8)!
376+
XCTAssertNotNil(data)
377+
XCTAssertNil(error as? URLError, "error = \(error as! URLError)")
378+
let headers = String(data: data!, encoding: String.Encoding.utf8) ?? ""
381379
XCTAssertNotNil(headers.range(of: "header1: rvalue1"))
382380
XCTAssertNotNil(headers.range(of: "header2: rvalue2"))
383381
XCTAssertNotNil(headers.range(of: "header3: svalue3"))
@@ -405,7 +403,7 @@ class TestURLSession : XCTestCase {
405403
let req = URLRequest(url: URL(string: "http://127.0.0.1:\(serverPort)/Peru")!)
406404
var task = session.dataTask(with: req) { (data, _, error) -> Void in
407405
defer { expect.fulfill() }
408-
XCTAssertNil(error)
406+
XCTAssertNil(error as? URLError, "error = \(error as! URLError)")
409407
}
410408
task.resume()
411409

0 commit comments

Comments
 (0)