Skip to content

Commit

Permalink
SDK-1613 Branch SDK 2.0.0 sync
Browse files Browse the repository at this point in the history
  • Loading branch information
echo-branch committed Feb 9, 2023
1 parent 0775d50 commit 9b08cb2
Show file tree
Hide file tree
Showing 238 changed files with 3,872 additions and 2,828 deletions.
6 changes: 0 additions & 6 deletions .cocoadocs.yml

This file was deleted.

67 changes: 0 additions & 67 deletions .swiftpm/xcode/xcshareddata/xcschemes/Branch.xcscheme

This file was deleted.

25 changes: 0 additions & 25 deletions Branch-SDK/BNCAvailability.h

This file was deleted.

14 changes: 0 additions & 14 deletions Branch-SDK/BNCAvailability.m

This file was deleted.

47 changes: 36 additions & 11 deletions Branch-TestBed/Branch-SDK-Tests/BNCPartnerParametersTests.m
Original file line number Diff line number Diff line change
Expand Up @@ -108,53 +108,76 @@ - (void)testJsonEmpty {
}

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

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

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

- (void)testJsonFBParameterEmailIsIgnored {
[self.partnerParams addFaceBookParameterWithName:@"em" value:@"test@branch.io"];
[self.partnerParams addFacebookParameterWithName:@"em" value:@"test@branch.io"];
NSString *jsonString = [self jsonStringFromDictionary:[self.partnerParams parameterJson]];
XCTAssertTrue([@"{}" isEqualToString:jsonString]);
}

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

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

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

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

- (void)testJsonFBParameterClear {
[self.partnerParams addFaceBookParameterWithName:@"em" value:@"11234e56af071e9c79927651156bd7a10bca8ac34672aba121056e2698ee7088"];
[self.partnerParams addFaceBookParameterWithName:@"ph" value:@"b90598b67534f00b1e3e68e8006631a40d24fba37a3a34e2b84922f1f0b3b29b"];
- (void)testJsonSnapParameterExample {
[self.partnerParams addSnapParameterWithName:@"hashed_email_address" value:@"11234e56af071e9c79927651156bd7a10bca8ac34672aba121056e2698ee7088"];
[self.partnerParams addSnapParameterWithName:@"hashed_phone_number" value:@"b90598b67534f00b1e3e68e8006631a40d24fba37a3a34e2b84922f1f0b3b29b"];
NSString *jsonString = [self jsonStringFromDictionary:[self.partnerParams parameterJson]];

XCTAssertTrue([@"{\"snap\":{\"hashed_phone_number\":\"b90598b67534f00b1e3e68e8006631a40d24fba37a3a34e2b84922f1f0b3b29b\",\"hashed_email_address\":\"11234e56af071e9c79927651156bd7a10bca8ac34672aba121056e2698ee7088\"}}" isEqualToString:jsonString]);
}


- (void)testJsonMultipleParameterExample {
[self.partnerParams addFacebookParameterWithName:@"em" value:@"11234e56af071e9c79927651156bd7a10bca8ac34672aba121056e2698ee7088"];
[self.partnerParams addFacebookParameterWithName:@"ph" value:@"b90598b67534f00b1e3e68e8006631a40d24fba37a3a34e2b84922f1f0b3b29b"];
[self.partnerParams addSnapParameterWithName:@"hashed_email_address" value:@"11234e56af071e9c79927651156bd7a10bca8ac34672aba121056e2698ee7088"];
[self.partnerParams addSnapParameterWithName:@"hashed_phone_number" value:@"b90598b67534f00b1e3e68e8006631a40d24fba37a3a34e2b84922f1f0b3b29b"];
NSString *jsonString = [self jsonStringFromDictionary:[self.partnerParams parameterJson]];

NSString *expectedJsonString = @"{\"snap\":{\"hashed_phone_number\":\"b90598b67534f00b1e3e68e8006631a40d24fba37a3a34e2b84922f1f0b3b29b\",\"hashed_email_address\":\"11234e56af071e9c79927651156bd7a10bca8ac34672aba121056e2698ee7088\"},\"fb\":{\"ph\":\"b90598b67534f00b1e3e68e8006631a40d24fba37a3a34e2b84922f1f0b3b29b\",\"em\":\"11234e56af071e9c79927651156bd7a10bca8ac34672aba121056e2698ee7088\"}}";

XCTAssertTrue([expectedJsonString isEqualToString:jsonString]);
}

- (void)testParameterClear {
[self.partnerParams addFacebookParameterWithName:@"em" value:@"11234e56af071e9c79927651156bd7a10bca8ac34672aba121056e2698ee7088"];
[self.partnerParams addFacebookParameterWithName:@"ph" value:@"b90598b67534f00b1e3e68e8006631a40d24fba37a3a34e2b84922f1f0b3b29b"];
[self.partnerParams addSnapParameterWithName:@"hashed_email_address" value:@"11234e56af071e9c79927651156bd7a10bca8ac34672aba121056e2698ee7088"];
[self.partnerParams addSnapParameterWithName:@"hashed_phone_number" value:@"b90598b67534f00b1e3e68e8006631a40d24fba37a3a34e2b84922f1f0b3b29b"];
[self.partnerParams clearAllParameters];

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

// There is an assumption that this code always results in the same string for the same json data.
// This appears to be true, but I haven't found documentation to confirm it.
- (NSString *)jsonStringFromDictionary:(NSDictionary *)dictionary {
NSError *error;
NSData *json = [NSJSONSerialization dataWithJSONObject:dictionary options:0 error:&error];
Expand Down
13 changes: 9 additions & 4 deletions Branch-TestBed/Branch-SDK-Tests/BNCServerInterface.Test.m
Original file line number Diff line number Diff line change
Expand Up @@ -139,7 +139,7 @@ - (void)testGetRequestAsyncRetriesWhenAppropriate {
}];

[serverInterface getRequest:nil url:@"http://foo" key:@"key_live_foo" callback:NULL];
[self waitForExpectationsWithTimeout:5.0 handler:nil];
[self waitForExpectationsWithTimeout:10.0 handler:nil];
}

//==================================================================================
Expand Down Expand Up @@ -420,7 +420,7 @@ - (void)testRequestIdFromHeader {
XCTAssertEqualObjects(response.requestId, requestId);
}];

