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:
authorAlex <alxmorais8@msn.com>2019-09-08 00:45:37 +0300
committerAlex <alxmorais8@msn.com>2019-09-08 00:45:37 +0300
commit9fa006813eeda248102f75ce0055939f33483f76 (patch)
treed8853c2a9d3b6e0e19c52d24b021d618874d2199 /test
parent4bff7bd38c6efae467adf17df4b679aab5ac6266 (diff)
Add tests for torrent events order
For #1737
Diffstat (limited to 'test')
-rw-r--r--test/torrent-events.js83
1 files changed, 83 insertions, 0 deletions
diff --git a/test/torrent-events.js b/test/torrent-events.js
new file mode 100644
index 0000000..febf1c4
--- /dev/null
+++ b/test/torrent-events.js
@@ -0,0 +1,83 @@
+const fixtures = require('webtorrent-fixtures')
+const test = require('tape')
+const WebTorrent = require('../')
+const MemoryChunkStore = require('memory-chunk-store')
+
+test('client.add: emit torrent events in order', function (t) {
+ t.plan(6)
+
+ var client1 = new WebTorrent({ dht: false, tracker: false })
+ var client2 = new WebTorrent({ dht: false, tracker: false })
+
+ client1.on('error', function (err) { t.fail(err) })
+ client1.on('warning', function (err) { t.fail(err) })
+
+ client2.on('error', function (err) { t.fail(err) })
+ client2.on('warning', function (err) { t.fail(err) })
+
+ // Start seeding
+ client2.seed(fixtures.leaves.content, {
+ name: 'Leaves of Grass by Walt Whitman.epub',
+ announce: []
+ })
+
+ client2.on('listening', function () {
+ // Start downloading
+ var torrent = client1.add(fixtures.leaves.parsedTorrent.infoHash, { store: MemoryChunkStore })
+
+ // Manually connect peers
+ torrent.addPeer('127.0.0.1:' + client2.address().port)
+
+ var order = 0
+
+ torrent.on('infoHash', function () {
+ t.equal(++order, 1)
+ })
+
+ torrent.on('metadata', function () {
+ t.equal(++order, 2)
+ })
+
+ torrent.on('ready', function () {
+ t.equal(++order, 3)
+ })
+
+ torrent.on('done', function () {
+ t.equal(++order, 4)
+
+ client1.destroy(function (err) { t.error(err, 'client 1 destroyed') })
+ client2.destroy(function (err) { t.error(err, 'client 2 destroyed') })
+ })
+ })
+})
+
+test('client.seed: emit torrent events in order', function (t) {
+ t.plan(5)
+
+ var client = new WebTorrent({ dht: false, tracker: false })
+
+ client.on('error', function (err) { t.fail(err) })
+ client.on('warning', function (err) { t.fail(err) })
+
+ var torrent = client.seed(fixtures.leaves.content)
+
+ var order = 0
+
+ torrent.on('infoHash', function () {
+ t.equal(++order, 1)
+ })
+
+ torrent.on('metadata', function () {
+ t.equal(++order, 2)
+ })
+
+ torrent.on('ready', function () {
+ t.equal(++order, 3)
+ })
+
+ torrent.on('done', function () {
+ t.equal(++order, 4)
+
+ client.destroy(function (err) { t.error(err, 'client destroyed') })
+ })
+})