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:
authorJulen Garcia Leunda <hicom150@gmail.com>2020-10-27 01:48:14 +0300
committerJulen Garcia Leunda <hicom150@gmail.com>2020-10-30 14:53:37 +0300
commit271bb563a76b32fcc891c4f7084063ad1dd42ef4 (patch)
tree05738f4a73cc9f403c986e6bb141d4d123064d20 /test
parent666c27865d179278716f6a3eceebf3003bacd028 (diff)
Implement peer-address (x.pe) BEP09
Diffstat (limited to 'test')
-rw-r--r--test/node/download-from-ip.js51
1 files changed, 51 insertions, 0 deletions
diff --git a/test/node/download-from-ip.js b/test/node/download-from-ip.js
index 77a1281..b7334e1 100644
--- a/test/node/download-from-ip.js
+++ b/test/node/download-from-ip.js
@@ -52,3 +52,54 @@ test('Download via torrent.addPeer()', (t) => {
})
})
})
+
+test('Download via magnet x.pe (BEP09)', (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, torrentPort: 63000 })
+
+ 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) })
+
+ // add x.pe to the magnet
+ const peerAddress = '127.0.0.1:63000'
+ const magnetURI = fixtures.leaves.magnetURI + `&x.pe=${peerAddress}`
+
+ downloader.add(magnetURI, { store: MemoryChunkStore }, (torrent) => {
+ 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'))
+ })
+ })
+ })
+ })
+ })
+})