AliyunOSSiOSTests/OSSSingerTest.m [693:727]:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    XCTAssertTrue([requestMessage.params[@"x-oss-additional-headers"] isEqualToString:@"abc;zabc"]);
    
    // 2
    signHeaders = [NSMutableSet new];
    [signHeaders addObject:@"abc"];
    [signHeaders addObject:@"ZAbc"];
    [signHeaders addObject:@"x-oss-head1"];
    [signHeaders addObject:@"x-oss-no-exist"];

    requestMessage = [OSSAllRequestNeededMessage new];
    requestMessage.httpMethod = @"PUT";
    requestMessage.bucketName = bucket;
    requestMessage.objectKey = key;
    requestMessage.headerParams = headers;
    requestMessage.params = parameters;
    requestMessage.additionalHeaderNames = signHeaders;
    
    resource = [@"/" stringByAppendingString:((bucket != nil) ? [bucket stringByAppendingString:@"/"] : @"")];
    resource = [resource stringByAppendingString:(key != nil ? key : @"")];
    signerParam = [OSSSignerParams new];
    signerParam.credentialProvider = credentialProvider;
    signerParam.resourcePath = resource;
    signerParam.product = product;
    signerParam.region = region;
    signerParam.expiration = 599;
    signerParam.additionalHeaderNames = signHeaders;
    
    signer = [OSSSignerBase createRequestPresignerWithSignerVersion:version
                                                       signerParams:signerParam];
    [signer presign:requestMessage];
    
    XCTAssertTrue([@"OSS4-HMAC-SHA256" isEqualToString:requestMessage.params[@"x-oss-signature-version"]]);
    XCTAssertTrue([@"20231217T033009Z" isEqualToString:requestMessage.params[@"x-oss-date"]]);
    XCTAssertTrue([@"599" isEqualToString:requestMessage.params[@"x-oss-expires"]]);
    XCTAssertTrue([@"ak/20231217/cn-hangzhou/oss/aliyun_v4_request" isEqualToString:requestMessage.params[@"x-oss-credential"]]);
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -



AliyunOSSiOSTests/OSSSingerTest.m [794:828]:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    XCTAssertTrue([requestMessage.params[@"x-oss-additional-headers"] isEqualToString:@"abc;zabc"]);
    
    // 2
    signHeaders = [NSMutableSet new];
    [signHeaders addObject:@"abc"];
    [signHeaders addObject:@"ZAbc"];
    [signHeaders addObject:@"x-oss-head1"];
    [signHeaders addObject:@"x-oss-no-exist"];

    requestMessage = [OSSAllRequestNeededMessage new];
    requestMessage.httpMethod = @"PUT";
    requestMessage.bucketName = bucket;
    requestMessage.objectKey = key;
    requestMessage.headerParams = headers;
    requestMessage.params = parameters;
    requestMessage.additionalHeaderNames = signHeaders;
    
    resource = [@"/" stringByAppendingString:((bucket != nil) ? [bucket stringByAppendingString:@"/"] : @"")];
    resource = [resource stringByAppendingString:(key != nil ? key : @"")];
    signerParam = [OSSSignerParams new];
    signerParam.credentialProvider = credentialProvider;
    signerParam.resourcePath = resource;
    signerParam.product = product;
    signerParam.region = region;
    signerParam.expiration = 599;
    signerParam.additionalHeaderNames = signHeaders;
    
    signer = [OSSSignerBase createRequestPresignerWithSignerVersion:version
                                                       signerParams:signerParam];
    [signer presign:requestMessage];
    
    XCTAssertTrue([@"OSS4-HMAC-SHA256" isEqualToString:requestMessage.params[@"x-oss-signature-version"]]);
    XCTAssertTrue([@"20231217T033009Z" isEqualToString:requestMessage.params[@"x-oss-date"]]);
    XCTAssertTrue([@"599" isEqualToString:requestMessage.params[@"x-oss-expires"]]);
    XCTAssertTrue([@"ak/20231217/cn-hangzhou/oss/aliyun_v4_request" isEqualToString:requestMessage.params[@"x-oss-credential"]]);
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -



