// // MastodonSDK+API+OAuthTests.swift // // // Created by MainasuK Cirno on 2021/1/29. // import os.log import XCTest import Combine @testable import MastodonSDK extension MastodonSDKTests { func testOAuthAuthorize() throws { try _testOAuthAuthorize(domain: domain) } func _testOAuthAuthorize(domain: String) throws { let query = Mastodon.API.OAuth.AuthorizeQuery(clientID: "StubClientID") let authorizeURL = Mastodon.API.OAuth.authorizeURL(domain: domain, query: query) os_log("%{public}s[%{public}ld], %{public}s: (%s) authorizeURL %s", ((#file as NSString).lastPathComponent), #line, #function, domain, authorizeURL.absoluteString) XCTAssertEqual( authorizeURL.absoluteString, "https://\(domain)/oauth/authorize?response_type=code&client_id=StubClientID&redirect_uri=urn:ietf:wg:oauth:2.0:oob&scope=read%20write%20follow%20push" ) } func testRevokeToken() throws { _testRevokeTokenFail() } func _testRevokeTokenFail() { let theExpectation = expectation(description: "Revoke Instance Infomation") let query = Mastodon.API.OAuth.RevokeTokenQuery(clientID: "StubClientID", clientSecret: "", token: "") Mastodon.API.OAuth.revokeToken(session: session, domain: domain, query: query) .receive(on: DispatchQueue.main) .sink { completion in switch completion { case .failure: theExpectation.fulfill() case .finished: XCTFail("Success in a failed test?") } } receiveValue: { response in } .store(in: &disposeBag) wait(for: [theExpectation], timeout: 10.0) } }