Skip to content

Commit c11d5b1

Browse files
committed
Fix tests [WIP]
1 parent 2075987 commit c11d5b1

File tree

5 files changed

+192
-190
lines changed

5 files changed

+192
-190
lines changed

Tests/BaseTests/OAuth2Tests.swift

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -117,15 +117,18 @@ class OAuth2Tests: XCTestCase {
117117
XCTAssertNil(params["state"], "Expecting no `state` in query")
118118
}
119119

120-
func testAuthorizeCall() {
120+
func testAuthorizeCall() async {
121121
let oa = genericOAuth2()
122122
oa.verbose = false
123123
XCTAssertFalse(oa.authConfig.authorizeEmbedded)
124-
oa.authorize() { params, error in
124+
125+
do {
126+
let params = try await oa.authorize()
125127
XCTAssertNil(params, "Should not have auth parameters")
126-
XCTAssertNotNil(error)
127-
XCTAssertEqual(error, OAuth2Error.noRedirectURL)
128+
} catch {
129+
XCTAssertEqual(error.asOAuth2Error, OAuth2Error.noRedirectURL)
128130
}
131+
129132
XCTAssertFalse(oa.authConfig.authorizeEmbedded)
130133

131134
// embedded

Tests/DataLoaderTests/OAuth2DataLoaderTests.swift

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -97,18 +97,17 @@ class OAuth2DataLoaderTests: XCTestCase {
9797

9898
class OAuth2AnyBearerPerformer: OAuth2RequestPerformer {
9999

100-
func perform(request: URLRequest, completionHandler callback: @escaping (Data?, URLResponse?, Error?) -> Void) -> URLSessionTask? {
100+
func perform(request: URLRequest) async throws -> (Data?, URLResponse) {
101101
let authorized = (nil != request.value(forHTTPHeaderField: "Authorization"))
102102
let status = authorized ? 201 : 401
103103
let http = HTTPURLResponse(url: request.url!, statusCode: status, httpVersion: nil, headerFields: nil)!
104104
if authorized {
105105
let data = try? JSONSerialization.data(withJSONObject: ["data": ["in": "response"]], options: [])
106-
callback(data, http, nil)
106+
return (data, http)
107107
}
108108
else {
109-
callback(nil, http, nil)
109+
return (nil, http)
110110
}
111-
return nil
112111
}
113112
}
114113

Tests/FlowTests/OAuth2CodeGrantTests.swift

Lines changed: 18 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -375,7 +375,7 @@ class OAuth2CodeGrantTests: XCTestCase {
375375
XCTAssertEqual(comp.host!, "auth.ful.io", "Correct host")
376376
}
377377

378-
func testTokenResponse() {
378+
func testTokenResponse() async {
379379
let settings = [
380380
"client_id": "abc",
381381
"client_secret": "xyz",
@@ -479,21 +479,21 @@ class OAuth2CodeGrantTests: XCTestCase {
479479
performer.responseJSON = response
480480
performer.responseStatus = 403
481481
oauth.context.redirectURL = "https://localhost"
482-
oauth.didAuthorizeOrFail = { json, error in
483-
XCTAssertNil(json)
484-
XCTAssertNotNil(error)
485-
XCTAssertEqual(OAuth2Error.forbidden, error)
486-
}
487-
oauth.exchangeCodeForToken("MNOP")
482+
// oauth.didAuthorizeOrFail = { json, error in
483+
// XCTAssertNil(json)
484+
// XCTAssertNotNil(error)
485+
// XCTAssertEqual(OAuth2Error.forbidden, error)
486+
// }
487+
await oauth.exchangeCodeForToken("MNOP")
488488

489489
// test round trip - should succeed because of good HTTP status
490490
performer.responseStatus = 301
491-
oauth.didAuthorizeOrFail = { json, error in
492-
XCTAssertNotNil(json)
493-
XCTAssertNil(error)
494-
XCTAssertEqual("tGzv3JOkF0XG5Qx2TlKWIA", json?["refresh_token"] as? String)
495-
}
496-
oauth.exchangeCodeForToken("MNOP")
491+
// oauth.didAuthorizeOrFail = { json, error in
492+
// XCTAssertNotNil(json)
493+
// XCTAssertNil(error)
494+
// XCTAssertEqual("tGzv3JOkF0XG5Qx2TlKWIA", json?["refresh_token"] as? String)
495+
// }
496+
await oauth.exchangeCodeForToken("MNOP")
497497
}
498498
}
499499

@@ -504,19 +504,13 @@ class OAuth2MockPerformer: OAuth2RequestPerformer {
504504

505505
var responseStatus = 200
506506

507-
func perform(request: URLRequest, completionHandler callback: @escaping (Data?, URLResponse?, Error?) -> Void) -> URLSessionTask? {
507+
func perform(request: URLRequest) async throws -> (Data?, URLResponse) {
508508
let http = HTTPURLResponse(url: request.url!, statusCode: responseStatus, httpVersion: nil, headerFields: nil)!
509-
do {
510-
guard let json = responseJSON else {
511-
throw OAuth2Error.noDataInResponse
512-
}
513-
let data = try JSONSerialization.data(withJSONObject: json, options: [])
514-
callback(data, http, nil)
515-
}
516-
catch let error {
517-
callback(nil, http, error)
509+
guard let json = responseJSON else {
510+
throw OAuth2Error.noDataInResponse
518511
}
519-
return nil
512+
let data = try JSONSerialization.data(withJSONObject: json, options: [])
513+
return (data, http)
520514
}
521515
}
522516

Tests/FlowTests/OAuth2DynRegTests.swift

Lines changed: 30 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -69,52 +69,58 @@ class OAuth2DynRegTests: XCTestCase {
6969
}
7070
}
7171

72-
func testNotAttemptingRegistration() {
72+
func testNotAttemptingRegistration() async {
7373
let oauth = genericOAuth2()
74-
oauth.registerClientIfNeeded() { json, error in
75-
if let error = error {
76-
switch error {
77-
case .noRegistrationURL: break
78-
default: XCTAssertTrue(false, "Expecting no-registration-url error")
79-
}
80-
}
81-
else {
82-
XCTAssertTrue(false, "Should return no-registration-url error")
74+
75+
do {
76+
_ = try await oauth.registerClientIfNeeded()
77+
XCTAssertTrue(false, "Should throw no-registration-url error")
78+
} catch {
79+
switch error.asOAuth2Error {
80+
case .noRegistrationURL:
81+
break
82+
default:
83+
XCTAssertTrue(false, "Expecting no-registration-url error")
8384
}
8485
}
8586

8687
oauth.clientId = "abc"
87-
oauth.registerClientIfNeeded { json, error in
88-
XCTAssertNil(error, "Shouldn't even start registering")
88+
89+
do {
90+
let json = try await oauth.registerClientIfNeeded()
91+
XCTAssertNil(json, "Shouldn't even start registering")
92+
} catch {
93+
XCTAssertTrue(false, "Shouldn't even start registering")
8994
}
9095
}
9196

92-
func testCustomDynRegInstance() {
97+
func testCustomDynRegInstance() async {
9398
let oauth = genericOAuth2(["registration_uri": "https://register.ful.io"])
9499

95100
// return subclass
96101
oauth.onBeforeDynamicClientRegistration = { url in
97102
XCTAssertEqual(url.absoluteString, "https://register.ful.io", "Should be passed registration URL")
98103
return OAuth2TestDynReg()
99104
}
100-
oauth.registerClientIfNeeded() { json, error in
101-
if let error = error {
102-
switch error {
103-
case .temporarilyUnavailable: break
104-
default: XCTAssertTrue(false, "Expecting random `TemporarilyUnavailable` error as implemented in `OAuth2TestDynReg`")
105-
}
106-
}
107-
else {
108-
XCTAssertTrue(false, "Should return no-registration-url error")
105+
106+
do {
107+
_ = try await oauth.registerClientIfNeeded()
108+
XCTAssertTrue(false, "Should throw random `TemporarilyUnavailable` error as implemented in `OAuth2TestDynReg`")
109+
} catch {
110+
switch error.asOAuth2Error {
111+
case .temporarilyUnavailable:
112+
break
113+
default:
114+
XCTAssertTrue(false, "Expecting random `TemporarilyUnavailable` error as implemented in `OAuth2TestDynReg`")
109115
}
110116
}
111117
}
112118
}
113119

114120

115121
class OAuth2TestDynReg: OAuth2DynReg {
116-
override func register(client: OAuth2, callback: @escaping ((OAuth2JSON?, OAuth2Error?) -> Void)) {
117-
callback(nil, OAuth2Error.temporarilyUnavailable(nil))
122+
override func register(client: OAuth2) async throws -> OAuth2JSON {
123+
throw OAuth2Error.temporarilyUnavailable(nil)
118124
}
119125
}
120126

0 commit comments

Comments
 (0)