@@ -405,6 +405,12 @@ describe('socket.io', function(){
405
405
expect ( sio . emit ) . to . be . a ( 'function' ) ;
406
406
expect ( sio . send ) . to . be . a ( 'function' ) ;
407
407
expect ( sio . write ) . to . be . a ( 'function' ) ;
408
+ expect ( sio . clients ) . to . be . a ( 'function' ) ;
409
+ expect ( sio . compress ) . to . be . a ( 'function' ) ;
410
+ expect ( sio . json ) . to . be ( sio ) ;
411
+ expect ( sio . volatile ) . to . be ( sio ) ;
412
+ expect ( sio . sockets . flags ) . to . eql ( { json : true , volatile : true } ) ;
413
+ delete sio . sockets . flags ;
408
414
} ) ;
409
415
410
416
it ( 'should automatically connect' , function ( done ) {
@@ -730,6 +736,87 @@ describe('socket.io', function(){
730
736
} ) ;
731
737
}
732
738
} ) ;
739
+
740
+ it ( 'should not emit volatile event after regular event' , function ( done ) {
741
+ var srv = http ( ) ;
742
+ var sio = io ( srv ) ;
743
+
744
+ var counter = 0 ;
745
+ srv . listen ( function ( ) {
746
+ sio . of ( '/chat' ) . on ( 'connection' , function ( s ) {
747
+ // Wait to make sure there are no packets being sent for opening the connection
748
+ setTimeout ( function ( ) {
749
+ sio . of ( '/chat' ) . emit ( 'ev' , 'data' ) ;
750
+ sio . of ( '/chat' ) . volatile . emit ( 'ev' , 'data' ) ;
751
+ } , 20 ) ;
752
+ } ) ;
753
+
754
+ var socket = client ( srv , '/chat' ) ;
755
+ socket . on ( 'ev' , function ( ) {
756
+ counter ++ ;
757
+ } ) ;
758
+ } ) ;
759
+
760
+ setTimeout ( function ( ) {
761
+ expect ( counter ) . to . be ( 1 ) ;
762
+ done ( ) ;
763
+ } , 200 ) ;
764
+ } ) ;
765
+
766
+ it ( 'should emit volatile event' , function ( done ) {
767
+ var srv = http ( ) ;
768
+ var sio = io ( srv ) ;
769
+
770
+ var counter = 0 ;
771
+ srv . listen ( function ( ) {
772
+ sio . of ( '/chat' ) . on ( 'connection' , function ( s ) {
773
+ // Wait to make sure there are no packets being sent for opening the connection
774
+ setTimeout ( function ( ) {
775
+ sio . of ( '/chat' ) . volatile . emit ( 'ev' , 'data' ) ;
776
+ } , 20 ) ;
777
+ } ) ;
778
+
779
+ var socket = client ( srv , '/chat' ) ;
780
+ socket . on ( 'ev' , function ( ) {
781
+ counter ++ ;
782
+ } ) ;
783
+ } ) ;
784
+
785
+ setTimeout ( function ( ) {
786
+ expect ( counter ) . to . be ( 1 ) ;
787
+ done ( ) ;
788
+ } , 200 ) ;
789
+ } ) ;
790
+
791
+ it ( 'should enable compression by default' , function ( done ) {
792
+ var srv = http ( ) ;
793
+ var sio = io ( srv ) ;
794
+ srv . listen ( function ( ) {
795
+ var socket = client ( srv , '/chat' ) ;
796
+ sio . of ( '/chat' ) . on ( 'connection' , function ( s ) {
797
+ s . conn . once ( 'packetCreate' , function ( packet ) {
798
+ expect ( packet . options . compress ) . to . be ( true ) ;
799
+ done ( ) ;
800
+ } ) ;
801
+ sio . of ( '/chat' ) . emit ( 'woot' , 'hi' ) ;
802
+ } ) ;
803
+ } ) ;
804
+ } ) ;
805
+
806
+ it ( 'should disable compression' , function ( done ) {
807
+ var srv = http ( ) ;
808
+ var sio = io ( srv ) ;
809
+ srv . listen ( function ( ) {
810
+ var socket = client ( srv , '/chat' ) ;
811
+ sio . of ( '/chat' ) . on ( 'connection' , function ( s ) {
812
+ s . conn . once ( 'packetCreate' , function ( packet ) {
813
+ expect ( packet . options . compress ) . to . be ( false ) ;
814
+ done ( ) ;
815
+ } ) ;
816
+ sio . of ( '/chat' ) . compress ( false ) . emit ( 'woot' , 'hi' ) ;
817
+ } ) ;
818
+ } ) ;
819
+ } ) ;
733
820
} ) ;
734
821
735
822
describe ( 'socket' , function ( ) {
0 commit comments