@@ -13,23 +13,45 @@ import TSCBasic
13
13
import XCTest
14
14
15
15
final class AuthorizationProviderTests : XCTestCase {
16
- func testBasicAPIs( ) {
17
- struct TestProvider : AuthorizationProvider {
18
- let map : [ URL : ( user: String , password: String ) ]
16
+ private struct MockProvider : AuthorizationProvider {
17
+ let map : [ URL : ( user: String , password: String ) ]
19
18
20
- func authentication( for url: URL ) -> ( user: String , password: String ) ? {
21
- return self . map [ url]
22
- }
19
+ func authentication( for url: URL ) -> ( user: String , password: String ) ? {
20
+ return self . map [ url]
23
21
}
22
+ }
24
23
24
+ func testBasicAuthentication( ) {
25
25
let url = URL ( string: " http:// \( UUID ( ) . uuidString) " ) !
26
26
let user = UUID ( ) . uuidString
27
27
let password = UUID ( ) . uuidString
28
- let provider = TestProvider ( map: [ url: ( user: user, password: password) ] )
28
+ let provider = MockProvider ( map: [ url: ( user: user, password: password) ] )
29
29
30
30
let auth = provider. authentication ( for: url)
31
31
XCTAssertEqual ( auth? . user, user)
32
32
XCTAssertEqual ( auth? . password, password)
33
33
XCTAssertEqual ( provider. httpAuthorizationHeader ( for: url) , " Basic " + " \( user) : \( password) " . data ( using: . utf8) !. base64EncodedString ( ) )
34
34
}
35
+
36
+ func testTokenAuthentication( ) {
37
+ let url = URL ( string: " http:// \( UUID ( ) . uuidString) " ) !
38
+ let user = " "
39
+ let password = UUID ( ) . uuidString
40
+ let provider = MockProvider ( map: [ url: ( user: user, password: password) ] )
41
+
42
+ let auth = provider. authentication ( for: url)
43
+ XCTAssertEqual ( auth? . user, user)
44
+ XCTAssertEqual ( auth? . password, password)
45
+ XCTAssertEqual ( provider. httpAuthorizationHeader ( for: url) , " Token \( password) " )
46
+ }
47
+
48
+ func testMissingAuthentication( ) {
49
+ let url = URL ( string: " http:// \( UUID ( ) . uuidString) " ) !
50
+ let provider = MockProvider ( map: [ : ] )
51
+
52
+ let auth = provider. authentication ( for: url)
53
+ XCTAssertEqual ( auth? . user, nil )
54
+ XCTAssertEqual ( auth? . password, nil )
55
+ XCTAssertEqual ( provider. httpAuthorizationHeader ( for: url) , nil )
56
+ }
35
57
}
0 commit comments