@@ -12,6 +12,8 @@ describe("WebRTCAdaptor", function() {
12
12
var initialized = false ;
13
13
14
14
var currentTest ;
15
+
16
+ var processStarted = false ;
15
17
16
18
beforeEach ( function ( ) {
17
19
clock = sinon . useFakeTimers ( ) ;
@@ -197,7 +199,7 @@ describe("WebRTCAdaptor", function() {
197
199
} ) ;
198
200
199
201
200
- it . only ( "should set connected and connecting to false and log the correct message" , function ( ) {
202
+ it ( "should set connected and connecting to false and log the correct message" , function ( ) {
201
203
202
204
var adaptor = new WebRTCAdaptor ( {
203
205
websocketURL : "ws://example.com" ,
@@ -1711,6 +1713,200 @@ describe("WebRTCAdaptor", function() {
1711
1713
1712
1714
1713
1715
} ) ;
1716
+
1717
+ it ( "WebRTCGetStats" , async function ( )
1718
+ {
1719
+
1720
+ clock . restore ( ) ;
1721
+
1722
+ this . timeout ( 15000 ) ;
1723
+
1724
+ var websocketURL = "wss://test.antmedia.io/live/websocket" ;
1725
+ processStarted = false ;
1726
+ initialized = false ;
1727
+ var adaptor = new WebRTCAdaptor ( {
1728
+ websocketURL : websocketURL ,
1729
+ callback : ( info , obj ) => {
1730
+ console . log ( "callback info: " + info ) ;
1731
+ if ( info == "initialized" ) {
1732
+ initialized = true ;
1733
+ }
1734
+ else if ( info == "publish_started" ) {
1735
+ console . log ( "publish started" ) ;
1736
+ processStarted = true ;
1737
+ }
1738
+ else if ( info == "publish_finished" ) {
1739
+ console . log ( "publish finished" )
1740
+ }
1741
+ } ,
1742
+ } ) ;
1743
+
1744
+ await new Promise ( ( resolve , reject ) => {
1745
+ setTimeout ( ( ) => {
1746
+ resolve ( ) ;
1747
+ } , 3000 ) ;
1748
+ } ) ;
1749
+
1750
+ expect ( initialized ) . to . be . true ;
1751
+
1752
+ var streamId = "stream1desadafg23424" ;
1753
+
1754
+ adaptor . publish ( streamId ) ;
1755
+
1756
+ await new Promise ( ( resolve , reject ) => {
1757
+
1758
+ setTimeout ( ( ) => {
1759
+ expect ( processStarted ) . to . be . true ;
1760
+ resolve ( ) ;
1761
+ } , 3000 ) ;
1762
+ } ) ;
1763
+
1764
+ //getStats
1765
+ var peerStats = await adaptor . getStats ( streamId ) ;
1766
+
1767
+ console . log ( "publish peerStats: " + JSON . stringify ( peerStats ) ) ;
1768
+ expect ( peerStats . streamId ) . to . be . equal ( streamId ) ;
1769
+ expect ( peerStats . audioPacketsSent ) . to . be . above ( 0 ) ;
1770
+ expect ( peerStats . videoPacketsSent ) . to . be . above ( 0 ) ;
1771
+ expect ( peerStats . frameWidth ) . to . be . above ( 0 ) ;
1772
+ expect ( peerStats . frameHeight ) . to . be . above ( 0 ) ;
1773
+ expect ( peerStats . currentRoundTripTime ) . to . be . above ( 0 ) ;
1774
+ expect ( peerStats . currentRoundTripTime ) . to . be . most ( 1 ) ;
1775
+
1776
+ expect ( peerStats . videoPacketsLost ) . to . be . least ( 0 ) ;
1777
+ expect ( peerStats . audioPacketsLost ) . to . be . least ( 0 ) ;
1778
+ expect ( peerStats . videoJitter ) . to . be . least ( 0 ) ;
1779
+ expect ( peerStats . audioJitter ) . to . be . least ( 0 ) ;
1780
+ expect ( peerStats . totalBytesSentCount ) . to . be . above ( 0 ) ;
1781
+ expect ( peerStats . lastFramesEncoded ) . to . be . above ( 0 ) ;
1782
+ expect ( peerStats . totalFramesEncodedCount ) . to . be . above ( 0 ) ;
1783
+ expect ( peerStats . frameWidth ) . to . be . equal ( 640 ) ;
1784
+ expect ( peerStats . frameHeight ) . to . be . equal ( 480 ) ;
1785
+ expect ( peerStats . qualityLimitationReason ) . to . be . equal ( "none" ) ;
1786
+ expect ( peerStats . firstByteSentCount ) . to . be . not . equal ( 0 ) ;
1787
+ expect ( peerStats . srcFps ) . to . be . above ( 0 ) ;
1788
+ expect ( peerStats . videoRoundTripTime ) . to . be . above ( 0 ) ;
1789
+ //expect(peerStats.audioRoundTripTime).to.be.above(0);
1790
+ expect ( peerStats . availableOutgoingBitrate ) . to . be . above ( 0 ) ;
1791
+
1792
+
1793
+
1794
+
1795
+ expect ( peerStats . totalBytesReceivedCount ) . to . be . equal ( - 1 ) ;
1796
+ expect ( peerStats . lastBytesSent ) . to . be . equal ( 0 ) ;
1797
+ expect ( peerStats . videoPacketsLost ) . to . be . equal ( 0 ) ;
1798
+ expect ( peerStats . fractionLost ) . to . be . equal ( - 1 ) ;
1799
+ expect ( peerStats . startTime ) . to . be . not . equal ( 0 ) ;
1800
+ expect ( peerStats . lastBytesReceived ) . to . be . equal ( 0 ) ;
1801
+ expect ( peerStats . currentTimestamp ) . to . be . not . equal ( 0 ) ;
1802
+ expect ( peerStats . lastTime ) . to . be . equal ( 0 ) ;
1803
+ expect ( peerStats . timerId ) . to . be . equal ( 0 ) ;
1804
+ expect ( peerStats . firstBytesReceivedCount ) . to . be . equal ( - 1 ) ;
1805
+ expect ( peerStats . audioLevel ) . to . be . equal ( - 1 ) ;
1806
+ expect ( peerStats . resWidth ) . to . be . equal ( 640 ) ;
1807
+ expect ( peerStats . resHeight ) . to . be . equal ( 480 ) ;
1808
+ expect ( peerStats . framesReceived ) . to . be . equal ( - 1 ) ;
1809
+ expect ( peerStats . framesDropped ) . to . be . equal ( - 1 ) ;
1810
+ expect ( peerStats . framesDecoded ) . to . be . equal ( - 1 ) ;
1811
+ expect ( peerStats . audioJitterAverageDelay ) . to . be . equal ( - 1 ) ;
1812
+ expect ( peerStats . videoJitterAverageDelay ) . to . be . equal ( - 1 ) ;
1813
+ expect ( peerStats . inboundRtpList ) . to . be . empty ;
1814
+ expect ( peerStats . audioPacketsReceived ) . to . be . equal ( - 1 ) ;
1815
+ expect ( peerStats . videoPacketsReceived ) . to . be . equal ( - 1 ) ;
1816
+
1817
+ //getStats
1818
+ processStarted = false ;
1819
+ initialized = false ;
1820
+ var playAdaptor = new WebRTCAdaptor ( {
1821
+ websocketURL : websocketURL ,
1822
+ callback : ( info , obj ) => {
1823
+ console . log ( "callback info: " + info ) ;
1824
+ if ( info == "initialized" ) {
1825
+ initialized = true ;
1826
+ }
1827
+ else if ( info == "play_started" ) {
1828
+ console . log ( "play started" ) ;
1829
+ processStarted = true ;
1830
+ }
1831
+ else if ( info == "play_finished" ) {
1832
+ console . log ( "play finished" )
1833
+ }
1834
+ } ,
1835
+ } ) ;
1836
+ await new Promise ( ( resolve , reject ) => {
1837
+ setTimeout ( ( ) => {
1838
+ resolve ( ) ;
1839
+ } , 3000 ) ;
1840
+ } ) ;
1841
+
1842
+ expect ( initialized ) . to . be . true ;
1843
+
1844
+ playAdaptor . play ( streamId ) ;
1845
+
1846
+ await new Promise ( ( resolve , reject ) => {
1847
+
1848
+ setTimeout ( ( ) => {
1849
+ expect ( processStarted ) . to . be . true ;
1850
+ resolve ( ) ;
1851
+ } , 3000 ) ;
1852
+ } ) ;
1853
+
1854
+ peerStats = await playAdaptor . getStats ( streamId ) ;
1855
+
1856
+ console . log ( "play peerStats: " + JSON . stringify ( peerStats ) ) ;
1857
+ expect ( peerStats . streamId ) . to . be . equal ( streamId ) ;
1858
+ expect ( peerStats . frameWidth ) . to . be . equal ( 640 ) ;
1859
+ expect ( peerStats . frameHeight ) . to . be . equal ( 480 ) ;
1860
+ expect ( peerStats . currentRoundTripTime ) . to . be . above ( 0 ) ;
1861
+ expect ( peerStats . currentRoundTripTime ) . to . be . most ( 1 ) ;
1862
+
1863
+ expect ( peerStats . videoPacketsLost ) . to . be . least ( 0 ) ;
1864
+ expect ( peerStats . audioPacketsLost ) . to . be . least ( 0 ) ;
1865
+ expect ( peerStats . videoJitter ) . to . be . least ( 0 ) ;
1866
+ expect ( peerStats . audioJitter ) . to . be . least ( 0 ) ;
1867
+ expect ( peerStats . lastFramesEncoded ) . to . be . equal ( - 1 ) ;
1868
+ expect ( peerStats . totalFramesEncodedCount ) . to . be . equal ( - 1 ) ;
1869
+ expect ( peerStats . frameWidth ) . to . be . equal ( 640 ) ;
1870
+ expect ( peerStats . frameHeight ) . to . be . equal ( 480 ) ;
1871
+ expect ( peerStats . qualityLimitationReason ) . to . be . equal ( "" ) ;
1872
+ expect ( peerStats . firstByteSentCount ) . to . be . not . equal ( 0 ) ;
1873
+ expect ( peerStats . srcFps ) . to . be . equal ( - 1 ) ;
1874
+ expect ( peerStats . videoRoundTripTime ) . to . be . equal ( - 1 ) ;
1875
+ expect ( peerStats . audioRoundTripTime ) . to . be . equal ( - 1 ) ;
1876
+ expect ( peerStats . availableOutgoingBitrate ) . to . be . above ( - 1 ) ;
1877
+
1878
+
1879
+
1880
+
1881
+ expect ( peerStats . totalBytesReceivedCount ) . to . be . above ( 0 ) ;
1882
+ expect ( peerStats . lastBytesSent ) . to . be . equal ( 0 ) ;
1883
+ expect ( peerStats . videoPacketsLost ) . to . be . equal ( 0 ) ;
1884
+ //expect(peerStats.fractionLost).to.be.equal(-1);
1885
+ expect ( peerStats . startTime ) . to . be . not . equal ( 0 ) ;
1886
+ expect ( peerStats . lastBytesReceived ) . to . be . equal ( 0 ) ;
1887
+ expect ( peerStats . currentTimestamp ) . to . be . not . equal ( 0 ) ;
1888
+ expect ( peerStats . lastTime ) . to . be . equal ( 0 ) ;
1889
+ expect ( peerStats . timerId ) . to . be . equal ( 0 ) ;
1890
+ expect ( peerStats . firstBytesReceivedCount ) . to . be . above ( 0 ) ;
1891
+ expect ( peerStats . audioLevel ) . to . be . equal ( - 1 ) ;
1892
+ expect ( peerStats . resWidth ) . to . be . equal ( - 1 ) ;
1893
+ expect ( peerStats . resHeight ) . to . be . equal ( - 1 ) ;
1894
+ expect ( peerStats . framesReceived ) . to . be . above ( 0 ) ;
1895
+ expect ( peerStats . framesDropped ) . to . be . least ( 0 ) ;
1896
+ expect ( peerStats . framesDecoded ) . to . be . above ( 0 ) ;
1897
+ expect ( peerStats . audioJitterAverageDelay ) . to . be . equal ( - 1 ) ;
1898
+ expect ( peerStats . videoJitterAverageDelay ) . to . be . equal ( - 1 ) ;
1899
+ expect ( peerStats . audioPacketsReceived ) . to . be . above ( 0 ) ;
1900
+ expect ( peerStats . videoPacketsReceived ) . to . be . above ( 0 ) ;
1901
+
1902
+
1903
+ expect ( peerStats . totalBytesSentCount ) . to . be . equal ( - 1 ) ;
1904
+ expect ( peerStats . totalAudioPacketsSent ) . to . be . equal ( - 1 ) ;
1905
+ expect ( peerStats . totalVideoPacketsSent ) . to . be . equal ( - 1 ) ;
1906
+
1907
+
1908
+
1909
+ } ) ;
1714
1910
1715
1911
1716
1912
0 commit comments