"use strict"; var __extends = (this && this.__extends) || function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; function __() { this.constructor = d; } d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); }; /* * This is an implementation of the Attach Session Driver Provider. * It is responsible for setting up the account object, tearing * it down, and setting up the driver correctly. */ var q = require("q"); var selenium_webdriver_1 = require("selenium-webdriver"); var executors = require("selenium-webdriver/executors"); var logger_1 = require("../logger"); var driverProvider_1 = require("./driverProvider"); var logger = new logger_1.Logger('attachSession'); var AttachSession = (function (_super) { __extends(AttachSession, _super); function AttachSession(config) { return _super.call(this, config) || this; } /** * Configure and launch (if applicable) the object's environment. * @public * @return {q.promise} A promise which will resolve when the environment is * ready to test. */ AttachSession.prototype.setupEnv = function () { logger.info('Using the selenium server at ' + this.config_.seleniumAddress); logger.info('Using session id - ' + this.config_.seleniumSessionId); return q(undefined); }; /** * Getting a new driver by attaching an existing session. * * @public * @return {WebDriver} webdriver instance */ AttachSession.prototype.getNewDriver = function () { var executor = executors.createExecutor(this.config_.seleniumAddress); var newDriver = selenium_webdriver_1.WebDriver.attachToSession(executor, this.config_.seleniumSessionId); this.drivers_.push(newDriver); return newDriver; }; /** * Maintains the existing session and does not quit the driver. * * @public */ AttachSession.prototype.quitDriver = function () { var defer = q.defer(); defer.resolve(null); return defer.promise; }; return AttachSession; }(driverProvider_1.DriverProvider)); exports.AttachSession = AttachSession;