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

91.67% Statements 11/12
40% Branches 4/10
0% Functions 0/1
66.67% Lines 2/3
6 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 56 57 58 59 60 61 62                                                                                                                         
/**
 *
 * Set network connection.<br>
 * Types:<br>
 * 	- airplane mode
 * 	- wifi on
 * 	- data on
 *
 * These properties behave like a bitmask so if you set the network connection to 0
 * everything will get turned off. However if you for example set the network connection
 * to 4 it will disable the airplane mode and turn off the wifi so that only data will
 * be enabled. WebdriverIO provides a simplified interface to set these values without
 * calculating bitmasks.
 *
 * Note: if you have airplane mode enabled you can't have wifi or data be enabled too
 * (for obvious reasons)
 *
 * <example>
    :setNetworkConnection.js
    client.setNetworkConnection(0) // airplane mode off, wifi off, data off
    client.setNetworkConnection(1) // airplane mode on, wifi off, data off
    client.setNetworkConnection(2) // airplane mode off, wifi on, data off
    client.setNetworkConnection(4) // airplane mode off, wifi off, data on
    client.setNetworkConnection(6) // airplane mode off, wifi on, data on
 * </example>
 *
 * @type mobile
 * @for selendroid
 * @see https://github.com/appium/appium-android-driver/blob/master/lib/commands/network.js#L24-L46
 *
 */
 
'use strict';
 
Object.defineProperty(exports, '__esModule', {
    value: true
});

var _utilsErrorHandler = require('../utils/ErrorHandler');
 
var setNetworkConnection = function setNetworkConnection(type) {
    if (typeof type !== 'number') {
        throw new _utilsErrorHandler.ProtocolError('number or type of arguments don\'t agree with setNetworkConnection protocol command');
    } else if (type > 6 || type < 0) {
        throw new _utilsErrorHandler.ProtocolError('invalid value for network connection');
    } else if (type === 3 || type === 5) {
        throw new _utilsErrorHandler.ProtocolError('you can\'t have wifi or data enabled while in airplane mode');
    }
 
    return this.requestHandler.create({
        path: '/session/:sessionId/network_connection',
        method: 'POST'
    }, {
        parameters: {
            type: type
        }
    });
};
 
