Skip to content

Commit dfc6031

Browse files
committed
added 100% coveradge
1 parent 522fd0b commit dfc6031

File tree

2 files changed

+42
-1
lines changed

2 files changed

+42
-1
lines changed

Sources/WebLinking.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -171,7 +171,7 @@ func split(_ separator: String) -> (String) -> (String, String) {
171171

172172
/// Separate the first element in an array from the rest
173173
func takeFirst(_ input: [String]) -> (String, ArraySlice<String>) {
174-
if let first = input.first {
174+
if let first = input.first, first.count > 0 {
175175
let items = input[input.indices.suffix(from: (input.startIndex + 1))]
176176
return (first, items)
177177
}

Tests/WebLinkingTests.swift

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -92,6 +92,17 @@ class LinkHeaderTests: XCTestCase {
9292
}
9393

9494
func testResponseFindNoLinkParameters() {
95+
let url = URL(string: "http://test.com/")!
96+
let headers = [
97+
"Link": "random; text",
98+
]
99+
let response = HTTPURLResponse(url: url, statusCode: 200, httpVersion: nil, headerFields: headers)!
100+
let foundLink = response.findLink(["rel": "stylesheet"])
101+
102+
XCTAssertNil(foundLink)
103+
}
104+
105+
func testResponseNoLinkParameters() {
95106
let url = URL(string: "http://test.com/")!
96107
let headers = [
97108
"Link2": "random text",
@@ -102,6 +113,17 @@ class LinkHeaderTests: XCTestCase {
102113
XCTAssertNil(foundLink)
103114
}
104115

116+
func testResponseNotALinkParameters() {
117+
let url = URL(string: "http://test.com/")!
118+
let headers = [
119+
"Link": "random text",
120+
]
121+
let response = HTTPURLResponse(url: url, statusCode: 200, httpVersion: nil, headerFields: headers)!
122+
let foundLink = response.findLink(["rel": "stylesheet"])
123+
124+
XCTAssertNil(foundLink)
125+
}
126+
105127
func testResponseFindAnotherLinkParameters() {
106128
let url = URL(string: "http://test.com/")!
107129
let headers = [
@@ -157,3 +179,22 @@ class LinkWihoutParamentersTests: XCTestCase {
157179
XCTAssertEqual(link.parameters, [:])
158180
}
159181
}
182+
183+
184+
class EmptyHeaderLinkTests: XCTestCase {
185+
var link:Link!
186+
187+
override func setUp() {
188+
super.setUp()
189+
link = Link(header: String())
190+
}
191+
192+
func testHasURI() {
193+
XCTAssertEqual(link.uri, "")
194+
}
195+
196+
func testHasParameters() {
197+
XCTAssertEqual(link.parameters, [:])
198+
}
199+
200+
}

0 commit comments

Comments
 (0)