From 858b308f86ac7cc24d19c478261e24a85f0345f3 Mon Sep 17 00:00:00 2001 From: Feross Aboukhadijeh Date: Wed, 26 Mar 2014 01:17:59 -0700 Subject: [PATCH] add tests --- test/basic.js | 82 ++++++++++++++++++++++++++++ test/torrents/bitlove-intro.torrent | Bin 0 -> 597 bytes 2 files changed, 82 insertions(+) create mode 100644 test/basic.js create mode 100644 test/torrents/bitlove-intro.torrent diff --git a/test/basic.js b/test/basic.js new file mode 100644 index 0000000..60fd8d9 --- /dev/null +++ b/test/basic.js @@ -0,0 +1,82 @@ +var Client = require('../').Client +var fs = require('fs') +var parseTorrent = require('parse-torrent') +var test = require('tape') + +var torrent = fs.readFileSync(__dirname + '/torrents/bitlove-intro.torrent') +var parsedTorrent = parseTorrent(torrent) + +var peerId = new Buffer('01234567890123456789') +var port = 6881 + +test('client.start()', function (t) { + t.plan(4) + + var client = new Client(peerId, port, parsedTorrent) + + client.on('error', function (err) { + t.fail(err.message) + }) + + client.once('update', function (data) { + t.equal(data.announce, 'http://t.bitlove.org/announce') + t.equal(typeof data.complete, 'number') + t.equal(typeof data.incomplete, 'number') + }) + + client.once('peer', function (addr) { + t.pass('there is at least one peer') // TODO: this shouldn't rely on an external server! + client.stop() + }) + + client.start() +}) + +test('client.stop()', function (t) { + t.plan(3) + + var client = new Client(peerId, port, parsedTorrent) + + client.on('error', function (err) { + t.fail(err.message) + }) + + client.start() + + setTimeout(function () { + client.stop() + + client.once('update', function (data) { + // receive one final update after calling stop + t.equal(data.announce, 'http://t.bitlove.org/announce') + t.equal(typeof data.complete, 'number') + t.equal(typeof data.incomplete, 'number') + }) + }, 1000) +}) + +test('client.update()', function (t) { + t.plan(3) + + var client = new Client(peerId, port, parsedTorrent, { interval: 5000 }) + + client.on('error', function (err) { + t.fail(err.message) + }) + + client.start() + + client.once('update', function () { + + client.once('update', function (data) { + // received an update! + t.equal(data.announce, 'http://t.bitlove.org/announce') + t.equal(typeof data.complete, 'number') + t.equal(typeof data.incomplete, 'number') + client.stop() + }) + + }) +}) + +// TODO: add test where tracker doesn't support compact diff --git a/test/torrents/bitlove-intro.torrent b/test/torrents/bitlove-intro.torrent new file mode 100644 index 0000000000000000000000000000000000000000..1c91bf1360446ed6fe793ff0b451437e64b8511a GIT binary patch literal 597 zcmYeXuu9C!%P-AKPBpT$$|xx*u+rBr(M!rK$;mHE)ypqR*N4fQSY_s=<)@fg<)r4N zmt5o_tmZY{?8?DSy!I8 zxmPxxPQOrTEWc84S+c88!&JN5MRw_llHqswA8PHo#+IjfT=|1EC&wFu2hYs|y*fhI z-|7=t5?5bYx23vi(}l&GPQ{zm$$Lhcik_05yq59sJ61l^5B@QFqB~b_R90$WIg8*yG;G;q(_@)U9mCUw_Bs*yNHcu+HT+Yk_S6Vnt1|_N^0a0PSNcQOTL?& zdobxp^`pzv*Y9Ur`EqITGAo-5Tdk#xYZbLbrYdyT|K3=9F1$%oY-*~ueUkBhzr`tY z%4aTY>1R82Z~BZ<)!XLBXFiF(pnoWC%|ShhV+W;u7ytGtzCW3L^W^z&Y_5K|FFq$= z$()?UsTNkHMLD`TnZ+eJW+t#iP+X9hoSKwhS*4ekTB2W