@@ -377,7 +377,7 @@ async fn test_data_channel_parameters_max_packet_life_time_exchange() -> Result<
377
377
) ;
378
378
assert_eq ! (
379
379
dc. max_packet_lifetime( ) ,
380
- max_packet_life_time,
380
+ Some ( max_packet_life_time) ,
381
381
"should match"
382
382
) ;
383
383
@@ -394,7 +394,7 @@ async fn test_data_channel_parameters_max_packet_life_time_exchange() -> Result<
394
394
) ;
395
395
assert_eq ! (
396
396
d. max_packet_lifetime( ) ,
397
- max_packet_life_time,
397
+ Some ( max_packet_life_time) ,
398
398
"should match"
399
399
) ;
400
400
let done_tx2 = Arc :: clone ( & done_tx) ;
@@ -428,7 +428,7 @@ async fn test_data_channel_parameters_max_retransmits_exchange() -> Result<()> {
428
428
429
429
// Check if parameters are correctly set
430
430
assert ! ( !dc. ordered( ) , "Ordered should be set to false" ) ;
431
- assert_eq ! ( dc. max_retransmits( ) , max_retransmits, "should match" ) ;
431
+ assert_eq ! ( dc. max_retransmits( ) , Some ( max_retransmits) , "should match" ) ;
432
432
433
433
let done_tx = Arc :: new ( Mutex :: new ( Some ( done_tx) ) ) ;
434
434
answer_pc. on_data_channel ( Box :: new ( move |d : Arc < RTCDataChannel > | {
@@ -440,7 +440,58 @@ async fn test_data_channel_parameters_max_retransmits_exchange() -> Result<()> {
440
440
441
441
// Check if parameters are correctly set
442
442
assert ! ( !d. ordered( ) , "Ordered should be set to false" ) ;
443
- assert_eq ! ( max_retransmits, d. max_retransmits( ) , "should match" ) ;
443
+ assert_eq ! ( Some ( max_retransmits) , d. max_retransmits( ) , "should match" ) ;
444
+ let done_tx2 = Arc :: clone ( & done_tx) ;
445
+ Box :: pin ( async move {
446
+ let mut done = done_tx2. lock ( ) . await ;
447
+ done. take ( ) ;
448
+ } )
449
+ } ) ) ;
450
+
451
+ close_reliability_param_test ( & mut offer_pc, & mut answer_pc, done_rx) . await ?;
452
+
453
+ Ok ( ( ) )
454
+ }
455
+
456
+ #[ tokio:: test]
457
+ async fn test_data_channel_parameters_unreliable_unordered_exchange ( ) -> Result < ( ) > {
458
+ let mut m = MediaEngine :: default ( ) ;
459
+ m. register_default_codecs ( ) ?;
460
+ let api = APIBuilder :: new ( ) . with_media_engine ( m) . build ( ) ;
461
+
462
+ let ordered = false ;
463
+ let max_retransmits = Some ( 0 ) ;
464
+ let max_packet_life_time = None ;
465
+ let options = RTCDataChannelInit {
466
+ ordered : Some ( ordered) ,
467
+ max_retransmits,
468
+ max_packet_life_time,
469
+ ..Default :: default ( )
470
+ } ;
471
+
472
+ let ( mut offer_pc, mut answer_pc, dc, done_tx, done_rx) =
473
+ set_up_data_channel_parameters_test ( & api, Some ( options) ) . await ?;
474
+
475
+ // Check if parameters are correctly set
476
+ assert_eq ! (
477
+ dc. ordered( ) ,
478
+ ordered,
479
+ "Ordered should be same value as set in DataChannelInit"
480
+ ) ;
481
+ assert_eq ! ( dc. max_retransmits, max_retransmits, "should match" ) ;
482
+
483
+ let done_tx = Arc :: new ( Mutex :: new ( Some ( done_tx) ) ) ;
484
+ answer_pc. on_data_channel ( Box :: new ( move |d : Arc < RTCDataChannel > | {
485
+ if d. label ( ) != EXPECTED_LABEL {
486
+ return Box :: pin ( async { } ) ;
487
+ }
488
+ // Check if parameters are correctly set
489
+ assert_eq ! (
490
+ d. ordered( ) ,
491
+ ordered,
492
+ "Ordered should be same value as set in DataChannelInit"
493
+ ) ;
494
+ assert_eq ! ( d. max_retransmits( ) , max_retransmits, "should match" ) ;
444
495
let done_tx2 = Arc :: clone ( & done_tx) ;
445
496
Box :: pin ( async move {
446
497
let mut done = done_tx2. lock ( ) . await ;
@@ -453,6 +504,56 @@ async fn test_data_channel_parameters_max_retransmits_exchange() -> Result<()> {
453
504
Ok ( ( ) )
454
505
}
455
506
507
+ #[ tokio:: test]
508
+ async fn test_data_channel_parameters_reliable_unordered_exchange ( ) -> Result < ( ) > {
509
+ let mut m = MediaEngine :: default ( ) ;
510
+ m. register_default_codecs ( ) ?;
511
+ let api = APIBuilder :: new ( ) . with_media_engine ( m) . build ( ) ;
512
+
513
+ let ordered = false ;
514
+ let max_retransmits = None ;
515
+ let max_packet_life_time = None ;
516
+ let options = RTCDataChannelInit {
517
+ ordered : Some ( ordered) ,
518
+ max_retransmits,
519
+ max_packet_life_time,
520
+ ..Default :: default ( )
521
+ } ;
522
+
523
+ let ( mut offer_pc, mut answer_pc, dc, done_tx, done_rx) =
524
+ set_up_data_channel_parameters_test ( & api, Some ( options) ) . await ?;
525
+
526
+ // Check if parameters are correctly set
527
+ assert_eq ! (
528
+ dc. ordered( ) ,
529
+ ordered,
530
+ "Ordered should be same value as set in DataChannelInit"
531
+ ) ;
532
+ assert_eq ! ( dc. max_retransmits, max_retransmits, "should match" ) ;
533
+
534
+ let done_tx = Arc :: new ( Mutex :: new ( Some ( done_tx) ) ) ;
535
+ answer_pc. on_data_channel ( Box :: new ( move |d : Arc < RTCDataChannel > | {
536
+ if d. label ( ) != EXPECTED_LABEL {
537
+ return Box :: pin ( async { } ) ;
538
+ }
539
+ // Check if parameters are correctly set
540
+ assert_eq ! (
541
+ d. ordered( ) ,
542
+ ordered,
543
+ "Ordered should be same value as set in DataChannelInit"
544
+ ) ;
545
+ assert_eq ! ( d. max_retransmits( ) , max_retransmits, "should match" ) ;
546
+ let done_tx2 = Arc :: clone ( & done_tx) ;
547
+ Box :: pin ( async move {
548
+ let mut done = done_tx2. lock ( ) . await ;
549
+ done. take ( ) ;
550
+ } )
551
+ } ) ) ;
552
+
553
+ close_reliability_param_test ( & mut offer_pc, & mut answer_pc, done_rx) . await ?;
554
+
555
+ Ok ( ( ) )
556
+ }
456
557
#[ tokio:: test]
457
558
async fn test_data_channel_parameters_protocol_exchange ( ) -> Result < ( ) > {
458
559
let mut m = MediaEngine :: default ( ) ;
@@ -743,7 +844,7 @@ async fn test_data_channel_parameters_go() -> Result<()> {
743
844
// Check if parameters are correctly set
744
845
assert ! ( dc. ordered( ) , "Ordered should be set to true" ) ;
745
846
assert_eq ! (
746
- max_packet_life_time,
847
+ Some ( max_packet_life_time) ,
747
848
dc. max_packet_lifetime( ) ,
748
849
"should match"
749
850
) ;
@@ -759,7 +860,7 @@ async fn test_data_channel_parameters_go() -> Result<()> {
759
860
// Check if parameters are correctly set
760
861
assert ! ( d. ordered, "Ordered should be set to true" ) ;
761
862
assert_eq ! (
762
- max_packet_life_time,
863
+ Some ( max_packet_life_time) ,
763
864
d. max_packet_lifetime( ) ,
764
865
"should match"
765
866
) ;
0 commit comments