diff --git a/CHANGELOG.md b/CHANGELOG.md index a2e67b7a..b166e321 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,9 @@ # OHHTTPStubs — CHANGELOG ## Master + +* Fixed `URLRequest.ohhttpStubs_httpBody` function in Swift 3 and 4. + [@mplorentz](https://github.com/mplorentz) * Added absolute url matcher. [@victorg1991](https://github.com/victorg1991) [#254](https://github.com/AliSoftware/OHHTTPStubs/pull/254) diff --git a/OHHTTPStubs/Sources/Swift/OHHTTPStubsSwift.swift b/OHHTTPStubs/Sources/Swift/OHHTTPStubsSwift.swift index 82c61888..e32df03c 100644 --- a/OHHTTPStubs/Sources/Swift/OHHTTPStubsSwift.swift +++ b/OHHTTPStubs/Sources/Swift/OHHTTPStubsSwift.swift @@ -58,6 +58,12 @@ return rangeOfString(string) != nil } } +#else + extension URLRequest { + public var ohhttpStubs_httpBody: Data? { + return (self as NSURLRequest).ohhttpStubs_HTTPBody() + } + } #endif diff --git a/OHHTTPStubs/UnitTests/Test Suites/SwiftHelpersTests.swift b/OHHTTPStubs/UnitTests/Test Suites/SwiftHelpersTests.swift index 74eeb6b8..3c366db4 100644 --- a/OHHTTPStubs/UnitTests/Test Suites/SwiftHelpersTests.swift +++ b/OHHTTPStubs/UnitTests/Test Suites/SwiftHelpersTests.swift @@ -439,6 +439,20 @@ class SwiftHelpersTests : XCTestCase { XCTAssertFalse(matchesHeader) } + + func test_ohhttpStubs_httpBody() { +#if swift(>=3.0) + let data = "Hello world".data(using: .utf8) + var req = URLRequest(url: URL(string: "foo://bar")!) + req.httpBody = data + XCTAssertEqual(req.ohhttpStubs_httpBody, data) +#else + let data = "Hello world".dataUsingEncoding(NSUTF8StringEncoding) + let req = NSMutableURLRequest(URL: NSURL(string: "foo://bar")!) + req.HTTPBody = data + XCTAssertEqual(req.OHHTTPStubs_HTTPBody(), data) +#endif + } let sampleURLs = [ // Absolute URLs