eyes.selenium.v68patch
Version:
Applitools Eyes SDK For Selenium JavaScript WebDriver
66 lines (57 loc) • 2.4 kB
JavaScript
(function () {
"use strict";
var EyesUtils = require('eyes.utils'),
EyesSDK = require('eyes.sdk'),
EyesWebDriverScreenshot = require('./EyesWebDriverScreenshot');
var RegionProvider = EyesSDK.RegionProvider,
GeometryUtils = EyesUtils.GeometryUtils;
/**
* @param {Logger} logger
* @param driver
* @param {{left: number, top: number, width: number, height: number}} region
* @param {CoordinatesType} coordinatesType
* @augments RegionProvider
* @constructor
*/
function EyesRegionProvider(logger, driver, region, coordinatesType) {
this._logger = logger;
this._driver = driver;
this._region = region || GeometryUtils.createRegion(0, 0, 0, 0);
this._coordinatesType = coordinatesType || null;
}
EyesRegionProvider.prototype = new RegionProvider();
EyesRegionProvider.prototype.constructor = EyesRegionProvider;
/**
* @return {{left: number, top: number, width: number, height: number}} A region with "as is" viewport coordinates.
*/
EyesRegionProvider.prototype.getRegion = function () {
return this._region;
};
/**
* @param {MutableImage} image
* @param {CoordinatesType} toCoordinatesType
* @param {PromiseFactory} promiseFactory
* @return {Promise<{left: number, top: number, width: number, height: number}>} A region in selected viewport coordinates.
*/
EyesRegionProvider.prototype.getRegionInLocation = function (image, toCoordinatesType, promiseFactory) {
var that = this;
return promiseFactory.makePromise(function (resolve) {
if (that._coordinatesType == toCoordinatesType) {
resolve(that._region);
return;
}
var ewds = new EyesWebDriverScreenshot(that._logger, that._driver, image, promiseFactory);
return ewds.buildScreenshot().then(function () {
var newRegion = ewds.convertRegionLocation(that._region, that._coordinatesType, toCoordinatesType);
resolve(newRegion);
});
});
};
/**
* @return {CoordinatesType} The type of coordinates on which the region is based.
*/
EyesRegionProvider.prototype.getCoordinatesType = function () {
return this._coordinatesType;
};
module.exports = EyesRegionProvider;
}());