forked from enviPath/enviPy
Current Dev State
This commit is contained in:
94
static/js/ketcher2/node_modules/webdriverio/lib/protocol/session.js
generated
vendored
Normal file
94
static/js/ketcher2/node_modules/webdriverio/lib/protocol/session.js
generated
vendored
Normal file
@ -0,0 +1,94 @@
|
||||
/**
|
||||
*
|
||||
* Protocol bindings for all session operations. In case you are looking for
|
||||
* `[POST] session` to initialise a session on the server, take a look at `/lib/protocol/init`.
|
||||
*
|
||||
* <example>
|
||||
:session.js
|
||||
it('should get/delete current session using the protocol command', function () {
|
||||
// retrieve the resolved capabilities of the specified session
|
||||
var caps = browser.session();
|
||||
console.log(caps); // outputs: { browserName: "...", ... }
|
||||
|
||||
// you can also just call (see http://webdriver.io/guide/testrunner/browserobject.html)
|
||||
console.log(browser.desiredCapabilities);
|
||||
|
||||
// delete the session (equivalent to `end` action command)
|
||||
// Note: the wdio testrunner doesn't allow to call this command manually. It will close the session
|
||||
// when the test has ended.
|
||||
browser.session('delete'); // throws an error
|
||||
});
|
||||
* </example>
|
||||
*
|
||||
* @param {String=} doWhat session operation (`get` (default)|`delete`)
|
||||
* @param {String} sessionId session id to operate on
|
||||
*
|
||||
* @see https://w3c.github.io/webdriver/webdriver-spec.html#dfn-delete-session
|
||||
* @type protocol
|
||||
*
|
||||
*/
|
||||
|
||||
import { ProtocolError, CommandError } from '../utils/ErrorHandler'
|
||||
|
||||
export default function session (doWhat = 'GET', sessionId) {
|
||||
/*!
|
||||
* parameter check
|
||||
*/
|
||||
if (typeof sessionId !== 'string') {
|
||||
/*!
|
||||
* if session was already closed return `undefined`
|
||||
* ToDo or maybe throw an error
|
||||
*/
|
||||
if (!this.requestHandler.sessionID) {
|
||||
return null
|
||||
}
|
||||
|
||||
sessionId = this.requestHandler.sessionID
|
||||
}
|
||||
|
||||
doWhat = doWhat.toUpperCase()
|
||||
|
||||
/*!
|
||||
* get session
|
||||
*/
|
||||
if (doWhat === 'GET') {
|
||||
return this.requestHandler.create({
|
||||
path: `/session/${sessionId}`,
|
||||
method: 'GET',
|
||||
requiresSession: false
|
||||
})
|
||||
}
|
||||
|
||||
const lastCommand = this.commandList.slice(-3, -2)
|
||||
const isInternalCall = lastCommand.length && lastCommand[0].name === 'reload'
|
||||
|
||||
/*!
|
||||
* delete session
|
||||
*/
|
||||
if (doWhat === 'DELETE') {
|
||||
/**
|
||||
* make sure we don't run this command within wdio test run
|
||||
*/
|
||||
if (this.options.isWDIO && !isInternalCall) {
|
||||
throw new CommandError('Don\'t end the session manually. This will be done automatically.')
|
||||
}
|
||||
|
||||
this.emit('end', {
|
||||
sessionId: this.requestHandler.sessionID
|
||||
})
|
||||
|
||||
return this.requestHandler.create({
|
||||
path: '/session/' + sessionId,
|
||||
method: 'DELETE',
|
||||
requiresSession: false
|
||||
}).then((res) => {
|
||||
/*!
|
||||
* delete sessionID in RequestHandler
|
||||
*/
|
||||
this.requestHandler.sessionID = null
|
||||
return res
|
||||
})
|
||||
}
|
||||
|
||||
throw new ProtocolError('The session command need either a \'delete\' or \'get\'attribute to know what to do. example: client.session(\'get\').then(callback) to get the capabilities of the session.')
|
||||
}
|
||||
Reference in New Issue
Block a user