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

Fixes for PR #799 #809

Merged
merged 3 commits into from May 19, 2016
Merged
Changes from 1 commit
Commits
File filter...
Filter file types
Jump to…
Jump to file or symbol
Failed to load files and symbols.

Always

Just for now

Prev

add more metadata tests

- test multiple &xs= params in magnet link
- test param that 404s
  • Loading branch information
feross committed May 19, 2016
commit 722cd0ab2f46b7a0bdafb6069b5ee1530c34fd15
@@ -5,56 +5,107 @@ var WebTorrent = require('../../')

function createServer (data, cb) {
var server = http.createServer(function (req, res) {
if (req.url !== '/') {
res.statusCode = 404
res.end()
}
res.end(data)
}).listen(function () {
})

server.on('listening', function () {
var address = server.address()
if (address.family === 'IPv6') {
address.address = '[' + address.address + ']'
}
var url = 'http://' + address.address + ':' + address.port + '/'
cb(url, next)
cb(url, server)
})

function next () {
server.close()
}
server.listen()
}

test('Download metadata for magnet URI with xs parameter', function (t) {
t.plan(2)
t.plan(3)

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

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

createServer(fixtures.leaves.torrent, function (url, next) {
client.add(fixtures.leaves.magnetURI + '&xs=' + encodeURIComponent(url), function (torrent) {
createServer(fixtures.leaves.torrent, function (url, server) {
var encodedUrl = encodeURIComponent(url)
client.add(fixtures.leaves.magnetURI + '&xs=' + encodedUrl, function (torrent) {
t.equal(torrent.files[0].name, 'Leaves of Grass by Walt Whitman.epub')

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

test('Download metadata for magnet URI with xs parameter', function (t) {
t.plan(2)
test('Download metadata for magnet URI with 2 xs parameters', function (t) {
t.plan(4)

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

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

createServer(fixtures.leaves.torrent, function (url, next) {
var encoded = encodeURIComponent(url)
var uri = fixtures.leaves.magnetURI + '&xs=' + encoded + '&xs=' + encoded + '2'
createServer(fixtures.leaves.torrent, function (url1, server1) {
var encodedUrl1 = encodeURIComponent(url1)

createServer(fixtures.leaves.torrent, function (url2, server2) {
var encodedUrl2 = encodeURIComponent(url2)

var uri = fixtures.leaves.magnetURI + '&xs=' + encodedUrl1 + '&xs=' + encodedUrl2

client.add(uri, function (torrent) {
t.equal(torrent.files[0].name, 'Leaves of Grass by Walt Whitman.epub')
client.destroy(function (err) { t.error(err, 'client destroyed') })
server1.close(function () { t.pass('server closed') })
server2.close(function () { t.pass('server closed') })
})
})
})
})

test('Download metadata for magnet URI with 2 xs parameters, with 1 invalid protocol', function (t) {
t.plan(3)

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

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

createServer(fixtures.leaves.torrent, function (url, server) {
var encodedUrl1 = encodeURIComponent('invalidurl:example')
var encodedUrl2 = encodeURIComponent(url)
var uri = fixtures.leaves.magnetURI + '&xs=' + encodedUrl1 + '&xs=' + encodedUrl2

client.add(uri, function (torrent) {
t.equal(torrent.files[0].name, 'Leaves of Grass by Walt Whitman.epub')
client.destroy(function (err) { t.error(err, 'client destroyed') })
server.close(function () { t.pass('server closed') })
})
})
})

test('Download metadata for magnet URI with 2 xs parameters, with 1 404 URL', function (t) {
t.plan(3)

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

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

createServer(fixtures.leaves.torrent, function (url, server) {
var encodedUrl1 = encodeURIComponent(url + 'blah_404')
var encodedUrl2 = encodeURIComponent(url)
var uri = fixtures.leaves.magnetURI + '&xs=' + encodedUrl1 + '&xs=' + encodedUrl2

client.add(uri, function (torrent) {
t.equal(torrent.files[0].name, 'Leaves of Grass by Walt Whitman.epub')
client.destroy(function (err) { t.error(err, 'client destroyed') })
next()
server.close(function () { t.pass('server closed') })
})
})
})
ProTip! Use n and p to navigate between commits in a pull request.
You can’t perform that action at this time.