@testim/testim-cli
Version:
Command line interface for running Testing on you CI
58 lines (43 loc) • 1.55 kB
JavaScript
/**
*
* Perform a flick on the screen or an element. If you want to flick 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 flick on
* @param {Number=} xoffset x offset of flick gesture (in pixels or relative units)
* @param {Number=} yoffset y offset of flick gesture (in pixels or relative units)
* @param {Number=} speed time (in seconds) to spend performing the flick
*
* @uses protocol/element, protocol/touchFlick
* @type mobile
*
*/
var ErrorHandler = require('../utils/ErrorHandler.js');
module.exports = function flick(selector, xoffset, yoffset, speed) {
var self = this;
/*!
* mobile check
*/
if (!this.isMobile) {
throw new ErrorHandler.CommandError('flick command is not supported on non mobile platforms');
}
if (arguments.length === 2 && typeof selector === 'number' && typeof xoffset === 'number') {
/*!
* you don't care where the flick starts on the screen
*/
var xspeed = arguments[0],
yspeed = arguments[1];
return self.touchFlick(xspeed, yspeed);
} else {
/*!
* command starts at a particular screen location
*/
return self.element(selector)
.then(function (res) {
return self.touchFlick(res.value.ELEMENT.toString(), xoffset, yoffset, speed);
});
}
};