mirror of https://github.com/cirruslabs/tart.git
42 lines
1.4 KiB
Swift
42 lines
1.4 KiB
Swift
import XCTest
|
|
@testable import tart
|
|
|
|
final class WWWAuthenticateTests: XCTestCase {
|
|
func testExample() throws {
|
|
// Test example from Token Authentication Specification[1]
|
|
//
|
|
// [1]: https://docs.docker.com/registry/spec/auth/token/
|
|
let wwwAuthenticate = try WWWAuthenticate(rawHeaderValue: "Bearer realm=\"https://auth.docker.io/token\",service=\"registry.docker.io\",scope=\"repository:samalba/my-app:pull,push\"")
|
|
|
|
XCTAssertEqual("Bearer", wwwAuthenticate.scheme)
|
|
XCTAssertEqual([
|
|
"realm": "https://auth.docker.io/token",
|
|
"service": "registry.docker.io",
|
|
"scope": "repository:samalba/my-app:pull,push",
|
|
], wwwAuthenticate.kvs)
|
|
}
|
|
|
|
func testBasic() throws {
|
|
let wwwAuthenticate = try WWWAuthenticate(rawHeaderValue: "Bearer a=b,c=\"d\"")
|
|
|
|
XCTAssertEqual("Bearer", wwwAuthenticate.scheme)
|
|
XCTAssertEqual(["a": "b", "c": "d"], wwwAuthenticate.kvs)
|
|
}
|
|
|
|
func testIncompleteHeader() throws {
|
|
XCTAssertThrowsError(try WWWAuthenticate(rawHeaderValue: "Whatever")) {
|
|
XCTAssertTrue($0 is RegistryError)
|
|
}
|
|
|
|
XCTAssertThrowsError(try WWWAuthenticate(rawHeaderValue: "Bearer ")) {
|
|
XCTAssertTrue($0 is RegistryError)
|
|
}
|
|
}
|
|
|
|
func testIncompleteDirective() throws {
|
|
XCTAssertThrowsError(try WWWAuthenticate(rawHeaderValue: "Bearer whatever")) {
|
|
XCTAssertTrue($0 is RegistryError)
|
|
}
|
|
}
|
|
}
|