@@ -13,23 +13,45 @@ import TSCBasic
1313import XCTest
1414
1515final 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 ) ]
1918
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]
2321 }
22+ }
2423
24+ func testBasicAuthentication( ) {
2525 let url = URL ( string: " http:// \( UUID ( ) . uuidString) " ) !
2626 let user = UUID ( ) . uuidString
2727 let password = UUID ( ) . uuidString
28- let provider = TestProvider ( map: [ url: ( user: user, password: password) ] )
28+ let provider = MockProvider ( map: [ url: ( user: user, password: password) ] )
2929
3030 let auth = provider. authentication ( for: url)
3131 XCTAssertEqual ( auth? . user, user)
3232 XCTAssertEqual ( auth? . password, password)
3333 XCTAssertEqual ( provider. httpAuthorizationHeader ( for: url) , " Basic " + " \( user) : \( password) " . data ( using: . utf8) !. base64EncodedString ( ) )
3434 }
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+ }
3557}
0 commit comments