OSSSwiftDemo/OSSSwiftDemoTests/OSSNetworkingRequestDelegateTest.swift (128 lines of code) (raw):
//
// OSSNetworkingRequestDelegateTest.swift
// OSSSwiftDemoTests
//
// Created by ws on 2021/3/29.
// Copyright © 2021 aliyun. All rights reserved.
//
import XCTest
import AliyunOSSiOS
class OSSNetworkingRequestDelegateTest: XCTestCase {
override func setUpWithError() throws {
// Put setup code here. This method is called before the invocation of each test method in the class.
}
override func tearDownWithError() throws {
// Put teardown code here. This method is called after the invocation of each test method in the class.
}
func testExample() throws {
// This is an example of a functional test case.
// Use XCTAssert and related functions to verify your tests produce the correct results.
}
func testPerformanceExample() throws {
// This is an example of a performance test case.
}
func testBuildUrlWithCname() {
let message = OSSAllRequestNeededMessage()
message.endpoint = "\(SCHEME)\(CNAME_ENDPOINT)"
message.bucketName = BUCKET_NAME
message.objectKey = OBJECT_KEY
message.isHostInCnameExcludeList = false
let delete = OSSNetworkingRequestDelegate()
delete.allNeededMessage = message
delete.buildInternalHttpRequest()
let url = delete.internalRequest.url?.absoluteString
let canonicalUrl = "\(SCHEME)\(CNAME_ENDPOINT)/\(OBJECT_KEY)"
XCTAssertTrue(url == canonicalUrl)
}
func testBuildUrlWithoutCname() {
let message = OSSAllRequestNeededMessage()
message.endpoint = "\(SCHEME)\(CNAME_ENDPOINT)"
message.bucketName = BUCKET_NAME
message.objectKey = OBJECT_KEY
message.isHostInCnameExcludeList = true
let delete = OSSNetworkingRequestDelegate()
delete.allNeededMessage = message
delete.buildInternalHttpRequest()
let url = delete.internalRequest.url?.absoluteString
let canonicalUrl = "\(SCHEME)\(BUCKET_NAME).\(CNAME_ENDPOINT)/\(OBJECT_KEY)"
XCTAssertTrue(url == canonicalUrl)
}
func testBuildUrlWithCnameAndPathStyleAccessEnable() {
let message = OSSAllRequestNeededMessage()
message.endpoint = "\(SCHEME)\(CNAME_ENDPOINT)"
message.bucketName = BUCKET_NAME
message.objectKey = OBJECT_KEY
message.isHostInCnameExcludeList = true
let delete = OSSNetworkingRequestDelegate()
delete.allNeededMessage = message
delete.isPathStyleAccessEnable = true
delete.buildInternalHttpRequest()
let url = delete.internalRequest.url?.absoluteString
let canonicalUrl = "\(SCHEME)\(CNAME_ENDPOINT)/\(BUCKET_NAME)/\(OBJECT_KEY)"
XCTAssertTrue(url == canonicalUrl)
}
func testBuildUrlWithPathStyleAccessEnable() {
var message = OSSAllRequestNeededMessage()
message.endpoint = "\(SCHEME)\(ENDPOINT)"
message.bucketName = BUCKET_NAME
message.objectKey = OBJECT_KEY
var delete = OSSNetworkingRequestDelegate()
delete.allNeededMessage = message
delete.isPathStyleAccessEnable = true
delete.buildInternalHttpRequest()
var url = delete.internalRequest.url?.absoluteString
var canonicalUrl = "\(SCHEME)\(BUCKET_NAME).\(ENDPOINT)/\(OBJECT_KEY)"
XCTAssertTrue(url == canonicalUrl)
message = OSSAllRequestNeededMessage()
message.endpoint = "\(SCHEME)\(CNAME_ENDPOINT)"
message.bucketName = BUCKET_NAME
message.objectKey = OBJECT_KEY
delete = OSSNetworkingRequestDelegate()
delete.allNeededMessage = message
delete.isPathStyleAccessEnable = true
delete.buildInternalHttpRequest()
url = delete.internalRequest.url?.absoluteString
canonicalUrl = "\(SCHEME)\(CNAME_ENDPOINT)/\(OBJECT_KEY)"
XCTAssertTrue(url == canonicalUrl)
}
func testBuildUrlWithCustomPathPrefixEnable() {
let message = OSSAllRequestNeededMessage()
message.endpoint = "\(SCHEME)\(CNAME_ENDPOINT)/path"
message.bucketName = BUCKET_NAME
message.objectKey = OBJECT_KEY
let delete = OSSNetworkingRequestDelegate()
delete.allNeededMessage = message
delete.isCustomPathPrefixEnable = true
delete.buildInternalHttpRequest()
let url = delete.internalRequest.url?.absoluteString
let canonicalUrl = "\(SCHEME)\(CNAME_ENDPOINT)/path/\(OBJECT_KEY)"
XCTAssertTrue(url == canonicalUrl)
}
func testBuildUrlWithCustomPathPrefixEnableAndPathStyleAccessEnable() {
let message = OSSAllRequestNeededMessage()
message.endpoint = "\(SCHEME)\(CNAME_ENDPOINT)/path"
message.bucketName = BUCKET_NAME
message.objectKey = OBJECT_KEY
message.isHostInCnameExcludeList = true
let delete = OSSNetworkingRequestDelegate()
delete.allNeededMessage = message
delete.isCustomPathPrefixEnable = true
delete.isPathStyleAccessEnable = true
delete.buildInternalHttpRequest()
let url = delete.internalRequest.url?.absoluteString
let canonicalUrl = "\(SCHEME)\(CNAME_ENDPOINT)/path/\(BUCKET_NAME)/\(OBJECT_KEY)"
XCTAssertTrue(url == canonicalUrl)
}
func testBuildUrlWithIp() {
let message = OSSAllRequestNeededMessage()
message.endpoint = "\(SCHEME)\(IP_ENDPOINT)"
message.bucketName = BUCKET_NAME
message.objectKey = OBJECT_KEY
let delete = OSSNetworkingRequestDelegate()
delete.allNeededMessage = message
delete.buildInternalHttpRequest()
let url = delete.internalRequest.url?.absoluteString
let canonicalUrl = "\(SCHEME)\(IP_ENDPOINT)/\(BUCKET_NAME)/\(OBJECT_KEY)"
XCTAssertTrue(url == canonicalUrl)
}
func testBuildUrlWithNullObjectKey() {
let message = OSSAllRequestNeededMessage()
message.endpoint = "\(SCHEME)\(ENDPOINT)"
message.bucketName = BUCKET_NAME
let delete = OSSNetworkingRequestDelegate()
delete.allNeededMessage = message
delete.isPathStyleAccessEnable = true
delete.buildInternalHttpRequest()
let url = delete.internalRequest.url?.absoluteString
let canonicalUrl = "\(SCHEME)\(BUCKET_NAME).\(ENDPOINT)"
XCTAssertTrue(url == canonicalUrl)
}
}