Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/webtorrent/webtorrent.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorKayleePop <34007889+KayleePop@users.noreply.github.com>2020-05-26 01:49:29 +0300
committerKayleePop <34007889+KayleePop@users.noreply.github.com>2020-05-26 01:49:29 +0300
commitf4742f7f31d70ec793d209388c0ef7d09a357e6b (patch)
treedf28927f9e21e73f43d0c026426aa6db870f91cc /test
parentc9462bd8a789b6599b9ff1cb00b6280597dee519 (diff)
add test for downloading from a manually added peer
Diffstat (limited to 'test')
-rw-r--r--test/node/download-from-ip.js54
1 files changed, 54 insertions, 0 deletions
diff --git a/test/node/download-from-ip.js b/test/node/download-from-ip.js
new file mode 100644
index 0000000..270b774
--- /dev/null
+++ b/test/node/download-from-ip.js
@@ -0,0 +1,54 @@
+const fixtures = require('webtorrent-fixtures')
+const fs = require('fs')
+const MemoryChunkStore = require('memory-chunk-store')
+const test = require('tape')
+const WebTorrent = require('../../')
+
+test('Download via torrent.addPeer()', (t) => {
+ t.plan(7)
+ // if initial interest isn't set, then this test is delayed
+ t.timeoutAfter(5000)
+
+ const seeder = new WebTorrent({ tracker: false, dht: false })
+
+ seeder.on('error', (err) => t.fail(err))
+ seeder.on('warning', (err) => t.fail(err))
+
+ const torrent = seeder.add(fixtures.leaves.parsedTorrent, { store: MemoryChunkStore })
+
+ torrent.on('ready', function () {
+ // torrent metadata has been fetched -- sanity check it
+ t.equal(torrent.name, 'Leaves of Grass by Walt Whitman.epub')
+
+ var names = ['Leaves of Grass by Walt Whitman.epub']
+ t.deepEqual(torrent.files.map(function (file) { return file.name }), names)
+ })
+
+ torrent.load(fs.createReadStream(fixtures.leaves.contentPath), (err) => {
+ t.error(err)
+
+ // torrent data now loaded into seeder
+
+ const downloader = new WebTorrent({ tracker: false, dht: false })
+
+ downloader.on('error', function (err) { t.fail(err) })
+ downloader.on('warning', function (err) { t.fail(err) })
+
+ downloader.add(fixtures.leaves.parsedTorrent, { store: MemoryChunkStore }, (torrent) => {
+ torrent.addPeer(`localhost:${seeder.torrentPort}`)
+
+ torrent.once('done', function () {
+ torrent.files.forEach((file) => {
+ file.getBuffer((err, buf) => {
+ t.error(err)
+
+ t.deepEqual(buf, fixtures.leaves.content, 'downloaded correct content')
+
+ seeder.destroy((err) => t.error(err, 'seeder destroyed'))
+ downloader.destroy((err) => t.error(err, 'downloader destroyed'))
+ })
+ })
+ })
+ })
+ })
+})