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:
authorFeross Aboukhadijeh <feross@feross.org>2016-02-14 08:26:13 +0300
committerFeross Aboukhadijeh <feross@feross.org>2016-02-14 08:26:13 +0300
commit32e7eddf4f7ffacb4ba0e72960596acf609c527c (patch)
treeade7227114b4e39981f5a27f2e6534ac3ac251f0
parent3b0f9071c07f5f0947816ae3e0d93cc90ae1961a (diff)
parentcc4e3f0dff95d89d54ad4975a5b203d198f36398 (diff)
Merge pull request #605 from feross/npm-test-browser-headless
Use Electron to run browser tests with Travis
-rw-r--r--.travis.yml4
-rw-r--r--bin/test.js16
-rw-r--r--package.json2
-rw-r--r--test/browser/basic.js109
4 files changed, 72 insertions, 59 deletions
diff --git a/.travis.yml b/.travis.yml
index f03780f..50142f4 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -8,3 +8,7 @@ env:
global:
- secure: AJsEWFnWC5W8hcF3hJzm3PT7heazJpKg85xiSvIWVzLHZU/s0h4+WfJ6t0F9v3L4awaowm62vy8CRaxRkB4lJyJg+JK2K0QN7lNFGj2f8Jx2cFlVJ1IyY959GY4iUg66JrNj1yzS02+yQfweDngyifqzb7IlxnowiveDjUO2gyo=
- secure: hvihwLUqlPchrGFXKWFF7iKRugISU7r/gLBo6O63nPeg0OwnYqYcC2BnBWoSiOdu9oR5bM4a5u0os04XL+bP3dqt324g0uBTqvyyxD6NhBsphVFkUmdUH3HMe7IQY6JTns96KT/6UkQapKhIuW4CUDeidR+5NFKvyRdKIjSawS4=
+# Get Electron working
+# https://github.com/atom/electron/issues/4194#issuecomment-173925019
+before_script:
+ - export DISPLAY=:99.0; sh -e /etc/init.d/xvfb start
diff --git a/bin/test.js b/bin/test.js
index 2675c80..b30a701 100644
--- a/bin/test.js
+++ b/bin/test.js
@@ -2,17 +2,19 @@
var spawn = require('cross-spawn-async')
-var runBrowserTests = !process.env.TRAVIS_PULL_REQUEST ||
- process.env.TRAVIS_PULL_REQUEST === 'false'
+var runSauceLabs = process.env.SAUCE_USERNAME && process.env.SAUCE_ACCESS_KEY
-var node = spawn('npm', ['run', 'test-node'], { stdio: 'inherit' })
-node.on('close', function (code) {
- if (code === 0 && runBrowserTests) {
- var browser = spawn('npm', ['run', 'test-browser'], { stdio: 'inherit' })
- browser.on('close', function (code) {
+npmRun('test-node', function (code) {
+ if (code === 0) {
+ var scriptName = runSauceLabs ? 'test-browser' : 'test-browser-headless'
+ npmRun(scriptName, function (code) {
process.exit(code)
})
} else {
process.exit(code)
}
})
+
+function npmRun (scriptName, onClose) {
+ spawn('npm', ['run', scriptName], { stdio: 'inherit' }).on('close', onClose)
+}
diff --git a/package.json b/package.json
index a384047..147d03a 100644
--- a/package.json
+++ b/package.json
@@ -76,6 +76,7 @@
"brfs": "^1.2.0",
"browserify": "^13.0.0",
"cross-spawn-async": "^2.0.0",
+ "electron-prebuilt": "^0.36.7",
"finalhandler": "^0.4.0",
"run-series": "^1.0.2",
"serve-static": "^1.9.3",
@@ -115,6 +116,7 @@
"test": "standard && node ./bin/test.js",
"test-browser": "zuul -- test/*.js test/browser/*.js",
"test-browser-local": "zuul --local -- test/*.js test/browser/*.js",
+ "test-browser-headless": "zuul --electron -- test/*.js test/browser/*.js",
"test-node": "tape test/*.js test/node/*.js"
}
}
diff --git a/test/browser/basic.js b/test/browser/basic.js
index 744d160..395fe8e 100644
--- a/test/browser/basic.js
+++ b/test/browser/basic.js
@@ -13,84 +13,89 @@ function verifyImage (t, err, elem) {
elem.remove()
}
-test('image append w/ query selector', function (t) {
- 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(img, function (torrent) {
- torrent.files[0].appendTo('body', function (err, elem) {
- verifyImage(t, err, elem)
- client.destroy(function (err) {
- t.error(err, 'client destroyed')
+// The image append/render tests don't work in electron, so skip them
+// TODO get these working
+// logic taken from https://github.com/atom/electron/issues/2288#issuecomment-123147993
+if (!(global && global.process && global.process.versions && global.process.versions.electron)) {
+ test('image append w/ query selector', function (t) {
+ 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(img, function (torrent) {
+ torrent.files[0].appendTo('body', function (err, elem) {
+ verifyImage(t, err, elem)
+ client.destroy(function (err) {
+ t.error(err, 'client destroyed')
+ })
})
})
})
-})
-test('image append w/ element', function (t) {
- t.plan(6)
+ test('image append w/ element', function (t) {
+ t.plan(6)
- var client = new WebTorrent({ dht: false, tracker: false })
+ 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.on('error', function (err) { t.fail(err) })
+ client.on('warning', function (err) { t.fail(err) })
- client.seed(img, function (torrent) {
- torrent.files[0].appendTo(document.body, function (err, elem) {
- verifyImage(t, err, elem)
- client.destroy(function (err) {
- t.error(err, 'client destroyed')
+ client.seed(img, function (torrent) {
+ torrent.files[0].appendTo(document.body, function (err, elem) {
+ verifyImage(t, err, elem)
+ client.destroy(function (err) {
+ t.error(err, 'client destroyed')
+ })
})
})
})
-})
-test('image render w/ query selector', function (t) {
- t.plan(6)
+ test('image render w/ query selector', function (t) {
+ t.plan(6)
- var client = new WebTorrent({ dht: false, tracker: false })
+ 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.on('error', function (err) { t.fail(err) })
+ client.on('warning', function (err) { t.fail(err) })
- var tag = document.createElement('img')
- tag.className = 'tag'
- document.body.appendChild(tag)
+ var tag = document.createElement('img')
+ tag.className = 'tag'
+ document.body.appendChild(tag)
- client.seed(img, function (torrent) {
- torrent.files[0].renderTo('img.tag', function (err, elem) {
- verifyImage(t, err, elem)
- client.destroy(function (err) {
- t.error(err, 'client destroyed')
+ client.seed(img, function (torrent) {
+ torrent.files[0].renderTo('img.tag', function (err, elem) {
+ verifyImage(t, err, elem)
+ client.destroy(function (err) {
+ t.error(err, 'client destroyed')
+ })
})
})
})
-})
-test('image render w/ element', function (t) {
- t.plan(6)
+ test('image render w/ element', function (t) {
+ t.plan(6)
- var client = new WebTorrent({ dht: false, tracker: false })
+ 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.on('error', function (err) { t.fail(err) })
+ client.on('warning', function (err) { t.fail(err) })
- var tag = document.createElement('img')
- document.body.appendChild(tag)
+ var tag = document.createElement('img')
+ document.body.appendChild(tag)
- client.seed(img, function (torrent) {
- torrent.files[0].renderTo(tag, function (err, elem) {
- verifyImage(t, err, elem)
- client.destroy(function (err) {
- t.error(err, 'client destroyed')
+ client.seed(img, function (torrent) {
+ torrent.files[0].renderTo(tag, function (err, elem) {
+ verifyImage(t, err, elem)
+ client.destroy(function (err) {
+ t.error(err, 'client destroyed')
+ })
})
})
})
-})
+}
test('WebTorrent.WEBRTC_SUPPORT', function (t) {
t.plan(2)