Skip to content

Commit 20902ee

Browse files
committed
unit tests for addtionalHeaders field and track request
1 parent 3138efe commit 20902ee

File tree

1 file changed

+38
-0
lines changed

1 file changed

+38
-0
lines changed

iOS_SDK/OneSignalSDK/UnitTests/RequestTests.m

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -167,6 +167,10 @@ BOOL checkHttpBody(NSData *bodyData, NSDictionary *correct) {
167167
return dictionariesAreEquivalent(serialized, correct);
168168
}
169169

170+
BOOL checkHttpHeaders(NSDictionary *additionalHeaders, NSDictionary *correct) {
171+
return dictionariesAreEquivalent(additionalHeaders, correct);
172+
}
173+
170174
- (void)testBuildGetTags {
171175
let request = [OSRequestGetTags withUserId:testUserId appId:testAppId];
172176

@@ -743,4 +747,38 @@ - (void)testSendExternalWithAuthUserId {
743747
XCTAssertTrue(checkHttpBody(request.urlRequest.HTTPBody, @{@"app_id" : testAppId, @"external_user_id" : testExternalUserId, @"external_user_id_auth_hash" : testExternalUserIdHashToken}));
744748
}
745749

750+
- (void)testSendTrackUsageRequest {
751+
NSString *testUsageData = @"test usage data";
752+
let request = [OSRequestTrackV1 trackUsageData:testUsageData appId:testAppId];
753+
let correctUrl = correctUrlWithPath(@"v1/track");
754+
755+
XCTAssertTrue([correctUrl isEqualToString:request.urlRequest.URL.absoluteString]);
756+
XCTAssertTrue(checkHttpBody(request.urlRequest.HTTPBody, @{@"app_id" : testAppId}));
757+
XCTAssertTrue(checkHttpHeaders(request.additionalHeaders, @{@"app_id" : testAppId,
758+
@"OS-Usage-Data" : testUsageData,
759+
}));
760+
}
761+
762+
- (void)testAdditionalHeaders {
763+
// Create a fake request
764+
let request = [OneSignalRequest new];
765+
let params = [NSMutableDictionary new];
766+
let headers = [NSMutableDictionary new];
767+
params[@"app_id"] = testAppId;
768+
headers[@"app_id"] = testAppId;
769+
headers[@"test-header"] = @"test_header_value";
770+
request.method = POST;
771+
request.path = @"test/path";
772+
request.parameters = params;
773+
request.additionalHeaders = headers;
774+
775+
// Properties must be set in the request before accessing urlRequest
776+
let urlRequest = request.urlRequest;
777+
let requestHeaders = urlRequest.allHTTPHeaderFields;
778+
// Verify that all headers we added via additionalHeaders are in the request's header fields
779+
for (NSString *key in headers) {
780+
XCTAssertTrue(requestHeaders[key] != nil);
781+
}
782+
}
783+
746784
@end

0 commit comments

Comments
 (0)