diff --git a/Foundation/NSURLRequest.swift b/Foundation/NSURLRequest.swift index 212bc5482e..b29d95a242 100644 --- a/Foundation/NSURLRequest.swift +++ b/Foundation/NSURLRequest.swift @@ -346,6 +346,11 @@ open class NSURLRequest : NSObject, NSSecureCoding, NSCopying, NSMutableCopying open internal(set) var httpShouldHandleCookies: Bool = true open internal(set) var httpShouldUsePipelining: Bool = true + + open override var description: String { + let url = self.url?.description ?? "(null)" + return super.description + " { URL: \(url) }" + } } /// An `NSMutableURLRequest` object represents a mutable URL load diff --git a/TestFoundation/TestNSURLRequest.swift b/TestFoundation/TestNSURLRequest.swift index 4b2ec3ae57..2874febf18 100644 --- a/TestFoundation/TestNSURLRequest.swift +++ b/TestFoundation/TestNSURLRequest.swift @@ -31,6 +31,7 @@ class TestNSURLRequest : XCTestCase { ("test_NSCoding_2", test_NSCoding_2), ("test_NSCoding_3", test_NSCoding_3), ("test_methodNormalization", test_methodNormalization), + ("test_description", test_description), ] } @@ -283,4 +284,18 @@ class TestNSURLRequest : XCTestCase { XCTAssertEqual(request.httpMethod, n.value) } } + + func test_description() { + let url = URL(string: "http://swift.org")! + let request = NSMutableURLRequest(url: url) + + if request.description.range(of: "http://swift.org") == nil { + XCTFail("description should contain URL") + } + + request.url = nil + if request.description.range(of: "(null)") == nil { + XCTFail("description of nil URL should contain (null)") + } + } } diff --git a/TestFoundation/TestURLRequest.swift b/TestFoundation/TestURLRequest.swift index 47bda31fed..f3479d0921 100644 --- a/TestFoundation/TestURLRequest.swift +++ b/TestFoundation/TestURLRequest.swift @@ -28,6 +28,7 @@ class TestURLRequest : XCTestCase { ("test_mutableCopy_2", test_mutableCopy_2), ("test_mutableCopy_3", test_mutableCopy_3), ("test_methodNormalization", test_methodNormalization), + ("test_description", test_description), ] } @@ -237,5 +238,15 @@ class TestURLRequest : XCTestCase { XCTAssertEqual(request.httpMethod, n.value) } } + + func test_description() { + let url = URL(string: "http://swift.org")! + + var request = URLRequest(url: url) + XCTAssertEqual(request.description, "http://swift.org") + + request.url = nil + XCTAssertEqual(request.description, "url: nil") + } }