Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Improve tests; misc fixes #532

Merged
merged 9 commits into from Dec 18, 2015

tests: lots of cleanup

  • Loading branch information
feross committed Dec 10, 2015
commit e31197d5cd9cd1b923cd56bc59d45a51b671ae1c
@@ -10,9 +10,9 @@ var inherits = require('inherits')
var loadIPSet = require('load-ip-set') // browser exclude
var parallel = require('run-parallel')
var parseTorrent = require('parse-torrent')
var path = require('path')
var speedometer = require('speedometer')
var zeroFill = require('zero-fill')
var path = require('path')

var Torrent = require('./lib/torrent')

@@ -4,7 +4,7 @@ var test = require('tape')
var WebTorrent = require('../')

test('client.add: http url to a torrent file, string', function (t) {
t.plan(3)
t.plan(8)

var server = http.createServer(function (req, res) {
t.ok(req.headers['user-agent'].indexOf('WebTorrent') !== -1)
@@ -20,104 +20,97 @@ test('client.add: http url to a torrent file, string', function (t) {
client.on('warning', function (err) { t.fail(err) })

client.add(url, function (torrent) {
t.equal(client.torrents.length, 1)
t.equal(torrent.infoHash, common.leaves.parsedTorrent.infoHash)
t.equal(torrent.magnetURI, common.leaves.magnetURI)
client.destroy()
server.close()

client.remove(torrent, function (err) { t.error(err, 'torrent destroyed') })
t.equal(client.torrents.length, 0)

server.close(function () { t.pass('http server closed') })
client.destroy(function (err) { t.error(err, 'client destroyed') })
})
})
})

test('client.add: filesystem path to a torrent file, string', function (t) {
t.plan(2)
t.plan(6)

var client = new WebTorrent({ dht: false, tracker: false })

client.on('error', function (err) { t.fail(err) })
client.on('warning', function (err) { t.fail(err) })

client.add(common.leaves.torrentPath, function (torrent) {
t.equal(client.torrents.length, 1)
t.equal(torrent.infoHash, common.leaves.parsedTorrent.infoHash)
t.equal(torrent.magnetURI, common.leaves.magnetURI)
client.destroy()

client.remove(torrent, function (err) { t.error(err, 'torrent destroyed') })
t.equal(client.torrents.length, 0)

client.destroy(function (err) { t.error(err, 'client destroyed') })
})
})

test('client.seed: filesystem path to file, string', function (t) {
t.plan(2)

var opts = {
name: 'Leaves of Grass by Walt Whitman.epub',
announce: [
'http://tracker.thepiratebay.org/announce',
'udp://tracker.openbittorrent.com:80',
'udp://tracker.ccc.de:80',
'udp://tracker.publicbt.com:80',
'udp://fr33domtracker.h33t.com:3310/announce',
'http://tracker.bittorrent.am/announce'
]
}
t.plan(6)

var client = new WebTorrent({ dht: false, tracker: false })

client.on('error', function (err) { t.fail(err) })
client.on('warning', function (err) { t.fail(err) })

client.seed(common.leaves.contentPath, opts, function (torrent) {
client.seed(common.leaves.contentPath, {
name: 'Leaves of Grass by Walt Whitman.epub'
}, function (torrent) {
t.equal(client.torrents.length, 1)
t.equal(torrent.infoHash, common.leaves.parsedTorrent.infoHash)
t.equal(torrent.magnetURI, common.leaves.magnetURI)
client.destroy()

client.remove(torrent, function (err) { t.error(err, 'torrent destroyed') })
t.equal(client.torrents.length, 0)

client.destroy(function (err) { t.error(err, 'client destroyed') })
})
})

test('client.seed: filesystem path to folder with one file, string', function (t) {
t.plan(2)

var opts = {
pieceLength: 32768, // force piece length to 32KB so info-hash will
// match what transmission generated, since we use
// a different algo for picking piece length

private: false, // also force `private: false` to match transmission
announce: [
'udp://tracker.webtorrent.io:80'
]
}
t.plan(6)

var client = new WebTorrent({ dht: false, tracker: false })

client.on('error', function (err) { t.fail(err) })
client.on('warning', function (err) { t.fail(err) })

client.seed(common.folder.contentPath, opts, function (torrent) {
t.equal(torrent.infoHash, '3a686c32404af0a66913dd5f8d2b40673f8d4490')
t.equal(torrent.magnetURI, 'magnet:?xt=urn:btih:3a686c32404af0a66913dd5f8d2b40673f8d4490&dn=folder&tr=udp%3A%2F%2Ftracker.webtorrent.io%3A80')
client.destroy()
client.seed(common.folder.contentPath, function (torrent) {
t.equal(client.torrents.length, 1)
t.equal(torrent.infoHash, common.folder.parsedTorrent.infoHash)
t.equal(torrent.magnetURI, common.folder.magnetURI)

client.remove(torrent, function (err) { t.error(err, 'torrent destroyed') })
t.equal(client.torrents.length, 0)

client.destroy(function (err) { t.error(err, 'client destroyed') })
})
})

test('client.seed: filesystem path to folder with multiple files, string', function (t) {
t.plan(2)

var opts = {
pieceLength: 32768, // force piece length to 32KB so info-hash will
// match what transmission generated, since we use
// a different algo for picking piece length

private: false, // also force `private: false` to match transmission
announce: [
'udp://tracker.webtorrent.io:80'
]
}
t.plan(6)

var client = new WebTorrent({ dht: false, tracker: false })

client.on('error', function (err) { t.fail(err) })
client.on('warning', function (err) { t.fail(err) })

client.seed(common.numbers.contentPath, opts, function (torrent) {
t.equal(torrent.infoHash, '80562f38656b385ea78959010e51a2cc9db41ea0')
t.equal(torrent.magnetURI, 'magnet:?xt=urn:btih:80562f38656b385ea78959010e51a2cc9db41ea0&dn=numbers&tr=udp%3A%2F%2Ftracker.webtorrent.io%3A80')
client.destroy()
client.seed(common.numbers.contentPath, function (torrent) {
t.equal(client.torrents.length, 1)
t.equal(torrent.infoHash, common.numbers.parsedTorrent.infoHash)
t.equal(torrent.magnetURI, common.numbers.magnetURI)

client.remove(torrent, function (err) { t.error(err, 'torrent destroyed') })
t.equal(client.torrents.length, 0)

client.destroy(function (err) { t.error(err, 'client destroyed') })
})
})
ProTip! Use n and p to navigate between commits in a pull request.
You can’t perform that action at this time.