forked from applitools/Eyes.Selenium.JavaScript
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathEyesRegionProvider.js
More file actions
66 lines (57 loc) · 2.35 KB
/
Copy pathEyesRegionProvider.js
File metadata and controls
66 lines (57 loc) · 2.35 KB
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
63
64
65
66
(function () {
"use strict";
var EyesUtils = require('eyes.utils'),
EyesWebDriverScreenshot = require('./EyesWebDriverScreenshot');
var RegionProvider = EyesUtils.RegionProvider,
GeometryUtils = EyesUtils.GeometryUtils,
ArgumentGuard = EyesUtils.ArgumentGuard;
/**
* @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;
}());