all files / DEV/lib/protocol/ log.js

94.12% Statements 16/17
50% Branches 4/8
0% Functions 0/4
75% Lines 3/4
9 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                                                                                                   
/**
 *
 * Get the log for a given log type. Log buffer is reset after each request
 *
 * @param {String} type  The [log type](https://code.google.com/p/selenium/wiki/JsonWireProtocol#Log_Type). This must be provided.
 * @returns {Object[]} The list of [log entries](https://code.google.com/p/selenium/wiki/JsonWireProtocol#Log_Entry_JSON_Object)
 *
 * @see  https://code.google.com/p/selenium/wiki/JsonWireProtocol#/session/:sessionId/log
 * @type protocol
 *
 */
 
'use strict';
 
Object.defineProperty(exports, '__esModule', {
    value: true
});
 
var _utilsErrorHandler = require('../utils/ErrorHandler');

var logTypes = undefined;
 
function getLogTypes() {
    return logTypes ? Promise.resolve(logTypes) : this.logTypes().then(function (types) {
        logTypes = types;
        return logTypes;
    });
}
 
var log = function log(type) {
    // istanbul ignore next
 
    var _this = this;
 
    if (typeof type !== 'string' || type === '') {
        throw new _utilsErrorHandler.ProtocolError('number or type of arguments don\'t agree with log command');
    }
 
    return getLogTypes.call(this).then(function (types) {
        if (types.value.indexOf(type) === -1) {
            throw new _utilsErrorHandler.ProtocolError('this log type ("' + type + '") is not available for this browser/device');
        }
 
        return _this.requestHandler.create('/session/:sessionId/log', {
            type: type
        });
    });
};
 
