|
10 | 10 | #import "BNCTestCase.h" |
11 | 11 | #import "BNCServerInterface.h" |
12 | 12 | #import "BNCPreferenceHelper.h" |
| 13 | +#import "BranchConstants.h" |
13 | 14 | #import <OCMock/OCMock.h> |
14 | 15 | #import <OHHTTPStubs/HTTPStubs.h> |
15 | 16 | #import <OHHTTPStubs/HTTPStubsResponse+JSON.h> |
16 | 17 |
|
17 | 18 | typedef void (^UrlConnectionCallback)(NSURLResponse *, NSData *, NSError *); |
18 | 19 |
|
| 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 | + |
19 | 32 | @interface BNCServerInterfaceTests : BNCTestCase |
20 | 33 | @end |
21 | 34 |
|
@@ -410,4 +423,48 @@ - (void)testRequestIdFromHeader { |
410 | 423 | [self waitForExpectationsWithTimeout:1.0 handler:nil]; |
411 | 424 | } |
412 | 425 |
|
| 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 | + [BNCPreferenceHelper sharedInstance].randomizedBundleToken = @"575759106028389737"; |
| 436 | + |
| 437 | + // Set referrerGBRAID and referrerGBRAIDInitDate |
| 438 | + NSString *gbraidValue = @"CjwKCAiA3L6PBhBvEiwAINlJ9Chixm216y8kYYJ1K94dm4FEkOgFfhIdKQdjWsYB7FqE7rf_zkGNEhoCuIEQAvD_BwE"; |
| 439 | + [BNCPreferenceHelper sharedInstance].referrerGBRAID = gbraidValue; |
| 440 | + NSDate *now = [NSDate date]; |
| 441 | + [BNCPreferenceHelper sharedInstance].referrerGBRAIDInitDate = now; |
| 442 | + |
| 443 | + //Check - gbraid should be present |
| 444 | + NSMutableDictionary *result = [serverInterface prepareParamDict:NULL key:@"1234567890" retryNumber:3 requestType:@"POST"]; |
| 445 | + XCTAssertNotNil([result objectForKey:BRANCH_REQUEST_KEY_REFERRER_GBRAID]); |
| 446 | + XCTAssertTrue([[result objectForKey:BRANCH_REQUEST_KEY_REFERRER_GBRAID] isEqualToString:gbraidValue]); |
| 447 | + |
| 448 | + //Check - gbraid should not be present - endpoint is open |
| 449 | + serverInterface.requestEndpoint = @"/v1/open"; |
| 450 | + result = [serverInterface prepareParamDict:NULL key:@"1234567890" retryNumber:3 requestType:@"POST"]; |
| 451 | + XCTAssertNil([result objectForKey:BRANCH_REQUEST_KEY_REFERRER_GBRAID]); |
| 452 | + |
| 453 | + //Check - gbraid should not be present - validity is expired |
| 454 | + NSDate *pastDate = [[NSDate date] dateByAddingTimeInterval:-2592001]; |
| 455 | + [BNCPreferenceHelper sharedInstance].referrerGBRAIDInitDate = pastDate; |
| 456 | + serverInterface.requestEndpoint = @"/v2/event/standard"; |
| 457 | + result = [serverInterface prepareParamDict:NULL key:@"1234567890" retryNumber:3 requestType:@"POST"]; |
| 458 | + XCTAssertNil([result objectForKey:BRANCH_REQUEST_KEY_REFERRER_GBRAID]); |
| 459 | + |
| 460 | + //Check - gbraid should be present. Date is reset |
| 461 | + [BNCPreferenceHelper sharedInstance].referrerGBRAIDInitDate = now; |
| 462 | + result = [serverInterface prepareParamDict:NULL key:@"1234567890" retryNumber:3 requestType:@"POST"]; |
| 463 | + XCTAssertNotNil([result objectForKey:BRANCH_REQUEST_KEY_REFERRER_GBRAID]); |
| 464 | + XCTAssertTrue([[result objectForKey:BRANCH_REQUEST_KEY_REFERRER_GBRAID] isEqualToString:gbraidValue]); |
| 465 | + |
| 466 | + [BNCPreferenceHelper sharedInstance].referrerGBRAID = nil; |
| 467 | + |
| 468 | +} |
| 469 | + |
413 | 470 | @end |
0 commit comments