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.
130 lines
5.4 KiB
Objective-C
130 lines
5.4 KiB
Objective-C
#import <XCTest/XCTest.h>
|
|
#import "TestUtil.h"
|
|
#import "Util.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
|