exports['default'] = log;
module.exports = exports['default'];
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9jaHJpc3RpYW5icm9tYW5uL1NpdGVzL1dlYnByb2pla3RlL3dlYmRyaXZlcmpzL0RFVi9saWIvcHJvdG9jb2wvbG9nLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7OztpQ0FZOEIsdUJBQXVCOztBQUVyRCxJQUFJLFFBQVEsWUFBQSxDQUFBOztBQUVaLFNBQVMsV0FBVyxHQUFJO0FBQ3BCLFdBQU8sUUFBUSxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLEdBQUcsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUM1RCxJQUFJLENBQUMsVUFBQyxLQUFLLEVBQUs7QUFDYixnQkFBUSxHQUFHLEtBQUssQ0FBQTtBQUNoQixlQUFPLFFBQVEsQ0FBQTtLQUNsQixDQUFDLENBQUE7Q0FDTDs7QUFFRCxJQUFJLEdBQUcsR0FBRyxTQUFOLEdBQUcsQ0FBYSxJQUFJLEVBQUU7Ozs7O0FBQ3RCLFFBQUksT0FBTyxJQUFJLEtBQUssUUFBUSxJQUFJLElBQUksS0FBSyxFQUFFLEVBQUU7QUFDekMsY0FBTSxxQ0FBa0IsMkRBQTJELENBQUMsQ0FBQTtLQUN2Rjs7QUFFRCxXQUFPLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQUMsS0FBSyxFQUFLO0FBQzFDLFlBQUksS0FBSyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUU7QUFDbEMsa0JBQU0sMERBQXFDLElBQUksaURBQThDLENBQUE7U0FDaEc7O0FBRUQsZUFBTyxNQUFLLGNBQWMsQ0FBQyxNQUFNLENBQUMseUJBQXlCLEVBQUU7QUFDekQsZ0JBQUksRUFBRSxJQUFJO1NBQ2IsQ0FBQyxDQUFBO0tBQ0wsQ0FBQyxDQUFBO0NBQ0wsQ0FBQTs7cUJBRWMsR0FBRyIsImZpbGUiOiIvVXNlcnMvY2hyaXN0aWFuYnJvbWFubi9TaXRlcy9XZWJwcm9qZWt0ZS93ZWJkcml2ZXJqcy9ERVYvbGliL3Byb3RvY29sL2xvZy5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICpcbiAqIEdldCB0aGUgbG9nIGZvciBhIGdpdmVuIGxvZyB0eXBlLiBMb2cgYnVmZmVyIGlzIHJlc2V0IGFmdGVyIGVhY2ggcmVxdWVzdFxuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSB0eXBlICBUaGUgW2xvZyB0eXBlXShodHRwczovL2NvZGUuZ29vZ2xlLmNvbS9wL3NlbGVuaXVtL3dpa2kvSnNvbldpcmVQcm90b2NvbCNMb2dfVHlwZSkuIFRoaXMgbXVzdCBiZSBwcm92aWRlZC5cbiAqIEByZXR1cm5zIHtPYmplY3RbXX0gVGhlIGxpc3Qgb2YgW2xvZyBlbnRyaWVzXShodHRwczovL2NvZGUuZ29vZ2xlLmNvbS9wL3NlbGVuaXVtL3dpa2kvSnNvbldpcmVQcm90b2NvbCNMb2dfRW50cnlfSlNPTl9PYmplY3QpXG4gKlxuICogQHNlZSAgaHR0cHM6Ly9jb2RlLmdvb2dsZS5jb20vcC9zZWxlbml1bS93aWtpL0pzb25XaXJlUHJvdG9jb2wjL3Nlc3Npb24vOnNlc3Npb25JZC9sb2dcbiAqIEB0eXBlIHByb3RvY29sXG4gKlxuICovXG5cbmltcG9ydCB7IFByb3RvY29sRXJyb3IgfSBmcm9tICcuLi91dGlscy9FcnJvckhhbmRsZXInXG5cbmxldCBsb2dUeXBlc1xuXG5mdW5jdGlvbiBnZXRMb2dUeXBlcyAoKSB7XG4gICAgcmV0dXJuIGxvZ1R5cGVzID8gUHJvbWlzZS5yZXNvbHZlKGxvZ1R5cGVzKSA6IHRoaXMubG9nVHlwZXMoKVxuICAgIC50aGVuKCh0eXBlcykgPT4ge1xuICAgICAgICBsb2dUeXBlcyA9IHR5cGVzXG4gICAgICAgIHJldHVybiBsb2dUeXBlc1xuICAgIH0pXG59XG5cbmxldCBsb2cgPSBmdW5jdGlvbiAodHlwZSkge1xuICAgIGlmICh0eXBlb2YgdHlwZSAhPT0gJ3N0cmluZycgfHwgdHlwZSA9PT0gJycpIHtcbiAgICAgICAgdGhyb3cgbmV3IFByb3RvY29sRXJyb3IoJ251bWJlciBvciB0eXBlIG9mIGFyZ3VtZW50cyBkb25cXCd0IGFncmVlIHdpdGggbG9nIGNvbW1hbmQnKVxuICAgIH1cblxuICAgIHJldHVybiBnZXRMb2dUeXBlcy5jYWxsKHRoaXMpLnRoZW4oKHR5cGVzKSA9PiB7XG4gICAgICAgIGlmICh0eXBlcy52YWx1ZS5pbmRleE9mKHR5cGUpID09PSAtMSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IFByb3RvY29sRXJyb3IoYHRoaXMgbG9nIHR5cGUgKFwiJHt0eXBlfVwiKSBpcyBub3QgYXZhaWxhYmxlIGZvciB0aGlzIGJyb3dzZXIvZGV2aWNlYClcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzLnJlcXVlc3RIYW5kbGVyLmNyZWF0ZSgnL3Nlc3Npb24vOnNlc3Npb25JZC9sb2cnLCB7XG4gICAgICAgICAgICB0eXBlOiB0eXBlXG4gICAgICAgIH0pXG4gICAgfSlcbn1cblxuZXhwb3J0IGRlZmF1bHQgbG9nXG4iXX0=