webrtc-adapter
Version:
A shim to insulate apps from WebRTC spec changes and browser prefix differences
101 lines (94 loc) • 2.62 kB
JavaScript
/*
* Copyright (c) 2017 The WebRTC project authors. All Rights Reserved.
*
* Use of this source code is governed by a BSD-style license
* that can be found in the LICENSE file in the root of the source
* tree.
*/
/* eslint-env node */
'use strict';
const os = require('os');
let browsers;
if (process.env.BROWSER) {
if (process.env.BROWSER === 'MicrosoftEdge') {
browsers = ['Edge'];
} else if (process.env.BROWSER === 'safari') {
browsers = ['Safari'];
} else {
browsers = [process.env.BROWSER];
}
} else if (os.platform() === 'darwin') {
browsers = ['chrome', 'firefox', 'Safari'];
} else if (os.platform() === 'win32') {
browsers = ['chrome', 'firefox', 'Edge'];
} else {
browsers = ['chrome', 'firefox'];
}
let reporters = ['mocha'];
if (process.env.CI) {
// stability must be the last reporter as it munges the
// exit code and always returns 0.
reporters.push('stability');
}
// uses Safari Technology Preview.
if (os.platform() === 'darwin' && process.env.BVER === 'unstable' &&
!process.env.SAFARI_BIN) {
process.env.SAFARI_BIN = '/Applications/Safari Technology Preview.app' +
'/Contents/MacOS/Safari Technology Preview';
}
let chromeFlags = [
'--use-fake-device-for-media-stream',
'--use-fake-ui-for-media-stream',
'--headless', '--disable-gpu', '--remote-debugging-port=9222'
];
if (process.env.CHROMEEXPERIMENT !== 'false') {
chromeFlags.push('--enable-experimental-web-platform-features');
}
module.exports = function(config) {
config.set({
basePath: '..',
frameworks: ['browserify', 'mocha', 'chai'],
files: [
'src/js/adapter_core.js',
'test/getusermedia-mocha.js',
'test/e2e/*.js',
],
exclude: [],
preprocessors: {
'src/js/adapter_core.js': ['browserify']
},
reporters,
port: 9876,
colors: true,
logLevel: config.LOG_INFO,
autoWatch: false,
customLaunchers: {
chrome: {
base: 'Chrome',
flags: chromeFlags
},
firefox: {
base: 'Firefox',
prefs: {
'media.navigator.streams.fake': true,
'media.navigator.permission.disabled': true
}
}
},
singleRun: true,
concurrency: Infinity,
browsers,
browserify: {
debug: true,
transform: ['brfs'],
standalone: 'adapter',
},
stabilityReporter: {
path: 'test/e2e/expectations/' +
process.env.BROWSER +
(process.env.BVER ? '-' + process.env.BVER : '') +
(process.env.CHROMEEXPERIMENT === 'false' ? '-no-experimental' : ''),
update: false,
}
});
};