mirror of https://github.com/oxen-io/session-ios
You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
98 lines
3.0 KiB
Objective-C
98 lines
3.0 KiB
Objective-C
//
|
|
// Copyright (c) 2017 Open Whisper Systems. All rights reserved.
|
|
//
|
|
|
|
#import "OWSDeviceProvisioner.h"
|
|
#import "OWSDeviceProvisioningCodeService.h"
|
|
#import "OWSDeviceProvisioningService.h"
|
|
#import "OWSFakeNetworkManager.h"
|
|
#import "TSNetworkManager.h"
|
|
|
|
#import <XCTest/XCTest.h>
|
|
|
|
@interface OWSFakeDeviceProvisioningService : OWSDeviceProvisioningService
|
|
|
|
@end
|
|
|
|
@implementation OWSFakeDeviceProvisioningService
|
|
|
|
- (void)provisionWithMessageBody:(NSData *)messageBody
|
|
ephemeralDeviceId:(NSString *)deviceId
|
|
success:(void (^)())successCallback
|
|
failure:(void (^)(NSError *))failureCallback
|
|
{
|
|
NSLog(@"faking successful provisioning");
|
|
successCallback();
|
|
}
|
|
|
|
@end
|
|
|
|
@interface OWSFakeDeviceProvisioningCodeService : OWSDeviceProvisioningCodeService
|
|
|
|
@end
|
|
|
|
@implementation OWSFakeDeviceProvisioningCodeService
|
|
|
|
- (void)requestProvisioningCodeWithSuccess:(void (^)(NSString *))successCallback
|
|
failure:(void (^)(NSError *))failureCallback
|
|
{
|
|
NSLog(@"faking successful provisioning code fetching");
|
|
successCallback(@"fake-provisioning-code");
|
|
}
|
|
|
|
@end
|
|
|
|
@interface OWSDeviceProvisioner (Testing)
|
|
|
|
@property OWSDeviceProvisioningCodeService *provisioningCodeService;
|
|
@property OWSDeviceProvisioningService *provisioningService;
|
|
|
|
@end
|
|
|
|
@interface OWSDeviceProvisionerTest : XCTestCase
|
|
|
|
@end
|
|
|
|
@implementation OWSDeviceProvisionerTest
|
|
|
|
- (void)testProvisioning
|
|
{
|
|
|
|
XCTestExpectation *expectation = [self expectationWithDescription:@"Provisioning Success"];
|
|
|
|
NSData *nullKey = [[NSMutableData dataWithLength:32] copy];
|
|
NSData *myPublicKey = [nullKey copy];
|
|
NSData *myPrivateKey = [nullKey copy];
|
|
NSData *theirPublicKey = [nullKey copy];
|
|
NSData *profileKey = [nullKey copy];
|
|
NSString *accountIdentifier;
|
|
NSString *theirEphemeralDeviceId;
|
|
|
|
OWSFakeNetworkManager *networkManager = [OWSFakeNetworkManager new];
|
|
OWSDeviceProvisioner *provisioner = [[OWSDeviceProvisioner alloc]
|
|
initWithMyPublicKey:myPublicKey
|
|
myPrivateKey:myPrivateKey
|
|
theirPublicKey:theirPublicKey
|
|
theirEphemeralDeviceId:theirEphemeralDeviceId
|
|
accountIdentifier:accountIdentifier
|
|
profileKey:profileKey
|
|
provisioningCodeService:[[OWSFakeDeviceProvisioningCodeService alloc] initWithNetworkManager:networkManager]
|
|
provisioningService:[[OWSFakeDeviceProvisioningService alloc] initWithNetworkManager:networkManager]];
|
|
|
|
[provisioner provisionWithSuccess:^{
|
|
[expectation fulfill];
|
|
}
|
|
failure:^(NSError *_Nonnull error) {
|
|
XCTAssert(NO, @"Failed to provision with error: %@", error);
|
|
}];
|
|
|
|
[self waitForExpectationsWithTimeout:5.0
|
|
handler:^(NSError *error) {
|
|
if (error) {
|
|
NSLog(@"Timeout Error: %@", error);
|
|
}
|
|
}];
|
|
}
|
|
|
|
@end
|