Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
// ref: https://code.google.com/p/selenium/wiki/DesiredCapabilities#WebDriver
if (args.firefoxBinary) {
config.capabilities["moz:firefoxOptions"].binary = args.firefoxBinary;
}
// clear out the headless options arguments
if (args.showBrowser) {
config.capabilities["moz:firefoxOptions"].args = [];
config.environments.forEach(obj => {
if (obj.browserName === "chrome") {
obj.chromeOptions.args = [];
}
});
}
intern.configure(config);
try {
intern.run().then(
() => {
console.log("it started, yay!");
},
err => {
console.log("something bad happened inside intern.run()");
console.log(err);
process.exit(1);
}
);
} catch (e) {
console.log("caught an error!");
console.log(e);
process.exit(1);
}
// clear out the headless options arguments
if (args.showBrowser) {
config.capabilities["moz:firefoxOptions"].args = [];
config.environments.forEach(obj => {
if (obj.browserName === "chrome") {
obj.chromeOptions.args = [];
}
});
}
intern.configure(config);
try {
intern.run().then(
() => {
console.log("it started, yay!");
},
err => {
console.log("something bad happened inside intern.run()");
console.log(err);
process.exit(1);
}
);
} catch (e) {
console.log("caught an error!");
console.log(e);
process.exit(1);
}
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
"use strict";
const args = require("yargs").argv;
const intern = require("intern").default;
const siteRoot = args.siteRoot ? args.siteRoot : "http://localhost:5000";
let environments = [];
const browsers = args.browsers
? args.browsers.replace(/\s/g, "").split(",")
: ["firefox", "chrome"];
browsers.forEach(function(b) {
if (b.toLowerCase() === "chrome") {
environments.push({
browserName: b.toLowerCase(),
chromeOptions: {
args: ["headless", "disable-gpu"]
}
});
});
conf.functionalSuites = ['test/functional/tests'];
conf = Object.assign(conf, seleniumConfig);
// console.log("Selenium configuration:\n", conf);
///////////////////////////////////////////////////////////////////////////////////////////////
// Tests configuration parameters
// Tests configuration from command line
// protocol
conf.protocol = 'https';
if (intern.args.protocol) {
conf.protocol = intern.args.protocol;
}
// application
conf.testPage = applications.local;
if (intern.args.app) {
conf.testPage = applications[intern.args.app];
// conf.smoothEnabled = decodeURIComponent((new RegExp('[?|&]mss=' + '([^&;]+?)(&|#|;|$)').exec(conf.testPage)||[,""])[1].replace(/\+/g, '%20')) || 'false';
}
if (intern.args.appurl) {
conf.testPage = intern.args.appurl;
}
// Set application protocol
conf.testPage = conf.protocol + '://' + conf.testPage
// Functional test suite(s) to run in each browser once non-functional tests are completed
functionalSuites: ['test/functional/tests'],
// The amount of time, in milliseconds, an asynchronous test can run before it is considered timed out. By default this value is 30 seconds.
defaultTimeout: 30000,
// A regular expression matching URLs to files that should not be included in code coverage analysis
excludeInstrumentation: /^tests|bower_components|node_modules|testIntern/,
// to keep browser opened at the end of the test
leaveRemoteOpen: false
};
// Selenium configuration from command line
if (intern.args.selenium) {
seleniumConfig = seleniumConfigs[intern.args.selenium];
}
// Browsers to run integration testing against. Note that version numbers must be strings if used with Sauce
// OnDemand. Options that will be permutated are browserName, version, platform, and platformVersion; any other
// capabilities options specified for an environment will be copied as-is
var os = 'windows';
var browsers = ['all'];
if (intern.args.os) {
os = intern.args.os;
}
conf.environments = [];
if (intern.args.browsers) {
browsers = intern.args.browsers.split(',');
}
functionalSuites: testsSuites.all,
// The amount of time, in milliseconds, an asynchronous test can run before it is considered timed out. By default this value is 30 seconds.
defaultTimeout: 60000,
// A regular expression matching URLs to files that should not be included in code coverage analysis
excludeInstrumentation : /^tests|bower_components|node_modules|testIntern/,
};
// Selenium configuration from command line
if (intern.args.selenium) {
seleniumConfig = seleniumConfigs[intern.args.selenium];
}
if (intern.args.browsers) {
var browsers = intern.args.browsers.split('&');
conf.environments = [];
browsers.forEach(function(browser) {
conf.environments = conf.environments.concat(browsersConfig[browser]);
});
}
if (intern.args.tests) {
var tests = intern.args.tests.split('&');
conf.functionalSuites = [];
tests.forEach(function(test) {
conf.functionalSuites = conf.functionalSuites.concat(testsSuites[test]);
});
}
// Maximum number of simultaneous integration tests that should be executed on the remote WebDriver service
maxConcurrency: 1,
// Functional test suite(s) to run in each browser once non-functional tests are completed
functionalSuites: testsSuites.all,
// The amount of time, in milliseconds, an asynchronous test can run before it is considered timed out. By default this value is 30 seconds.
defaultTimeout: 60000,
// A regular expression matching URLs to files that should not be included in code coverage analysis
excludeInstrumentation : /^tests|bower_components|node_modules|testIntern/,
};
// Selenium configuration from command line
if (intern.args.selenium) {
seleniumConfig = seleniumConfigs[intern.args.selenium];
}
if (intern.args.browsers) {
var browsers = intern.args.browsers.split('&');
conf.environments = [];
browsers.forEach(function(browser) {
conf.environments = conf.environments.concat(browsersConfig[browser]);
});
}
if (intern.args.tests) {
var tests = intern.args.tests.split('&');
conf.functionalSuites = [];
import * as intern from 'intern';
// TODO: logError does not exist in intern/lib/util
// import * as util from 'intern/lib/util';
import * as fs from 'dojo/node!fs';
import Collector = require('dojo/node!istanbul/lib/collector');
import JsonReporter = require('dojo/node!istanbul/lib/report/json');
import LcovHtmlReporter = require('dojo/node!istanbul/lib/report/html');
import TextReporter = require('dojo/node!istanbul/lib/report/text');
import Test = require('intern/lib/Test');
const collector = new Collector();
let reporters: any = [];
if (intern.mode === 'client') {
reporters = [new JsonReporter()];
} else {
reporters = [new TextReporter(), new LcovHtmlReporter()];
}
const reporter = {
start() {
console.log('Running ' + intern.mode + ' tests…');
},
'/session/start'(remote: { environmentType: string }) {
console.log('Testing ' + remote.environmentType);
},
'/coverage'(sessionId: string, coverage: any) {
collector.add(coverage);
"use strict";
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
const intern = require("intern").default;
const { assert } = intern.getPlugin("chai");
const { registerSuite } = intern.getInterface("object");
const FunctionalHelpers = require("./lib/helpers.js");
const path = require("path");
var cwd = intern.config.basePath;
var VALID_IMAGE_PATH = path.join(cwd, "tests/fixtures", "green_square.png");
// DETAILS_STRING is a URL encoded object, stringified to JSON.
var DETAILS_STRING =
'{"gfx.webrender.all"%3Afalse%2C"gfx.webrender.blob-images"%3A2%2C"gfx.webrender.enabled"%3Afalse%2C"image.mem.shared"%3A2%2C"layout.css.servo.enabled"%3Atrue}';
var url = function(path) {
return intern.config.siteRoot + path;
};
registerSuite("Reporting (non-auth)", {
tests: {
"Submit buttons are disabled"() {
return FunctionalHelpers.openPage(
this,
url("/issues/new"),
".js-report-buttons"
"use strict";
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
/*global WindowHelpers:true*/
const intern = require("intern").default;
const { assert } = intern.getPlugin("chai");
const { registerSuite } = intern.getInterface("object");
const FunctionalHelpers = require("./lib/helpers.js");
const url = intern.config.siteRoot + "/issues/new";
// This string is executed by calls to `execute()` in various tests
// it postMessages a small green test square.
const POSTMESSAGE_TEST_SQUARE =
'postMessage("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABkAAAAZCAIAAABLixI0AAAACXBIWXMAAA7DAAAOwwHHb6hkAAAAB3RJTUUH3gYSAig452t/EQAAAClJREFUOMvtzkENAAAMg0A25ZU+E032AQEXoNcApCGFLX5paWlpaWl9dqq9AS6CKROfAAAAAElFTkSuQmCC", "http://localhost:5000")';
registerSuite("Image Uploads (non-auth)", {
tests: {
"postMessaged dataURI preview"() {
return (
FunctionalHelpers.openPage(this, url, ".js-image-upload")