diff options
author | Feross Aboukhadijeh <feross@feross.org> | 2016-04-21 09:35:25 +0300 |
---|---|---|
committer | Feross Aboukhadijeh <feross@feross.org> | 2016-04-21 09:35:25 +0300 |
commit | e311e0b7cb26437118e565674bffdfc0723492f7 (patch) | |
tree | 02196cf99d5317e74877c0193913d6fe7add73b4 /test | |
parent | 6085dc79c577ceab5f9f5f305748af5a7d5b33e7 (diff) |
fix duplicate client.add handling and re-enable test
Diffstat (limited to 'test')
-rw-r--r-- | test/duplicate.js | 280 |
1 files changed, 176 insertions, 104 deletions
diff --git a/test/duplicate.js b/test/duplicate.js index ca06b3d..a189660 100644 --- a/test/duplicate.js +++ b/test/duplicate.js @@ -1,104 +1,176 @@ -// var fixtures = require('webtorrent-fixtures') -// var test = require('tape') -// var WebTorrent = require('../') - -// test('client.seed followed by duplicate client.add', function (t) { -// t.plan(6) - -// var client = new WebTorrent({ dht: false, tracker: false }) -// client.on('error', function (err) { t.fail(err) }) -// client.on('warning', function (err) { t.fail(err) }) - -// client.seed(fixtures.leaves.content, { -// name: 'Leaves of Grass by Walt Whitman.epub', -// announce: [] -// }, function (torrent1) { -// t.equal(client.torrents.length, 1) - -// var torrent2 = client.add(torrent1.infoHash) - -// torrent2.once('ready', function () { -// t.fail('torrent ready is not called') -// }) - -// torrent2.once('error', function (err) { -// t.ok(err, 'got expected error on duplicate add') -// t.equal(client.torrents.length, 1) -// t.ok(torrent2.destroyed) -// client.destroy(function (err) { -// t.error(err, 'destroyed client') -// t.equal(client.torrents.length, 0) -// }) -// }) -// }) -// }) - -// TODO -// test('client.seed followed by two duplicate client.add calls', function (t) { -// t.plan(9) - -// var client = new WebTorrent({ dht: false, tracker: false }) -// client.on('error', function (err) { t.fail(err) }) -// client.on('warning', function (err) { t.fail(err) }) - -// client.seed(fixtures.leaves.content, { -// name: 'Leaves of Grass by Walt Whitman.epub', -// announce: [] -// }, function (torrent1) { -// t.equal(client.torrents.length, 1) - -// var torrent2 = client.add(torrent1.infoHash) - -// torrent2.once('ready', function () { -// t.fail('torrent ready is not called') -// }) - -// torrent2.once('error', function (err) { -// t.ok(err, 'got expected error on duplicate add') -// t.equal(client.torrents.length, 1) -// t.ok(torrent2.destroyed) - -// var torrent3 = client.add(torrent1.infoHash) - -// torrent3.once('ready', function () { -// t.fail('torrent ready is not called') -// }) - -// torrent3.once('error', function (err) { -// t.ok(err, 'got expected error on duplicate add') -// t.equal(client.torrents.length, 1) -// t.ok(torrent3.destroyed) -// client.destroy(function (err) { -// t.error(err, 'destroyed client') -// t.equal(client.torrents.length, 0) -// }) -// }) -// }) -// }) -// }) - -// TODO -// test('successive sync client.add, client.remove, client.add, client.remove', function (t) { -// t.plan(3) - -// var client = new WebTorrent({ dht: false, tracker: false }) -// client.on('error', function (err) { t.fail(err) }) -// client.on('warning', function (err) { t.fail(err) }) - -// client.seed(fixtures.leaves.content, { -// name: 'Leaves of Grass by Walt Whitman.epub', -// announce: [] -// }, function (torrent1) { -// t.equal(client.torrents.length, 1) - -// client.add(torrent1.infoHash) -// client.remove(torrent1.infoHash) -// client.add(torrent1.infoHash) -// client.remove(torrent1.infoHash, function () { -// client.destroy(function (err) { -// t.error(err, 'destroyed client') -// t.equal(client.torrents.length, 0) -// }) -// }) -// }) -// }) +var fixtures = require('webtorrent-fixtures') +var test = require('tape') +var WebTorrent = require('../') + +test('client.seed followed by duplicate client.add (sync)', function (t) { + t.plan(6) + + var client = new WebTorrent({ dht: false, tracker: false }) + client.on('error', function (err) { t.fail(err) }) + client.on('warning', function (err) { t.fail(err) }) + + client.seed(fixtures.leaves.content, { + name: 'Leaves of Grass by Walt Whitman.epub', + announce: [] + }, function (torrent1) { + t.equal(client.torrents.length, 1) + + var torrent2 = client.add(torrent1.infoHash) + + torrent2.once('ready', function () { + t.fail('torrent ready is not called') + }) + + torrent2.once('error', function (err) { + t.ok(err, 'got expected error on duplicate add') + t.equal(client.torrents.length, 1) + t.ok(torrent2.destroyed) + client.destroy(function (err) { + t.error(err, 'destroyed client') + t.equal(client.torrents.length, 0) + }) + }) + }) +}) + +test('client.seed followed by duplicate client.add (async)', function (t) { + t.plan(6) + + var client = new WebTorrent({ dht: false, tracker: false }) + client.on('error', function (err) { t.fail(err) }) + client.on('warning', function (err) { t.fail(err) }) + + client.seed(fixtures.leaves.content, { + name: 'Leaves of Grass by Walt Whitman.epub', + announce: [] + }, function (torrent1) { + t.equal(client.torrents.length, 1) + + var torrent2 = client.add(fixtures.leaves.torrentPath) + + torrent2.once('ready', function () { + t.fail('torrent ready is not called') + }) + + torrent2.once('error', function (err) { + t.ok(err, 'got expected error on duplicate add') + t.equal(client.torrents.length, 1) + t.ok(torrent2.destroyed) + client.destroy(function (err) { + t.error(err, 'destroyed client') + t.equal(client.torrents.length, 0) + }) + }) + }) +}) + +test('client.seed followed by two duplicate client.add calls (sync)', function (t) { + t.plan(9) + + var client = new WebTorrent({ dht: false, tracker: false }) + client.on('error', function (err) { t.fail(err) }) + client.on('warning', function (err) { t.fail(err) }) + + client.seed(fixtures.leaves.content, { + name: 'Leaves of Grass by Walt Whitman.epub', + announce: [] + }, function (torrent1) { + t.equal(client.torrents.length, 1) + + var torrent2 = client.add(torrent1.infoHash) + + torrent2.once('ready', function () { + t.fail('torrent ready is not called') + }) + + torrent2.once('error', function (err) { + t.ok(err, 'got expected error on duplicate add') + t.equal(client.torrents.length, 1) + t.ok(torrent2.destroyed) + + var torrent3 = client.add(torrent1.infoHash) + + torrent3.once('ready', function () { + t.fail('torrent ready is not called') + }) + + torrent3.once('error', function (err) { + t.ok(err, 'got expected error on duplicate add') + t.equal(client.torrents.length, 1) + t.ok(torrent3.destroyed) + client.destroy(function (err) { + t.error(err, 'destroyed client') + t.equal(client.torrents.length, 0) + }) + }) + }) + }) +}) + +test('client.seed followed by two duplicate client.add calls (async)', function (t) { + t.plan(9) + + var client = new WebTorrent({ dht: false, tracker: false }) + client.on('error', function (err) { t.fail(err) }) + client.on('warning', function (err) { t.fail(err) }) + + client.seed(fixtures.leaves.content, { + name: 'Leaves of Grass by Walt Whitman.epub', + announce: [] + }, function (torrent1) { + t.equal(client.torrents.length, 1) + + var torrent2 = client.add(fixtures.leaves.torrentPath) + + torrent2.once('ready', function () { + t.fail('torrent ready is not called') + }) + + torrent2.once('error', function (err) { + t.ok(err, 'got expected error on duplicate add') + t.equal(client.torrents.length, 1) + t.ok(torrent2.destroyed) + + var torrent3 = client.add(fixtures.leaves.torrentPath) + + torrent3.once('ready', function () { + t.fail('torrent ready is not called') + }) + + torrent3.once('error', function (err) { + t.ok(err, 'got expected error on duplicate add') + t.equal(client.torrents.length, 1) + t.ok(torrent3.destroyed) + client.destroy(function (err) { + t.error(err, 'destroyed client') + t.equal(client.torrents.length, 0) + }) + }) + }) + }) +}) + +test('successive sync client.add, client.remove, client.add, client.remove (sync)', function (t) { + t.plan(3) + + var client = new WebTorrent({ dht: false, tracker: false }) + client.on('error', function (err) { t.fail(err) }) + client.on('warning', function (err) { t.fail(err) }) + + client.seed(fixtures.leaves.content, { + name: 'Leaves of Grass by Walt Whitman.epub', + announce: [] + }, function (torrent1) { + t.equal(client.torrents.length, 1) + + client.add(torrent1.infoHash) + client.remove(torrent1.infoHash) + client.add(torrent1.infoHash) + client.remove(torrent1.infoHash, function () { + client.destroy(function (err) { + t.error(err, 'destroyed client') + t.equal(client.torrents.length, 0) + }) + }) + }) +}) |