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.
		
		
		
		
		
			
		
			
	
	
		
			117 lines
		
	
	
		
			4.7 KiB
		
	
	
	
		
			Matlab
		
	
		
		
			
		
	
	
			117 lines
		
	
	
		
			4.7 KiB
		
	
	
	
		
			Matlab
		
	
| 
											9 years ago
										 | // | ||
|  | //  Copyright (c) 2017 Open Whisper Systems. All rights reserved. | ||
|  | // | ||
| 
											9 years ago
										 | 
 | ||
| 
											9 years ago
										 | #import "OWSDevice.h" | ||
| 
											9 years ago
										 | #import "TSAttachmentStream.h" | ||
|  | #import "TSContactThread.h" | ||
|  | #import "TSIncomingMessage.h" | ||
|  | #import "TSOutgoingMessage.h" | ||
|  | #import "TSStorageManager.h" | ||
|  | #import <XCTest/XCTest.h> | ||
|  | 
 | ||
|  | @interface TSThreadTest : XCTestCase | ||
|  | 
 | ||
|  | @end | ||
|  | 
 | ||
|  | @implementation TSThreadTest | ||
|  | 
 | ||
|  | - (void)setUp | ||
|  | { | ||
|  |     [super setUp]; | ||
|  | 
 | ||
|  |     // Register views, etc. | ||
| 
											8 years ago
										 |     [[TSStorageManager sharedManager] setupDatabaseWithSafeBlockingMigrations:^{}]; | ||
| 
											9 years ago
										 | } | ||
|  | 
 | ||
|  | - (void)tearDown | ||
|  | { | ||
|  |     // Put teardown code here. This method is called after the invocation of each test method in the class. | ||
|  |     [super tearDown]; | ||
|  | } | ||
|  | 
 | ||
|  | - (void)testDeletingThreadDeletesInteractions | ||
|  | { | ||
|  |     TSContactThread *thread = [[TSContactThread alloc] initWithUniqueId:@"fake-test-thread"]; | ||
|  |     [thread save]; | ||
|  | 
 | ||
|  |     [TSInteraction removeAllObjectsInCollection]; | ||
|  |     XCTAssertEqual(0, [thread numberOfInteractions]); | ||
|  | 
 | ||
|  |     TSIncomingMessage *incomingMessage = [[TSIncomingMessage alloc] initWithTimestamp:10000 | ||
|  |                                                                              inThread:thread | ||
|  |                                                                              authorId:@"fake-author-id" | ||
| 
											9 years ago
										 |                                                                        sourceDeviceId:OWSDevicePrimaryDeviceId | ||
| 
											9 years ago
										 |                                                                           messageBody:@"Incoming message body"]; | ||
|  |     [incomingMessage save]; | ||
|  | 
 | ||
|  |     TSOutgoingMessage *outgoingMessage = | ||
|  |         [[TSOutgoingMessage alloc] initWithTimestamp:20000 inThread:thread messageBody:@"outgoing message body"]; | ||
|  |     [outgoingMessage save]; | ||
|  | 
 | ||
|  |     XCTAssertEqual(2, [thread numberOfInteractions]); | ||
|  | 
 | ||
|  |     [thread remove]; | ||
|  |     XCTAssertEqual(0, [thread numberOfInteractions]); | ||
|  |     XCTAssertEqual(0, [TSInteraction numberOfKeysInCollection]); | ||
|  | } | ||
|  | 
 | ||
|  | - (void)testDeletingThreadDeletesAttachmentFiles | ||
|  | { | ||
|  |     TSContactThread *thread = [[TSContactThread alloc] initWithUniqueId:@"fake-test-thread"]; | ||
|  |     [thread save]; | ||
|  | 
 | ||
|  |     // Sanity check | ||
|  |     [TSInteraction removeAllObjectsInCollection]; | ||
|  |     XCTAssertEqual(0, [thread numberOfInteractions]); | ||
|  | 
 | ||
| 
											9 years ago
										 |     NSError *error; | ||
| 
											9 years ago
										 |     TSAttachmentStream *incomingAttachment = [[TSAttachmentStream alloc] initWithContentType:@"image/jpeg" | ||
|  |                                                                               sourceFilename:nil]; | ||
| 
											9 years ago
										 |     [incomingAttachment writeData:[NSData new] error:&error]; | ||
| 
											9 years ago
										 |     [incomingAttachment save]; | ||
|  | 
 | ||
|  |     // Sanity check | ||
|  |     BOOL incomingFileWasCreated = [[NSFileManager defaultManager] fileExistsAtPath:[incomingAttachment filePath]]; | ||
|  |     XCTAssert(incomingFileWasCreated); | ||
|  | 
 | ||
| 
											9 years ago
										 |     TSIncomingMessage *incomingMessage = [[TSIncomingMessage alloc] initWithTimestamp:10000 | ||
|  |                                                                              inThread:thread | ||
|  |                                                                              authorId:@"fake-author-id" | ||
|  |                                                                        sourceDeviceId:OWSDevicePrimaryDeviceId | ||
|  |                                                                           messageBody:@"incoming message body" | ||
|  |                                                                         attachmentIds:@[ incomingAttachment.uniqueId ] | ||
|  |                                                                      expiresInSeconds:0]; | ||
| 
											9 years ago
										 |     [incomingMessage save]; | ||
|  | 
 | ||
| 
											9 years ago
										 |     TSAttachmentStream *outgoingAttachment = [[TSAttachmentStream alloc] initWithContentType:@"image/jpeg" | ||
|  |                                                                               sourceFilename:nil]; | ||
| 
											9 years ago
										 |     [outgoingAttachment writeData:[NSData new] error:&error]; | ||
| 
											9 years ago
										 |     [outgoingAttachment save]; | ||
|  | 
 | ||
|  |     // Sanity check | ||
|  |     BOOL outgoingFileWasCreated = [[NSFileManager defaultManager] fileExistsAtPath:[outgoingAttachment filePath]]; | ||
|  |     XCTAssert(outgoingFileWasCreated); | ||
|  | 
 | ||
| 
											9 years ago
										 |     TSOutgoingMessage *outgoingMessage = [[TSOutgoingMessage alloc] initWithTimestamp:10000 | ||
|  |                                                                              inThread:thread | ||
|  |                                                                           messageBody:@"outgoing message body" | ||
| 
											9 years ago
										 |                                                                         attachmentIds:[@[ outgoingAttachment.uniqueId ] mutableCopy]]; | ||
| 
											9 years ago
										 |     [outgoingMessage save]; | ||
|  | 
 | ||
|  |     // Sanity check | ||
|  |     XCTAssertEqual(2, [thread numberOfInteractions]); | ||
|  | 
 | ||
|  |     // Actual Test Follows | ||
|  |     [thread remove]; | ||
|  |     XCTAssertEqual(0, [thread numberOfInteractions]); | ||
|  | 
 | ||
|  |     BOOL incomingFileStillExists = [[NSFileManager defaultManager] fileExistsAtPath:[incomingAttachment filePath]]; | ||
|  |     XCTAssertFalse(incomingFileStillExists); | ||
|  | 
 | ||
|  |     BOOL outgoingFileStillExists = [[NSFileManager defaultManager] fileExistsAtPath:[outgoingAttachment filePath]]; | ||
|  |     XCTAssertFalse(outgoingFileStillExists); | ||
|  | } | ||
|  | 
 | ||
|  | @end |