Skip to content

Commit

Permalink
CORE-1391 correct failing test around secure coding
Browse files Browse the repository at this point in the history
  • Loading branch information
echo-branch committed May 26, 2021
1 parent 2696ab4 commit 9828b0c
Show file tree
Hide file tree
Showing 12 changed files with 119 additions and 8 deletions.
2 changes: 1 addition & 1 deletion Branch-SDK/BNCCommerceEvent.m
Original file line number Diff line number Diff line change
Expand Up @@ -615,7 +615,7 @@ - (void)encodeWithCoder:(NSCoder *)coder {
[coder encodeObject:self.metadata forKey:@"metadata"];
}

+ (BOOL) supportsSecureCoding {
+ (BOOL)supportsSecureCoding {
return YES;
}

Expand Down
2 changes: 1 addition & 1 deletion Branch-SDK/BNCLinkData.m
Original file line number Diff line number Diff line change
Expand Up @@ -186,7 +186,7 @@ - (id)initWithCoder:(NSCoder *)coder {
return self;
}

+ (BOOL) supportsSecureCoding {
+ (BOOL)supportsSecureCoding {
return YES;
}

Expand Down
2 changes: 1 addition & 1 deletion Branch-SDK/BNCServerRequest.m
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ - (void)safeSetValue:(NSObject *)value forKey:(NSString *)key onDict:(NSMutableD
}
}

+ (BOOL) supportsSecureCoding {
+ (BOOL)supportsSecureCoding {
return YES;
}

Expand Down
8 changes: 7 additions & 1 deletion Branch-SDK/BNCServerRequestQueue.m
Original file line number Diff line number Diff line change
Expand Up @@ -323,8 +323,14 @@ - (NSData *)oldArchiveQueue:(NSArray<BNCServerRequest *> *)queue {

- (NSData *)archiveObject:(NSObject *)object {
NSData *data = nil;
NSError *error = nil;
if (@available(iOS 12.0, *)) {
data = [NSKeyedArchiver archivedDataWithRootObject:object requiringSecureCoding:YES error:NULL];
data = [NSKeyedArchiver archivedDataWithRootObject:object requiringSecureCoding:YES error:&error];

if (!data && error) {
BNCLogWarning([NSString stringWithFormat:@"Failed to archive: %@", error]);
}

} else {
#if __IPHONE_OS_VERSION_MIN_REQUIRED < 12000
data = [NSKeyedArchiver archivedDataWithRootObject:object];
Expand Down
2 changes: 1 addition & 1 deletion Branch-SDK/BranchCreditHistoryRequest.m
Original file line number Diff line number Diff line change
Expand Up @@ -97,7 +97,7 @@ - (void)encodeWithCoder:(NSCoder *)coder {
[coder encodeInteger:self.order forKey:@"order"];
}

+ (BOOL) supportsSecureCoding {
+ (BOOL)supportsSecureCoding {
return YES;
}

Expand Down
2 changes: 1 addition & 1 deletion Branch-SDK/BranchEvent.m
Original file line number Diff line number Diff line change
Expand Up @@ -106,7 +106,7 @@ - (void)encodeWithCoder:(NSCoder *)coder {
[coder encodeObject:self.eventDictionary forKey:@"eventDictionary"];
}

+ (BOOL) supportsSecureCoding {
+ (BOOL)supportsSecureCoding {
return YES;
}

Expand Down
4 changes: 4 additions & 0 deletions Branch-SDK/BranchRedeemRewardsRequest.m
Original file line number Diff line number Diff line change
Expand Up @@ -75,4 +75,8 @@ - (void)encodeWithCoder:(NSCoder *)coder {
[coder encodeObject:self.bucket forKey:@"bucket"];
}

+ (BOOL)supportsSecureCoding {
return YES;
}

@end
4 changes: 4 additions & 0 deletions Branch-SDK/BranchRegisterViewRequest.m
Original file line number Diff line number Diff line change
Expand Up @@ -77,4 +77,8 @@ - (void)encodeWithCoder:(NSCoder *)coder {
[coder encodeObject:self.params forKey:@"params"];
}

+ (BOOL)supportsSecureCoding {
return YES;
}

@end
4 changes: 4 additions & 0 deletions Branch-SDK/BranchSetIdentityRequest.m
Original file line number Diff line number Diff line change
Expand Up @@ -86,4 +86,8 @@ - (void)encodeWithCoder:(NSCoder *)coder {
[coder encodeObject:self.userId forKey:@"userId"];
}

+ (BOOL)supportsSecureCoding {
return YES;
}

@end
4 changes: 4 additions & 0 deletions Branch-SDK/BranchShortUrlRequest.m
Original file line number Diff line number Diff line change
Expand Up @@ -178,4 +178,8 @@ - (void)encodeWithCoder:(NSCoder *)coder {
[coder encodeObject:[BNCEncodingUtils encodeDictionaryToJsonString:self.params] forKey:@"params"];
}

+ (BOOL)supportsSecureCoding {
return YES;
}

@end
4 changes: 4 additions & 0 deletions Branch-SDK/BranchUserCompletedActionRequest.m
Original file line number Diff line number Diff line change
Expand Up @@ -78,4 +78,8 @@ - (void)encodeWithCoder:(NSCoder *)coder {
[coder encodeObject:self.state forKey:@"state"];
}

+ (BOOL)supportsSecureCoding {
return YES;
}

@end
89 changes: 87 additions & 2 deletions Branch-TestBed/Branch-SDK-Tests/BNCServerRequestQueueTests.m
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,16 @@
#import <XCTest/XCTest.h>
#import "BNCServerRequestQueue.h"
#import "BNCServerRequest.h"
#import "BranchOpenRequest.h"
#import "BranchCloseRequest.h"

// Analytics requests
#import "BranchInstallRequest.h"
#import "BranchOpenRequest.h"
#import "BranchEvent.h"
#import "BNCCommerceEvent.h"
#import "BranchUserCompletedActionRequest.h"
#import "BranchSetIdentityRequest.h"
#import "BranchLogoutRequest.h"

@interface BNCServerRequestQueue ()
- (NSData *)archiveQueue:(NSArray<BNCServerRequest *> *)queue;
Expand Down Expand Up @@ -60,7 +67,20 @@ - (void)testArchiveString {
XCTAssert([object isEqual:unarchived]);
}

- (void)testArchiveRequest {
- (void)testArchiveInstallRequest {
BranchInstallRequest *object = [BranchInstallRequest new];

NSData *archived = [self.queue archiveObject:object];
XCTAssertNotNil(archived);

BranchInstallRequest *unarchived = [self.queue unarchiveObjectFromData:archived];
XCTAssertNotNil(unarchived);
XCTAssert([unarchived isKindOfClass:[BranchInstallRequest class]]);

// The request object is not very test friendly, so comparing the two is not helpful at the moment
}

- (void)testArchiveOpenRequest {
BranchOpenRequest *object = [BranchOpenRequest new];

NSData *archived = [self.queue archiveObject:object];
Expand All @@ -73,6 +93,71 @@ - (void)testArchiveRequest {
// The request object is not very test friendly, so comparing the two is not helpful at the moment
}

- (void)testArchiveEventRequest {
BranchEventRequest *object = [BranchEventRequest new];

NSData *archived = [self.queue archiveObject:object];
XCTAssertNotNil(archived);

BranchEventRequest *unarchived = [self.queue unarchiveObjectFromData:archived];
XCTAssertNotNil(unarchived);
XCTAssert([unarchived isKindOfClass:[BranchEventRequest class]]);

// The request object is not very test friendly, so comparing the two is not helpful at the moment
}

- (void)testArchiveCommerceEventRequest {
BranchCommerceEventRequest *object = [BranchCommerceEventRequest new];

NSData *archived = [self.queue archiveObject:object];
XCTAssertNotNil(archived);

BranchCommerceEventRequest *unarchived = [self.queue unarchiveObjectFromData:archived];
XCTAssertNotNil(unarchived);
XCTAssert([unarchived isKindOfClass:[BranchCommerceEventRequest class]]);

// The request object is not very test friendly, so comparing the two is not helpful at the moment
}

- (void)testArchiveUserCompletedActionRequest {
BranchUserCompletedActionRequest *object = [BranchUserCompletedActionRequest new];

NSData *archived = [self.queue archiveObject:object];
XCTAssertNotNil(archived);

BranchUserCompletedActionRequest *unarchived = [self.queue unarchiveObjectFromData:archived];
XCTAssertNotNil(unarchived);
XCTAssert([unarchived isKindOfClass:[BranchUserCompletedActionRequest class]]);

// The request object is not very test friendly, so comparing the two is not helpful at the moment
}

- (void)testArchiveSetIdentityRequest {
BranchSetIdentityRequest *object = [BranchSetIdentityRequest new];

NSData *archived = [self.queue archiveObject:object];
XCTAssertNotNil(archived);

BranchSetIdentityRequest *unarchived = [self.queue unarchiveObjectFromData:archived];
XCTAssertNotNil(unarchived);
XCTAssert([unarchived isKindOfClass:[BranchSetIdentityRequest class]]);

// The request object is not very test friendly, so comparing the two is not helpful at the moment
}

- (void)testArchiveLogoutRequest {
BranchLogoutRequest *object = [BranchLogoutRequest new];

NSData *archived = [self.queue archiveObject:object];
XCTAssertNotNil(archived);

BranchLogoutRequest *unarchived = [self.queue unarchiveObjectFromData:archived];
XCTAssertNotNil(unarchived);
XCTAssert([unarchived isKindOfClass:[BranchLogoutRequest class]]);

// The request object is not very test friendly, so comparing the two is not helpful at the moment
}

- (void)testArchiveArrayOfRequests {
NSMutableArray<BNCServerRequest *> *tmp = [NSMutableArray<BNCServerRequest *> new];
[tmp addObject:[BranchOpenRequest new]];
Expand Down

0 comments on commit 9828b0c

Please sign in to comment.