From 79484a5280a37221a6a31c3b1ea000dd52e77b40 Mon Sep 17 00:00:00 2001 From: DC Date: Wed, 14 Sep 2016 22:37:59 -0700 Subject: Test option to disable web seeds --- test/node/download-webseed-torrent.js | 47 +++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) (limited to 'test/node') diff --git a/test/node/download-webseed-torrent.js b/test/node/download-webseed-torrent.js index 4c23319..39bec56 100644 --- a/test/node/download-webseed-torrent.js +++ b/test/node/download-webseed-torrent.js @@ -9,8 +9,12 @@ var serveStatic = require('serve-static') var test = require('tape') var WebTorrent = require('../../') +// it should be fast to download a small torrent over local HTTP +var WEB_SEED_TIMEOUT_MS = 500 + test('Download using webseed (via .torrent file)', function (t) { t.plan(6) + t.timeoutAfter(WEB_SEED_TIMEOUT_MS) var parsedTorrent = extend(fixtures.leaves.parsedTorrent) @@ -72,3 +76,46 @@ test('Download using webseed (via .torrent file)', function (t) { }) }) }) + +test('Disable webseeds', function (t) { + var parsedTorrent = extend(fixtures.leaves.parsedTorrent) + + var httpServer = http.createServer(function (req, res) { + t.fail('webseed http server should not get any requests') + }) + var client + + httpServer.on('error', function (err) { t.fail(err) }) + + series([ + function (cb) { + httpServer.listen(cb) + }, + + function (cb) { + parsedTorrent.urlList = [ + 'http://localhost:' + httpServer.address().port + '/' + fixtures.leaves.parsedTorrent.name + ] + + client = new WebTorrent({ dht: false, tracker: false, webSeeds: false }) + + client.on('error', function (err) { t.fail(err) }) + client.on('warning', function (err) { t.fail(err) }) + + client.add(parsedTorrent, {store: MemoryChunkStore}) + + // The test above ensures that we can download the whole torrent over webseeds within a + // short time. Here, we wait the same amount of time and make sure no HTTP requests happen. + setTimeout(cb, WEB_SEED_TIMEOUT_MS) + } + ], function (err) { + t.error(err) + client.destroy(function (err) { + t.error(err, 'client destroyed') + }) + httpServer.close(function () { + t.pass('http server closed') + t.end() + }) + }) +}) -- cgit v1.2.3