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
diff options
context:
space:
mode:
Diffstat (limited to 'test/node/cmd.js')
-rw-r--r--test/node/cmd.js108
1 files changed, 108 insertions, 0 deletions
diff --git a/test/node/cmd.js b/test/node/cmd.js
new file mode 100644
index 0000000..94a70cc
--- /dev/null
+++ b/test/node/cmd.js
@@ -0,0 +1,108 @@
+var common = require('../common')
+var cp = require('child_process')
+var extend = require('xtend')
+var parseTorrent = require('parse-torrent')
+var path = require('path')
+var spawn = require('cross-spawn-async')
+var test = require('tape')
+
+var CMD_PATH = path.resolve(__dirname, '..', '..', 'bin', 'cmd.js')
+var CMD = 'node ' + CMD_PATH
+
+test('Command line: webtorrent help', function (t) {
+ t.plan(6)
+
+ cp.exec(CMD + ' help', function (err, data) {
+ t.error(err) // no error, exit code 0
+ t.ok(data.toLowerCase().indexOf('usage') !== -1)
+ })
+
+ cp.exec(CMD + ' --help', function (err, data) {
+ t.error(err) // no error, exit code 0
+ t.ok(data.toLowerCase().indexOf('usage') !== -1)
+ })
+
+ cp.exec(CMD, function (err, data) {
+ t.error(err) // no error, exit code 0
+ t.ok(data.toLowerCase().indexOf('usage') !== -1)
+ })
+})
+
+test('Command line: webtorrent version', function (t) {
+ t.plan(6)
+ var expectedVersion = require(path.resolve(__dirname, '..', '..', 'package.json')).version + '\n'
+
+ cp.exec(CMD + ' version', function (err, data) {
+ t.error(err)
+ t.equal(data, expectedVersion)
+ })
+
+ cp.exec(CMD + ' --version', function (err, data) {
+ t.error(err)
+ t.equal(data, expectedVersion)
+ })
+
+ cp.exec(CMD + ' -v', function (err, data) {
+ t.error(err)
+ t.equal(data, expectedVersion)
+ })
+})
+
+test('Command line: webtorrent info /path/to/file.torrent', function (t) {
+ t.plan(3)
+
+ cp.exec(CMD + ' info ' + common.leaves.torrentPath, function (err, data) {
+ t.error(err)
+ data = JSON.parse(data)
+ var parsedTorrent = extend(common.leaves.parsedTorrent)
+ delete parsedTorrent.info
+ delete parsedTorrent.infoBuffer
+ t.deepEqual(data, JSON.parse(JSON.stringify(parsedTorrent, undefined, 2)))
+ })
+
+ cp.exec(CMD + ' info /bad/path', function (err) {
+ t.ok(err instanceof Error)
+ })
+})
+
+test('Command line: webtorrent info magnet_uri', function (t) {
+ t.plan(2)
+
+ var leavesMagnetURI = 'magnet:?xt=urn:btih:d2474e86c95b19b8bcfdb92bc12c9d44667cfa36&dn=Leaves+of+Grass+by+Walt+Whitman.epub&tr=http%3A%2F%2Ftracker.example.com%2Fannounce&tr=http%3A%2F%2Ftracker.example2.com%2Fannounce&tr=udp%3A%2F%2Ftracker.example3.com%3A3310%2Fannounce&tr=udp%3A%2F%2Ftracker.example4.com%3A80&tr=udp%3A%2F%2Ftracker.example5.com%3A80&tr=udp%3A%2F%2Ftracker.example6.com%3A80'
+
+ cp.exec(CMD + ' info "' + leavesMagnetURI + '"', function (err, data) {
+ t.error(err)
+ data = JSON.parse(data)
+ var parsedTorrent = parseTorrent(leavesMagnetURI)
+ t.deepEqual(data, JSON.parse(JSON.stringify(parsedTorrent, undefined, 2)))
+ })
+})
+
+test('Command line: webtorrent create /path/to/file', function (t) {
+ t.plan(1)
+
+ var child = spawn('node', [ CMD_PATH, 'create', common.leaves.contentPath ])
+ child.on('error', function (err) { t.fail(err) })
+
+ var chunks = []
+ child.stdout.on('data', function (chunk) {
+ chunks.push(chunk)
+ })
+ child.stdout.on('end', function () {
+ var buf = Buffer.concat(chunks)
+ var parsedTorrent = parseTorrent(new Buffer(buf, 'binary'))
+ t.deepEqual(parsedTorrent.infoHash, 'd2474e86c95b19b8bcfdb92bc12c9d44667cfa36')
+ })
+})
+
+test('Command line: webtorrent download <torrent file> (with local content)', function (t) {
+ t.plan(2)
+
+ cp.exec(CMD + ' download ' + common.leaves.torrentPath + ' --out test/fixtures', function (err, data) {
+ t.error(err)
+ t.ok(data.indexOf('successfully') !== -1)
+ })
+})
+
+// TODO: test 'webtorrent download magnet_uri'
+// TODO: test 'webtorrent seed /path/to/file'