/**
*
* Create a new session. The server should attempt to create a session that most
* closely matches the desired and required capabilities. Required capabilities
* have higher priority than desired capabilities and must be set for the session
* to be created.
*
* @param {Object} [capabilities] An object describing the session's [desired capabilities](https://code.google.com/p/selenium/wiki/JsonWireProtocol#Desired_Capabilities).
*
* @see https://code.google.com/p/selenium/wiki/JsonWireProtocol#/session
* @type protocol
*
*/
'use strict';
Object.defineProperty(exports, '__esModule', {
value: true
});I
// istanbul ignore next
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
var _utilsErrorHandler = require('../utils/ErrorHandler');
var _packageJson = require('../../package.json');
var _packageJson2 = _interopRequireDefault(_packageJson);
var _deepmerge = require('deepmerge');
var _deepmerge2 = _interopRequireDefault(_deepmerge);
var init = function init() {
var desiredCapabilities = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];
/**
* make sure we don't run this command within wdio test run
*/
if (this.options.isWDIO) {
throw new _utilsErrorHandler.CommandError('Don\'t call the \'init\' command when using the wdio test runner. ' + 'Your session will get initialised and closed automatically.');
}
/*!
* check if session was already established
*/
if (this.requestHandler.sessionID) {
throw new _utilsErrorHandler.ProtocolError('Cannot init a new session, please end your current session first');
}
this.desiredCapabilities = (0, _deepmerge2['default'])(this.desiredCapabilities, desiredCapabilities);
if (desiredCapabilities.sessionId) {
this.sessionId = desiredCapabilities.sessionId;
}
/**
* report library identity to server
* @see https://groups.google.com/forum/#!topic/selenium-developers/Zj1ikTz632o
*/
this.desiredCapabilities = (0, _deepmerge2['default'])(this.desiredCapabilities, {
requestOrigins: {
url: _packageJson2['default'].homepage,
version: _packageJson2['default'].version,
name: _packageJson2['default'].name
}
});
return this.requestHandler.create({
path: '/session',
method: 'POST'
}, {
desiredCapabilities: this.desiredCapabilities
});
};
exports['default'] = init;
module.exports = exports['default'];
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9jaHJpc3RpYW5icm9tYW5uL1NpdGVzL1dlYnByb2pla3RlL3dlYmRyaXZlcmpzL0RFVi9saWIvcHJvdG9jb2wvaW5pdC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztpQ0FjNEMsdUJBQXVCOzsyQkFDbkQsb0JBQW9COzs7O3lCQUNsQixXQUFXOzs7O0FBRTdCLElBQUksSUFBSSxHQUFHLFNBQVAsSUFBSSxHQUF1QztRQUExQixtQkFBbUIseURBQUcsRUFBRTs7Ozs7QUFJekMsUUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRTtBQUNyQixjQUFNLG9DQUFpQixvSUFDNkQsQ0FBQyxDQUFBO0tBQ3hGOzs7OztBQUtELFFBQUksSUFBSSxDQUFDLGNBQWMsQ0FBQyxTQUFTLEVBQUU7QUFDL0IsY0FBTSxxQ0FBa0Isa0VBQWtFLENBQUMsQ0FBQTtLQUM5Rjs7QUFFRCxRQUFJLENBQUMsbUJBQW1CLEdBQUcsNEJBQU0sSUFBSSxDQUFDLG1CQUFtQixFQUFFLG1CQUFtQixDQUFDLENBQUE7QUFDL0UsUUFBSSxtQkFBbUIsQ0FBQyxTQUFTLEVBQUU7QUFDL0IsWUFBSSxDQUFDLFNBQVMsR0FBRyxtQkFBbUIsQ0FBQyxTQUFTLENBQUE7S0FDakQ7Ozs7OztBQU1ELFFBQUksQ0FBQyxtQkFBbUIsR0FBRyw0QkFBTSxJQUFJLENBQUMsbUJBQW1CLEVBQUU7QUFDdkQsc0JBQWMsRUFBRTtBQUNaLGVBQUcsRUFBRSx5QkFBSSxRQUFRO0FBQ2pCLG1CQUFPLEVBQUUseUJBQUksT0FBTztBQUNwQixnQkFBSSxFQUFFLHlCQUFJLElBQUk7U0FDakI7S0FDSixDQUFDLENBQUE7O0FBRUYsV0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQztBQUM5QixZQUFJLEVBQUUsVUFBVTtBQUNoQixjQUFNLEVBQUUsTUFBTTtLQUNqQixFQUFFO0FBQ0MsMkJBQW1CLEVBQUUsSUFBSSxDQUFDLG1CQUFtQjtLQUNoRCxDQUFDLENBQUE7Q0FDTCxDQUFBOztxQkFFYyxJQUFJIiwiZmlsZSI6Ii9Vc2Vycy9jaHJpc3RpYW5icm9tYW5uL1NpdGVzL1dlYnByb2pla3RlL3dlYmRyaXZlcmpzL0RFVi9saWIvcHJvdG9jb2wvaW5pdC5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICpcbiAqIENyZWF0ZSBhIG5ldyBzZXNzaW9uLiBUaGUgc2VydmVyIHNob3VsZCBhdHRlbXB0IHRvIGNyZWF0ZSBhIHNlc3Npb24gdGhhdCBtb3N0XG4gKiBjbG9zZWx5IG1hdGNoZXMgdGhlIGRlc2lyZWQgYW5kIHJlcXVpcmVkIGNhcGFiaWxpdGllcy4gUmVxdWlyZWQgY2FwYWJpbGl0aWVzXG4gKiBoYXZlIGhpZ2hlciBwcmlvcml0eSB0aGFuIGRlc2lyZWQgY2FwYWJpbGl0aWVzIGFuZCBtdXN0IGJlIHNldCBmb3IgdGhlIHNlc3Npb25cbiAqIHRvIGJlIGNyZWF0ZWQuXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IFtjYXBhYmlsaXRpZXNdIEFuIG9iamVjdCBkZXNjcmliaW5nIHRoZSBzZXNzaW9uJ3MgW2Rlc2lyZWQgY2FwYWJpbGl0aWVzXShodHRwczovL2NvZGUuZ29vZ2xlLmNvbS9wL3NlbGVuaXVtL3dpa2kvSnNvbldpcmVQcm90b2NvbCNEZXNpcmVkX0NhcGFiaWxpdGllcykuXG4gKlxuICogQHNlZSAgaHR0cHM6Ly9jb2RlLmdvb2dsZS5jb20vcC9zZWxlbml1bS93aWtpL0pzb25XaXJlUHJvdG9jb2wjL3Nlc3Npb25cbiAqIEB0eXBlIHByb3RvY29sXG4gKlxuICovXG5cbmltcG9ydCB7IENvbW1hbmRFcnJvciwgUHJvdG9jb2xFcnJvciB9IGZyb20gJy4uL3V0aWxzL0Vycm9ySGFuZGxlcidcbmltcG9ydCBwa2cgZnJvbSAnLi4vLi4vcGFja2FnZS5qc29uJ1xuaW1wb3J0IG1lcmdlIGZyb20gJ2RlZXBtZXJnZSdcblxubGV0IGluaXQgPSBmdW5jdGlvbiAoZGVzaXJlZENhcGFiaWxpdGllcyA9IHt9KSB7XG4gICAgLyoqXG4gICAgICogbWFrZSBzdXJlIHdlIGRvbid0IHJ1biB0aGlzIGNvbW1hbmQgd2l0aGluIHdkaW8gdGVzdCBydW5cbiAgICAgKi9cbiAgICBpZiAodGhpcy5vcHRpb25zLmlzV0RJTykge1xuICAgICAgICB0aHJvdyBuZXcgQ29tbWFuZEVycm9yKGBEb24ndCBjYWxsIHRoZSAnaW5pdCcgY29tbWFuZCB3aGVuIHVzaW5nIHRoZSB3ZGlvIHRlc3QgcnVubmVyLiBgICtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgWW91ciBzZXNzaW9uIHdpbGwgZ2V0IGluaXRpYWxpc2VkIGFuZCBjbG9zZWQgYXV0b21hdGljYWxseS5gKVxuICAgIH1cblxuICAgIC8qIVxuICAgICAqIGNoZWNrIGlmIHNlc3Npb24gd2FzIGFscmVhZHkgZXN0YWJsaXNoZWRcbiAgICAgKi9cbiAgICBpZiAodGhpcy5yZXF1ZXN0SGFuZGxlci5zZXNzaW9uSUQpIHtcbiAgICAgICAgdGhyb3cgbmV3IFByb3RvY29sRXJyb3IoJ0Nhbm5vdCBpbml0IGEgbmV3IHNlc3Npb24sIHBsZWFzZSBlbmQgeW91ciBjdXJyZW50IHNlc3Npb24gZmlyc3QnKVxuICAgIH1cblxuICAgIHRoaXMuZGVzaXJlZENhcGFiaWxpdGllcyA9IG1lcmdlKHRoaXMuZGVzaXJlZENhcGFiaWxpdGllcywgZGVzaXJlZENhcGFiaWxpdGllcylcbiAgICBpZiAoZGVzaXJlZENhcGFiaWxpdGllcy5zZXNzaW9uSWQpIHtcbiAgICAgICAgdGhpcy5zZXNzaW9uSWQgPSBkZXNpcmVkQ2FwYWJpbGl0aWVzLnNlc3Npb25JZFxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIHJlcG9ydCBsaWJyYXJ5IGlkZW50aXR5IHRvIHNlcnZlclxuICAgICAqIEBzZWUgaHR0cHM6Ly9ncm91cHMuZ29vZ2xlLmNvbS9mb3J1bS8jIXRvcGljL3NlbGVuaXVtLWRldmVsb3BlcnMvWmoxaWtUejYzMm9cbiAgICAgKi9cbiAgICB0aGlzLmRlc2lyZWRDYXBhYmlsaXRpZXMgPSBtZXJnZSh0aGlzLmRlc2lyZWRDYXBhYmlsaXRpZXMsIHtcbiAgICAgICAgcmVxdWVzdE9yaWdpbnM6IHtcbiAgICAgICAgICAgIHVybDogcGtnLmhvbWVwYWdlLFxuICAgICAgICAgICAgdmVyc2lvbjogcGtnLnZlcnNpb24sXG4gICAgICAgICAgICBuYW1lOiBwa2cubmFtZVxuICAgICAgICB9XG4gICAgfSlcblxuICAgIHJldHVybiB0aGlzLnJlcXVlc3RIYW5kbGVyLmNyZWF0ZSh7XG4gICAgICAgIHBhdGg6ICcvc2Vzc2lvbicsXG4gICAgICAgIG1ldGhvZDogJ1BPU1QnXG4gICAgfSwge1xuICAgICAgICBkZXNpcmVkQ2FwYWJpbGl0aWVzOiB0aGlzLmRlc2lyZWRDYXBhYmlsaXRpZXNcbiAgICB9KVxufVxuXG5leHBvcnQgZGVmYXVsdCBpbml0XG4iXX0= |