diff options
Diffstat (limited to 'test/node/basic.js')
-rw-r--r-- | test/node/basic.js | 116 |
1 files changed, 116 insertions, 0 deletions
diff --git a/test/node/basic.js b/test/node/basic.js new file mode 100644 index 0000000..c03eb93 --- /dev/null +++ b/test/node/basic.js @@ -0,0 +1,116 @@ +var common = require('../common') +var http = require('http') +var test = require('tape') +var WebTorrent = require('../../') + +test('client.add: http url to a torrent file, string', function (t) { + t.plan(8) + + var server = http.createServer(function (req, res) { + t.ok(req.headers['user-agent'].indexOf('WebTorrent') !== -1) + res.end(common.leaves.torrent) + }) + + server.listen(0, function () { + var port = server.address().port + var url = 'http://127.0.0.1:' + port + 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.add(url, function (torrent) { + t.equal(client.torrents.length, 1) + t.equal(torrent.infoHash, common.leaves.parsedTorrent.infoHash) + t.equal(torrent.magnetURI, common.leaves.magnetURI) + + client.remove(torrent, function (err) { t.error(err, 'torrent destroyed') }) + t.equal(client.torrents.length, 0) + + server.close(function () { t.pass('http server closed') }) + client.destroy(function (err) { t.error(err, 'client destroyed') }) + }) + }) +}) + +test('client.add: filesystem path to a torrent file, string', 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.add(common.leaves.torrentPath, function (torrent) { + t.equal(client.torrents.length, 1) + t.equal(torrent.infoHash, common.leaves.parsedTorrent.infoHash) + t.equal(torrent.magnetURI, common.leaves.magnetURI) + + client.remove(torrent, function (err) { t.error(err, 'torrent destroyed') }) + t.equal(client.torrents.length, 0) + + client.destroy(function (err) { t.error(err, 'client destroyed') }) + }) +}) + +test('client.seed: filesystem path to file, string', 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(common.leaves.contentPath, { + name: 'Leaves of Grass by Walt Whitman.epub' + }, function (torrent) { + t.equal(client.torrents.length, 1) + t.equal(torrent.infoHash, common.leaves.parsedTorrent.infoHash) + t.equal(torrent.magnetURI, common.leaves.magnetURI) + + client.remove(torrent, function (err) { t.error(err, 'torrent destroyed') }) + t.equal(client.torrents.length, 0) + + client.destroy(function (err) { t.error(err, 'client destroyed') }) + }) +}) + +test('client.seed: filesystem path to folder with one file, string', 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(common.folder.contentPath, function (torrent) { + t.equal(client.torrents.length, 1) + t.equal(torrent.infoHash, common.folder.parsedTorrent.infoHash) + t.equal(torrent.magnetURI, common.folder.magnetURI) + + client.remove(torrent, function (err) { t.error(err, 'torrent destroyed') }) + t.equal(client.torrents.length, 0) + + client.destroy(function (err) { t.error(err, 'client destroyed') }) + }) +}) + +test('client.seed: filesystem path to folder with multiple files, string', 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(common.numbers.contentPath, function (torrent) { + t.equal(client.torrents.length, 1) + t.equal(torrent.infoHash, common.numbers.parsedTorrent.infoHash) + t.equal(torrent.magnetURI, common.numbers.magnetURI) + + client.remove(torrent, function (err) { t.error(err, 'torrent destroyed') }) + t.equal(client.torrents.length, 0) + + client.destroy(function (err) { t.error(err, 'client destroyed') }) + }) +}) |