11var Client = require ( '../' )
2+ var common = require ( './common' )
23var fs = require ( 'fs' )
34var parseTorrent = require ( 'parse-torrent' )
45var path = require ( 'path' )
5- var Server = require ( '../' ) . Server
66var test = require ( 'tape' )
77
88var bitlove = fs . readFileSync ( path . join ( __dirname , 'torrents/bitlove-intro.torrent' ) )
@@ -15,55 +15,38 @@ var peerId = new Buffer('01234567890123456789')
1515
1616function testFilterOption ( t , serverType ) {
1717 t . plan ( 8 )
18- var opts = serverType === 'http' ? { udp : false , ws : false } : { http : false , ws : false }
18+
19+ var opts = { serverType : serverType } // this is test-suite-only option
1920 opts . filter = function ( infoHash , params , cb ) {
2021 process . nextTick ( function ( ) {
2122 cb ( infoHash !== parsedBitlove . infoHash )
2223 } )
2324 }
24- var server = new Server ( opts )
25-
26- server . on ( 'error' , function ( err ) {
27- t . error ( err )
28- } )
29-
30- server . listen ( 0 , function ( ) {
31- var port = server [ serverType ] . address ( ) . port
32- var announceUrl = serverType === 'http'
33- ? 'http://127.0.0.1:' + port + '/announce'
34- : 'udp://127.0.0.1:' + port
3525
26+ common . createServer ( t , opts , function ( server , announceUrl ) {
3627 parsedBitlove . announce = [ announceUrl ]
3728 parsedLeaves . announce = [ announceUrl ]
3829
39- var client = new Client ( peerId , port , parsedBitlove )
30+ var client = new Client ( peerId , 6881 , parsedBitlove , { wrtc : { } } )
4031
41- client . on ( 'error' , function ( err ) {
42- t . error ( err )
43- } )
32+ client . on ( 'error' , function ( err ) { t . error ( err ) } )
33+ if ( serverType === 'ws' ) common . mockWebsocketTracker ( client )
4434
4535 client . once ( 'warning' , function ( err ) {
4636 t . ok ( / d i s a l l o w e d i n f o _ h a s h / . test ( err . message ) , 'got client warning' )
4737
4838 client . destroy ( function ( ) {
4939 t . pass ( 'client destroyed' )
50- client = new Client ( peerId , port , parsedLeaves )
40+ client = new Client ( peerId , 6881 , parsedLeaves , { wrtc : { } } )
41+ if ( serverType === 'ws' ) common . mockWebsocketTracker ( client )
5142
52- client . on ( 'error' , function ( err ) {
53- t . error ( err )
54- } )
55- client . on ( 'warning' , function ( err ) {
56- t . error ( err )
57- } )
43+ client . on ( 'error' , function ( err ) { t . error ( err ) } )
44+ client . on ( 'warning' , function ( err ) { t . error ( err ) } )
5845
5946 client . on ( 'update' , function ( ) {
6047 t . pass ( 'got announce' )
61- client . destroy ( function ( ) {
62- t . pass ( 'client destroyed' )
63- } )
64- server . close ( function ( ) {
65- t . pass ( 'server closed' )
66- } )
48+ client . destroy ( function ( ) { t . pass ( 'client destroyed' ) } )
49+ server . close ( function ( ) { t . pass ( 'server closed' ) } )
6750 } )
6851
6952 server . on ( 'start' , function ( ) {
@@ -74,6 +57,7 @@ function testFilterOption (t, serverType) {
7457 } )
7558 } )
7659
60+ server . removeAllListeners ( 'warning' )
7761 server . once ( 'warning' , function ( err ) {
7862 t . ok ( / d i s a l l o w e d i n f o _ h a s h / . test ( err . message ) , 'got server warning' )
7963 t . equal ( Object . keys ( server . torrents ) . length , 0 )
@@ -91,58 +75,45 @@ test('udp: filter option blocks tracker from tracking torrent', function (t) {
9175 testFilterOption ( t , 'udp' )
9276} )
9377
78+ test ( 'ws: filter option blocks tracker from tracking torrent' , function ( t ) {
79+ testFilterOption ( t , 'ws' )
80+ } )
81+
9482function testFilterCustomError ( t , serverType ) {
9583 t . plan ( 8 )
96- var opts = serverType === 'http' ? { udp : false , ws : false } : { http : false , ws : false }
84+
85+ var opts = { serverType : serverType } // this is test-suite-only option
9786 opts . filter = function ( infoHash , params , cb ) {
9887 process . nextTick ( function ( ) {
9988 if ( infoHash === parsedBitlove . infoHash ) cb ( new Error ( 'bitlove blocked' ) )
10089 else cb ( true )
10190 } )
10291 }
103- var server = new Server ( opts )
104-
105- server . on ( 'error' , function ( err ) {
106- t . error ( err )
107- } )
108-
109- server . listen ( 0 , function ( ) {
110- var port = server [ serverType ] . address ( ) . port
111- var announceUrl = serverType === 'http'
112- ? 'http://127.0.0.1:' + port + '/announce'
113- : 'udp://127.0.0.1:' + port
11492
93+ common . createServer ( t , opts , function ( server , announceUrl ) {
11594 parsedBitlove . announce = [ announceUrl ]
11695 parsedLeaves . announce = [ announceUrl ]
11796
118- var client = new Client ( peerId , port , parsedBitlove )
97+ var client = new Client ( peerId , 6881 , parsedBitlove , { wrtc : { } } )
11998
120- client . on ( 'error' , function ( err ) {
121- t . error ( err )
122- } )
99+ client . on ( 'error' , function ( err ) { t . error ( err ) } )
100+ if ( serverType === 'ws' ) common . mockWebsocketTracker ( client )
123101
124102 client . once ( 'warning' , function ( err ) {
125103 t . ok ( / b i t l o v e b l o c k e d / . test ( err . message ) , 'got client warning' )
126104
127105 client . destroy ( function ( ) {
128106 t . pass ( 'client destroyed' )
129- client = new Client ( peerId , port , parsedLeaves )
107+ client = new Client ( peerId , 6881 , parsedLeaves , { wrtc : { } } )
108+ if ( serverType === 'ws' ) common . mockWebsocketTracker ( client )
130109
131- client . on ( 'error' , function ( err ) {
132- t . error ( err )
133- } )
134- client . on ( 'warning' , function ( err ) {
135- t . error ( err )
136- } )
110+ client . on ( 'error' , function ( err ) { t . error ( err ) } )
111+ client . on ( 'warning' , function ( err ) { t . error ( err ) } )
137112
138113 client . on ( 'update' , function ( ) {
139114 t . pass ( 'got announce' )
140- client . destroy ( function ( ) {
141- t . pass ( 'client destroyed' )
142- } )
143- server . close ( function ( ) {
144- t . pass ( 'server closed' )
145- } )
115+ client . destroy ( function ( ) { t . pass ( 'client destroyed' ) } )
116+ server . close ( function ( ) { t . pass ( 'server closed' ) } )
146117 } )
147118
148119 server . on ( 'start' , function ( ) {
@@ -153,6 +124,7 @@ function testFilterCustomError (t, serverType) {
153124 } )
154125 } )
155126
127+ server . removeAllListeners ( 'warning' )
156128 server . once ( 'warning' , function ( err ) {
157129 t . ok ( / b i t l o v e b l o c k e d / . test ( err . message ) , 'got server warning' )
158130 t . equal ( Object . keys ( server . torrents ) . length , 0 )
@@ -169,3 +141,7 @@ test('http: filter option with custom error', function (t) {
169141test ( 'udp: filter option filter option with custom error' , function ( t ) {
170142 testFilterCustomError ( t , 'udp' )
171143} )
144+
145+ test ( 'ws: filter option filter option with custom error' , function ( t ) {
146+ testFilterCustomError ( t , 'ws' )
147+ } )
0 commit comments