@@ -499,4 +499,52 @@ - (void)testOpenWhenNotReferrable {
499499 [self awaitExpectations ];
500500}
501501
502+ - (void )testEmptyResponseFields {
503+ NSString * DEVICE_TOKEN = @" foo-token" ;
504+ NSString * USER_URL = @" http://foo" ;
505+ NSString * DEVELOPER_ID = @" foo" ;
506+ NSString * SESSION_ID = @" foo-session" ;
507+ NSString * IDENTITY = @" branch-id" ;
508+
509+ BNCServerResponse *response = [[BNCServerResponse alloc ] init ];
510+ response.data = @{
511+ BRANCH_RESPONSE_KEY_RANDOMIZED_DEVICE_TOKEN: DEVICE_TOKEN,
512+ BRANCH_RESPONSE_KEY_USER_URL: USER_URL,
513+ BRANCH_RESPONSE_KEY_DEVELOPER_IDENTITY: DEVELOPER_ID,
514+ BRANCH_RESPONSE_KEY_SESSION_ID: SESSION_ID,
515+ BRANCH_RESPONSE_KEY_RANDOMIZED_BUNDLE_TOKEN: IDENTITY
516+ };
517+
518+ BNCPreferenceHelper *preferenceHelper = [BNCPreferenceHelper sharedInstance ];
519+
520+ XCTestExpectation *openExpectation = [self expectationWithDescription: @" OpenRequest Expectation" ];
521+ BranchOpenRequest *request = [[BranchOpenRequest alloc ] initWithCallback: ^(BOOL success, NSError *error) {
522+ XCTAssertNil (error);
523+ XCTAssertTrue (success);
524+ [self safelyFulfillExpectation: openExpectation];
525+ } isInstall: NO ];
526+
527+ [request processResponse: response error: nil ];
528+
529+ [self awaitExpectations ];
530+
531+ XCTAssertEqualObjects (preferenceHelper.randomizedDeviceToken , DEVICE_TOKEN);
532+ XCTAssertEqualObjects (preferenceHelper.userUrl , USER_URL);
533+ XCTAssertEqualObjects (preferenceHelper.userIdentity , DEVELOPER_ID);
534+ XCTAssertEqualObjects (preferenceHelper.sessionID , SESSION_ID);
535+ XCTAssertEqualObjects (preferenceHelper.randomizedBundleToken , IDENTITY);
536+ XCTAssertNil (preferenceHelper.sessionParams );
537+ XCTAssertNil (preferenceHelper.linkClickIdentifier );
538+ XCTAssertNil (preferenceHelper.installParams );
539+
540+ // Now call processResponse with empty fields again.
541+ response.data = @{};
542+ [request processResponse: response error: nil ];
543+
544+ XCTAssertNotNil (preferenceHelper.randomizedDeviceToken );
545+ XCTAssertNotNil (preferenceHelper.userUrl );
546+ XCTAssertNotNil (preferenceHelper.sessionID );
547+ XCTAssertNotNil (preferenceHelper.randomizedBundleToken );
548+ }
549+
502550@end
0 commit comments