UNPKG

siesta-lite

Version:

Stress-free JavaScript unit testing and functional testing tool, works in NodeJS and browsers

122 lines (84 loc) 3.38 kB
/* Siesta 5.6.1 Copyright(c) 2009-2022 Bryntum AB https://bryntum.com/contact https://bryntum.com/products/siesta/license */ Class('Siesta.Launcher.Options.WebDriver', { isa : Siesta.Launcher.Options.Base, does : [ Siesta.Launcher.Options.Simulation, Siesta.Launcher.Options.Proxy, Siesta.Launcher.Options.BrowserStack, Siesta.Launcher.Options.SauceLabs, Siesta.Launcher.Options.LambdaTest ], has : { knownBrowsers : { init : { firefox : true, 'internet explorer' : true, safari : true, chrome : true, MicrosoftEdge : true } } }, methods : { addCapability : function (name, value) { var options = this.options options.caps[ name ] = value options.cap.push(name + '=' + value) }, getBrowserName : function () { var options = this.options return options.caps.browserName || options.browser }, validate : function () { var options = this.options // prepare capabilities var caps = options[ 'cap' ] || [] if (!(caps instanceof Array)) caps = [ caps ] options.cap = caps options.caps = {} Joose.A.each(caps, function (value) { var split = String(value).split(/\s*=\s*/) options.caps[ split[ 0 ] ] = split[ 1 ] }) // need to have "caps" populated for preparing the report file name if (this.SUPER() === false) return false // prepare browser args var browserArgs = options[ 'browser-arg' ] || [] if (!(browserArgs instanceof Array)) browserArgs = [ browserArgs ] options[ 'browser-arg' ] = browserArgs // prepare firefox prefs var ffPrefs = options[ 'ff-pref' ] || [] if (!(ffPrefs instanceof Array)) ffPrefs = [ ffPrefs ] options[ 'ff-pref' ] = ffPrefs // prepare browser name, default value should be set outside of the `getBrowserName` var browser = (this.getBrowserName() || 'chrome').toLowerCase() if (browser == 'ie') browser = 'internet explorer' if (browser == 'edge' || browser == 'microsoftedge') browser = 'MicrosoftEdge' if (!this.knownBrowsers[ browser ]) { this.printError("Unknown browser: " + browser) return false } options.browser = browser // the value is already normalized by the Simulation role if (options.xvfb) { this.launcher.sharedNativeSimulator = false } return true }, getReportFileNameTemplateReplacer : function () { var options = this.options var caps = options.caps return function (m, match) { if (caps && caps.hasOwnProperty(match)) return caps[ match ] else return options[ match ] } } } })