Skip to content

Commit 9b08cb2

Browse files
committed
SDK-1613 Branch SDK 2.0.0 sync
1 parent 0775d50 commit 9b08cb2

File tree

238 files changed

+3872
-2828
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

238 files changed

+3872
-2828
lines changed

.cocoadocs.yml

Lines changed: 0 additions & 6 deletions
This file was deleted.

.swiftpm/xcode/xcshareddata/xcschemes/Branch.xcscheme

Lines changed: 0 additions & 67 deletions
This file was deleted.

Branch-SDK/BNCAvailability.h

Lines changed: 0 additions & 25 deletions
This file was deleted.

Branch-SDK/BNCAvailability.m

Lines changed: 0 additions & 14 deletions
This file was deleted.

Branch-TestBed/Branch-SDK-Tests/BNCPartnerParametersTests.m

Lines changed: 36 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -108,53 +108,76 @@ - (void)testJsonEmpty {
108108
}
109109

110110
- (void)testJsonFBParameterEmpty {
111-
[self.partnerParams addFaceBookParameterWithName:@"em" value:@""];
111+
[self.partnerParams addFacebookParameterWithName:@"em" value:@""];
112112
NSString *jsonString = [self jsonStringFromDictionary:[self.partnerParams parameterJson]];
113113
XCTAssertTrue([@"{}" isEqualToString:jsonString]);
114114
}
115115

116116
- (void)testJsonFBParameterShort {
117-
[self.partnerParams addFaceBookParameterWithName:@"em" value:@"0123456789ABCDEF0123456789ABCDEF1234567890abcdef1234567890abcde"];
117+
[self.partnerParams addFacebookParameterWithName:@"em" value:@"0123456789ABCDEF0123456789ABCDEF1234567890abcdef1234567890abcde"];
118118
NSString *jsonString = [self jsonStringFromDictionary:[self.partnerParams parameterJson]];
119119
XCTAssertTrue([@"{}" isEqualToString:jsonString]);
120120
}
121121

122122
- (void)testJsonFBParameterPhoneNumberIsIgnored {
123-
[self.partnerParams addFaceBookParameterWithName:@"em" value:@"1-555-555-5555"];
123+
[self.partnerParams addFacebookParameterWithName:@"em" value:@"1-555-555-5555"];
124124
NSString *jsonString = [self jsonStringFromDictionary:[self.partnerParams parameterJson]];
125125
XCTAssertTrue([@"{}" isEqualToString:jsonString]);
126126
}
127127

128128
- (void)testJsonFBParameterEmailIsIgnored {
129-
[self.partnerParams addFaceBookParameterWithName:@"em" value:@"[email protected]"];
129+
[self.partnerParams addFacebookParameterWithName:@"em" value:@"[email protected]"];
130130
NSString *jsonString = [self jsonStringFromDictionary:[self.partnerParams parameterJson]];
131131
XCTAssertTrue([@"{}" isEqualToString:jsonString]);
132132
}
133133

134134
- (void)testJsonFBParameterBase64EncodedIsIgnored {
135135
// 123456789012345678901234567890123456789012345678 -> MTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4
136-
[self.partnerParams addFaceBookParameterWithName:@"em" value:@"MTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4"];
136+
[self.partnerParams addFacebookParameterWithName:@"em" value:@"MTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4"];
137137
NSString *jsonString = [self jsonStringFromDictionary:[self.partnerParams parameterJson]];
138138
XCTAssertTrue([@"{}" isEqualToString:jsonString]);
139139
}
140140

141141
- (void)testJsonFBParameterHashedValue {
142-
[self.partnerParams addFaceBookParameterWithName:@"em" value:@"11234e56af071e9c79927651156bd7a10bca8ac34672aba121056e2698ee7088"];
142+
[self.partnerParams addFacebookParameterWithName:@"em" value:@"11234e56af071e9c79927651156bd7a10bca8ac34672aba121056e2698ee7088"];
143143
NSString *jsonString = [self jsonStringFromDictionary:[self.partnerParams parameterJson]];
144144
XCTAssertTrue([@"{\"fb\":{\"em\":\"11234e56af071e9c79927651156bd7a10bca8ac34672aba121056e2698ee7088\"}}" isEqualToString:jsonString]);
145145
}
146146

