diff options
author | DC <dcposch@dcpos.ch> | 2016-09-15 08:37:59 +0300 |
---|---|---|
committer | DC <dcposch@dcpos.ch> | 2016-09-17 13:13:17 +0300 |
commit | 79484a5280a37221a6a31c3b1ea000dd52e77b40 (patch) | |
tree | dcc61aee4af5ec72f96debd29aeb27a4a8cd6cec /test/node/download-webseed-torrent.js | |
parent | 5bdc78c49c898bf0e35cdf8c3845a4e9017c9c23 (diff) |
Test option to disable web seeds
Diffstat (limited to 'test/node/download-webseed-torrent.js')
-rw-r--r-- | test/node/download-webseed-torrent.js | 47 |
1 files changed, 47 insertions, 0 deletions
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() + }) + }) +}) |