exports['default'] = setNetworkConnection;
module.exports = exports['default'];
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9jaHJpc3RpYW5icm9tYW5uL1NpdGVzL1dlYnByb2pla3RlL3dlYmRyaXZlcmpzL0RFVi9saWIvcHJvdG9jb2wvc2V0TmV0d29ya0Nvbm5lY3Rpb24uanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7aUNBZ0M4Qix1QkFBdUI7O0FBRXJELElBQUksb0JBQW9CLEdBQUcsU0FBdkIsb0JBQW9CLENBQWEsSUFBSSxFQUFFO0FBQ3ZDLFFBQUksT0FBTyxJQUFJLEtBQUssUUFBUSxFQUFFO0FBQzFCLGNBQU0scUNBQWtCLHFGQUFxRixDQUFDLENBQUE7S0FDakgsTUFBTSxJQUFJLElBQUksR0FBRyxDQUFDLElBQUksSUFBSSxHQUFHLENBQUMsRUFBRTtBQUM3QixjQUFNLHFDQUFrQixzQ0FBc0MsQ0FBQyxDQUFBO0tBQ2xFLE1BQU0sSUFBSSxJQUFJLEtBQUssQ0FBQyxJQUFJLElBQUksS0FBSyxDQUFDLEVBQUU7QUFDakMsY0FBTSxtR0FBK0UsQ0FBQTtLQUN4Rjs7QUFFRCxXQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDO0FBQzlCLFlBQUksRUFBRSx3Q0FBd0M7QUFDOUMsY0FBTSxFQUFFLE1BQU07S0FDakIsRUFBRTtBQUNDLGtCQUFVLEVBQUU7QUFDUixnQkFBSSxFQUFFLElBQUk7U0FDYjtLQUNKLENBQUMsQ0FBQTtDQUNMLENBQUE7O3FCQUVjLG9CQUFvQiIsImZpbGUiOiIvVXNlcnMvY2hyaXN0aWFuYnJvbWFubi9TaXRlcy9XZWJwcm9qZWt0ZS93ZWJkcml2ZXJqcy9ERVYvbGliL3Byb3RvY29sL3NldE5ldHdvcmtDb25uZWN0aW9uLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKlxuICogU2V0IG5ldHdvcmsgY29ubmVjdGlvbi48YnI+XG4gKiBUeXBlczo8YnI+XG4gKiBcdC0gYWlycGxhbmUgbW9kZVxuICogXHQtIHdpZmkgb25cbiAqIFx0LSBkYXRhIG9uXG4gKlxuICogVGhlc2UgcHJvcGVydGllcyBiZWhhdmUgbGlrZSBhIGJpdG1hc2sgc28gaWYgeW91IHNldCB0aGUgbmV0d29yayBjb25uZWN0aW9uIHRvIDBcbiAqIGV2ZXJ5dGhpbmcgd2lsbCBnZXQgdHVybmVkIG9mZi4gSG93ZXZlciBpZiB5b3UgZm9yIGV4YW1wbGUgc2V0IHRoZSBuZXR3b3JrIGNvbm5lY3Rpb25cbiAqIHRvIDQgaXQgd2lsbCBkaXNhYmxlIHRoZSBhaXJwbGFuZSBtb2RlIGFuZCB0dXJuIG9mZiB0aGUgd2lmaSBzbyB0aGF0IG9ubHkgZGF0YSB3aWxsXG4gKiBiZSBlbmFibGVkLiBXZWJkcml2ZXJJTyBwcm92aWRlcyBhIHNpbXBsaWZpZWQgaW50ZXJmYWNlIHRvIHNldCB0aGVzZSB2YWx1ZXMgd2l0aG91dFxuICogY2FsY3VsYXRpbmcgYml0bWFza3MuXG4gKlxuICogTm90ZTogaWYgeW91IGhhdmUgYWlycGxhbmUgbW9kZSBlbmFibGVkIHlvdSBjYW4ndCBoYXZlIHdpZmkgb3IgZGF0YSBiZSBlbmFibGVkIHRvb1xuICogKGZvciBvYnZpb3VzIHJlYXNvbnMpXG4gKlxuICogPGV4YW1wbGU+XG4gICAgOnNldE5ldHdvcmtDb25uZWN0aW9uLmpzXG4gICAgY2xpZW50LnNldE5ldHdvcmtDb25uZWN0aW9uKDApIC8vIGFpcnBsYW5lIG1vZGUgb2ZmLCB3aWZpIG9mZiwgZGF0YSBvZmZcbiAgICBjbGllbnQuc2V0TmV0d29ya0Nvbm5lY3Rpb24oMSkgLy8gYWlycGxhbmUgbW9kZSBvbiwgd2lmaSBvZmYsIGRhdGEgb2ZmXG4gICAgY2xpZW50LnNldE5ldHdvcmtDb25uZWN0aW9uKDIpIC8vIGFpcnBsYW5lIG1vZGUgb2ZmLCB3aWZpIG9uLCBkYXRhIG9mZlxuICAgIGNsaWVudC5zZXROZXR3b3JrQ29ubmVjdGlvbig0KSAvLyBhaXJwbGFuZSBtb2RlIG9mZiwgd2lmaSBvZmYsIGRhdGEgb25cbiAgICBjbGllbnQuc2V0TmV0d29ya0Nvbm5lY3Rpb24oNikgLy8gYWlycGxhbmUgbW9kZSBvZmYsIHdpZmkgb24sIGRhdGEgb25cbiAqIDwvZXhhbXBsZT5cbiAqXG4gKiBAdHlwZSBtb2JpbGVcbiAqIEBmb3Igc2VsZW5kcm9pZFxuICogQHNlZSBodHRwczovL2dpdGh1Yi5jb20vYXBwaXVtL2FwcGl1bS1hbmRyb2lkLWRyaXZlci9ibG9iL21hc3Rlci9saWIvY29tbWFuZHMvbmV0d29yay5qcyNMMjQtTDQ2XG4gKlxuICovXG5cbmltcG9ydCB7IFByb3RvY29sRXJyb3IgfSBmcm9tICcuLi91dGlscy9FcnJvckhhbmRsZXInXG5cbmxldCBzZXROZXR3b3JrQ29ubmVjdGlvbiA9IGZ1bmN0aW9uICh0eXBlKSB7XG4gICAgaWYgKHR5cGVvZiB0eXBlICE9PSAnbnVtYmVyJykge1xuICAgICAgICB0aHJvdyBuZXcgUHJvdG9jb2xFcnJvcignbnVtYmVyIG9yIHR5cGUgb2YgYXJndW1lbnRzIGRvblxcJ3QgYWdyZWUgd2l0aCBzZXROZXR3b3JrQ29ubmVjdGlvbiBwcm90b2NvbCBjb21tYW5kJylcbiAgICB9IGVsc2UgaWYgKHR5cGUgPiA2IHx8IHR5cGUgPCAwKSB7XG4gICAgICAgIHRocm93IG5ldyBQcm90b2NvbEVycm9yKCdpbnZhbGlkIHZhbHVlIGZvciBuZXR3b3JrIGNvbm5lY3Rpb24nKVxuICAgIH0gZWxzZSBpZiAodHlwZSA9PT0gMyB8fCB0eXBlID09PSA1KSB7XG4gICAgICAgIHRocm93IG5ldyBQcm90b2NvbEVycm9yKGB5b3UgY2FuJ3QgaGF2ZSB3aWZpIG9yIGRhdGEgZW5hYmxlZCB3aGlsZSBpbiBhaXJwbGFuZSBtb2RlYClcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5yZXF1ZXN0SGFuZGxlci5jcmVhdGUoe1xuICAgICAgICBwYXRoOiAnL3Nlc3Npb24vOnNlc3Npb25JZC9uZXR3b3JrX2Nvbm5lY3Rpb24nLFxuICAgICAgICBtZXRob2Q6ICdQT1NUJ1xuICAgIH0sIHtcbiAgICAgICAgcGFyYW1ldGVyczoge1xuICAgICAgICAgICAgdHlwZTogdHlwZVxuICAgICAgICB9XG4gICAgfSlcbn1cblxuZXhwb3J0IGRlZmF1bHQgc2V0TmV0d29ya0Nvbm5lY3Rpb25cbiJdfQ==