147147
- (void)testJsonFBParameterExample {
148-
[self.partnerParams addFaceBookParameterWithName:@"em" value:@"11234e56af071e9c79927651156bd7a10bca8ac34672aba121056e2698ee7088"];
149-
[self.partnerParams addFaceBookParameterWithName:@"ph" value:@"b90598b67534f00b1e3e68e8006631a40d24fba37a3a34e2b84922f1f0b3b29b"];
148+
[self.partnerParams addFacebookParameterWithName:@"em" value:@"11234e56af071e9c79927651156bd7a10bca8ac34672aba121056e2698ee7088"];
149+
[self.partnerParams addFacebookParameterWithName:@"ph" value:@"b90598b67534f00b1e3e68e8006631a40d24fba37a3a34e2b84922f1f0b3b29b"];
150150
NSString *jsonString = [self jsonStringFromDictionary:[self.partnerParams parameterJson]];
151151

152152
XCTAssertTrue([@"{\"fb\":{\"ph\":\"b90598b67534f00b1e3e68e8006631a40d24fba37a3a34e2b84922f1f0b3b29b\",\"em\":\"11234e56af071e9c79927651156bd7a10bca8ac34672aba121056e2698ee7088\"}}" isEqualToString:jsonString]);
153153
}
154154

155-
- (void)testJsonFBParameterClear {
156-
[self.partnerParams addFaceBookParameterWithName:@"em" value:@"11234e56af071e9c79927651156bd7a10bca8ac34672aba121056e2698ee7088"];
157-
[self.partnerParams addFaceBookParameterWithName:@"ph" value:@"b90598b67534f00b1e3e68e8006631a40d24fba37a3a34e2b84922f1f0b3b29b"];
155+
- (void)testJsonSnapParameterExample {
156+
[self.partnerParams addSnapParameterWithName:@"hashed_email_address" value:@"11234e56af071e9c79927651156bd7a10bca8ac34672aba121056e2698ee7088"];
157+
[self.partnerParams addSnapParameterWithName:@"hashed_phone_number" value:@"b90598b67534f00b1e3e68e8006631a40d24fba37a3a34e2b84922f1f0b3b29b"];
158+
NSString *jsonString = [self jsonStringFromDictionary:[self.partnerParams parameterJson]];
159+
160+
XCTAssertTrue([@"{\"snap\":{\"hashed_phone_number\":\"b90598b67534f00b1e3e68e8006631a40d24fba37a3a34e2b84922f1f0b3b29b\",\"hashed_email_address\":\"11234e56af071e9c79927651156bd7a10bca8ac34672aba121056e2698ee7088\"}}" isEqualToString:jsonString]);
161+
}
162+
163+
164+
- (void)testJsonMultipleParameterExample {
165+
[self.partnerParams addFacebookParameterWithName:@"em" value:@"11234e56af071e9c79927651156bd7a10bca8ac34672aba121056e2698ee7088"];
166+
[self.partnerParams addFacebookParameterWithName:@"ph" value:@"b90598b67534f00b1e3e68e8006631a40d24fba37a3a34e2b84922f1f0b3b29b"];
167+
[self.partnerParams addSnapParameterWithName:@"hashed_email_address" value:@"11234e56af071e9c79927651156bd7a10bca8ac34672aba121056e2698ee7088"];
168+
[self.partnerParams addSnapParameterWithName:@"hashed_phone_number" value:@"b90598b67534f00b1e3e68e8006631a40d24fba37a3a34e2b84922f1f0b3b29b"];
169+
NSString *jsonString = [self jsonStringFromDictionary:[self.partnerParams parameterJson]];
170+
171+
NSString *expectedJsonString = @"{\"snap\":{\"hashed_phone_number\":\"b90598b67534f00b1e3e68e8006631a40d24fba37a3a34e2b84922f1f0b3b29b\",\"hashed_email_address\":\"11234e56af071e9c79927651156bd7a10bca8ac34672aba121056e2698ee7088\"},\"fb\":{\"ph\":\"b90598b67534f00b1e3e68e8006631a40d24fba37a3a34e2b84922f1f0b3b29b\",\"em\":\"11234e56af071e9c79927651156bd7a10bca8ac34672aba121056e2698ee7088\"}}";
172+
173+
XCTAssertTrue([expectedJsonString isEqualToString:jsonString]);
174+
}
175+
176+
- (void)testParameterClear {
177+
[self.partnerParams addFacebookParameterWithName:@"em" value:@"11234e56af071e9c79927651156bd7a10bca8ac34672aba121056e2698ee7088"];
178+
[self.partnerParams addFacebookParameterWithName:@"ph" value:@"b90598b67534f00b1e3e68e8006631a40d24fba37a3a34e2b84922f1f0b3b29b"];
179+
[self.partnerParams addSnapParameterWithName:@"hashed_email_address" value:@"11234e56af071e9c79927651156bd7a10bca8ac34672aba121056e2698ee7088"];
180+
[self.partnerParams addSnapParameterWithName:@"hashed_phone_number" value:@"b90598b67534f00b1e3e68e8006631a40d24fba37a3a34e2b84922f1f0b3b29b"];
158181
[self.partnerParams clearAllParameters];
159182

160183
NSString *jsonString = [self jsonStringFromDictionary:[self.partnerParams parameterJson]];
@@ -179,6 +202,8 @@ - (void)testSampleJson {
179202
XCTAssertTrue([@"{\"fb\":{\"ph\":\"b90598b67534f00b1e3e68e8006631a40d24fba37a3a34e2b84922f1f0b3b29b\",\"em\":\"11234e56af071e9c79927651156bd7a10bca8ac34672aba121056e2698ee7088\"}}" isEqualToString:jsonString]);
180203
}
181204

205+
// There is an assumption that this code always results in the same string for the same json data.
206+
// This appears to be true, but I haven't found documentation to confirm it.
182207
- (NSString *)jsonStringFromDictionary:(NSDictionary *)dictionary {
183208
NSError *error;
184209
NSData *json = [NSJSONSerialization dataWithJSONObject:dictionary options:0 error:&error];

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

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -139,7 +139,7 @@ - (void)testGetRequestAsyncRetriesWhenAppropriate {
139139
}];
140140

141141
[serverInterface getRequest:nil url:@"http://foo" key:@"key_live_foo" callback:NULL];
142-
[self waitForExpectationsWithTimeout:5.0 handler:nil];
142+
[self waitForExpectationsWithTimeout:10.0 handler:nil];
143143
}
144144

145145
//==================================================================================
@@ -420,7 +420,7 @@ - (void)testRequestIdFromHeader {
420420
XCTAssertEqualObjects(response.requestId, requestId);
421421
}];
422422

