OSSSwiftDemo/OSSSwiftDemoTests/OSSUtilsTests.swift (59 lines of code) (raw):
//
// OSSUtilsTests.swift
// OSSSwiftDemoTests
//
// Created by 剑子 on 2019/12/20.
// Copyright © 2019 aliyun. All rights reserved.
//
import XCTest
import AliyunOSSiOS
import AliyunOSSSwiftSDK
class OSSUtilsTests: XCTestCase {
override func setUp() {
// Put setup code here. This method is called before the invocation of each test method in the class.
// In UI tests it is usually best to stop immediately when a failure occurs.
// In UI tests it’s important to set the initial state - such as interface orientation - required for your tests before they run. The setUp method is a good place to do this.
}
func testBucketName(){
///^[a-z0-9][a-z0-9\\-]{1,61}[a-z0-9]$"
let result1 = OSSUtil.validateBucketName("123-456abc")
XCTAssertTrue(result1)
let result2 = OSSUtil.validateBucketName("123-456abc-")
XCTAssertFalse(result2)
let result3 = OSSUtil.validateBucketName("-123-456abc")
XCTAssertFalse(result3)
let str4 = String("123\\456abc")
let result4 = OSSUtil.validateBucketName(str4)
XCTAssertFalse(result4)
let result5 = OSSUtil.validateBucketName("abc123")
XCTAssertTrue(result5)
let result6 = OSSUtil.validateBucketName("abc_123")
XCTAssertFalse(result6)
let result7 = OSSUtil.validateBucketName("a")
XCTAssertFalse(result7)
let str8 = String("abcdefghig-abcdefghig-abcdefghig-abcdefghig-abcdefghig-abcdefghig")
let result8 = OSSUtil.validateBucketName(str8)
XCTAssertFalse(result8)
}
func testEndpoint(){
let bucketName = "test-image"
let result1 = getResultEndpoint(endpoint: "http://123.test:8989/path?ooob")
XCTAssertTrue((result1 == "http://123.test:8989"))
let result2 = getResultEndpoint(endpoint: "http://192.168.0.1:8081")
XCTAssertTrue((result2 == "http://192.168.0.1:8081/\(bucketName)"))
let result3 = getResultEndpoint(endpoint: "http://192.168.0.1")
XCTAssertTrue((result3 == "http://192.168.0.1/\(bucketName)"))
let result4 = getResultEndpoint(endpoint: "http://oss-cn-region.aliyuncs.com")
XCTAssertTrue((result4 == "http://\(bucketName).oss-cn-region.aliyuncs.com"))
}
func getResultEndpoint(endpoint : String) -> String {
let bucketName = "test-image"
let urlComs = URLComponents.init(string: endpoint)
var temComs = URLComponents.init()
temComs.scheme = urlComs?.scheme
temComs.host = urlComs?.host
temComs.port = urlComs?.port
if (bucketName as NSString).oss_isNotEmpty() {
let ipAdapter = OSSIPv6Adapter.getInstance()
if OSSUtil.isOssOriginBucketHost(temComs.host!) {
temComs.host = bucketName + "." + temComs.host!
if (temComs.scheme?.lowercased() == "http") {
let dnsResult = OSSUtil.getIpByHost(temComs.host!)
temComs.host = dnsResult
}
}else if(ipAdapter!.isIPv4Address(temComs.host!) || ipAdapter!.isIPv6Address(temComs.host!) ){
temComs.path = "/\(bucketName)"
}
}
return temComs.string!
}
}