[self waitForExpectationsWithTimeout:1.0 handler:nil];
[self waitForExpectationsWithTimeout:5.0 handler:nil];
}

- (void) testServerInterfaceDictionaryPrepForGbraid {
Expand All @@ -445,10 +445,15 @@ - (void) testServerInterfaceDictionaryPrepForGbraid {
XCTAssertNotNil([result objectForKey:BRANCH_REQUEST_KEY_REFERRER_GBRAID]);
XCTAssertTrue([[result objectForKey:BRANCH_REQUEST_KEY_REFERRER_GBRAID] isEqualToString:gbraidValue]);

//Check - gbraid should not be present - endpoint is open
// Check for gbraid timestamp
XCTAssertNotNil([result objectForKey:BRANCH_REQUEST_KEY_REFERRER_GBRAID_TIMESTAMP]);
NSString *tsInMs = [NSString stringWithFormat:@"%lld", (long long)([now timeIntervalSince1970]*1000)];
XCTAssertTrue([[result objectForKey:BRANCH_REQUEST_KEY_REFERRER_GBRAID_TIMESTAMP] isEqualToString:tsInMs]);

//Check - gbraid should be present - endpoint is open
serverInterface.requestEndpoint = @"/v1/open";
result = [serverInterface prepareParamDict:NULL key:@"1234567890" retryNumber:3 requestType:@"POST"];
XCTAssertNil([result objectForKey:BRANCH_REQUEST_KEY_REFERRER_GBRAID]);
XCTAssertNotNil([result objectForKey:BRANCH_REQUEST_KEY_REFERRER_GBRAID]);

//Check - gbraid should not be present - validity is expired
NSDate *pastDate = [[NSDate date] dateByAddingTimeInterval:-2592001];
Expand Down
2 changes: 1 addition & 1 deletion Branch-TestBed/Branch-SDK-Tests/BNCTestCase.m
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ - (void)setUp {
[[BNCUserAgentCollector instance] loadUserAgentWithCompletion:^(NSString * _Nullable userAgent) {
[expectation fulfill];
}];
[self waitForExpectationsWithTimeout:2.0 handler:^(NSError * _Nullable error) { }];
[self waitForExpectationsWithTimeout:5.0 handler:^(NSError * _Nullable error) { }];
}

- (void)resetExpectations {
Expand Down
1 change: 1 addition & 0 deletions Branch-TestBed/Branch-SDK-Tests/BNCURLFilterTests.m
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
#import "BNCTestCase.h"
#import "BNCURLFilter.h"
#import "Branch.h"
#import "BNCLog.h"

@interface BNCURLFilter ()
@property (readwrite) NSURL *jsonURL;
Expand Down
1 change: 1 addition & 0 deletions Branch-TestBed/Branch-SDK-Tests/BranchDelegate.Test.m
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@

#import "BNCTestCase.h"
#import "Branch.h"
#import "NSError+Branch.h"
#import "BNCEncodingUtils.h"

@interface BranchDelegateTest : BNCTestCase <BranchDelegate>
Expand Down
32 changes: 32 additions & 0 deletions Branch-TestBed/Branch-SDK-Tests/BranchEvent.Test.m
Original file line number Diff line number Diff line change
Expand Up @@ -130,6 +130,22 @@ - (void) testEvent {
[self mutableDictionaryFromBundleJSONWithKey:@"V2EventJSON"];
expectedRequest[@"branch_key"] = Branch.branchKey;
expectedRequest[@"user_data"] = [[BNCDeviceInfo getInstance] v2dictionary];

// Add params for Gbraid
BNCPreferenceHelper *preferenceHelper = [BNCPreferenceHelper sharedInstance];
if(preferenceHelper.referrerGBRAID){
NSTimeInterval validityWindow = preferenceHelper.referrerGBRAIDValidityWindow;
if (validityWindow) {
NSDate *initDate = preferenceHelper.referrerGBRAIDInitDate ;
NSDate *expirationDate = [initDate dateByAddingTimeInterval:validityWindow];
NSDate *now = [NSDate date];
if ([now compare:expirationDate] == NSOrderedAscending) {
expectedRequest[BRANCH_REQUEST_KEY_REFERRER_GBRAID] = preferenceHelper.referrerGBRAID;
long long timestampInMilliSec = (long long)([initDate timeIntervalSince1970] * 1000.0);
expectedRequest[BRANCH_REQUEST_KEY_REFERRER_GBRAID_TIMESTAMP] = [NSString stringWithFormat:@"%lld", timestampInMilliSec];
}
}
}

Branch *branch = [Branch getInstance:@"key_live_foo"];
XCTestExpectation *expectation = [self expectationWithDescription:@"v2-event"];
Expand Down Expand Up @@ -180,6 +196,22 @@ - (void) testUserCompletedAction {
expectedRequest[@"event_data"] = nil;
expectedRequest[@"custom_data"] = nil;
expectedRequest[@"customer_event_alias"] = nil;

// Add params for Gbraid
BNCPreferenceHelper *preferenceHelper = [BNCPreferenceHelper sharedInstance];
if(preferenceHelper.referrerGBRAID){
NSTimeInterval validityWindow = preferenceHelper.referrerGBRAIDValidityWindow;
if (validityWindow) {
NSDate *initDate = preferenceHelper.referrerGBRAIDInitDate ;
NSDate *expirationDate = [initDate dateByAddingTimeInterval:validityWindow];
NSDate *now = [NSDate date];
if ([now compare:expirationDate] == NSOrderedAscending) {
expectedRequest[BRANCH_REQUEST_KEY_REFERRER_GBRAID] = preferenceHelper.referrerGBRAID;
long long timestampInMilliSec = (long long)([initDate timeIntervalSince1970] * 1000.0);
expectedRequest[BRANCH_REQUEST_KEY_REFERRER_GBRAID_TIMESTAMP] = [NSString stringWithFormat:@"%lld", timestampInMilliSec];
}
}
}

Branch *branch = [Branch getInstance:@"key_live_foo"];
XCTestExpectation *expectation = [self expectationWithDescription:@"v2-event-user-action"];
Expand Down
1 change: 1 addition & 0 deletions Branch-TestBed/Branch-SDK-Tests/BranchOpenRequestTests.m
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@

#import "BNCTestCase.h"
#import "Branch.h"
#import "BNCLog.h"
#import "BNCApplication+BNCTest.h"
#import "BranchOpenRequest.h"
#import "BranchConstants.h"
Expand Down
1 change: 1 addition & 0 deletions Branch-TestBed/Branch-SDK-Tests/BranchQRCodeTests.m
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@

#import <XCTest/XCTest.h>
#import "Branch.h"
#import "BranchQRCode.h"
#import "BNCQRCodeCache.h"

@interface BranchQRCodeTests : XCTestCase
Expand Down
Loading

0 comments on commit 9b08cb2

Please sign in to comment.