all files / DEV/lib/commands/ close.js

100% Statements 12/12
100% Branches 4/4
0% Functions 0/2
100% Lines 2/2
7 statements, 4 branches Ignored     
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55                                                                                                           
/**
 *
 * Close current window (and focus on an other window). If no window handle is given
 * it automatically switches back to the first handle.
 *
 * <example>
    :close.js
    client
        .url('http://github.com')
        .newWindow('http://google.com')
        .getTitle().then(function(title) {
            console.log(title); // outputs: "Google"
        })
        .close()
        .getTitle().then(function(title) {
            console.log(title); // outputs: "GitHub · Build software better, together."
        });
 * </example>
 *
 * @param {String=} windowHandle new window to focus on
 *
 * @uses protocol/window, window/switchTab
 * @type window
 *
 */
 
'use strict';
 
Object.defineProperty(exports, '__esModule', {
    value: true
});
 
var _utilsErrorHandler = require('../utils/ErrorHandler');
 
var close = function close(windowHandle) {
    // istanbul ignore next
 
    var _this = this;
 
    if (typeof windowHandle !== 'string') {
        return this.getTabIds().then(function (tabIds) {
            if (tabIds.length === 0) {
                throw new _utilsErrorHandler.RuntimeError('' + 'Can\'t switch to the next tab because all windows are closed. ' + 'Make sure you keep at least one window open!');
            }
 
            return _this.window().switchTab(tabIds[0]);
        });
    }
 
    return this.window().switchTab(windowHandle);
};
 
exports['default'] = close;
module.exports = exports['default'];
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9jaHJpc3RpYW5icm9tYW5uL1NpdGVzL1dlYnByb2pla3RlL3dlYmRyaXZlcmpzL0RFVi9saWIvY29tbWFuZHMvY2xvc2UuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7aUNBMEI2Qix1QkFBdUI7O0FBRXBELElBQUksS0FBSyxHQUFHLFNBQVIsS0FBSyxDQUFhLFlBQVksRUFBRTs7Ozs7QUFDaEMsUUFBSSxPQUFPLFlBQVksS0FBSyxRQUFRLEVBQUU7QUFDbEMsZUFBTyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUMsSUFBSSxDQUFDLFVBQUMsTUFBTSxFQUFLO0FBQ3JDLGdCQUFJLE1BQU0sQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO0FBQ3JCLHNCQUFNLG9DQUFpQixxRUFDNEMsaURBQ2pCLENBQUMsQ0FBQTthQUN0RDs7QUFFRCxtQkFBTyxNQUFLLE1BQU0sRUFBRSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQTtTQUM1QyxDQUFDLENBQUE7S0FDTDs7QUFFRCxXQUFPLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDLENBQUE7Q0FDL0MsQ0FBQTs7cUJBRWMsS0FBSyIsImZpbGUiOiIvVXNlcnMvY2hyaXN0aWFuYnJvbWFubi9TaXRlcy9XZWJwcm9qZWt0ZS93ZWJkcml2ZXJqcy9ERVYvbGliL2NvbW1hbmRzL2Nsb3NlLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKlxuICogQ2xvc2UgY3VycmVudCB3aW5kb3cgKGFuZCBmb2N1cyBvbiBhbiBvdGhlciB3aW5kb3cpLiBJZiBubyB3aW5kb3cgaGFuZGxlIGlzIGdpdmVuXG4gKiBpdCBhdXRvbWF0aWNhbGx5IHN3aXRjaGVzIGJhY2sgdG8gdGhlIGZpcnN0IGhhbmRsZS5cbiAqXG4gKiA8ZXhhbXBsZT5cbiAgICA6Y2xvc2UuanNcbiAgICBjbGllbnRcbiAgICAgICAgLnVybCgnaHR0cDovL2dpdGh1Yi5jb20nKVxuICAgICAgICAubmV3V2luZG93KCdodHRwOi8vZ29vZ2xlLmNvbScpXG4gICAgICAgIC5nZXRUaXRsZSgpLnRoZW4oZnVuY3Rpb24odGl0bGUpIHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKHRpdGxlKTsgLy8gb3V0cHV0czogXCJHb29nbGVcIlxuICAgICAgICB9KVxuICAgICAgICAuY2xvc2UoKVxuICAgICAgICAuZ2V0VGl0bGUoKS50aGVuKGZ1bmN0aW9uKHRpdGxlKSB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyh0aXRsZSk7IC8vIG91dHB1dHM6IFwiR2l0SHViIMK3IEJ1aWxkIHNvZnR3YXJlIGJldHRlciwgdG9nZXRoZXIuXCJcbiAgICAgICAgfSk7XG4gKiA8L2V4YW1wbGU+XG4gKlxuICogQHBhcmFtIHtTdHJpbmc9fSB3aW5kb3dIYW5kbGUgbmV3IHdpbmRvdyB0byBmb2N1cyBvblxuICpcbiAqIEB1c2VzIHByb3RvY29sL3dpbmRvdywgd2luZG93L3N3aXRjaFRhYlxuICogQHR5cGUgd2luZG93XG4gKlxuICovXG5cbmltcG9ydCB7IFJ1bnRpbWVFcnJvciB9IGZyb20gJy4uL3V0aWxzL0Vycm9ySGFuZGxlcidcblxubGV0IGNsb3NlID0gZnVuY3Rpb24gKHdpbmRvd0hhbmRsZSkge1xuICAgIGlmICh0eXBlb2Ygd2luZG93SGFuZGxlICE9PSAnc3RyaW5nJykge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXRUYWJJZHMoKS50aGVuKCh0YWJJZHMpID0+IHtcbiAgICAgICAgICAgIGlmICh0YWJJZHMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IFJ1bnRpbWVFcnJvcihgYCArXG4gICAgICAgICAgICAgICAgICAgIGBDYW4ndCBzd2l0Y2ggdG8gdGhlIG5leHQgdGFiIGJlY2F1c2UgYWxsIHdpbmRvd3MgYXJlIGNsb3NlZC4gYCArXG4gICAgICAgICAgICAgICAgICAgIGBNYWtlIHN1cmUgeW91IGtlZXAgYXQgbGVhc3Qgb25lIHdpbmRvdyBvcGVuIWApXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiB0aGlzLndpbmRvdygpLnN3aXRjaFRhYih0YWJJZHNbMF0pXG4gICAgICAgIH0pXG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMud2luZG93KCkuc3dpdGNoVGFiKHdpbmRvd0hhbmRsZSlcbn1cblxuZXhwb3J0IGRlZmF1bHQgY2xvc2VcbiJdfQ==