Skip to content

Commit 6f565ed

Browse files
committed
add test: tracker client from magnet uri
1 parent 3318ef6 commit 6f565ed

File tree

4 files changed

+58
-7
lines changed

4 files changed

+58
-7
lines changed

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
"bn.js": "^0.4.3"
2323
},
2424
"devDependencies": {
25+
"magnet-uri": "^2.0.1",
2526
"parse-torrent": "^1.1.0",
2627
"portfinder": "^0.2.1",
2728
"tape": "2.x"

test/client-magnet.js

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
var Client = require('../').Client
2+
var fs = require('fs')
3+
var magnet = require('magnet-uri')
4+
var test = require('tape')
5+
6+
var uri = 'magnet:?xt=urn:btih:d2474e86c95b19b8bcfdb92bc12c9d44667cfa36&dn=Leaves+of+Grass+by+Walt+Whitman.epub&tr=udp%3A%2F%2Ftracker.openbittorrent.com%3A80'
7+
var parsedTorrent = magnet(uri)
8+
var peerId = new Buffer('01234567890123456789')
9+
var announceUrl = 'udp://tracker.openbittorrent.com:80' // TODO: shouldn't rely on an external server!
10+
var port = 6881
11+
12+
test('magnet + udp: client.start/update/stop()', function (t) {
13+
t.plan(10)
14+
15+
var client = new Client(peerId, port, parsedTorrent)
16+
17+
client.on('error', function (err) {
18+
t.error(err)
19+
})
20+
21+
client.once('update', function (data) {
22+
t.equal(data.announce, announceUrl)
23+
t.equal(typeof data.complete, 'number')
24+
t.equal(typeof data.incomplete, 'number')
25+
})
26+
27+
client.once('peer', function (addr) {
28+
t.pass('there is at least one peer') // TODO: this shouldn't rely on an external server!
29+
30+
client.once('update', function (data) {
31+
// receive one final update after calling stop
32+
t.equal(data.announce, announceUrl)
33+
t.equal(typeof data.complete, 'number')
34+
t.equal(typeof data.incomplete, 'number')
35+
36+
client.once('update', function (data) {
37+
// received an update!
38+
t.equal(data.announce, announceUrl)
39+
t.equal(typeof data.complete, 'number')
40+
t.equal(typeof data.incomplete, 'number')
41+
})
42+
43+
client.stop()
44+
})
45+
46+
client.update()
47+
})
48+
49+
client.start()
50+
})

test/client.js

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,15 @@ var fs = require('fs')
33
var parseTorrent = require('parse-torrent')
44
var test = require('tape')
55

6+
// TODO: add test where tracker doesn't support compact
7+
68
var torrent = fs.readFileSync(__dirname + '/torrents/bitlove-intro.torrent')
79
var parsedTorrent = parseTorrent(torrent)
810
var peerId = new Buffer('01234567890123456789')
911
var announceUrl = 'http://t.bitlove.org/announce' // TODO: shouldn't rely on an external server!
1012
var port = 6881
1113

12-
test('client.start()', function (t) {
14+
test('torrent: client.start()', function (t) {
1315
t.plan(4)
1416

1517
var client = new Client(peerId, port, parsedTorrent)
@@ -32,7 +34,7 @@ test('client.start()', function (t) {
3234
client.start()
3335
})
3436

35-
test('client.stop()', function (t) {
37+
test('torrent: client.stop()', function (t) {
3638
t.plan(4)
3739

3840
var client = new Client(peerId, port, parsedTorrent)
@@ -59,7 +61,7 @@ test('client.stop()', function (t) {
5961
}, 1000)
6062
})
6163

62-
test('client.update()', function (t) {
64+
test('torrent: client.update()', function (t) {
6365
t.plan(3)
6466

6567
var client = new Client(peerId, port, parsedTorrent, { interval: 5000 })
@@ -83,7 +85,7 @@ test('client.update()', function (t) {
8385
})
8486
})
8587

86-
test('client.scrape()', function (t) {
88+
test('torrent: client.scrape()', function (t) {
8789
t.plan(4)
8890

8991
var client = new Client(peerId, port, parsedTorrent)
@@ -101,5 +103,3 @@ test('client.scrape()', function (t) {
101103

102104
client.scrape()
103105
})
104-
105-
// TODO: add test where tracker doesn't support compact

test/udp-client.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ test('udp: client.start/update/stop()', function (t) {
4343
t.equal(typeof data.complete, 'number')
4444
t.equal(typeof data.incomplete, 'number')
4545
})
46-
46+
4747
client.stop()
4848
})
4949

0 commit comments

Comments
 (0)