Skip to content

Commit b20ecac

Browse files
committed
refactor: Add type property to JOSEHeader
1 parent ad8ed43 commit b20ecac

File tree

3 files changed

+56
-0
lines changed

3 files changed

+56
-0
lines changed

JWT.xcodeproj/project.pbxproj

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
271E10811F90253300B5033C /* JWA.swift in Sources */ = {isa = PBXBuildFile; fileRef = 271E107F1F90253300B5033C /* JWA.swift */; };
1212
271E10821F90253300B5033C /* JWA.swift in Sources */ = {isa = PBXBuildFile; fileRef = 271E107F1F90253300B5033C /* JWA.swift */; };
1313
271E10831F90253300B5033C /* JWA.swift in Sources */ = {isa = PBXBuildFile; fileRef = 271E107F1F90253300B5033C /* JWA.swift */; };
14+
271E10851F90274A00B5033C /* JOSEHeaderTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 271E10841F90274A00B5033C /* JOSEHeaderTests.swift */; };
1415
273010FF1F33EABA00219C35 /* HMAC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 273010FE1F33EABA00219C35 /* HMAC.swift */; };
1516
273011001F33EABA00219C35 /* HMAC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 273010FE1F33EABA00219C35 /* HMAC.swift */; };
1617
273011011F33EABA00219C35 /* HMAC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 273010FE1F33EABA00219C35 /* HMAC.swift */; };
@@ -67,6 +68,7 @@
6768

6869
/* Begin PBXFileReference section */
6970
271E107F1F90253300B5033C /* JWA.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = JWA.swift; sourceTree = "<group>"; };
71+
271E10841F90274A00B5033C /* JOSEHeaderTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = JOSEHeaderTests.swift; sourceTree = "<group>"; };
7072
273010FE1F33EABA00219C35 /* HMAC.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = HMAC.swift; sourceTree = "<group>"; };
7173
273011041F33FC5F00219C35 /* HMACCommonCrypto.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = HMACCommonCrypto.swift; sourceTree = "<group>"; };
7274
273011091F33FC9100219C35 /* HMACCryptoSwift.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = HMACCryptoSwift.swift; sourceTree = "<group>"; };
@@ -179,6 +181,7 @@
179181
isa = PBXGroup;
180182
children = (
181183
279D63AE1AD07FFF0024E2BC /* JWTTests.swift */,
184+
271E10841F90274A00B5033C /* JOSEHeaderTests.swift */,
182185
279D63AC1AD07FFF0024E2BC /* Supporting Files */,
183186
);
184187
name = Tests;
@@ -449,6 +452,7 @@
449452
buildActionMask = 2147483647;
450453
files = (
451454
279D63AF1AD07FFF0024E2BC /* JWTTests.swift in Sources */,
455+
271E10851F90274A00B5033C /* JOSEHeaderTests.swift in Sources */,
452456
);
453457
runOnlyForDeploymentPostprocessing = 0;
454458
};

Sources/JOSEHeader.swift

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,4 +25,14 @@ struct JOSEHeader {
2525
parameters["alg"] = newValue
2626
}
2727
}
28+
29+
var type: String? {
30+
get {
31+
return parameters["typ"] as? String
32+
}
33+
34+
set {
35+
parameters["typ"] = newValue
36+
}
37+
}
2838
}

Tests/JWTTests/JOSEHeaderTests.swift

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
import XCTest
2+
@testable import JWT
3+
4+
class JOSEHeaderTests: XCTestCase {
5+
// MARK: Algorithm
6+
7+
func testGettingUnsetAlgoritm() {
8+
let header = JOSEHeader(parameters: [:])
9+
XCTAssertNil(header.algorithm)
10+
}
11+
12+
func testGettingAlgoritm() {
13+
let header = JOSEHeader(parameters: ["alg": "none"])
14+
XCTAssertEqual(header.algorithm, "none")
15+
}
16+
17+
func testSettingAlgoritm() {
18+
var header = JOSEHeader(parameters: [:])
19+
20+
header.algorithm = "none"
21+
XCTAssertEqual(header.algorithm, "none")
22+
}
23+
24+
// MARK: Type
25+
26+
func testGettingUnsetType() {
27+
let header = JOSEHeader(parameters: [:])
28+
XCTAssertNil(header.type)
29+
}
30+
31+
func testGettingType() {
32+
let header = JOSEHeader(parameters: ["typ": "JWT"])
33+
XCTAssertEqual(header.type, "JWT")
34+
}
35+
36+
func testSettingType() {
37+
var header = JOSEHeader(parameters: [:])
38+
39+
header.type = "JWT"
40+
XCTAssertEqual(header.type, "JWT")
41+
}
42+
}

0 commit comments

Comments
 (0)