mas/MasKitTests/Network/TestURLSessionDelegate.swift

39 lines
1.4 KiB
Swift
Raw Normal View History

//
// TestURLSessionDelegate.swift
// MasKitTests
//
// Created by Ben Chatelain on 1/5/19.
// Copyright © 2019 mas-cli. All rights reserved.
//
import Foundation
/// Delegate for network requests initiated from tests.
class TestURLSessionDelegate: NSObject, URLSessionDelegate {
2019-01-30 06:15:24 +00:00
func urlSession(_: URLSession,
2019-01-12 00:33:41 +00:00
didReceive challenge: URLAuthenticationChallenge,
completionHandler: (URLSession.AuthChallengeDisposition,
2020-05-15 03:32:51 +00:00
URLCredential?) -> Void) {
2020-05-15 03:59:15 +00:00
// For example, you may want to override this to accept some self-signed certs here.
2019-01-30 06:15:24 +00:00
if challenge.protectionSpace.authenticationMethod == NSURLAuthenticationMethodServerTrust,
Constants.selfSignedHosts.contains(challenge.protectionSpace.host) {
// Allow the self-signed cert.
let credential = URLCredential(trust: challenge.protectionSpace.serverTrust!)
completionHandler(.useCredential, credential)
} else {
// You *have* to call completionHandler, so call
// it to do the default action.
completionHandler(.performDefaultHandling, nil)
}
}
struct Constants {
// A list of hosts you allow self-signed certificates on.
// You'd likely have your dev/test servers here.
// Please don't put your production server here!
static let selfSignedHosts: Set<String> =
["dev.example.com", "test.example.com"]
}
}