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.
		
		
		
		
		
			
		
			
				
	
	
		
			129 lines
		
	
	
		
			5.3 KiB
		
	
	
	
		
			Objective-C
		
	
			
		
		
	
	
			129 lines
		
	
	
		
			5.3 KiB
		
	
	
	
		
			Objective-C
		
	
| #import <XCTest/XCTest.h>
 | |
| #import "TestUtil.h"
 | |
| 
 | |
| @interface RtpPacketTests : XCTestCase
 | |
| 
 | |
| @end
 | |
| 
 | |
| @implementation RtpPacketTests
 | |
| 
 | |
| - (void)setUp{
 | |
|     [Environment setCurrent:[Release unitTestEnvironment:@[]]];
 | |
| }
 | |
| 
 | |
| -(void) testRawDataSimple {
 | |
|     RtpPacket* r = [RtpPacket rtpPacketWithVersion:2
 | |
|                                         andPadding:0
 | |
|                   andContributingSourceIdentifiers:@[]
 | |
|                 andSynchronizationSourceIdentifier:0
 | |
|                                       andMarkerBit:false
 | |
|                                     andPayloadtype:0
 | |
|                                  andSequenceNumber:5
 | |
|                                       andTimeStamp:0
 | |
|                                         andPayload:increasingData(5)];
 | |
|     
 | |
|     // values were retained
 | |
|     test([r version] == 2);
 | |
|     test([r padding] == 0);
 | |
|     test(r.hasExtensionHeader == false);
 | |
|     test([[r contributingSourceIdentifiers] count] == 0);
 | |
|     test([r synchronizationSourceIdentifier] == 0);
 | |
|     test(r.isMarkerBitSet == false);
 | |
|     test([r payloadType] == 0);
 | |
|     test([r sequenceNumber] == 5);
 | |
|     test([r timeStamp] == 0);
 | |
|     test([[r payload] isEqualToData:increasingData(5)]);
 | |
| 
 | |
|     // equivalent to simplified constructor
 | |
|     test([r isEqualToRtpPacket:[RtpPacket rtpPacketWithDefaultsAndSequenceNumber:5 andPayload:increasingData(5)]]);
 | |
| 
 | |
|     // packed correctly
 | |
|     NSData* expectedData = [@[
 | |
|                             @0x80,@0,@0,@5,
 | |
|                             @0,@0,@0,@0,
 | |
|                             @0,@0,@0,@0,
 | |
|                             @0,@1,@2,@3,@4] ows_toUint8Data];
 | |
|     test([[r rawPacketDataUsingInteropOptions:@[]] isEqualToData:expectedData]);
 | |
| 
 | |
|     // reparsing packed data gives same packet
 | |
|     test([r isEqualToRtpPacket:[RtpPacket rtpPacketParsedFromPacketData:expectedData]]);
 | |
|     test(![r isEqualToRtpPacket:[RtpPacket rtpPacketWithDefaultsAndSequenceNumber:0 andPayload:[NSData data]]]);
 | |
| }
 | |
| -(void) testRawData {
 | |
|     RtpPacket* r = [RtpPacket rtpPacketWithVersion:2
 | |
|                                         andPadding:3
 | |
|                   andContributingSourceIdentifiers:@[@101, @102]
 | |
|                 andSynchronizationSourceIdentifier:0x45645645
 | |
|                                       andMarkerBit:true
 | |
|                                     andPayloadtype:0x77
 | |
|                                  andSequenceNumber:0x2122
 | |
|                                       andTimeStamp:0xABCDEFAB
 | |
|                                         andPayload:increasingData(6)];
 | |
| 
 | |
|     // values were retained
 | |
|     test([r version] == 2);
 | |
|     test([r padding] == 3);
 | |
|     test(r.hasExtensionHeader == false);
 | |
|     test([[r contributingSourceIdentifiers] isEqualToArray:(@[@101, @102])]);
 | |
|     test([r synchronizationSourceIdentifier] == 0x45645645);
 | |
|     test(r.isMarkerBitSet == true);
 | |
|     test([r payloadType] == 0x77);
 | |
|     test([r sequenceNumber] == 0x2122);
 | |
|     test([r timeStamp] == 0xABCDEFAB);
 | |
|     test([[r payload] isEqualToData:increasingData(6)]);
 | |
| 
 | |
|     NSData* expectedData = [@[
 | |
|                             @0xA2,@0xF7,@0x21,@0x22,
 | |
|                             @0xAB,@0xCD,@0xEF,@0xAB,
 | |
|                             @0x45,@0x64,@0x56,@0x45,
 | |
|                             @0,@0,@0,@101,
 | |
|                             @0,@0,@0,@102,
 | |
|                             @0,@1,@2,@3,@4,@5,
 | |
|                             @0,@0,@3] ows_toUint8Data];
 | |
|     
 | |
|     test([[r rawPacketDataUsingInteropOptions:@[]] isEqualToData:expectedData]);
 | |
|     test([r isEqualToRtpPacket:[RtpPacket rtpPacketParsedFromPacketData:expectedData]]);
 | |
|     test(![r isEqualToRtpPacket:[RtpPacket rtpPacketWithDefaultsAndSequenceNumber:90 andPayload:[NSData data]]]);
 | |
| }
 | |
| -(void) testExtendedData {
 | |
|     RtpPacket* r = [RtpPacket rtpPacketWithVersion:2
 | |
|                                         andPadding:0
 | |
|                   andContributingSourceIdentifiers:@[]
 | |
|                 andSynchronizationSourceIdentifier:0
 | |
|                             andExtensionIdentifier:0xFEAB
 | |
|                                   andExtensionData:increasingDataFrom(10, 5)
 | |
|                                       andMarkerBit:false
 | |
|                                     andPayloadtype:0
 | |
|                                  andSequenceNumber:5
 | |
|                                       andTimeStamp:0
 | |
|                                         andPayload:increasingData(5)];
 | |
| 
 | |
|     // values were retained
 | |
|     test([r version] == 2);
 | |
|     test([r padding] == 0);
 | |
|     test(r.hasExtensionHeader == true);
 | |
|     test([r extensionHeaderIdentifier] == 0xFEAB);
 | |
|     test([[r extensionHeaderData] isEqualToData:increasingDataFrom(10, 5)]);
 | |
|     test([[r contributingSourceIdentifiers] count] == 0);
 | |
|     test([r synchronizationSourceIdentifier] == 0);
 | |
|     test(r.isMarkerBitSet == false);
 | |
|     test([r payloadType] == 0);
 | |
|     test([r sequenceNumber] == 5);
 | |
|     test([r timeStamp] == 0);
 | |
|     test([[r payload] isEqualToData:increasingData(5)]);
 | |
|     
 | |
|     NSData* expectedData = [@[
 | |
|                             @0x90,@0,@0,@5,
 | |
|                             @0,@0,@0,@0,
 | |
|                             @0,@0,@0,@0,
 | |
|                             @0xFE,@0xAB,
 | |
|                             @0, @5,
 | |
|                             @10,@11,@12,@13,@14,
 | |
|                             @0,@1,@2,@3,@4] ows_toUint8Data];
 | |
|     test([[r rawPacketDataUsingInteropOptions:@[]] isEqualToData:expectedData]);
 | |
|     test([r isEqualToRtpPacket:[RtpPacket rtpPacketParsedFromPacketData:expectedData]]);
 | |
|     test(![r isEqualToRtpPacket:[RtpPacket rtpPacketWithDefaultsAndSequenceNumber:0 andPayload:[NSData data]]]);
 | |
| }
 | |
| 
 | |
| @end
 |