Skip to content

Commit 1d01202

Browse files
Merge pull request #1186 from BranchMetrics/SDK-1461-Updates-to-GBRAID-handling
SDK-1461 -- [iOS] Updates to GBRAID handling.
2 parents e4d55e6 + babaee1 commit 1d01202

File tree

3 files changed

+62
-3
lines changed

3 files changed

+62
-3
lines changed

Branch-SDK/BNCServerInterface.m

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -456,8 +456,8 @@ - (NSMutableDictionary *)prepareParamDict:(NSDictionary *)params
456456
fullParamDict[BRANCH_REQUEST_KEY_INSTRUMENTATION] = instrumentationDictionary;
457457
}
458458
}
459-
// For DOWNSTREAM EVENTS v1/open & v2/events, include referrer_gbraid in request if available
460-
if(([self.requestEndpoint containsString:@"/v1/open"]) || ([self.requestEndpoint containsString:@"/v2/event"])){
459+
// For DOWNSTREAM EVENTS v2/events, include referrer_gbraid in request if available
460+
if([self.requestEndpoint containsString:@"/v2/event"]){
461461
NSString *ref_gbraid = self.preferenceHelper.referrerGBRAID;
462462
if ((ref_gbraid != nil) && (ref_gbraid.length > 0)) {
463463
// Check if its valid or expired

Branch-SDK/BranchConstants.m

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@
7575
NSString * const BRANCH_REQUEST_KEY_PARTNER_PARAMETERS = @"partner_data";
7676

7777
NSString * const BRANCH_REQUEST_METADATA_KEY_SCANTIME_WINDOW = @"skan_time_window";
78-
NSString * const BRANCH_REQUEST_KEY_REFERRER_GBRAID = @"referrer_gbraid";
78+
NSString * const BRANCH_REQUEST_KEY_REFERRER_GBRAID = @"gbraid";
7979

8080
NSString * const BRANCH_REQUEST_ENDPOINT_SET_IDENTITY = @"profile";
8181
NSString * const BRANCH_REQUEST_ENDPOINT_APP_LINK_SETTINGS = @"app-link-settings";

Branch-TestBed/Branch-SDK-Tests/BNCServerInterface.Test.m

Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,12 +10,25 @@
1010
#import "BNCTestCase.h"
1111
#import "BNCServerInterface.h"
1212
#import "BNCPreferenceHelper.h"
13+
#import "BranchConstants.h"
1314
#import <OCMock/OCMock.h>
1415
#import <OHHTTPStubs/HTTPStubs.h>
1516
#import <OHHTTPStubs/HTTPStubsResponse+JSON.h>
1617

1718
typedef void (^UrlConnectionCallback)(NSURLResponse *, NSData *, NSError *);
1819

20+
@interface BNCServerInterface()
21+
22+
// private BNCServerInterface method/properties to prepare dictionary for requests
23+
@property (copy, nonatomic) NSString *requestEndpoint;
24+
- (NSMutableDictionary *)prepareParamDict:(NSDictionary *)params
25+
key:(NSString *)key
26+
retryNumber:(NSInteger)retryNumber
27+
requestType:(NSString *)reqType;
28+
@end
29+
30+
31+
1932
@interface BNCServerInterfaceTests : BNCTestCase
2033
@end
2134

@@ -410,4 +423,50 @@ - (void)testRequestIdFromHeader {
410423
[self waitForExpectationsWithTimeout:1.0 handler:nil];
411424
}
412425

426+
- (void) testServerInterfaceDictionaryPrepForGbraid {
427+
428+
[HTTPStubs removeAllStubs];
429+
430+
BNCServerInterface *serverInterface = [[BNCServerInterface alloc] init];
431+
serverInterface.preferenceHelper = [BNCPreferenceHelper sharedInstance];
432+
serverInterface.preferenceHelper.retryCount = 3;
433+
serverInterface.requestEndpoint = @"/v2/event/standard";
434+
435+
//Check - gbraid should not be present
436+
NSMutableDictionary *result = [serverInterface prepareParamDict:NULL key:@"1234567890" retryNumber:3 requestType:@"POST"];
437+
XCTAssertNil([result objectForKey:BRANCH_REQUEST_KEY_REFERRER_GBRAID]);
438+
439+
[BNCPreferenceHelper sharedInstance].randomizedBundleToken = @"575759106028389737";
440+
441+
// Set referrerGBRAID and referrerGBRAIDInitDate
442+
NSString *gbraidValue = @"CjwKCAiA3L6PBhBvEiwAINlJ9Chixm216y8kYYJ1K94dm4FEkOgFfhIdKQdjWsYB7FqE7rf_zkGNEhoCuIEQAvD_BwE";
443+
[BNCPreferenceHelper sharedInstance].referrerGBRAID = gbraidValue;
444+
NSDate *now = [NSDate date];
445+
[BNCPreferenceHelper sharedInstance].referrerGBRAIDInitDate = now;
446+
447+
//Check - gbraid should be present
448+
result = [serverInterface prepareParamDict:NULL key:@"1234567890" retryNumber:3 requestType:@"POST"];
449+
XCTAssertNotNil([result objectForKey:BRANCH_REQUEST_KEY_REFERRER_GBRAID]);
450+
XCTAssertTrue([[result objectForKey:BRANCH_REQUEST_KEY_REFERRER_GBRAID] isEqualToString:gbraidValue]);
451+
452+
//Check - gbraid should not be present - endpoint is open
453+
serverInterface.requestEndpoint = @"/v1/open";
454+
result = [serverInterface prepareParamDict:NULL key:@"1234567890" retryNumber:3 requestType:@"POST"];
455+
XCTAssertNil([result objectForKey:BRANCH_REQUEST_KEY_REFERRER_GBRAID]);
456+
457+
//Check - gbraid should not be present - validity is expired
458+
NSDate *pastDate = [[NSDate date] dateByAddingTimeInterval:-2592001];
459+
[BNCPreferenceHelper sharedInstance].referrerGBRAIDInitDate = pastDate;
460+
serverInterface.requestEndpoint = @"/v2/event/standard";
461+
result = [serverInterface prepareParamDict:NULL key:@"1234567890" retryNumber:3 requestType:@"POST"];
462+
XCTAssertNil([result objectForKey:BRANCH_REQUEST_KEY_REFERRER_GBRAID]);
463+
464+
//Check - gbraid should be present. Date is reset
465+
[BNCPreferenceHelper sharedInstance].referrerGBRAIDInitDate = now;
466+
result = [serverInterface prepareParamDict:NULL key:@"1234567890" retryNumber:3 requestType:@"POST"];
467+
XCTAssertNotNil([result objectForKey:BRANCH_REQUEST_KEY_REFERRER_GBRAID]);
468+
XCTAssertTrue([[result objectForKey:BRANCH_REQUEST_KEY_REFERRER_GBRAID] isEqualToString:gbraidValue]);
469+
470+
}
471+
413472
@end

0 commit comments

Comments
 (0)