AliyunOSSiOSTests/OSSNetworkingRequestDelegateTest.m (145 lines of code) (raw):
//
// OSSNetworkingRequestDelegateTest.m
// AliyunOSSiOSTests
//
// Created by ws on 2021/3/26.
// Copyright © 2021 aliyun. All rights reserved.
//
#import <XCTest/XCTest.h>
#import <AliyunOSSiOS/AliyunOSSiOS.h>
#define SCHEME @"https://"
#define ENDPOINT @"oss-cn-hangzhou.aliyuncs.com"
#define CNAME_ENDPOINT @"oss.custom.com"
#define IP_ENDPOINT @"192.168.1.1:8080"
#define CUSTOMPATH @"/path"
#define CUSTOMPATH_ENDPOINT @"oss.custom.com/path"
#define BUCKET_NAME @"BucketName"
#define OBJECT_KEY @"ObjectKey"
@interface OSSNetworkingRequestDelegateTest : XCTestCase
@end
@implementation OSSNetworkingRequestDelegateTest
- (void)setUp {
// Put setup code here. This method is called before the invocation of each test method in the class.
}
- (void)tearDown {
// Put teardown code here. This method is called after the invocation of each test method in the class.
}
- (void)testExample {
// This is an example of a functional test case.
// Use XCTAssert and related functions to verify your tests produce the correct results.
}
- (void)testPerformanceExample {
// This is an example of a performance test case.
}
- (void)testBuildUrlWithCname {
OSSAllRequestNeededMessage *message = [OSSAllRequestNeededMessage new];
message.endpoint = [SCHEME stringByAppendingString:CNAME_ENDPOINT];
message.bucketName = BUCKET_NAME;
message.objectKey = OBJECT_KEY;
message.isHostInCnameExcludeList = NO;
OSSNetworkingRequestDelegate *delegate = [OSSNetworkingRequestDelegate new];
delegate.allNeededMessage = message;
[delegate buildInternalHttpRequest];
NSString *url = delegate.internalRequest.URL.absoluteString;
NSString *canonicalUrl = [NSString stringWithFormat:@"%@%@/%@", SCHEME, CNAME_ENDPOINT, OBJECT_KEY];
XCTAssertTrue([url isEqualToString:canonicalUrl]);
}
- (void)testBuildUrlWithoutCname {
OSSAllRequestNeededMessage *message = [OSSAllRequestNeededMessage new];
message.endpoint = [SCHEME stringByAppendingString:CNAME_ENDPOINT];
message.bucketName = BUCKET_NAME;
message.objectKey = OBJECT_KEY;
message.isHostInCnameExcludeList = YES;
OSSNetworkingRequestDelegate *delegate = [OSSNetworkingRequestDelegate new];
delegate.allNeededMessage = message;
[delegate buildInternalHttpRequest];
NSString *url = delegate.internalRequest.URL.absoluteString;
NSString *canonicalUrl = [NSString stringWithFormat:@"%@%@.%@/%@", SCHEME, BUCKET_NAME, CNAME_ENDPOINT, OBJECT_KEY];
XCTAssertTrue([url isEqualToString:canonicalUrl]);
}
- (void)testBuildUrlWithCnameAndPathStyleAccessEnable {
OSSAllRequestNeededMessage *message = [OSSAllRequestNeededMessage new];
message.endpoint = [SCHEME stringByAppendingString:CNAME_ENDPOINT];
message.bucketName = BUCKET_NAME;
message.objectKey = OBJECT_KEY;
message.isHostInCnameExcludeList = YES;
OSSNetworkingRequestDelegate *delegate = [OSSNetworkingRequestDelegate new];
delegate.allNeededMessage = message;
delegate.isPathStyleAccessEnable = YES;
[delegate buildInternalHttpRequest];
NSString *url = delegate.internalRequest.URL.absoluteString;
NSString *canonicalUrl = [NSString stringWithFormat:@"%@%@/%@/%@", SCHEME, CNAME_ENDPOINT, BUCKET_NAME, OBJECT_KEY];
XCTAssertTrue([url isEqualToString:canonicalUrl]);
}
- (void)testBuildUrlWithPathStyleAccessEnable {
OSSAllRequestNeededMessage *message = [OSSAllRequestNeededMessage new];
message.endpoint = [SCHEME stringByAppendingString:ENDPOINT];
message.bucketName = BUCKET_NAME;
message.objectKey = OBJECT_KEY;
OSSNetworkingRequestDelegate *delegate = [OSSNetworkingRequestDelegate new];
delegate.allNeededMessage = message;
delegate.isPathStyleAccessEnable = YES;
[delegate buildInternalHttpRequest];
NSString *url = delegate.internalRequest.URL.absoluteString;
NSString *canonicalUrl = [NSString stringWithFormat:@"%@%@.%@/%@", SCHEME, BUCKET_NAME, ENDPOINT, OBJECT_KEY];
XCTAssertTrue([url isEqualToString:canonicalUrl]);
message = [OSSAllRequestNeededMessage new];
message.endpoint = [SCHEME stringByAppendingString:CNAME_ENDPOINT];
message.bucketName = BUCKET_NAME;
message.objectKey = OBJECT_KEY;
delegate = [OSSNetworkingRequestDelegate new];
delegate.allNeededMessage = message;
delegate.isPathStyleAccessEnable = YES;
[delegate buildInternalHttpRequest];
url = delegate.internalRequest.URL.absoluteString;
canonicalUrl = [NSString stringWithFormat:@"%@%@/%@", SCHEME, CNAME_ENDPOINT, OBJECT_KEY];
XCTAssertTrue([url isEqualToString:canonicalUrl]);
}
- (void)testBuildUrlWithCustomPathPrefixEnable {
OSSAllRequestNeededMessage *message = [OSSAllRequestNeededMessage new];
message.endpoint = [SCHEME stringByAppendingString:CUSTOMPATH_ENDPOINT];
message.bucketName = BUCKET_NAME;
message.objectKey = OBJECT_KEY;
OSSNetworkingRequestDelegate *delegate = [OSSNetworkingRequestDelegate new];
delegate.allNeededMessage = message;
delegate.isCustomPathPrefixEnable = YES;
[delegate buildInternalHttpRequest];
NSString *url = delegate.internalRequest.URL.absoluteString;
NSString *canonicalUrl = [NSString stringWithFormat:@"%@%@/%@", SCHEME, CUSTOMPATH_ENDPOINT, OBJECT_KEY];
XCTAssertTrue([url isEqualToString:canonicalUrl]);
}
- (void)testBuildUrlWithCustomPathPrefixEnableAndPathStyleAccessEnable {
OSSAllRequestNeededMessage *message = [OSSAllRequestNeededMessage new];
message.endpoint = [SCHEME stringByAppendingString:CUSTOMPATH_ENDPOINT];
message.bucketName = BUCKET_NAME;
message.objectKey = OBJECT_KEY;
message.isHostInCnameExcludeList = YES;
OSSNetworkingRequestDelegate *delegate = [OSSNetworkingRequestDelegate new];
delegate.allNeededMessage = message;
delegate.isCustomPathPrefixEnable = YES;
delegate.isPathStyleAccessEnable = YES;
[delegate buildInternalHttpRequest];
NSString *url = delegate.internalRequest.URL.absoluteString;
NSString *canonicalUrl = [NSString stringWithFormat:@"%@%@/%@/%@", SCHEME, CUSTOMPATH_ENDPOINT, BUCKET_NAME, OBJECT_KEY];
XCTAssertTrue([url isEqualToString:canonicalUrl]);
}
- (void)testBuildUrlWithIp {
OSSAllRequestNeededMessage *message = [OSSAllRequestNeededMessage new];
message.endpoint = [SCHEME stringByAppendingString:IP_ENDPOINT];
message.bucketName = BUCKET_NAME;
message.objectKey = OBJECT_KEY;
OSSNetworkingRequestDelegate *delegate = [OSSNetworkingRequestDelegate new];
delegate.allNeededMessage = message;
[delegate buildInternalHttpRequest];
NSString *url = delegate.internalRequest.URL.absoluteString;
NSString *canonicalUrl = [NSString stringWithFormat:@"%@%@/%@/%@", SCHEME, IP_ENDPOINT, BUCKET_NAME, OBJECT_KEY];
XCTAssertTrue([url isEqualToString:canonicalUrl]);
}
- (void)testBuildUrlWithNullObjectKey {
OSSAllRequestNeededMessage *message = [OSSAllRequestNeededMessage new];
message.endpoint = [SCHEME stringByAppendingString:ENDPOINT];
message.bucketName = BUCKET_NAME;
OSSNetworkingRequestDelegate *delegate = [OSSNetworkingRequestDelegate new];
delegate.allNeededMessage = message;
[delegate buildInternalHttpRequest];
NSString *url = delegate.internalRequest.URL.absoluteString;
NSString *canonicalUrl = [NSString stringWithFormat:@"%@%@.%@", SCHEME, BUCKET_NAME, ENDPOINT];
XCTAssertTrue([url isEqualToString:canonicalUrl]);
message = [OSSAllRequestNeededMessage new];
message.endpoint = [SCHEME stringByAppendingString:ENDPOINT];
delegate = [OSSNetworkingRequestDelegate new];
delegate.allNeededMessage = message;
[delegate buildInternalHttpRequest];
url = delegate.internalRequest.URL.absoluteString;
canonicalUrl = [NSString stringWithFormat:@"%@%@", SCHEME, ENDPOINT];
XCTAssertTrue([url isEqualToString:canonicalUrl]);
}
@end