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

100% Statements 14/14
28.57% Branches 2/7
0% Functions 0/2
100% Lines 2/2
9 statements, 2 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                                                                                                                   
/**
 *
 * Perform a swipe on the screen or an element. If you want to swipe on a specific
 * element make sure you provide a selector argument. If not just pass `xoffset`
 * and `yoffset` as command arguments.
 *
 * start at a particulat screen location
 *
 * @param {String=} selector   element to swipe on
 * @param {Number=} xoffset    x offset of swipe gesture (in pixels or relative units)
 * @param {Number=} yoffset    y offset of swipe gesture (in pixels or relative units)
 * @param {Number=} speed      time (in seconds) to spend performing the swipe
 *
 * @uses protocol/element, protocol/touchFlick
 * @type mobile
 *
 */
 
'use strict';
 
Object.defineProperty(exports, '__esModule', {
  value: true
});
 
var _utilsErrorHandler = require('../utils/ErrorHandler');
 
var swipe = function swipe(selector, xoffset, yoffset, speed) {
  // istanbul ignore next
 
  var _this = this;
 
  /*!
   * mobile check
   */
  if (!this.isMobile) {
    throw new _utilsErrorHandler.CommandError('swipe command is not supported on non mobile platforms');
  }
 
  if (arguments.length === 2 && typeof selector === 'number' && typeof xoffset === 'number') {
    /*!
     * you don't care where the swipe starts on the screen
     */
    var xspeed = selector;
    var yspeed = xoffset;
 
    return this.touchFlick(xspeed, yspeed);
  }
 
  /*!
   * command starts at a particular screen location
   */
  return this.element(selector).then(function (res) {
    return _this.touchFlick(res.value.ELEMENT.toString(), xoffset, yoffset, speed);
  });
};
 
