You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

RTCEvents.spec.ts 9.1KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139
  1. import * as exported from "./RTCEvents";
  2. // this test is brittle on purpose because it's designed to ensure that the TypeScript conversion maintains backward compatibility
  3. describe( "/service/RTC/RTCEvents members", () => {
  4. const {
  5. CREATE_ANSWER_FAILED,
  6. CREATE_OFFER_FAILED,
  7. DATA_CHANNEL_OPEN,
  8. ENDPOINT_CONN_STATUS_CHANGED,
  9. DOMINANT_SPEAKER_CHANGED,
  10. LASTN_ENDPOINT_CHANGED,
  11. FORWARDED_SOURCES_CHANGED,
  12. PERMISSIONS_CHANGED,
  13. SENDER_VIDEO_CONSTRAINTS_CHANGED,
  14. LASTN_VALUE_CHANGED,
  15. LOCAL_TRACK_SSRC_UPDATED,
  16. LOCAL_TRACK_MAX_ENABLED_RESOLUTION_CHANGED,
  17. TRACK_ATTACHED,
  18. REMOTE_TRACK_ADDED,
  19. REMOTE_TRACK_MUTE,
  20. REMOTE_TRACK_REMOVED,
  21. REMOTE_TRACK_UNMUTE,
  22. SET_LOCAL_DESCRIPTION_FAILED,
  23. SET_REMOTE_DESCRIPTION_FAILED,
  24. AUDIO_OUTPUT_DEVICE_CHANGED,
  25. DEVICE_LIST_CHANGED,
  26. DEVICE_LIST_WILL_CHANGE,
  27. DEVICE_LIST_AVAILABLE,
  28. ENDPOINT_MESSAGE_RECEIVED,
  29. ENDPOINT_STATS_RECEIVED,
  30. LOCAL_UFRAG_CHANGED,
  31. REMOTE_UFRAG_CHANGED,
  32. VIDEO_SSRCS_REMAPPED,
  33. AUDIO_SSRCS_REMAPPED,
  34. RTCEvents,
  35. default: RTCEventsDefault,
  36. ...others
  37. } = exported;
  38. it( "known members", () => {
  39. expect( CREATE_ANSWER_FAILED ).toBe( 'rtc.create_answer_failed' );
  40. expect( CREATE_OFFER_FAILED ).toBe( 'rtc.create_offer_failed' );
  41. expect( DATA_CHANNEL_OPEN ).toBe( 'rtc.data_channel_open' );
  42. expect( ENDPOINT_CONN_STATUS_CHANGED ).toBe( 'rtc.endpoint_conn_status_changed' );
  43. expect( DOMINANT_SPEAKER_CHANGED ).toBe( 'rtc.dominant_speaker_changed' );
  44. expect( LASTN_ENDPOINT_CHANGED ).toBe( 'rtc.lastn_endpoint_changed' );
  45. expect( FORWARDED_SOURCES_CHANGED ).toBe( 'rtc.forwarded_sources_changed' );
  46. expect( PERMISSIONS_CHANGED ).toBe( 'rtc.permissions_changed' );
  47. expect( SENDER_VIDEO_CONSTRAINTS_CHANGED ).toBe( 'rtc.sender_video_constraints_changed' );
  48. expect( LASTN_VALUE_CHANGED ).toBe( 'rtc.lastn_value_changed' );
  49. expect( LOCAL_TRACK_SSRC_UPDATED ).toBe( 'rtc.local_track_ssrc_updated' );
  50. expect( LOCAL_TRACK_MAX_ENABLED_RESOLUTION_CHANGED ).toBe( 'rtc.local_track_max_enabled_resolution_changed' );
  51. expect( TRACK_ATTACHED ).toBe( 'rtc.track_attached' );
  52. expect( REMOTE_TRACK_ADDED ).toBe( 'rtc.remote_track_added' );
  53. expect( REMOTE_TRACK_MUTE ).toBe( 'rtc.remote_track_mute' );
  54. expect( REMOTE_TRACK_REMOVED ).toBe( 'rtc.remote_track_removed' );
  55. expect( REMOTE_TRACK_UNMUTE ).toBe( 'rtc.remote_track_unmute' );
  56. expect( SET_LOCAL_DESCRIPTION_FAILED ).toBe( 'rtc.set_local_description_failed' );
  57. expect( SET_REMOTE_DESCRIPTION_FAILED ).toBe( 'rtc.set_remote_description_failed' );
  58. expect( AUDIO_OUTPUT_DEVICE_CHANGED ).toBe( 'rtc.audio_output_device_changed' );
  59. expect( DEVICE_LIST_CHANGED ).toBe( 'rtc.device_list_changed' );
  60. expect( DEVICE_LIST_WILL_CHANGE ).toBe( 'rtc.device_list_will_change' );
  61. expect( DEVICE_LIST_AVAILABLE ).toBe( 'rtc.device_list_available' );
  62. expect( ENDPOINT_MESSAGE_RECEIVED ).toBe( 'rtc.endpoint_message_received' );
  63. expect( ENDPOINT_STATS_RECEIVED ).toBe( 'rtc.endpoint_stats_received' );
  64. expect( LOCAL_UFRAG_CHANGED ).toBe( 'rtc.local_ufrag_changed' );
  65. expect( REMOTE_UFRAG_CHANGED ).toBe( 'rtc.remote_ufrag_changed' );
  66. expect( VIDEO_SSRCS_REMAPPED ).toBe( 'rtc.video_ssrcs_remapped' );
  67. expect( AUDIO_SSRCS_REMAPPED ).toBe( 'rtc.audio_ssrcs_remapped' );
  68. if ( RTCEvents ) {
  69. expect( RTCEvents.CREATE_ANSWER_FAILED ).toBe( 'rtc.create_answer_failed' );
  70. expect( RTCEvents.CREATE_OFFER_FAILED ).toBe( 'rtc.create_offer_failed' );
  71. expect( RTCEvents.DATA_CHANNEL_OPEN ).toBe( 'rtc.data_channel_open' );
  72. expect( RTCEvents.ENDPOINT_CONN_STATUS_CHANGED ).toBe( 'rtc.endpoint_conn_status_changed' );
  73. expect( RTCEvents.DOMINANT_SPEAKER_CHANGED ).toBe( 'rtc.dominant_speaker_changed' );
  74. expect( RTCEvents.LASTN_ENDPOINT_CHANGED ).toBe( 'rtc.lastn_endpoint_changed' );
  75. expect( RTCEvents.PERMISSIONS_CHANGED ).toBe( 'rtc.permissions_changed' );
  76. expect( RTCEvents.SENDER_VIDEO_CONSTRAINTS_CHANGED ).toBe( 'rtc.sender_video_constraints_changed' );
  77. expect( RTCEvents.LASTN_VALUE_CHANGED ).toBe( 'rtc.lastn_value_changed' );
  78. expect( RTCEvents.LOCAL_TRACK_SSRC_UPDATED ).toBe( 'rtc.local_track_ssrc_updated' );
  79. expect( RTCEvents.LOCAL_TRACK_MAX_ENABLED_RESOLUTION_CHANGED ).toBe( 'rtc.local_track_max_enabled_resolution_changed' );
  80. expect( RTCEvents.TRACK_ATTACHED ).toBe( 'rtc.track_attached' );
  81. expect( RTCEvents.REMOTE_TRACK_ADDED ).toBe( 'rtc.remote_track_added' );
  82. expect( RTCEvents.REMOTE_TRACK_MUTE ).toBe( 'rtc.remote_track_mute' );
  83. expect( RTCEvents.REMOTE_TRACK_REMOVED ).toBe( 'rtc.remote_track_removed' );
  84. expect( RTCEvents.REMOTE_TRACK_UNMUTE ).toBe( 'rtc.remote_track_unmute' );
  85. expect( RTCEvents.SET_LOCAL_DESCRIPTION_FAILED ).toBe( 'rtc.set_local_description_failed' );
  86. expect( RTCEvents.SET_REMOTE_DESCRIPTION_FAILED ).toBe( 'rtc.set_remote_description_failed' );
  87. expect( RTCEvents.AUDIO_OUTPUT_DEVICE_CHANGED ).toBe( 'rtc.audio_output_device_changed' );
  88. expect( RTCEvents.DEVICE_LIST_CHANGED ).toBe( 'rtc.device_list_changed' );
  89. expect( RTCEvents.DEVICE_LIST_WILL_CHANGE ).toBe( 'rtc.device_list_will_change' );
  90. expect( RTCEvents.DEVICE_LIST_AVAILABLE ).toBe( 'rtc.device_list_available' );
  91. expect( RTCEvents.ENDPOINT_MESSAGE_RECEIVED ).toBe( 'rtc.endpoint_message_received' );
  92. expect( RTCEvents.ENDPOINT_STATS_RECEIVED ).toBe( 'rtc.endpoint_stats_received' );
  93. expect( RTCEvents.LOCAL_UFRAG_CHANGED ).toBe( 'rtc.local_ufrag_changed' );
  94. expect( RTCEvents.REMOTE_UFRAG_CHANGED ).toBe( 'rtc.remote_ufrag_changed' );
  95. expect( RTCEvents.VIDEO_SSRCS_REMAPPED ).toBe( 'rtc.video_ssrcs_remapped' );
  96. expect( RTCEvents.AUDIO_SSRCS_REMAPPED ).toBe( 'rtc.audio_ssrcs_remapped' );
  97. }
  98. if ( RTCEventsDefault ) {
  99. expect( RTCEventsDefault.CREATE_ANSWER_FAILED ).toBe( 'rtc.create_answer_failed' );
  100. expect( RTCEventsDefault.CREATE_OFFER_FAILED ).toBe( 'rtc.create_offer_failed' );
  101. expect( RTCEventsDefault.DATA_CHANNEL_OPEN ).toBe( 'rtc.data_channel_open' );
  102. expect( RTCEventsDefault.ENDPOINT_CONN_STATUS_CHANGED ).toBe( 'rtc.endpoint_conn_status_changed' );
  103. expect( RTCEventsDefault.DOMINANT_SPEAKER_CHANGED ).toBe( 'rtc.dominant_speaker_changed' );
  104. expect( RTCEventsDefault.LASTN_ENDPOINT_CHANGED ).toBe( 'rtc.lastn_endpoint_changed' );
  105. expect( RTCEventsDefault.PERMISSIONS_CHANGED ).toBe( 'rtc.permissions_changed' );
  106. expect( RTCEventsDefault.SENDER_VIDEO_CONSTRAINTS_CHANGED ).toBe( 'rtc.sender_video_constraints_changed' );
  107. expect( RTCEventsDefault.LASTN_VALUE_CHANGED ).toBe( 'rtc.lastn_value_changed' );
  108. expect( RTCEventsDefault.LOCAL_TRACK_SSRC_UPDATED ).toBe( 'rtc.local_track_ssrc_updated' );
  109. expect( RTCEventsDefault.LOCAL_TRACK_MAX_ENABLED_RESOLUTION_CHANGED ).toBe( 'rtc.local_track_max_enabled_resolution_changed' );
  110. expect( RTCEventsDefault.TRACK_ATTACHED ).toBe( 'rtc.track_attached' );
  111. expect( RTCEventsDefault.REMOTE_TRACK_ADDED ).toBe( 'rtc.remote_track_added' );
  112. expect( RTCEventsDefault.REMOTE_TRACK_MUTE ).toBe( 'rtc.remote_track_mute' );
  113. expect( RTCEventsDefault.REMOTE_TRACK_REMOVED ).toBe( 'rtc.remote_track_removed' );
  114. expect( RTCEventsDefault.REMOTE_TRACK_UNMUTE ).toBe( 'rtc.remote_track_unmute' );
  115. expect( RTCEventsDefault.SET_LOCAL_DESCRIPTION_FAILED ).toBe( 'rtc.set_local_description_failed' );
  116. expect( RTCEventsDefault.SET_REMOTE_DESCRIPTION_FAILED ).toBe( 'rtc.set_remote_description_failed' );
  117. expect( RTCEventsDefault.AUDIO_OUTPUT_DEVICE_CHANGED ).toBe( 'rtc.audio_output_device_changed' );
  118. expect( RTCEventsDefault.DEVICE_LIST_CHANGED ).toBe( 'rtc.device_list_changed' );
  119. expect( RTCEventsDefault.DEVICE_LIST_WILL_CHANGE ).toBe( 'rtc.device_list_will_change' );
  120. expect( RTCEventsDefault.DEVICE_LIST_AVAILABLE ).toBe( 'rtc.device_list_available' );
  121. expect( RTCEventsDefault.ENDPOINT_MESSAGE_RECEIVED ).toBe( 'rtc.endpoint_message_received' );
  122. expect( RTCEventsDefault.ENDPOINT_STATS_RECEIVED ).toBe( 'rtc.endpoint_stats_received' );
  123. expect( RTCEventsDefault.LOCAL_UFRAG_CHANGED ).toBe( 'rtc.local_ufrag_changed' );
  124. expect( RTCEventsDefault.REMOTE_UFRAG_CHANGED ).toBe( 'rtc.remote_ufrag_changed' );
  125. expect( RTCEventsDefault.VIDEO_SSRCS_REMAPPED ).toBe( 'rtc.video_ssrcs_remapped' );
  126. expect( RTCEventsDefault.AUDIO_SSRCS_REMAPPED ).toBe( 'rtc.audio_ssrcs_remapped' );
  127. }
  128. } );
  129. it( "unknown members", () => {
  130. const keys = Object.keys( others );
  131. expect( keys ).withContext( `Extra members: ${ keys.join( ", " ) }` ).toEqual( [] );
  132. } );
  133. } );