aboutsummaryrefslogtreecommitdiff
path: root/e2e/karma-webext-launcher.js
diff options
context:
space:
mode:
authorShin'ya Ueoka <ueokande@i-beam.org>2018-02-14 18:43:28 +0900
committerGitHub <noreply@github.com>2018-02-14 18:43:28 +0900
commita48915d4e090378a672d780b2fbc93e1af6e082c (patch)
tree2e6a4295935577c5e0facbb3f5d569893bf28afe /e2e/karma-webext-launcher.js
parent5412584a7c453d074dca6d58814e29590085ff73 (diff)
parentf63920e25e80ca0e472d3514fd56e27fbc505e6f (diff)
Merge pull request #329 from ueokande/e2e-test
End-to-End testing
Diffstat (limited to 'e2e/karma-webext-launcher.js')
-rw-r--r--e2e/karma-webext-launcher.js53
1 files changed, 53 insertions, 0 deletions
diff --git a/e2e/karma-webext-launcher.js b/e2e/karma-webext-launcher.js
new file mode 100644
index 0000000..e0a3e42
--- /dev/null
+++ b/e2e/karma-webext-launcher.js
@@ -0,0 +1,53 @@
+'use strict'
+
+var fs = require('fs')
+var path = require('path')
+
+var PREFS = {
+ 'browser.shell.checkDefaultBrowser': 'false',
+ 'browser.bookmarks.restore_default_bookmarks': 'false',
+ 'dom.disable_open_during_load': 'false',
+ 'dom.max_script_run_time': '0',
+ 'dom.min_background_timeout_value': '10',
+ 'extensions.autoDisableScopes': '0',
+ 'extensions.enabledScopes': '15',
+}
+
+var FirefoxWebExt = function (id, baseBrowserDecorator, args) {
+ baseBrowserDecorator(this)
+
+ this._start = function (url) {
+ var self = this
+ var command = this._getCommand()
+
+ let prefArgs = [].concat(...Object.keys(PREFS).map((key) => {
+ return ['--pref', key + '=' + PREFS[key]];
+ }));
+ let sourceDirArgs = [].concat(...args.sourceDirs.map((dir) => {
+ return ['--source-dir', dir];
+ }));
+
+ self._execCommand(
+ command,
+ ['run', '--start-url', url, '--no-input'].concat(sourceDirArgs, prefArgs)
+ )
+ }
+}
+
+FirefoxWebExt.prototype = {
+ name: 'FirefoxWebExt',
+
+ DEFAULT_CMD: {
+ linux: 'node_modules/web-ext/bin/web-ext',
+ darwin: 'node_modules/web-ext/bin/web-ext',
+ win32: 'node_modules/web-ext/bin/web-ext',
+ }
+}
+
+FirefoxWebExt.$inject = ['id', 'baseBrowserDecorator', 'args']
+
+// PUBLISH DI MODULE
+module.exports = {
+ 'launcher:FirefoxWebExt': ['type', FirefoxWebExt],
+}
+