@@ -878,6 +878,81 @@ describe('socket.io', function(){
878
878
} ) ;
879
879
} ) ;
880
880
} ) ;
881
+
882
+ describe ( 'dynamic' , function ( ) {
883
+ it ( 'should allow connections to dynamic namespaces' , function ( done ) {
884
+ var srv = http ( ) ;
885
+ var sio = io ( srv ) ;
886
+ srv . listen ( function ( ) {
887
+ var namespace = '/dynamic' ;
888
+ var dynamic = client ( srv , namespace ) ;
889
+ sio . useNamespaceValidator ( function ( nsp , next ) {
890
+ expect ( nsp ) . to . be ( namespace ) ;
891
+ next ( null , true ) ;
892
+ } ) ;
893
+ dynamic . on ( 'error' , function ( err ) {
894
+ expect ( ) . fail ( ) ;
895
+ } ) ;
896
+ dynamic . on ( 'connect' , function ( ) {
897
+ expect ( sio . nsps [ namespace ] ) . to . be . a ( Namespace ) ;
898
+ expect ( Object . keys ( sio . nsps [ namespace ] . sockets ) . length ) . to . be ( 1 ) ;
899
+ done ( ) ;
900
+ } ) ;
901
+ } ) ;
902
+ } ) ;
903
+
904
+ it ( 'should not allow connections to dynamic namespaces if not supported' , function ( done ) {
905
+ var srv = http ( ) ;
906
+ var sio = io ( srv ) ;
907
+ srv . listen ( function ( ) {
908
+ var namespace = '/dynamic' ;
909
+ sio . useNamespaceValidator ( function ( nsp , next ) {
910
+ expect ( nsp ) . to . be ( namespace ) ;
911
+ next ( null , false ) ;
912
+ } ) ;
913
+ sio . on ( 'connect' , function ( socket ) {
914
+ if ( socket . nsp . name === namespace ) {
915
+ expect ( ) . fail ( ) ;
916
+ }
917
+ } ) ;
918
+
919
+ var dynamic = client ( srv , namespace ) ;
920
+ dynamic . on ( 'connect' , function ( ) {
921
+ expect ( ) . fail ( ) ;
922
+ } ) ;
923
+ dynamic . on ( 'error' , function ( err ) {
924
+ expect ( err ) . to . be ( "Invalid namespace" ) ;
925
+ done ( ) ;
926
+ } ) ;
927
+ } ) ;
928
+ } ) ;
929
+
930
+ it ( 'should not allow connections to dynamic namespaces if there is an error' , function ( done ) {
931
+ var srv = http ( ) ;
932
+ var sio = io ( srv ) ;
933
+ srv . listen ( function ( ) {
934
+ var namespace = '/dynamic' ;
935
+ sio . useNamespaceValidator ( function ( nsp , next ) {
936
+ expect ( nsp ) . to . be ( namespace ) ;
937
+ next ( new Error ( ) , true ) ;
938
+ } ) ;
939
+ sio . on ( 'connect' , function ( socket ) {
940
+ if ( socket . nsp . name === namespace ) {
941
+ expect ( ) . fail ( ) ;
942
+ }
943
+ } ) ;
944
+
945
+ var dynamic = client ( srv , namespace ) ;
946
+ dynamic . on ( 'connect' , function ( ) {
947
+ expect ( ) . fail ( ) ;
948
+ } ) ;
949
+ dynamic . on ( 'error' , function ( err ) {
950
+ expect ( err ) . to . be ( "Invalid namespace" ) ;
951
+ done ( ) ;
952
+ } ) ;
953
+ } ) ;
954
+ } ) ;
955
+ } ) ;
881
956
} ) ;
882
957
883
958
describe ( 'socket' , function ( ) {
0 commit comments