Skip to content

Commit ae699aa

Browse files
Don't return nil with empty parameters in URL.replacing(queryParameters:) (#54)
1 parent 4feb70b commit ae699aa

File tree

3 files changed

+10
-4
lines changed

3 files changed

+10
-4
lines changed

Swiftification.podspec

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
Pod::Spec.new do |s|
22
s.name = "Swiftification"
3-
s.version = "11.0.0"
3+
s.version = "11.0.1"
44
s.summary = "Swift extensions to make life more pleasant."
55
s.authors = 'Hilton Campbell', 'Stephan Heilner', 'Branden Russell', 'Nick Shelley', 'Rhett Rogers'
66
s.homepage = "https://github.com/CrossWaterBridge/Swiftification"
77
s.license = { :type => 'MIT', :file => 'LICENSE' }
88
s.source = { :git => "https://github.com/CrossWaterBridge/Swiftification.git", :tag => s.version.to_s }
99
s.ios.deployment_target = '10.0'
10-
s.osx.deployment_target = '10.13'
10+
s.osx.deployment_target = '10.11'
1111
s.tvos.deployment_target = '10.0'
1212
s.source_files = 'Swiftification/*.swift'
1313
s.requires_arc = true

Swiftification/URL.swift

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,8 @@ import Foundation
2525
public extension URL {
2626

2727
func replacing(queryParameters parameters: [String: String]) -> URL? {
28-
guard !parameters.isEmpty, var components = URLComponents(url: self, resolvingAgainstBaseURL: false) else { return nil }
28+
guard !parameters.isEmpty else { return self }
29+
guard var components = URLComponents(url: self, resolvingAgainstBaseURL: false) else { return nil }
2930
components.queryItems = parameters.map { URLQueryItem(name: $0, value: $1) }.sorted { $0.name < $1.name }
3031
return components.url
3132
}

SwiftificationTests/URLTests.swift

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,9 +25,14 @@ import Swiftification
2525

2626
class URLTests: XCTestCase {
2727

28-
func testAppendingQueryString() {
28+
func testReplacingQueryString() {
2929
let url = URL(string: "http://www.google.com")
3030
XCTAssertEqual(URL(string: "http://www.google.com?test1=true&test2=false"), url?.replacing(queryParameters: ["test1": "true", "test2": "false" ]))
3131
}
3232

33+
func testURLReplacingQueryStringNoParameters() {
34+
let url = URL(string: "http://www.google.com")
35+
let replacedURL = url?.replacing(queryParameters: [:])
36+
XCTAssertEqual(replacedURL, url)
37+
}
3338
}

0 commit comments

Comments
 (0)