@@ -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