Skip to content

Commit dfa46af

Browse files
author
Sergey Minakov
committed
[Tests] More test for NSURLRequest NSCoding
1 parent 2c198bb commit dfa46af

File tree

1 file changed

+31
-4
lines changed

1 file changed

+31
-4
lines changed

TestFoundation/TestNSURLRequest.swift

Lines changed: 31 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,9 @@ class TestNSURLRequest : XCTestCase {
2727
("test_mutableCopy_1", test_mutableCopy_1),
2828
("test_mutableCopy_2", test_mutableCopy_2),
2929
("test_mutableCopy_3", test_mutableCopy_3),
30-
("test_NSCoding", test_NSCoding),
30+
("test_NSCoding_1", test_NSCoding_1),
31+
("test_NSCoding_2", test_NSCoding_2),
32+
("test_NSCoding_3", test_NSCoding_3)
3133
]
3234
}
3335

@@ -205,12 +207,37 @@ class TestNSURLRequest : XCTestCase {
205207
XCTAssertNil(originalRequest.allHTTPHeaderFields)
206208
}
207209

208-
func test_NSCoding() {
210+
func test_NSCoding_1() {
209211
let url = URL(string: "https://apple.com")!
210-
211212
let requestA = NSURLRequest(url: url)
212-
XCTAssertEqual(requestA.url, url)
213213
let requestB = NSKeyedUnarchiver.unarchiveObject(with: NSKeyedArchiver.archivedData(withRootObject: requestA)) as! NSURLRequest
214214
XCTAssertEqual(requestA, requestB, "Archived then unarchived url request must be equal.")
215215
}
216+
217+
func test_NSCoding_2() {
218+
let url = URL(string: "https://apple.com")!
219+
let requestA = NSMutableURLRequest(url: url)
220+
//Also checks crash on NSData.bytes
221+
requestA.httpBody = Data()
222+
let requestB = NSKeyedUnarchiver.unarchiveObject(with: NSKeyedArchiver.archivedData(withRootObject: requestA)) as! NSURLRequest
223+
XCTAssertEqual(requestA, requestB, "Archived then unarchived url request must be equal.")
224+
//Check `.httpBody` as it is not checked in `isEqual(_:)`
225+
XCTAssertEqual(requestB.httpBody, requestA.httpBody)
226+
}
227+
228+
func test_NSCoding_3() {
229+
let url = URL(string: "https://apple.com")!
230+
let urlForDocument = URL(string: "http://ibm.com")!
231+
232+
let requestA = NSMutableURLRequest(url: url)
233+
requestA.mainDocumentURL = urlForDocument
234+
//Also checks crash on NSData.bytes
235+
requestA.httpBody = Data(bytes: [1, 2, 3])
236+
let requestB = NSKeyedUnarchiver.unarchiveObject(with: NSKeyedArchiver.archivedData(withRootObject: requestA)) as! NSURLRequest
237+
XCTAssertEqual(requestA, requestB, "Archived then unarchived url request must be equal.")
238+
//Check `.httpBody` as it is not checked in `isEqual(_:)`
239+
XCTAssertNotNil(requestB.httpBody)
240+
XCTAssertEqual(3, requestB.httpBody!.count)
241+
XCTAssertEqual(requestB.httpBody, requestA.httpBody)
242+
}
216243
}

0 commit comments

Comments
 (0)