423-
[self waitForExpectationsWithTimeout:1.0 handler:nil];
423+
[self waitForExpectationsWithTimeout:5.0 handler:nil];
424424
}
425425

426426
- (void) testServerInterfaceDictionaryPrepForGbraid {
@@ -445,10 +445,15 @@ - (void) testServerInterfaceDictionaryPrepForGbraid {
445445
XCTAssertNotNil([result objectForKey:BRANCH_REQUEST_KEY_REFERRER_GBRAID]);
446446
XCTAssertTrue([[result objectForKey:BRANCH_REQUEST_KEY_REFERRER_GBRAID] isEqualToString:gbraidValue]);
447447

448-
//Check - gbraid should not be present - endpoint is open
448+
// Check for gbraid timestamp
449+
XCTAssertNotNil([result objectForKey:BRANCH_REQUEST_KEY_REFERRER_GBRAID_TIMESTAMP]);
450+
NSString *tsInMs = [NSString stringWithFormat:@"%lld", (long long)([now timeIntervalSince1970]*1000)];
451+
XCTAssertTrue([[result objectForKey:BRANCH_REQUEST_KEY_REFERRER_GBRAID_TIMESTAMP] isEqualToString:tsInMs]);
452+
453+
//Check - gbraid should be present - endpoint is open
449454
serverInterface.requestEndpoint = @"/v1/open";
450455
result = [serverInterface prepareParamDict:NULL key:@"1234567890" retryNumber:3 requestType:@"POST"];
451-
XCTAssertNil([result objectForKey:BRANCH_REQUEST_KEY_REFERRER_GBRAID]);
456+
XCTAssertNotNil([result objectForKey:BRANCH_REQUEST_KEY_REFERRER_GBRAID]);
452457

453458
//Check - gbraid should not be present - validity is expired
454459
NSDate *pastDate = [[NSDate date] dateByAddingTimeInterval:-2592001];

Branch-TestBed/Branch-SDK-Tests/BNCTestCase.m

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ - (void)setUp {
5353
[[BNCUserAgentCollector instance] loadUserAgentWithCompletion:^(NSString * _Nullable userAgent) {
5454
[expectation fulfill];
5555
}];
56-
[self waitForExpectationsWithTimeout:2.0 handler:^(NSError * _Nullable error) { }];
56+
[self waitForExpectationsWithTimeout:5.0 handler:^(NSError * _Nullable error) { }];
5757
}
5858

5959
- (void)resetExpectations {

Branch-TestBed/Branch-SDK-Tests/BNCURLFilterTests.m

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
#import "BNCTestCase.h"
1212
#import "BNCURLFilter.h"
1313
#import "Branch.h"
14+
#import "BNCLog.h"
1415

1516
@interface BNCURLFilter ()
1617
@property (readwrite) NSURL *jsonURL;

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88

99
#import "BNCTestCase.h"
1010
#import "Branch.h"
11+
#import "NSError+Branch.h"
1112
#import "BNCEncodingUtils.h"
1213

1314
@interface BranchDelegateTest : BNCTestCase <BranchDelegate>

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

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -130,6 +130,22 @@ - (void) testEvent {
130130
[self mutableDictionaryFromBundleJSONWithKey:@"V2EventJSON"];
131131
expectedRequest[@"branch_key"] = Branch.branchKey;
132132
expectedRequest[@"user_data"] = [[BNCDeviceInfo getInstance] v2dictionary];
133+
134+
// Add params for Gbraid
135+
BNCPreferenceHelper *preferenceHelper = [BNCPreferenceHelper sharedInstance];
136+
if(preferenceHelper.referrerGBRAID){
137+
NSTimeInterval validityWindow = preferenceHelper.referrerGBRAIDValidityWindow;
138+
if (validityWindow) {
139+
NSDate *initDate = preferenceHelper.referrerGBRAIDInitDate ;
140+
NSDate *expirationDate = [initDate dateByAddingTimeInterval:validityWindow];
141+
NSDate *now = [NSDate date];
142+
if ([now compare:expirationDate] == NSOrderedAscending) {
143+
expectedRequest[BRANCH_REQUEST_KEY_REFERRER_GBRAID] = preferenceHelper.referrerGBRAID;
144+
long long timestampInMilliSec = (long long)([initDate timeIntervalSince1970] * 1000.0);
145+
expectedRequest[BRANCH_REQUEST_KEY_REFERRER_GBRAID_TIMESTAMP] = [NSString stringWithFormat:@"%lld", timestampInMilliSec];
146+
}
147+
}
148+
}
133149

134150
Branch *branch = [Branch getInstance:@"key_live_foo"];
135151
XCTestExpectation *expectation = [self expectationWithDescription:@"v2-event"];
@@ -180,6 +196,22 @@ - (void) testUserCompletedAction {
180196
expectedRequest[@"event_data"] = nil;
181197
expectedRequest[@"custom_data"] = nil;
182198
expectedRequest[@"customer_event_alias"] = nil;
199+
200+
// Add params for Gbraid
201+
BNCPreferenceHelper *preferenceHelper = [BNCPreferenceHelper sharedInstance];
202+
if(preferenceHelper.referrerGBRAID){
203+
NSTimeInterval validityWindow = preferenceHelper.referrerGBRAIDValidityWindow;
204+
if (validityWindow) {
205+
NSDate *initDate = preferenceHelper.referrerGBRAIDInitDate ;
206+
NSDate *expirationDate = [initDate dateByAddingTimeInterval:validityWindow];
207+
NSDate *now = [NSDate date];
208+
if ([now compare:expirationDate] == NSOrderedAscending) {
209+
expectedRequest[BRANCH_REQUEST_KEY_REFERRER_GBRAID] = preferenceHelper.referrerGBRAID;
210+
long long timestampInMilliSec = (long long)([initDate timeIntervalSince1970] * 1000.0);
211+
expectedRequest[BRANCH_REQUEST_KEY_REFERRER_GBRAID_TIMESTAMP] = [NSString stringWithFormat:@"%lld", timestampInMilliSec];
212+
}
213+
}
214+
}
183215

184216
Branch *branch = [Branch getInstance:@"key_live_foo"];
185217
XCTestExpectation *expectation = [self expectationWithDescription:@"v2-event-user-action"];

0 commit comments

Comments
 (0)