Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[In Progress] SDK - 2519 Open Request Input Params Refactor #1454

Open
wants to merge 12 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 6 additions & 4 deletions Branch-TestBed/Branch-SDK-Tests/BNCClassSerializationTests.m
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,8 @@ - (void)testBranchEventRequestArchive {

- (void)testBranchOpenRequestArchive {
BranchOpenRequest *request = [[BranchOpenRequest alloc] initWithCallback:nil];
request.urlString = @"https://branch.io";
request.linkParams = [[BranchOpenRequestLinkParams alloc] init];
request.linkParams.referringURL = @"https://branch.io";

// archive the event
NSError *error = nil;
Expand All @@ -88,14 +89,15 @@ - (void)testBranchOpenRequestArchive {
XCTAssertTrue([object isKindOfClass:BranchOpenRequest.class]);
BranchOpenRequest *unarchivedRequest = (BranchOpenRequest *)object;

XCTAssertTrue([request.urlString isEqualToString:unarchivedRequest.urlString]);
XCTAssertTrue([request.linkParams.referringURL isEqualToString:unarchivedRequest.linkParams.referringURL]);
XCTAssertNil(unarchivedRequest.callback);
XCTAssertTrue([@"open" isEqualToString:[unarchivedRequest getActionName]]);
}

- (void)testBranchInstallRequestArchive {
BranchInstallRequest *request = [[BranchInstallRequest alloc] initWithCallback:nil];
request.urlString = @"https://branch.io";
request.linkParams = [[BranchOpenRequestLinkParams alloc] init];
request.linkParams.referringURL = @"https://branch.io";

// archive the event
NSError *error = nil;
Expand All @@ -112,7 +114,7 @@ - (void)testBranchInstallRequestArchive {
XCTAssertTrue([object isKindOfClass:BranchInstallRequest.class]);
BranchInstallRequest *unarchivedRequest = (BranchInstallRequest *)object;

XCTAssertTrue([request.urlString isEqualToString:unarchivedRequest.urlString]);
XCTAssertTrue([request.linkParams.referringURL isEqualToString:unarchivedRequest.linkParams.referringURL]);
XCTAssertNil(unarchivedRequest.callback);
XCTAssertTrue([@"install" isEqualToString:[unarchivedRequest getActionName]]);
}
Expand Down
13 changes: 0 additions & 13 deletions Branch-TestBed/Branch-SDK-Tests/BNCPreferenceHelperTests.m
Original file line number Diff line number Diff line change
Expand Up @@ -243,13 +243,6 @@ - (void)testSetLastStrongMatchDate {
XCTAssertEqualObjects(expectedDate, actualDate);
}

- (void)testSetAppVersion {
NSString *expectedVersion = @"1.0.0";
[self.prefHelper setAppVersion: expectedVersion];

NSString *actualVersion = [self.prefHelper appVersion];
XCTAssertEqualObjects(expectedVersion, actualVersion);
}

- (void)testSetLocalUrl {
NSString *expectedLocalURL = @"https://local.example.com";
Expand Down Expand Up @@ -364,14 +357,8 @@ - (void)testClearTrackingInformation {
[self.prefHelper clearTrackingInformation];

XCTAssertNil(self.prefHelper.sessionID);
XCTAssertNil(self.prefHelper.linkClickIdentifier);
XCTAssertNil(self.prefHelper.spotlightIdentifier);
XCTAssertNil(self.prefHelper.referringURL);
XCTAssertNil(self.prefHelper.universalLinkUrl);
XCTAssertNil(self.prefHelper.initialReferrer);
XCTAssertNil(self.prefHelper.installParams);
XCTAssertNil(self.prefHelper.sessionParams);
XCTAssertNil(self.prefHelper.externalIntentURI);
XCTAssertNil(self.prefHelper.savedAnalyticsData);
XCTAssertNil(self.prefHelper.previousAppBuildDate);
XCTAssertEqual(self.prefHelper.requestMetadataDictionary.count, 0);
Expand Down
10 changes: 5 additions & 5 deletions Branch-TestBed/Branch-SDK-Tests/BNCRequestFactoryTests.m
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ - (void)tearDown {

- (void)testInitWithBranchKeyNil {
BNCRequestFactory *factory = [[BNCRequestFactory alloc] initWithBranchKey:nil UUID:_requestUUID TimeStamp:_requestCreationTimeStamp];
NSDictionary *json = [factory dataForInstallWithURLString:@"https://branch.io"];
NSDictionary *json = [factory dataForInstallWithLinkParams:nil];
XCTAssertNotNil(json);

// key is omitted when nil
Expand All @@ -40,7 +40,7 @@ - (void)testInitWithBranchKeyNil {

- (void)testInitWithBranchKeyEmpty {
BNCRequestFactory *factory = [[BNCRequestFactory alloc] initWithBranchKey:@"" UUID:self.requestUUID TimeStamp:self.requestCreationTimeStamp];
NSDictionary *json = [factory dataForInstallWithURLString:@"https://branch.io"];
NSDictionary *json = [factory dataForInstallWithLinkParams:nil];
XCTAssertNotNil(json);

// empty string is allowed
Expand All @@ -52,7 +52,7 @@ - (void)testInitWithBranchKeyEmpty {

- (void)testInitWithBranchKey {
BNCRequestFactory *factory = [[BNCRequestFactory alloc] initWithBranchKey:@"key_abcd" UUID:self.requestUUID TimeStamp:self.requestCreationTimeStamp];
NSDictionary *json = [factory dataForInstallWithURLString:@"https://branch.io"];
NSDictionary *json = [factory dataForInstallWithLinkParams:nil];
XCTAssertNotNil(json);
XCTAssertTrue([@"key_abcd" isEqualToString:[json objectForKey:@"branch_key"]]);

Expand All @@ -62,7 +62,7 @@ - (void)testInitWithBranchKey {

- (void)testDataForInstall {
BNCRequestFactory *factory = [[BNCRequestFactory alloc] initWithBranchKey:@"key_abcd" UUID:self.requestUUID TimeStamp:self.requestCreationTimeStamp];
NSDictionary *json = [factory dataForInstallWithURLString:@"https://branch.io"];
NSDictionary *json = [factory dataForInstallWithLinkParams:nil];
XCTAssertNotNil(json);

XCTAssertTrue([@"key_abcd" isEqualToString:[json objectForKey:@"branch_key"]]);
Expand All @@ -79,7 +79,7 @@ - (void)testDataForInstall {

- (void)testDataForOpen {
BNCRequestFactory *factory = [[BNCRequestFactory alloc] initWithBranchKey:@"key_abcd" UUID:self.requestUUID TimeStamp:self.requestCreationTimeStamp];
NSDictionary *json = [factory dataForOpenWithURLString:@"https://branch.io"];
NSDictionary *json = [factory dataForInstallWithLinkParams:nil];
XCTAssertNotNil(json);

XCTAssertTrue([@"key_abcd" isEqualToString:[json objectForKey:@"branch_key"]]);
Expand Down
43 changes: 43 additions & 0 deletions Branch-TestBed/Branch-SDK-Tests/BNCServerInterfaceTests.m
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
//
// BNCServerInterfaceTests.m
// Branch-SDK-Tests
//
// Created by Nidhi Dixit on 1/7/25.
// Copyright © 2025 Branch, Inc. All rights reserved.
//

#import <XCTest/XCTest.h>
#import "Branch/BNCServerInterface.h"

@interface BNCServerInterface()
- (BOOL)isLinkingRelatedRequest:(NSString *)endpoint postParams:(NSDictionary *)post;
@end

@interface BNCServerInterfaceTests : XCTestCase
@end

@implementation BNCServerInterfaceTests

- (void)testIsLinkingRelatedRequest {

BNCServerInterface *serverInterface = [[BNCServerInterface alloc] init];

// install
XCTAssertTrue([serverInterface isLinkingRelatedRequest:@"/v1/install" postParams:nil]);

// open
XCTAssertFalse([serverInterface isLinkingRelatedRequest:@"/v1/open" postParams:nil]);
XCTAssertFalse([serverInterface isLinkingRelatedRequest:@"/v1/open" postParams:@{}]);
XCTAssertTrue([serverInterface isLinkingRelatedRequest:@"/v1/open" postParams:@{@"spotlight_identifier":@"io.branch.link.v1.url.testbed.app.link/1234"}]);
XCTAssertTrue([serverInterface isLinkingRelatedRequest:@"/v1/open" postParams:@{@"link_identifier": @"1305991233204308323"}]);
XCTAssertTrue([serverInterface isLinkingRelatedRequest:@"/v1/open" postParams:@{@"universal_link_url":@"branchtest://open?_branch_referrer=H4sIAAAAAAAAA8soKSkottLXT8pLLkktLklKTd"}]);
XCTAssertFalse([serverInterface isLinkingRelatedRequest:@"/v1/open" postParams:@{@"uri_scheme" : @"branchtest"}]);

// v2/event
XCTAssertFalse([serverInterface isLinkingRelatedRequest:@"/v2/event" postParams:@{@"spotlight_identifier":@"io.branch.link.v1.url.testbed.app.link/1234"}]);

// v1/url
XCTAssertTrue([serverInterface isLinkingRelatedRequest:@"/v1/url" postParams:nil]);

}
@end
4 changes: 4 additions & 0 deletions Branch-TestBed/Branch-TestBed.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -234,6 +234,7 @@
C17DAF7B2AC20C2000B16B1A /* BranchClassTests.m in Sources */ = {isa = PBXBuildFile; fileRef = C17DAF7A2AC20C2000B16B1A /* BranchClassTests.m */; };
C1CC888229BAAFC000BDD2B5 /* BNCReferringURLUtilityTests.m in Sources */ = {isa = PBXBuildFile; fileRef = C1CC888129BAAFC000BDD2B5 /* BNCReferringURLUtilityTests.m */; };
E72489D228E40D0200DCD8FD /* PasteControlViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = E72489D128E40D0200DCD8FD /* PasteControlViewController.m */; };
E74B54402D2DB0660049A89D /* BNCServerInterfaceTests.m in Sources */ = {isa = PBXBuildFile; fileRef = E74B543F2D2DB0660049A89D /* BNCServerInterfaceTests.m */; };
E7A728BD2AA9A112009343B7 /* BNCAPIServerTest.m in Sources */ = {isa = PBXBuildFile; fileRef = E7A728BC2AA9A112009343B7 /* BNCAPIServerTest.m */; };
F1CF14111F4CC79F00BB2694 /* CoreSpotlight.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 67F270881BA9FCFF002546A7 /* CoreSpotlight.framework */; settings = {ATTRIBUTES = (Required, ); }; };
/* End PBXBuildFile section */
Expand Down Expand Up @@ -538,6 +539,7 @@
C1CC888129BAAFC000BDD2B5 /* BNCReferringURLUtilityTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = BNCReferringURLUtilityTests.m; sourceTree = "<group>"; };
E72489D028E40D0200DCD8FD /* PasteControlViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PasteControlViewController.h; sourceTree = "<group>"; };
E72489D128E40D0200DCD8FD /* PasteControlViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = PasteControlViewController.m; sourceTree = "<group>"; };
E74B543F2D2DB0660049A89D /* BNCServerInterfaceTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = BNCServerInterfaceTests.m; sourceTree = "<group>"; };
E7A728BC2AA9A112009343B7 /* BNCAPIServerTest.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = BNCAPIServerTest.m; sourceTree = "<group>"; };
F1D4F9AC1F323F01002D13FF /* Branch-TestBed-UITests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "Branch-TestBed-UITests.xctest"; sourceTree = BUILT_PRODUCTS_DIR; };
/* End PBXFileReference section */
Expand Down Expand Up @@ -648,6 +650,7 @@
5F8650192B76DA3200364BDE /* NSMutableDictionaryBranchTests.m */,
4D16839E2098C901008819E3 /* NSStringBranchTests.m */,
5F6D86D82BB5E9650068B536 /* BNCClassSerializationTests.m */,
E74B543F2D2DB0660049A89D /* BNCServerInterfaceTests.m */,
);
path = "Branch-SDK-Tests";
sourceTree = "<group>";
Expand Down Expand Up @@ -1360,6 +1363,7 @@
files = (
4D1683B82098C902008819E3 /* BNCEncodingUtilsTests.m in Sources */,
5F909B5E23314CE900A774D2 /* BNCJSONUtilityTests.m in Sources */,
E74B54402D2DB0660049A89D /* BNCServerInterfaceTests.m in Sources */,
5F909B722332BEF600A774D2 /* BranchLastAttributedTouchDataTests.m in Sources */,
5FC20E732A93D85F00D9E1C8 /* BNCRequestFactoryTests.m in Sources */,
5FA9112F29BC662000F3D35C /* BNCNetworkInterfaceTests.m in Sources */,
Expand Down
4 changes: 2 additions & 2 deletions Sources/BranchSDK/BNCAppGroupsData.m
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,7 @@ - (NSDate *)getDateForKey:(NSString *)key {
return nil;
}

- (void)saveAppClipData {
- (void)saveAppClipData:(NSString *) referringURL {
if ([BNCSystemObserver isAppClip]) {

BNCApplication *application = [BNCApplication currentApplication];
Expand All @@ -79,7 +79,7 @@ - (void)saveAppClipData {

BNCPreferenceHelper *preferenceHelper = [BNCPreferenceHelper sharedInstance];

NSString *url = preferenceHelper.referringURL;
NSString *url = referringURL;
NSString *token = preferenceHelper.randomizedDeviceToken;
NSString *bundleToken = preferenceHelper.randomizedBundleToken;

Expand Down
94 changes: 0 additions & 94 deletions Sources/BranchSDK/BNCPreferenceHelper.m
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,6 @@ @interface BNCPreferenceHelper () {
NSOperationQueue *_persistPrefsQueue;
NSString *_lastSystemBuildVersion;
NSString *_browserUserAgentString;
NSString *_referringURL;
}

@property (strong, nonatomic) NSMutableDictionary *persistenceDict;
Expand All @@ -90,20 +89,15 @@ @implementation BNCPreferenceHelper
// since we override both setter and getter, these properties do not auto synthesize
@synthesize
lastRunBranchKey = _lastRunBranchKey,
appVersion = _appVersion,
randomizedDeviceToken = _randomizedDeviceToken,
sessionID = _sessionID,
spotlightIdentifier = _spotlightIdentifier,
randomizedBundleToken = _randomizedBundleToken,
linkClickIdentifier = _linkClickIdentifier,
userUrl = _userUrl,
userIdentity = _userIdentity,
sessionParams = _sessionParams,
installParams = _installParams,
universalLinkUrl = _universalLinkUrl,
initialReferrer = _initialReferrer,
localUrl = _localUrl,
externalIntentURI = _externalIntentURI,
isDebug = _isDebug,
retryCount = _retryCount,
retryInterval = _retryInterval,
Expand Down Expand Up @@ -220,20 +214,6 @@ - (void)setLastStrongMatchDate:(NSDate *)lastStrongMatchDate {
}
}

- (NSString *)appVersion {
if (!_appVersion) {
_appVersion = [self readStringFromDefaults:BRANCH_PREFS_KEY_APP_VERSION];
}
return _appVersion;
}

- (void)setAppVersion:(NSString *)appVersion {
if (![_appVersion isEqualToString:appVersion]) {
_appVersion = appVersion;
[self writeObjectToDefaults:BRANCH_PREFS_KEY_APP_VERSION value:appVersion];
}
}

- (NSString *)randomizedDeviceToken {
if (!_randomizedDeviceToken) {
NSString *tmp = [self readStringFromDefaults:BRANCH_PREFS_KEY_RANDOMIZED_DEVICE_TOKEN];
Expand Down Expand Up @@ -308,62 +288,6 @@ - (void)setUserIdentity:(NSString *)userIdentity {
[self writeObjectToDefaults:BRANCH_PREFS_KEY_IDENTITY value:userIdentity];
}

- (NSString *)linkClickIdentifier {
return [self readStringFromDefaults:BRANCH_PREFS_KEY_LINK_CLICK_IDENTIFIER];
}

- (void)setLinkClickIdentifier:(NSString *)linkClickIdentifier {
[self writeObjectToDefaults:BRANCH_PREFS_KEY_LINK_CLICK_IDENTIFIER value:linkClickIdentifier];
}

- (NSString *)spotlightIdentifier {
return [self readStringFromDefaults:BRANCH_PREFS_KEY_SPOTLIGHT_IDENTIFIER];
}

- (void)setSpotlightIdentifier:(NSString *)spotlightIdentifier {
[self writeObjectToDefaults:BRANCH_PREFS_KEY_SPOTLIGHT_IDENTIFIER value:spotlightIdentifier];
}

- (NSString *)externalIntentURI {
@synchronized(self) {
if (!_externalIntentURI) {
_externalIntentURI = [self readStringFromDefaults:BRANCH_REQUEST_KEY_EXTERNAL_INTENT_URI];
}
return _externalIntentURI;
}
}

- (void)setExternalIntentURI:(NSString *)externalIntentURI {
@synchronized(self) {
if (externalIntentURI == nil || ![_externalIntentURI isEqualToString:externalIntentURI]) {
_externalIntentURI = externalIntentURI;
[self writeObjectToDefaults:BRANCH_REQUEST_KEY_EXTERNAL_INTENT_URI value:externalIntentURI];
}
}
}

- (NSString*) referringURL {
@synchronized (self) {
if (!_referringURL) _referringURL = [self readStringFromDefaults:@"referringURL"];
return _referringURL;
}
}

- (void) setReferringURL:(NSString *)referringURL {
@synchronized (self) {
_referringURL = [referringURL copy];
[self writeObjectToDefaults:@"referringURL" value:_referringURL];
}
}

- (NSString *)universalLinkUrl {
return [self readStringFromDefaults:BRANCH_PREFS_KEY_UNIVERSAL_LINK_URL];
}

- (void)setUniversalLinkUrl:(NSString *)universalLinkUrl {
[self writeObjectToDefaults:BRANCH_PREFS_KEY_UNIVERSAL_LINK_URL value:universalLinkUrl];
}

- (NSString *)localUrl {
return [self readStringFromDefaults:BRANCH_PREFS_KEY_LOCAL_URL];
}
Expand Down Expand Up @@ -618,18 +542,6 @@ - (void) setSavedURLPatternListVersion:(NSInteger)URLPatternListVersion {
}
}

- (BOOL) dropURLOpen {
@synchronized(self) {
return [self readBoolFromDefaults:@"dropURLOpen"];
}
}

- (void) setDropURLOpen:(BOOL)value {
@synchronized(self) {
[self writeBoolToDefaults:@"dropURLOpen" value:value];
}
}

- (BOOL) trackingDisabled {
@synchronized(self) {
NSNumber *b = (id) [self readObjectFromDefaults:@"trackingDisabled"];
Expand Down Expand Up @@ -849,14 +761,8 @@ - (void) clearTrackingInformation {
self.randomizedBundleToken = nil;
*/
self.sessionID = nil;
self.linkClickIdentifier = nil;
self.spotlightIdentifier = nil;
self.referringURL = nil;
self.universalLinkUrl = nil;
self.initialReferrer = nil;
self.installParams = nil;
self.sessionParams = nil;
self.externalIntentURI = nil;
self.savedAnalyticsData = nil;
self.previousAppBuildDate = nil;
self.requestMetadataDictionary = nil;
Expand Down
Loading
Loading