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
 |