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.
		
		
		
		
		
			
		
			
	
	
		
			94 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			Matlab
		
	
		
		
			
		
	
	
			94 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			Matlab
		
	
| 
											9 years ago
										 | //  Copyright © 2016 Open Whisper Systems. All rights reserved. | ||
|  | 
 | ||
|  | #import "OWSDeviceProvisioner.h" | ||
|  | #import "OWSDeviceProvisioningCodeService.h" | ||
|  | #import "OWSDeviceProvisioningService.h" | ||
| 
											9 years ago
										 | #import "OWSFakeNetworkManager.h" | ||
| 
											9 years ago
										 | #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]; | ||
|  |     NSString *accountIdentifier; | ||
|  |     NSString *theirEphemeralDeviceId; | ||
|  | 
 | ||
| 
											9 years ago
										 |     OWSFakeNetworkManager *networkManager = [OWSFakeNetworkManager new]; | ||
| 
											9 years ago
										 |     OWSDeviceProvisioner *provisioner = [[OWSDeviceProvisioner alloc] | ||
|  |             initWithMyPublicKey:myPublicKey | ||
|  |                    myPrivateKey:myPrivateKey | ||
|  |                  theirPublicKey:theirPublicKey | ||
|  |          theirEphemeralDeviceId:theirEphemeralDeviceId | ||
|  |               accountIdentifier:accountIdentifier | ||
|  |         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 |