@@ -266,6 +266,44 @@ func TestBasic(t *testing.T) { // nolint:maintidx,cyclop
266266 buf , err = parsedPacket .Marshal ()
267267 assert .NoError (t , err )
268268 assert .Equal (t , rawPkt , buf )
269+
270+ // marshal packet after deleting extensions
271+ rawPkt = []byte {
272+ 0xb0 , 0xe0 , 0x69 , 0x8f , 0xd9 , 0xc2 , 0x93 , 0xda , 0x1c , 0x64 ,
273+ 0x27 , 0x82 , 0xBE , 0xDE , 0x00 , 0x01 , 0x10 , 0xAA , 0x00 , 0x00 , 0x98 , 0x00 , 0x00 , 0x00 , 0x04 ,
274+ }
275+ parsedPacket = & Packet {
276+ Header : Header {
277+ Padding : true ,
278+ Marker : true ,
279+ Extension : true ,
280+ ExtensionProfile : 0xBEDE ,
281+ Extensions : []Extension {
282+ {1 , []byte {
283+ 0xAA ,
284+ }},
285+ },
286+ Version : 2 ,
287+ PayloadType : 96 ,
288+ SequenceNumber : 27023 ,
289+ Timestamp : 3653407706 ,
290+ SSRC : 476325762 ,
291+ PaddingSize : 4 ,
292+ },
293+ Payload : rawPkt [20 :21 ],
294+ }
295+ buf , err = parsedPacket .Marshal ()
296+ assert .NoError (t , err )
297+ assert .Equal (t , rawPkt , buf )
298+ assert .NoError (t , parsedPacket .DelExtension (1 ), "Should successfully delete extension" )
299+ // should not include extensions and X bit should be unset after deleting all extensions
300+ rawPkt = []byte {
301+ 0xa0 , 0xe0 , 0x69 , 0x8f , 0xd9 , 0xc2 , 0x93 , 0xda , 0x1c , 0x64 ,
302+ 0x27 , 0x82 , 0x98 , 0x00 , 0x00 , 0x00 , 0x04 ,
303+ }
304+ buf , err = parsedPacket .Marshal ()
305+ assert .NoError (t , err )
306+ assert .Equal (t , rawPkt , buf )
269307}
270308
271309func TestExtension (t * testing.T ) {
0 commit comments