11var Client = require ( '../' )
2+ var common = require ( './common' )
23var magnet = require ( 'magnet-uri' )
3- var Server = require ( '../' ) . Server
44var test = require ( 'tape' )
55
66var uri = 'magnet:?xt=urn:btih:d2474e86c95b19b8bcfdb92bc12c9d44667cfa36&dn=Leaves+of+Grass+by+Walt+Whitman.epub'
77var parsedTorrent = magnet ( uri )
88var peerId = new Buffer ( '01234567890123456789' )
99
10- test ( 'magnet + udp: client.start/update/stop()' , function ( t ) {
11- t . plan ( 10 )
10+ function testMagnet ( t , serverType ) {
11+ t . plan ( 9 )
1212
13- var server = new Server ( { http : false , ws : false } )
14-
15- server . on ( 'error' , function ( err ) {
16- t . fail ( err . message )
17- } )
18-
19- server . on ( 'warning' , function ( err ) {
20- t . fail ( err . message )
21- } )
22-
23- server . listen ( 0 , function ( ) {
24- var port = server . udp . address ( ) . port
25- var announceUrl = 'udp://127.0.0.1:' + port
26-
27- // remove all tracker servers except a single UDP one
13+ common . createServer ( t , serverType , function ( server , announceUrl ) {
2814 parsedTorrent . announce = [ announceUrl ]
2915
30- var client = new Client ( peerId , 6881 , parsedTorrent )
16+ var client = new Client ( peerId , 6881 , parsedTorrent , { wrtc : { } } )
3117
32- client . on ( 'error' , function ( err ) {
33- t . error ( err )
34- } )
18+ if ( serverType === 'ws' ) common . mockWebsocketTracker ( client )
19+ client . on ( 'error' , function ( err ) { t . error ( err ) } )
20+ client . on ( 'warning' , function ( err ) { t . error ( err ) } )
3521
3622 client . once ( 'update' , function ( data ) {
3723 t . equal ( data . announce , announceUrl )
3824 t . equal ( typeof data . complete , 'number' )
3925 t . equal ( typeof data . incomplete , 'number' )
40- } )
41-
42- client . start ( )
43-
44- client . once ( 'peer' , function ( ) {
45- t . pass ( 'there is at least one peer' )
4626
4727 client . update ( )
4828
4929 client . once ( 'update' , function ( data ) {
50- // receive one final update after calling stop
5130 t . equal ( data . announce , announceUrl )
5231 t . equal ( typeof data . complete , 'number' )
5332 t . equal ( typeof data . incomplete , 'number' )
5433
5534 client . stop ( )
5635
5736 client . once ( 'update' , function ( data ) {
58- // received an update!
5937 t . equal ( data . announce , announceUrl )
6038 t . equal ( typeof data . complete , 'number' )
6139 t . equal ( typeof data . incomplete , 'number' )
@@ -65,5 +43,19 @@ test('magnet + udp: client.start/update/stop()', function (t) {
6543 } )
6644 } )
6745 } )
46+
47+ client . start ( )
6848 } )
49+ }
50+
51+ test ( 'http: magnet: client.start/update/stop()' , function ( t ) {
52+ testMagnet ( t , 'http' )
53+ } )
54+
55+ test ( 'udp: magnet: client.start/update/stop()' , function ( t ) {
56+ testMagnet ( t , 'udp' )
57+ } )
58+
59+ test ( 'ws: magnet: client.start/update/stop()' , function ( t ) {
60+ testMagnet ( t , 'ws' )
6961} )
0 commit comments