exports['default'] = swipe;
module.exports = exports['default'];
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9jaHJpc3RpYW5icm9tYW5uL1NpdGVzL1dlYnByb2pla3RlL3dlYmRyaXZlcmpzL0RFVi9saWIvY29tbWFuZHMvc3dpcGUuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O2lDQWtCNkIsdUJBQXVCOztBQUVwRCxJQUFJLEtBQUssR0FBRyxTQUFSLEtBQUssQ0FBYSxRQUFRLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUU7Ozs7Ozs7O0FBSXJELE1BQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFO0FBQ2hCLFVBQU0sb0NBQWlCLHdEQUF3RCxDQUFDLENBQUE7R0FDbkY7O0FBRUQsTUFBSSxTQUFTLENBQUMsTUFBTSxLQUFLLENBQUMsSUFBSSxPQUFPLFFBQVEsS0FBSyxRQUFRLElBQUksT0FBTyxPQUFPLEtBQUssUUFBUSxFQUFFOzs7O0FBSXZGLFFBQUksTUFBTSxHQUFHLFFBQVEsQ0FBQTtBQUNyQixRQUFJLE1BQU0sR0FBRyxPQUFPLENBQUE7O0FBRXBCLFdBQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUE7R0FDekM7Ozs7O0FBS0QsU0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDLElBQUksQ0FDOUIsVUFBQyxHQUFHO1dBQUssTUFBSyxVQUFVLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxLQUFLLENBQUM7R0FBQSxDQUFDLENBQUE7Q0FDdkYsQ0FBQTs7cUJBRWMsS0FBSyIsImZpbGUiOiIvVXNlcnMvY2hyaXN0aWFuYnJvbWFubi9TaXRlcy9XZWJwcm9qZWt0ZS93ZWJkcml2ZXJqcy9ERVYvbGliL2NvbW1hbmRzL3N3aXBlLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKlxuICogUGVyZm9ybSBhIHN3aXBlIG9uIHRoZSBzY3JlZW4gb3IgYW4gZWxlbWVudC4gSWYgeW91IHdhbnQgdG8gc3dpcGUgb24gYSBzcGVjaWZpY1xuICogZWxlbWVudCBtYWtlIHN1cmUgeW91IHByb3ZpZGUgYSBzZWxlY3RvciBhcmd1bWVudC4gSWYgbm90IGp1c3QgcGFzcyBgeG9mZnNldGBcbiAqIGFuZCBgeW9mZnNldGAgYXMgY29tbWFuZCBhcmd1bWVudHMuXG4gKlxuICogc3RhcnQgYXQgYSBwYXJ0aWN1bGF0IHNjcmVlbiBsb2NhdGlvblxuICpcbiAqIEBwYXJhbSB7U3RyaW5nPX0gc2VsZWN0b3IgICBlbGVtZW50IHRvIHN3aXBlIG9uXG4gKiBAcGFyYW0ge051bWJlcj19IHhvZmZzZXQgICAgeCBvZmZzZXQgb2Ygc3dpcGUgZ2VzdHVyZSAoaW4gcGl4ZWxzIG9yIHJlbGF0aXZlIHVuaXRzKVxuICogQHBhcmFtIHtOdW1iZXI9fSB5b2Zmc2V0ICAgIHkgb2Zmc2V0IG9mIHN3aXBlIGdlc3R1cmUgKGluIHBpeGVscyBvciByZWxhdGl2ZSB1bml0cylcbiAqIEBwYXJhbSB7TnVtYmVyPX0gc3BlZWQgICAgICB0aW1lIChpbiBzZWNvbmRzKSB0byBzcGVuZCBwZXJmb3JtaW5nIHRoZSBzd2lwZVxuICpcbiAqIEB1c2VzIHByb3RvY29sL2VsZW1lbnQsIHByb3RvY29sL3RvdWNoRmxpY2tcbiAqIEB0eXBlIG1vYmlsZVxuICpcbiAqL1xuXG5pbXBvcnQgeyBDb21tYW5kRXJyb3IgfSBmcm9tICcuLi91dGlscy9FcnJvckhhbmRsZXInXG5cbmxldCBzd2lwZSA9IGZ1bmN0aW9uIChzZWxlY3RvciwgeG9mZnNldCwgeW9mZnNldCwgc3BlZWQpIHtcbiAgICAvKiFcbiAgICAgKiBtb2JpbGUgY2hlY2tcbiAgICAgKi9cbiAgICBpZiAoIXRoaXMuaXNNb2JpbGUpIHtcbiAgICAgICAgdGhyb3cgbmV3IENvbW1hbmRFcnJvcignc3dpcGUgY29tbWFuZCBpcyBub3Qgc3VwcG9ydGVkIG9uIG5vbiBtb2JpbGUgcGxhdGZvcm1zJylcbiAgICB9XG5cbiAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PT0gMiAmJiB0eXBlb2Ygc2VsZWN0b3IgPT09ICdudW1iZXInICYmIHR5cGVvZiB4b2Zmc2V0ID09PSAnbnVtYmVyJykge1xuICAgICAgICAvKiFcbiAgICAgICAgICogeW91IGRvbid0IGNhcmUgd2hlcmUgdGhlIHN3aXBlIHN0YXJ0cyBvbiB0aGUgc2NyZWVuXG4gICAgICAgICAqL1xuICAgICAgICBsZXQgeHNwZWVkID0gc2VsZWN0b3JcbiAgICAgICAgbGV0IHlzcGVlZCA9IHhvZmZzZXRcblxuICAgICAgICByZXR1cm4gdGhpcy50b3VjaEZsaWNrKHhzcGVlZCwgeXNwZWVkKVxuICAgIH1cblxuICAgIC8qIVxuICAgICAqIGNvbW1hbmQgc3RhcnRzIGF0IGEgcGFydGljdWxhciBzY3JlZW4gbG9jYXRpb25cbiAgICAgKi9cbiAgICByZXR1cm4gdGhpcy5lbGVtZW50KHNlbGVjdG9yKS50aGVuKFxuICAgICAgICAocmVzKSA9PiB0aGlzLnRvdWNoRmxpY2socmVzLnZhbHVlLkVMRU1FTlQudG9TdHJpbmcoKSwgeG9mZnNldCwgeW9mZnNldCwgc3BlZWQpKVxufVxuXG5leHBvcnQgZGVmYXVsdCBzd2lwZVxuIl19