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

96% Statements 24/25
80% Branches 8/10
0% Functions 0/2
66.67% Lines 2/3
19 statements, 8 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 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87                                                                                                                                                                           
/**
 *
 * Return true or false if the selected DOM-element found by given selector is enabled.
 *
 * <example>
    :index.html
    <input type="text" name="inputField" class="input1">
    <input type="text" name="inputField" class="input2" disabled>
    <input type="text" name="inputField" class="input3" disabled="disabled">
 
    :isEnabled.js
    client
        .isEnabled('.input1').then(function(isEnabled) {
            console.log(isEnabled); // outputs: true
        })
        .isEnabled('.input2').then(function(isEnabled) {
            console.log(isEnabled); // outputs: false
        })
        .isEnabled('.input3').then(function(isEnabled) {
            console.log(isEnabled); // outputs: false
        })
 * </example>
 *
 * @param   {String}             selector  DOM-element
 * @returns {Boolean|Boolean[]}            true if element(s)* (is|are) enabled
 *
 * @uses protocol/elements, protocol/elementIdEnabled
 * @type state
 *
 */
 
'use strict';
 
Object.defineProperty(exports, '__esModule', {
    value: true
});
 
var _utilsErrorHandler = require('../utils/ErrorHandler');
 
var isEnabled = function isEnabled(selector) {
    // istanbul ignore next
 
    var _this = this;
 
    return this.elements(selector).then(function (res) {
        /**
         * throw NoSuchElement error if no element was found
         */
        if (!res.value || res.value.length === 0) {
            throw new _utilsErrorHandler.CommandError(7);
        }
 
        var elementIdEnabledCommands = [];
        var _iteratorNormalCompletion = true;
        var _didIteratorError = false;
        var _iteratorError = undefined;
 
        try {
            for (var _iterator = res.value[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
                var elem = _step.value;
 
                elementIdEnabledCommands.push(_this.elementIdEnabled(elem.ELEMENT));
            }
        } catch (err) {
            _didIteratorError = true;
            _iteratorError = err;
        } finally {
            try {
                if (!_iteratorNormalCompletion && _iterator['return']) {
                    _iterator['return']();
                }
            } finally {
                if (_didIteratorError) {
                    throw _iteratorError;
                }
            }
        }
 
        return _this.unify(elementIdEnabledCommands, {
            extractValue: true
        });
    });
};
 
exports['default'] = isEnabled;
module.exports = exports['default'];
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9jaHJpc3RpYW5icm9tYW5uL1NpdGVzL1dlYnByb2pla3RlL3dlYmRyaXZlcmpzL0RFVi9saWIvY29tbWFuZHMvaXNFbmFibGVkLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7aUNBK0I2Qix1QkFBdUI7O0FBRXBELElBQUksU0FBUyxHQUFHLFNBQVosU0FBUyxDQUFhLFFBQVEsRUFBRTs7Ozs7QUFDaEMsV0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFDLEdBQUcsRUFBSzs7OztBQUl6QyxZQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssSUFBSSxHQUFHLENBQUMsS0FBSyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7QUFDdEMsa0JBQU0sb0NBQWlCLENBQUMsQ0FBQyxDQUFBO1NBQzVCOztBQUVELFlBQUksd0JBQXdCLEdBQUcsRUFBRSxDQUFBOzs7Ozs7QUFDakMsaUNBQWlCLEdBQUcsQ0FBQyxLQUFLLDhIQUFFO29CQUFuQixJQUFJOztBQUNULHdDQUF3QixDQUFDLElBQUksQ0FBQyxNQUFLLGdCQUFnQixDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFBO2FBQ3JFOzs7Ozs7Ozs7Ozs7Ozs7O0FBRUQsZUFBTyxNQUFLLEtBQUssQ0FBQyx3QkFBd0IsRUFBRTtBQUN4Qyx3QkFBWSxFQUFFLElBQUk7U0FDckIsQ0FBQyxDQUFBO0tBQ0wsQ0FBQyxDQUFBO0NBQ0wsQ0FBQTs7cUJBRWMsU0FBUyIsImZpbGUiOiIvVXNlcnMvY2hyaXN0aWFuYnJvbWFubi9TaXRlcy9XZWJwcm9qZWt0ZS93ZWJkcml2ZXJqcy9ERVYvbGliL2NvbW1hbmRzL2lzRW5hYmxlZC5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICpcbiAqIFJldHVybiB0cnVlIG9yIGZhbHNlIGlmIHRoZSBzZWxlY3RlZCBET00tZWxlbWVudCBmb3VuZCBieSBnaXZlbiBzZWxlY3RvciBpcyBlbmFibGVkLlxuICpcbiAqIDxleGFtcGxlPlxuICAgIDppbmRleC5odG1sXG4gICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgbmFtZT1cImlucHV0RmllbGRcIiBjbGFzcz1cImlucHV0MVwiPlxuICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIG5hbWU9XCJpbnB1dEZpZWxkXCIgY2xhc3M9XCJpbnB1dDJcIiBkaXNhYmxlZD5cbiAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBuYW1lPVwiaW5wdXRGaWVsZFwiIGNsYXNzPVwiaW5wdXQzXCIgZGlzYWJsZWQ9XCJkaXNhYmxlZFwiPlxuXG4gICAgOmlzRW5hYmxlZC5qc1xuICAgIGNsaWVudFxuICAgICAgICAuaXNFbmFibGVkKCcuaW5wdXQxJykudGhlbihmdW5jdGlvbihpc0VuYWJsZWQpIHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKGlzRW5hYmxlZCk7IC8vIG91dHB1dHM6IHRydWVcbiAgICAgICAgfSlcbiAgICAgICAgLmlzRW5hYmxlZCgnLmlucHV0MicpLnRoZW4oZnVuY3Rpb24oaXNFbmFibGVkKSB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhpc0VuYWJsZWQpOyAvLyBvdXRwdXRzOiBmYWxzZVxuICAgICAgICB9KVxuICAgICAgICAuaXNFbmFibGVkKCcuaW5wdXQzJykudGhlbihmdW5jdGlvbihpc0VuYWJsZWQpIHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKGlzRW5hYmxlZCk7IC8vIG91dHB1dHM6IGZhbHNlXG4gICAgICAgIH0pXG4gKiA8L2V4YW1wbGU+XG4gKlxuICogQHBhcmFtICAge1N0cmluZ30gICAgICAgICAgICAgc2VsZWN0b3IgIERPTS1lbGVtZW50XG4gKiBAcmV0dXJucyB7Qm9vbGVhbnxCb29sZWFuW119ICAgICAgICAgICAgdHJ1ZSBpZiBlbGVtZW50KHMpKiAoaXN8YXJlKSBlbmFibGVkXG4gKlxuICogQHVzZXMgcHJvdG9jb2wvZWxlbWVudHMsIHByb3RvY29sL2VsZW1lbnRJZEVuYWJsZWRcbiAqIEB0eXBlIHN0YXRlXG4gKlxuICovXG5cbmltcG9ydCB7IENvbW1hbmRFcnJvciB9IGZyb20gJy4uL3V0aWxzL0Vycm9ySGFuZGxlcidcblxubGV0IGlzRW5hYmxlZCA9IGZ1bmN0aW9uIChzZWxlY3Rvcikge1xuICAgIHJldHVybiB0aGlzLmVsZW1lbnRzKHNlbGVjdG9yKS50aGVuKChyZXMpID0+IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIHRocm93IE5vU3VjaEVsZW1lbnQgZXJyb3IgaWYgbm8gZWxlbWVudCB3YXMgZm91bmRcbiAgICAgICAgICovXG4gICAgICAgIGlmICghcmVzLnZhbHVlIHx8IHJlcy52YWx1ZS5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBDb21tYW5kRXJyb3IoNylcbiAgICAgICAgfVxuXG4gICAgICAgIGxldCBlbGVtZW50SWRFbmFibGVkQ29tbWFuZHMgPSBbXVxuICAgICAgICBmb3IgKGxldCBlbGVtIG9mIHJlcy52YWx1ZSkge1xuICAgICAgICAgICAgZWxlbWVudElkRW5hYmxlZENvbW1hbmRzLnB1c2godGhpcy5lbGVtZW50SWRFbmFibGVkKGVsZW0uRUxFTUVOVCkpXG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcy51bmlmeShlbGVtZW50SWRFbmFibGVkQ29tbWFuZHMsIHtcbiAgICAgICAgICAgIGV4dHJhY3RWYWx1ZTogdHJ1ZVxuICAgICAgICB9KVxuICAgIH0pXG59XG5cbmV4cG9ydCBkZWZhdWx0IGlzRW5hYmxlZFxuIl19