Skip to content

Commit 1b637c5

Browse files
committed
Refactor BNCPreferenceHelper tests to use a local instance rather than a singleton.
1 parent 98db41c commit 1b637c5

File tree

4 files changed

+137
-129
lines changed

4 files changed

+137
-129
lines changed

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

Lines changed: 85 additions & 91 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@
1010
#import "BNCPreferenceHelper.h"
1111
#import "BNCEncodingUtils.h"
1212
#import "Branch.h"
13-
#import "BranchPluginSupport.h"
1413
#import "BNCConfig.h"
1514

1615
@interface BNCPreferenceHelper()
@@ -32,7 +31,7 @@ - (void)setUp {
3231
}
3332

3433
- (void)tearDown {
35-
34+
3635
}
3736

3837
- (void)testPreferenceDefaults {
@@ -42,26 +41,24 @@ - (void)testPreferenceDefaults {
4241
XCTAssertFalse(self.prefHelper.disableAdNetworkCallouts);
4342
}
4443

45-
//- (void)testPreferenceSets {
46-
// self.prefHelper.retryCount = NSIntegerMax;
47-
// self.prefHelper.retryInterval = NSIntegerMax;
48-
// self.prefHelper.timeout = NSIntegerMax;
49-
//
50-
// XCTAssertEqual(self.prefHelper.retryCount, NSIntegerMax);
51-
// XCTAssertEqual(self.prefHelper.retryInterval, NSIntegerMax);
52-
// XCTAssertEqual(self.prefHelper.timeout, NSIntegerMax);
53-
//}
44+
- (void)testPreferenceSets {
45+
self.prefHelper.retryCount = NSIntegerMax;
46+
self.prefHelper.retryInterval = NSIntegerMax;
47+
self.prefHelper.timeout = NSIntegerMax;
48+
49+
XCTAssertEqual(self.prefHelper.retryCount, NSIntegerMax);
50+
XCTAssertEqual(self.prefHelper.retryInterval, NSIntegerMax);
51+
XCTAssertEqual(self.prefHelper.timeout, NSIntegerMax);
52+
}
5453

55-
/*
56-
// This test is not reliable when run concurrently with other tests that set the patterListURL
54+
// This test is not reliable when run concurrently with other tests that set the patterListURL
5755
- (void)testURLFilter {
5856
XCTAssertTrue([@"https://cdn.branch.io" isEqualToString:self.prefHelper.patternListURL]);
5957

6058
NSString *customURL = @"https://banned.branch.io";
6159
self.prefHelper.patternListURL = customURL;
6260
XCTAssertTrue([customURL isEqualToString:self.prefHelper.patternListURL]);
6361
}
64-
*/
6562

6663
- (void)testSerializeDict_Nil {
6764
NSMutableDictionary *dict = nil;
@@ -202,226 +199,225 @@ - (void)testURLSkipList {
202199
XCTAssert([filterDesc isEqualToString:valueDesc]);
203200
}
204201

205-
/*
206202
- (void)testSetAPIURL_Example {
207203

208204
NSString *url = @"https://www.example.com/";
209-
[BranchPluginSupport setAPIUrl:url] ;
205+
[self.prefHelper setBranchAPIURL:url] ;
210206

211-
NSString *urlStored = [BNCPreferenceHelper sharedInstance].branchAPIURL ;
207+
NSString *urlStored = self.prefHelper.branchAPIURL ;
212208
XCTAssert([url isEqualToString:urlStored]);
213209
}
214210

215211
- (void)testSetAPIURL_InvalidHttp {
216212

217213
NSString *url = @"Invalid://www.example.com/";
218-
[BranchPluginSupport setAPIUrl:url] ;
214+
[self.prefHelper setBranchAPIURL:url] ;
219215

220-
NSString *urlStored = [BNCPreferenceHelper sharedInstance].branchAPIURL ;
216+
NSString *urlStored = self.prefHelper.branchAPIURL ;
221217
XCTAssert(![url isEqualToString:urlStored]);
222-
XCTAssert([urlStored isEqualToString:BNC_API_BASE_URL]);
218+
XCTAssert([urlStored isEqualToString:BNC_API_URL]);
223219
}
224220

225221
- (void)testSetAPIURL_InvalidEmpty {
226222

227-
[BranchPluginSupport setAPIUrl:@""] ;
223+
[self.prefHelper setBranchAPIURL:@""] ;
228224

229-
NSString *urlStored = [BNCPreferenceHelper sharedInstance].branchAPIURL ;
225+
NSString *urlStored = self.prefHelper.branchAPIURL ;
230226
XCTAssert(![urlStored isEqualToString:@""]);
231-
XCTAssert([urlStored isEqualToString:BNC_API_BASE_URL]);
227+
XCTAssert([urlStored isEqualToString:BNC_API_URL]);
232228
}
233229

234230
- (void)testSetCDNBaseURL_Example {
235231

236232
NSString *url = @"https://www.example.com/";
237-
[BranchPluginSupport setCDNBaseUrl:url] ;
233+
[self.prefHelper setPatternListURL:url];
238234

239-
NSString *urlStored = [BNCPreferenceHelper sharedInstance].patternListURL ;
235+
NSString *urlStored = self.prefHelper.patternListURL ;
240236
XCTAssert([url isEqualToString:urlStored]);
241237
}
242238

243239
- (void)testSetCDNBaseURL_InvalidHttp {
244240

245241
NSString *url = @"Invalid://www.example.com/";
246-
[BranchPluginSupport setCDNBaseUrl:url] ;
242+
[self.prefHelper setPatternListURL:url] ;
247243

248-
NSString *urlStored = [BNCPreferenceHelper sharedInstance].patternListURL ;
244+
NSString *urlStored = self.prefHelper.patternListURL ;
249245
XCTAssert(![url isEqualToString:urlStored]);
250246
XCTAssert([urlStored isEqualToString:BNC_CDN_URL]);
251247
}
252248

253249
- (void)testSetCDNBaseURL_InvalidEmpty {
254250

255-
[BranchPluginSupport setCDNBaseUrl:@""] ;
251+
[self.prefHelper setPatternListURL:@""] ;
256252

257-
NSString *urlStored = [BNCPreferenceHelper sharedInstance].patternListURL ;
253+
NSString *urlStored = self.prefHelper.patternListURL ;
258254
XCTAssert(![urlStored isEqualToString:@""]);
259255
XCTAssert([urlStored isEqualToString:BNC_CDN_URL]);
260256
}
261257

262258
- (void)testSetPatternListURL {
263259
NSString *expectedURL = @"https://example.com";
264-
[[BNCPreferenceHelper sharedInstance] setPatternListURL: expectedURL];
260+
[self.prefHelper setPatternListURL:expectedURL];
265261

266-
NSString *patternListURL = [BNCPreferenceHelper sharedInstance].patternListURL;
262+
NSString *patternListURL = self.prefHelper.patternListURL;
267263
XCTAssert([patternListURL isEqualToString: expectedURL]);
268264
}
269-
*/
270265

271266
- (void)testSetLastStrongMatchDate {
272267
NSDate *expectedDate = [NSDate date];
273-
[[BNCPreferenceHelper sharedInstance] setLastStrongMatchDate: expectedDate];
268+
[self.prefHelper setLastStrongMatchDate: expectedDate];
274269

275-
NSDate *actualDate = [[BNCPreferenceHelper sharedInstance] lastStrongMatchDate];
270+
NSDate *actualDate = [self.prefHelper lastStrongMatchDate];
276271
XCTAssertEqualObjects(expectedDate, actualDate);
277272
}
278273

279274
- (void)testSetAppVersion {
280275
NSString *expectedVersion = @"1.0.0";
281-
[[BNCPreferenceHelper sharedInstance] setAppVersion: expectedVersion];
276+
[self.prefHelper setAppVersion: expectedVersion];
282277

283-
NSString *actualVersion = [[BNCPreferenceHelper sharedInstance] appVersion];
278+
NSString *actualVersion = [self.prefHelper appVersion];
284279
XCTAssertEqualObjects(expectedVersion, actualVersion);
285280
}
286281

287282
- (void)testSetLocalUrl {
288283
NSString *expectedLocalURL = @"https://local.example.com";
289-
[[BNCPreferenceHelper sharedInstance] setLocalUrl:expectedLocalURL];
284+
[self.prefHelper setLocalUrl:expectedLocalURL];
290285

291-
NSString *localURL = [[BNCPreferenceHelper sharedInstance] localUrl];
286+
NSString *localURL = [self.prefHelper localUrl];
292287
XCTAssertEqualObjects(localURL, expectedLocalURL);
293288
}
294289

295290
- (void)testSetInitialReferrer {
296291
NSString *expectedReferrer = @"referrer.example.com";
297-
[[BNCPreferenceHelper sharedInstance] setInitialReferrer:expectedReferrer];
292+
[self.prefHelper setInitialReferrer:expectedReferrer];
298293

299-
NSString *actualReferrer = [[BNCPreferenceHelper sharedInstance] initialReferrer];
294+
NSString *actualReferrer = [self.prefHelper initialReferrer];
300295
XCTAssertEqualObjects(actualReferrer, expectedReferrer);
301296
}
302297

303298
- (void)testSetAppleAttributionTokenChecked {
304299
BOOL expectedValue = YES;
305-
[[BNCPreferenceHelper sharedInstance] setAppleAttributionTokenChecked:expectedValue];
300+
[self.prefHelper setAppleAttributionTokenChecked:expectedValue];
306301

307-
BOOL actualValue = [[BNCPreferenceHelper sharedInstance] appleAttributionTokenChecked];
302+
BOOL actualValue = [self.prefHelper appleAttributionTokenChecked];
308303
XCTAssertEqual(expectedValue, actualValue);
309304
}
310305

311306
- (void)testSetHasOptedInBefore {
312307
BOOL expectedValue = YES;
313-
[[BNCPreferenceHelper sharedInstance] setHasOptedInBefore:expectedValue];
308+
[self.prefHelper setHasOptedInBefore:expectedValue];
314309

315-
BOOL actualValue = [[BNCPreferenceHelper sharedInstance] hasOptedInBefore];
310+
BOOL actualValue = [self.prefHelper hasOptedInBefore];
316311
XCTAssertEqual(expectedValue, actualValue);
317312
}
318313

319314
- (void)testSetHasCalledHandleATTAuthorizationStatus {
320315
BOOL expectedValue = YES;
321-
[[BNCPreferenceHelper sharedInstance] setHasCalledHandleATTAuthorizationStatus:expectedValue];
316+
[self.prefHelper setHasCalledHandleATTAuthorizationStatus:expectedValue];
322317

323-
BOOL actualValue = [[BNCPreferenceHelper sharedInstance] hasCalledHandleATTAuthorizationStatus];
318+
BOOL actualValue = [self.prefHelper hasCalledHandleATTAuthorizationStatus];
324319
XCTAssertEqual(expectedValue, actualValue);
325320
}
326321

327322
- (void)testSetRequestMetadataKeyValidKeyValue {
328323
NSString *key = @"testKey";
329324
NSString *value = @"testValue";
330325

331-
[[BNCPreferenceHelper sharedInstance] setRequestMetadataKey:key value:value];
326+
[self.prefHelper setRequestMetadataKey:key value:value];
332327

333-
NSObject *retrievedValue = [[BNCPreferenceHelper sharedInstance].requestMetadataDictionary objectForKey:key];
328+
NSObject *retrievedValue = [self.prefHelper.requestMetadataDictionary objectForKey:key];
334329
XCTAssertEqualObjects(retrievedValue, value);
335330
}
336331

337332
- (void)testSetRequestMetadataKeyValidKeyNilValue {
338333
NSString *key = @"testKey";
339334
NSString *value = @"testValue";
340335

341-
[[BNCPreferenceHelper sharedInstance].requestMetadataDictionary setObject:value forKey:key];
336+
[self.prefHelper.requestMetadataDictionary setObject:value forKey:key];
342337

343-
[[BNCPreferenceHelper sharedInstance] setRequestMetadataKey:key value:nil];
338+
[self.prefHelper setRequestMetadataKey:key value:nil];
344339

345-
NSObject *retrievedValue = [[BNCPreferenceHelper sharedInstance].requestMetadataDictionary objectForKey:key];
340+
NSObject *retrievedValue = [self.prefHelper.requestMetadataDictionary objectForKey:key];
346341
XCTAssertNil(retrievedValue);
347342
}
348343

349344
- (void)testSetRequestMetadataKeyValidKeyNilValueKeyNotExists {
350345
NSString *key = @"testKeyNotExists";
351346

352-
NSUInteger initialDictCount = [[BNCPreferenceHelper sharedInstance].requestMetadataDictionary count];
347+
NSUInteger initialDictCount = [self.prefHelper.requestMetadataDictionary count];
353348

354-
[[BNCPreferenceHelper sharedInstance] setRequestMetadataKey:key value:nil];
349+
[self.prefHelper setRequestMetadataKey:key value:nil];
355350

356-
NSUInteger postActionDictCount = [[BNCPreferenceHelper sharedInstance].requestMetadataDictionary count];
351+
NSUInteger postActionDictCount = [self.prefHelper.requestMetadataDictionary count];
357352
XCTAssertEqual(initialDictCount, postActionDictCount);
358353
}
359354

360355
- (void)testSetRequestMetadataKeyNilKey {
361356
NSString *value = @"testValue";
362-
NSUInteger initialDictCount = [[BNCPreferenceHelper sharedInstance].requestMetadataDictionary count];
357+
NSUInteger initialDictCount = [self.prefHelper.requestMetadataDictionary count];
363358

364-
[[BNCPreferenceHelper sharedInstance] setRequestMetadataKey:nil value:value];
359+
[self.prefHelper setRequestMetadataKey:nil value:value];
365360

366-
NSUInteger postActionDictCount = [[BNCPreferenceHelper sharedInstance].requestMetadataDictionary count];
361+
NSUInteger postActionDictCount = [self.prefHelper.requestMetadataDictionary count];
367362
XCTAssertEqual(initialDictCount, postActionDictCount);
368363
}
369364

370365
- (void)testSetLimitFacebookTracking {
371366
BOOL expectedValue = YES;
372367

373-
[[BNCPreferenceHelper sharedInstance] setLimitFacebookTracking:expectedValue];
368+
[self.prefHelper setLimitFacebookTracking:expectedValue];
374369

375-
BOOL storedValue = [[BNCPreferenceHelper sharedInstance] limitFacebookTracking];
370+
BOOL storedValue = [self.prefHelper limitFacebookTracking];
376371

377372
XCTAssertEqual(expectedValue, storedValue);
378373
}
379374

380375
- (void)testSetTrackingDisabled_YES {
381-
[[BNCPreferenceHelper sharedInstance] setTrackingDisabled:YES];
376+
[self.prefHelper setTrackingDisabled:YES];
382377

383-
BOOL storedValue = [[BNCPreferenceHelper sharedInstance] trackingDisabled];
378+
BOOL storedValue = [self.prefHelper trackingDisabled];
384379
XCTAssertTrue(storedValue);
385-
[[BNCPreferenceHelper sharedInstance] setTrackingDisabled:NO];
380+
[self.prefHelper setTrackingDisabled:NO];
386381
}
387382

388383
- (void)testSetTrackingDisabled_NO {
389-
[[BNCPreferenceHelper sharedInstance] setTrackingDisabled:NO];
384+
[self.prefHelper setTrackingDisabled:NO];
390385

391-
BOOL storedValue = [[BNCPreferenceHelper sharedInstance] trackingDisabled];
386+
BOOL storedValue = [self.prefHelper trackingDisabled];
392387
XCTAssertFalse(storedValue);
393388
}
394389

390+
// TODO: rethink this test as these values are not set in a freshly instantiated prefHelper
395391
- (void)testClearTrackingInformation {
396-
[[BNCPreferenceHelper sharedInstance] clearTrackingInformation];
397-
398-
XCTAssertNil([BNCPreferenceHelper sharedInstance].sessionID);
399-
XCTAssertNil([BNCPreferenceHelper sharedInstance].linkClickIdentifier);
400-
XCTAssertNil([BNCPreferenceHelper sharedInstance].spotlightIdentifier);
401-
XCTAssertNil([BNCPreferenceHelper sharedInstance].referringURL);
402-
XCTAssertNil([BNCPreferenceHelper sharedInstance].universalLinkUrl);
403-
XCTAssertNil([BNCPreferenceHelper sharedInstance].initialReferrer);
404-
XCTAssertNil([BNCPreferenceHelper sharedInstance].installParams);
405-
XCTAssertNil([BNCPreferenceHelper sharedInstance].sessionParams);
406-
XCTAssertNil([BNCPreferenceHelper sharedInstance].externalIntentURI);
407-
XCTAssertNil([BNCPreferenceHelper sharedInstance].savedAnalyticsData);
408-
XCTAssertNil([BNCPreferenceHelper sharedInstance].previousAppBuildDate);
409-
XCTAssertEqual([BNCPreferenceHelper sharedInstance].requestMetadataDictionary.count, 0);
410-
XCTAssertNil([BNCPreferenceHelper sharedInstance].lastStrongMatchDate);
411-
XCTAssertNil([BNCPreferenceHelper sharedInstance].userIdentity);
412-
XCTAssertNil([BNCPreferenceHelper sharedInstance].referringURLQueryParameters);
413-
XCTAssertNil([BNCPreferenceHelper sharedInstance].anonID);
392+
[self.prefHelper clearTrackingInformation];
393+
394+
XCTAssertNil(self.prefHelper.sessionID);
395+
XCTAssertNil(self.prefHelper.linkClickIdentifier);
396+
XCTAssertNil(self.prefHelper.spotlightIdentifier);
397+
XCTAssertNil(self.prefHelper.referringURL);
398+
XCTAssertNil(self.prefHelper.universalLinkUrl);
399+
XCTAssertNil(self.prefHelper.initialReferrer);
400+
XCTAssertNil(self.prefHelper.installParams);
401+
XCTAssertNil(self.prefHelper.sessionParams);
402+
XCTAssertNil(self.prefHelper.externalIntentURI);
403+
XCTAssertNil(self.prefHelper.savedAnalyticsData);
404+
XCTAssertNil(self.prefHelper.previousAppBuildDate);
405+
XCTAssertEqual(self.prefHelper.requestMetadataDictionary.count, 0);
406+
XCTAssertNil(self.prefHelper.lastStrongMatchDate);
407+
XCTAssertNil(self.prefHelper.userIdentity);
408+
XCTAssertNil(self.prefHelper.referringURLQueryParameters);
409+
XCTAssertNil(self.prefHelper.anonID);
414410
}
415411

416412
- (void)testSaveBranchAnalyticsData {
417413
NSString *dummySessionID = @"testSession123";
418414
NSDictionary *dummyAnalyticsData = @{ @"key1": @"value1", @"key2": @"value2" };
419415

420-
[BNCPreferenceHelper sharedInstance].sessionID = dummySessionID;
416+
self.prefHelper.sessionID = dummySessionID;
421417

422-
[[BNCPreferenceHelper sharedInstance] saveBranchAnalyticsData:dummyAnalyticsData];
418+
[self.prefHelper saveBranchAnalyticsData:dummyAnalyticsData];
423419

424-
NSMutableDictionary *retrievedData = [[BNCPreferenceHelper sharedInstance] getBranchAnalyticsData];
420+
NSMutableDictionary *retrievedData = [self.prefHelper getBranchAnalyticsData];
425421

426422
NSArray *viewDataArray = [retrievedData objectForKey:dummySessionID];
427423
XCTAssertNotNil(viewDataArray);
@@ -430,22 +426,20 @@ - (void)testSaveBranchAnalyticsData {
430426
}
431427

432428
- (void)testClearBranchAnalyticsData {
433-
[[BNCPreferenceHelper sharedInstance] clearBranchAnalyticsData];
429+
[self.prefHelper clearBranchAnalyticsData];
434430

435-
NSMutableDictionary *retrievedData = [[BNCPreferenceHelper sharedInstance] getBranchAnalyticsData];
431+
NSMutableDictionary *retrievedData = [self.prefHelper getBranchAnalyticsData];
436432
XCTAssertEqual(retrievedData.count, 0);
437433
}
438434

439435
- (void)testSaveContentAnalyticsManifest {
440436
NSDictionary *dummyManifest = @{ @"manifestKey1": @"manifestValue1", @"manifestKey2": @"manifestValue2" };
441437

442-
[[BNCPreferenceHelper sharedInstance] saveContentAnalyticsManifest:dummyManifest];
438+
[self.prefHelper saveContentAnalyticsManifest:dummyManifest];
443439

444-
NSDictionary *retrievedManifest = [[BNCPreferenceHelper sharedInstance] getContentAnalyticsManifest];
440+
NSDictionary *retrievedManifest = [self.prefHelper getContentAnalyticsManifest];
445441

446442
XCTAssertEqualObjects(retrievedManifest, dummyManifest);
447443
}
448444

449-
450-
451445
@end

BranchSDK/BNCPreferenceHelper.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -77,8 +77,8 @@ NSURL* /* _Nonnull */ BNCURLForBranchDirectory(void);
7777

7878
+ (BNCPreferenceHelper *)sharedInstance;
7979

80-
- (void)setBranchAPIURL:(NSString*)branchAPIURL;
81-
- (void)setPatternListURL:(NSString*)cdnURL;
80+
- (void)setBranchAPIURL:(NSString *)url;
81+
- (void)setPatternListURL:(NSString *)url;
8282

8383
- (void)setRequestMetadataKey:(NSString *)key value:(NSObject *)value;
8484
- (NSMutableDictionary *)requestMetadataDictionary;

0 commit comments

Comments
 (0)