Skip to content

Commit 3e2bc79

Browse files
nacevmihailmihailnacev
authored andcommitted
ADD support for injecting headerFields into Request
1 parent 22935a9 commit 3e2bc79

File tree

3 files changed

+43
-3
lines changed

3 files changed

+43
-3
lines changed

GirdersSwift.podspec

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
Pod::Spec.new do |s|
22
s.name = 'GirdersSwift'
3-
s.version = '0.7.1'
3+
s.version = '0.7.2'
44
s.summary = 'Girders for iOS, written in Swift.'
55
s.homepage = 'https://www.netcetera.com'
66
s.author = 'Netcetera'
77
s.description = 'A library that reduces development time for iOS Swift applications.'
88
s.platform = :ios, '11.0'
9-
s.source = { :git => 'https://github.com/netceteragroup/GirdersSwift.git', :tag => '0.7.1' }
9+
s.source = { :git => 'https://github.com/netceteragroup/GirdersSwift.git', :tag => '0.7.2' }
1010
s.requires_arc = true
1111
s.swift_version = "5.0"
1212
s.module_name = 'GirdersSwift'

Sources/GirdersSwift/http/Request.swift

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73,11 +73,13 @@ public struct Request: Equatable {
7373
method: HTTPMethod,
7474
parameters: [String: Any],
7575
queryParameters: [String: Any] = [:],
76+
additionalHeaders: [String: String] = [:],
7677
requestGenerator: RequestGenerator) {
7778
var mutableRequest = requestGenerator.generateRequest(withMethod: method)
7879
mutableRequest.updateParameters(parameters: parameters)
7980
mutableRequest.updateQueryParameters(parameters: queryParameters)
80-
81+
mutableRequest.updateHTTPHeaderFields(headerFields: additionalHeaders)
82+
8183
if method == .GET && mutableRequest.queryString != nil {
8284
if let queryString = URL.appendQueryString(queryString: mutableRequest.queryString!) {
8385
self.url = queryString

Tests/GirdersSwiftTests/swift/http/TestRequest.swift

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,44 @@ class TestRequest: XCTestCase {
4242
XCTAssertNotNil(request)
4343
}
4444

45+
func testRequestWithAdditionalHeaders() {
46+
// Given
47+
let url = URL(string: "https://www.example.com/api")!
48+
let method: HTTPMethod = .GET
49+
let parameters: [String : Any] = [:]
50+
let additionalHeaders: [String: String] = ["User-Agent": "MyApp/1.0"]
51+
52+
// When
53+
let request = Request(URL: url,
54+
method: method,
55+
parameters: parameters,
56+
additionalHeaders: additionalHeaders,
57+
requestGenerator: mockGenerator)
58+
let sortedHeaderFields = request.headerFields.sorted { $0.key < $1.key }
59+
let sortedDictionary = Dictionary(uniqueKeysWithValues: sortedHeaderFields)
60+
61+
// Then
62+
XCTAssertEqual(sortedDictionary, ["Accept": "application/json", "User-Agent": "MyApp/1.0"])
63+
}
64+
65+
func testRequestWithoutAdditionalHeaders() {
66+
// Given
67+
let url = URL(string: "https://www.example.com/api")!
68+
let method: HTTPMethod = .GET
69+
let parameters: [String : Any] = [:]
70+
71+
// When
72+
let request = Request(URL: url,
73+
method: method,
74+
parameters: parameters,
75+
requestGenerator: mockGenerator)
76+
let sortedHeaderFields = request.headerFields.sorted { $0.key < $1.key }
77+
let sortedDictionary = Dictionary(uniqueKeysWithValues: sortedHeaderFields)
78+
79+
// Then
80+
XCTAssertEqual(sortedDictionary, ["Accept": "application/json"])
81+
}
82+
4583
/**
4684
Testing == operator, when Requests are equal
4785
*/

0 commit comments

Comments
 (0)