Innovenergy_trunk/frontend/node_modules/testcafe/lib/test-run/commands/browser-manipulation.js

107 lines
14 KiB
JavaScript

"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.MaximizeWindowCommand = exports.ResizeWindowToFitDeviceCommand = exports.ResizeWindowCommand = exports.TakeScreenshotOnFailCommand = exports.TakeElementScreenshotCommand = exports.TakeScreenshotCommand = exports.TakeScreenshotBaseCommand = void 0;
const type_1 = __importDefault(require("./type"));
const base_1 = require("./base");
const options_1 = require("./options");
const initializers_1 = require("./validations/initializers");
const argument_1 = require("./validations/argument");
const utils_1 = require("../../screenshots/utils");
const lodash_1 = require("lodash");
function initResizeToFitDeviceOptions(name, val, initOptions, validate = true) {
return new options_1.ResizeToFitDeviceOptions(val, validate);
}
function initElementScreenshotOptions(name, val, initOptions, validate = true) {
return new options_1.ElementScreenshotOptions(val, validate);
}
// Commands
class TakeScreenshotBaseCommand extends base_1.ActionCommandBase {
constructor(obj, testRun, type, validateProperties) {
super(obj, testRun, type, validateProperties);
this.markSeed = null;
this.markData = '';
}
generateScreenshotMark() {
Object.assign(this, (0, utils_1.generateScreenshotMark)());
}
}
exports.TakeScreenshotBaseCommand = TakeScreenshotBaseCommand;
class TakeScreenshotCommand extends TakeScreenshotBaseCommand {
constructor(obj, testRun, validateProperties) {
super(obj, testRun, type_1.default.takeScreenshot, validateProperties);
}
getAssignableProperties() {
return [
{ name: 'path', type: argument_1.screenshotPathArgument, defaultValue: '' },
{ name: 'fullPage', type: argument_1.booleanArgument, defaultValue: void 0 },
{ name: 'thumbnails', type: argument_1.booleanArgument, defaultValue: void 0 },
];
}
}
exports.TakeScreenshotCommand = TakeScreenshotCommand;
TakeScreenshotCommand.methodName = (0, lodash_1.camelCase)(type_1.default.takeScreenshot);
class TakeElementScreenshotCommand extends TakeScreenshotBaseCommand {
constructor(obj, testRun, validateProperties) {
super(obj, testRun, type_1.default.takeElementScreenshot, validateProperties);
}
getAssignableProperties() {
return [
{ name: 'selector', init: initializers_1.initSelector, required: true },
{ name: 'options', init: initElementScreenshotOptions, required: true },
{ name: 'path', type: argument_1.screenshotPathArgument, defaultValue: '' },
];
}
}
exports.TakeElementScreenshotCommand = TakeElementScreenshotCommand;
TakeElementScreenshotCommand.methodName = (0, lodash_1.camelCase)(type_1.default.takeElementScreenshot);
class TakeScreenshotOnFailCommand extends TakeScreenshotBaseCommand {
constructor(obj, testRun) {
super(obj, testRun, type_1.default.takeScreenshotOnFail);
}
getAssignableProperties() {
return [
{ name: 'fullPage', type: argument_1.booleanArgument, defaultValue: false },
{ name: 'failedActionId', type: argument_1.stringArgument },
];
}
}
exports.TakeScreenshotOnFailCommand = TakeScreenshotOnFailCommand;
TakeScreenshotOnFailCommand.methodName = (0, lodash_1.camelCase)(type_1.default.takeScreenshotOnFail);
class ResizeWindowCommand extends base_1.ActionCommandBase {
constructor(obj, testRun) {
super(obj, testRun, type_1.default.resizeWindow);
}
getAssignableProperties() {
return [
{ name: 'width', type: argument_1.positiveIntegerArgument, required: true },
{ name: 'height', type: argument_1.positiveIntegerArgument, required: true },
];
}
}
exports.ResizeWindowCommand = ResizeWindowCommand;
ResizeWindowCommand.methodName = (0, lodash_1.camelCase)(type_1.default.resizeWindow);
class ResizeWindowToFitDeviceCommand extends base_1.ActionCommandBase {
constructor(obj, testRun, validateProperties) {
super(obj, testRun, type_1.default.resizeWindowToFitDevice, validateProperties);
}
getAssignableProperties() {
return [
{ name: 'device', type: argument_1.resizeWindowDeviceArgument, required: true },
{ name: 'options', type: argument_1.actionOptions, init: initResizeToFitDeviceOptions, required: true },
];
}
}
exports.ResizeWindowToFitDeviceCommand = ResizeWindowToFitDeviceCommand;
ResizeWindowToFitDeviceCommand.methodName = (0, lodash_1.camelCase)(type_1.default.resizeWindowToFitDevice);
class MaximizeWindowCommand extends base_1.ActionCommandBase {
constructor() {
super();
this.type = type_1.default.maximizeWindow;
}
}
exports.MaximizeWindowCommand = MaximizeWindowCommand;
MaximizeWindowCommand.methodName = (0, lodash_1.camelCase)(type_1.default.maximizeWindow);
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJvd3Nlci1tYW5pcHVsYXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdGVzdC1ydW4vY29tbWFuZHMvYnJvd3Nlci1tYW5pcHVsYXRpb24uanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsa0RBQTBCO0FBQzFCLGlDQUEyQztBQUMzQyx1Q0FBK0U7QUFDL0UsNkRBQTBEO0FBRTFELHFEQU9nQztBQUVoQyxtREFBaUU7QUFDakUsbUNBQW1DO0FBRW5DLFNBQVMsNEJBQTRCLENBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxXQUFXLEVBQUUsUUFBUSxHQUFHLElBQUk7SUFDMUUsT0FBTyxJQUFJLGtDQUF3QixDQUFDLEdBQUcsRUFBRSxRQUFRLENBQUMsQ0FBQztBQUN2RCxDQUFDO0FBRUQsU0FBUyw0QkFBNEIsQ0FBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLFdBQVcsRUFBRSxRQUFRLEdBQUcsSUFBSTtJQUMxRSxPQUFPLElBQUksa0NBQXdCLENBQUMsR0FBRyxFQUFFLFFBQVEsQ0FBQyxDQUFDO0FBQ3ZELENBQUM7QUFFRCxXQUFXO0FBQ1gsTUFBYSx5QkFBMEIsU0FBUSx3QkFBaUI7SUFDNUQsWUFBYSxHQUFHLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxrQkFBa0I7UUFDL0MsS0FBSyxDQUFDLEdBQUcsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLGtCQUFrQixDQUFDLENBQUM7UUFFOUMsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7UUFDckIsSUFBSSxDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUM7SUFDdkIsQ0FBQztJQUVELHNCQUFzQjtRQUNsQixNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxJQUFBLDhCQUFzQixHQUFFLENBQUMsQ0FBQztJQUNsRCxDQUFDO0NBQ0o7QUFYRCw4REFXQztBQUVELE1BQWEscUJBQXNCLFNBQVEseUJBQXlCO0lBR2hFLFlBQWEsR0FBRyxFQUFFLE9B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LEVBQUUsa0JBQWtCLENBQUMsQ0FBQztJQUMxRSxDQUFDO0lBRUQsdUJBQXVCO1FBQ25CLE9BQU87WUFDSCxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLHFDQUEwQixFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUU7WUFDcEUsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSx3QkFBYSxFQUFFLElBQUksRUFBRSw0QkFBNEIsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFO1NBQy9GLENBQUM7SUFDTixDQUFDOztBQVpMLHdFQWFDO0FBWlUseUNBQVUsR0FBRyxJQUFBLGtCQUFTLEVBQUMsY0FBSSxDQUFDLHVCQUF1QixDQUFDLENBQUM7QUFjaEUsTUFBYSxxQkFBc0IsU0FBUSx3QkFBaUI7SUFHeEQ7UUFDSSxLQUFLLEVBQUUsQ0FBQztRQUNSLElBQUksQ0FBQyxJQUFJLEdBQUcsY0FBSSxDQUFDLGNBQWMsQ0FBQztJQUNwQyxDQUFDOztBQU5MLHNEQU9DO0FBTlUsZ0NBQVUsR0FBRyxJQUFBLGtCQUFTLEVBQUMsY0FBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFRZUEUgZnJvbSAnLi90eXBlJztcbmltcG9ydCB7IEFjdGlvbkNvbW1hbmRCYXNlIH0gZnJvbSAnLi9iYXNlJztcbmltcG9ydCB7IEVsZW1lbnRTY3JlZW5zaG90T3B0aW9ucywgUmVzaXplVG9GaXREZXZpY2VPcHRpb25zIH0gZnJvbSAnLi9vcHRpb25zJztcbmltcG9ydCB7IGluaXRTZWxlY3RvciB9IGZyb20gJy4vdmFsaWRhdGlvbnMvaW5pdGlhbGl6ZXJzJztcblxuaW1wb3J0IHtcbiAgICBib29sZWFuQXJndW1lbnQsXG4gICAgcG9zaXRpdmVJbnRlZ2VyQXJndW1lbnQsXG4gICAgc2NyZWVuc2hvdFBhdGhBcmd1bWVudCxcbiAgICByZXNpemVXaW5kb3dEZXZpY2VBcmd1bWVudCxcbiAgICBhY3Rpb25PcHRpb25zLFxuICAgIHN0cmluZ0FyZ3VtZW50LFxufSBmcm9tICcuL3ZhbGlkYXRpb25zL2FyZ3VtZW50JztcblxuaW1wb3J0IHsgZ2VuZXJhdGVTY3JlZW5zaG90TWFyayB9IGZyb20gJy4uLy4uL3NjcmVlbnNob3RzL3V0aWxzJztcbmltcG9ydCB7IGNhbWVsQ2FzZSB9IGZyb20gJ2xvZGFzaCc7XG5cbmZ1bmN0aW9uIGluaXRSZXNpemVUb0ZpdERldmljZU9wdGlvbnMgKG5hbWUsIHZhbCwgaW5pdE9wdGlvbnMsIHZhbGlkYXRlID0gdHJ1ZSkge1xuICAgIHJldHVybiBuZXcgUmVzaXplVG9GaXREZXZpY2VPcHRpb25zKHZhbCwgdmFsaWRhdGUpO1xufVxuXG5mdW5jdGlvbiBpbml0RWxlbWVudFNjcmVlbnNob3RPcHRpb25zIChuYW1lLCB2YWwsIGluaXRPcHRpb25zLCB2YWxpZGF0ZSA9IHRydWUpIHtcbiAgICByZXR1cm4gbmV3IEVsZW1lbnRTY3JlZW5zaG90T3B0aW9ucyh2YWwsIHZhbGlkYXRlKTtcbn1cblxuLy8gQ29tbWFuZHNcbmV4cG9ydCBjbGFzcyBUYWtlU2NyZWVuc2hvdEJhc2VDb21tYW5kIGV4dGVuZHMgQWN0aW9uQ29tbWFuZEJhc2Uge1xuICAgIGNvbnN0cnVjdG9yIChvYmosIHRlc3RSdW4sIHR5cGUsIHZhbGlkYXRlUHJvcGVydGllcykge1xuICAgICAgICBzdXBlcihvYmosIHRlc3RSdW4sIHR5cGUsIHZhbGlkYXRlUHJvcGVydGllcyk7XG5cbiAgICAgICAgdGhpcy5tYXJrU2VlZCA9IG51bGw7XG4gICAgICAgIHRoaXMubWFya0RhdGEgPSAnJztcbiAgICB9XG5cbiAgICBnZW5lcmF0ZVNjcmVlbnNob3RNYXJrICgpIHtcbiAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLCBnZW5lcmF0ZVNjcmVlbnNob3RNYXJrKCkpO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIFRha2VTY3JlZW5zaG90Q29tbWFuZCBleHRlbmRzIFRha2VTY3JlZW5zaG90QmFzZUNvbW1hbmQge1xuICAgIHN0YXRpYyBtZXRob2ROYW1lID0gY2FtZWxDYXNlKFRZUEUudGFrZVNjcmVlbnNob3QpO1xuXG4gICAgY29uc3RydWN0b3IgKG9iaiwgdGVzdFJ1biwgdmFsaWRhdGVQcm9wZXJ0aWVzKSB7XG4gICAgICAgIHN1cGVyKG9iaiwgdGVzdFJ1biwgVFlQRS50YWtlU2NyZWVuc2hvdCwgdmFsaWRhdGVQcm9wZXJ0aWVzKTtcbiAgICB9XG5cbiAgICBnZXRBc3NpZ25hYmxlUHJvcGVydGllcyAoKSB7XG4gICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICB7IG5hbWU6ICdwYXRoJywgdHlwZTogc2NyZWVuc2hvdFBhdGhBcmd1bWVudCwgZGVmYXVsdFZhbHVlOiAnJyB9LFxuICAgICAgICAgICAgeyBuYW1lOiAnZnVsbFBhZ2UnLCB0eXBlOiBib29sZWFuQXJndW1lbnQsIGRlZmF1bHRWYWx1ZTogdm9pZCAwIH0sXG4gICAgICAgICAgICB7IG5hbWU6ICd0aHVtYm5haWxzJywgdHlwZTogYm9vbGVhbkFyZ3VtZW50LCBkZWZhdWx0VmFsdWU6IHZvaWQgMCB9LFxuICAgICAgICBdO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIFRha2VFbGVtZW50U2NyZWVuc2hvdENvbW1hbmQgZXh0ZW5kcyBUYWtlU2NyZWVuc2hvdEJhc2VDb21tYW5kIHtcbiAgICBzdGF0aWMgbWV0aG9kTmFtZSA9IGNhbWVsQ2FzZShUWVBFLnRha2VFbGVtZW50U2NyZWVuc2hvdCk7XG5cbiAgICBjb25zdHJ1Y3RvciAob2JqLCB0ZXN0UnVuLCB2YWxpZGF0ZVByb3BlcnRpZXMpIHtcbiAgICAgICAgc3VwZXIob2JqLCB0ZXN0UnVuLCBUWVBFLnRha2VFbGVtZW50U2NyZWVuc2hvdCwgdmFsaWRhdGVQcm9wZXJ0aWVzKTtcbiAgICB9XG5cbiAgICBnZXRBc3NpZ25hYmxlUHJvcGVydGllcyAoKSB7XG4gICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICB7IG5hbWU6ICdzZWxlY3RvcicsIGluaXQ6IGluaXRTZWxlY3RvciwgcmVxdWlyZWQ6IHRydWUgfSxcbiAgICAgICAgICAgIHsgbmFtZTogJ29wdGlvbnMnLCBpbml0OiBpbml0RWxlbWVudFNjcmVlbnNob3RPcHRpb25zLCByZXF1aXJlZDogdHJ1ZSB9LFxuICAgICAgICAgICAgeyBuYW1lOiAncGF0aCcsIHR5cGU6IHNjcmVlbnNob3RQYXRoQXJndW1lbnQsIGRlZmF1bHRWYWx1ZTogJycgfSxcbiAgICAgICAgXTtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBUYWtlU2NyZWVuc2hvdE9uRmFpbENvbW1hbmQgZXh0ZW5kcyBUYWtlU2NyZWVuc2hvdEJhc2VDb21tYW5kIHtcbiAgICBzdGF0aWMgbWV0aG9kTmFtZSA9IGNhbWVsQ2FzZShUWVBFLnRha2VTY3JlZW5zaG90T25GYWlsKTtcblxuICAgIGNvbnN0cnVjdG9yIChvYmosIHRlc3RSdW4pIHtcbiAgICAgICAgc3VwZXIob2JqLCB0ZXN0UnVuLCBUWVBFLnRha2VTY3JlZW5zaG90T25GYWlsKTtcbiAgICB9XG5cbiAgICBnZXRBc3NpZ25hYmxlUHJvcGVydGllcyAoKSB7XG4gICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICB7IG5hbWU6ICdmdWxsUGFnZScsIHR5cGU6IGJvb2xlYW5Bcmd1bWVudCwgZGVmYXVsdFZhbHVlOiBmYWxzZSB9LFxuICAgICAgICAgICAgeyBuYW1lOiAnZmFpbGVkQWN0aW9uSWQnLCB0eXBlOiBzdHJpbmdBcmd1bWVudCB9LFxuICAgICAgICBdO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIFJlc2l6ZVdpbmRvd0NvbW1hbmQgZXh0ZW5kcyBBY3Rpb25Db21tYW5kQmFzZSB7XG4gICAgc3RhdGljIG1ldGhvZE5hbWUgPSBjYW1lbENhc2UoVFlQRS5yZXNpemVXaW5kb3cpO1xuXG4gICAgY29uc3RydWN0b3IgKG9iaiwgdGVzdFJ1bikge1xuICAgICAgICBzdXBlcihvYmosIHRlc3RSdW4sIFRZUEUucmVzaXplV2luZG93KTtcbiAgICB9XG5cbiAgICBnZXRBc3NpZ25hYmxlUHJvcGVydGllcyAoKSB7XG4gICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICB7IG5hbWU6ICd3aWR0aCcsIHR5cGU6IHBvc2l0aXZlSW50ZWdlckFyZ3VtZW50LCByZXF1aXJlZDogdHJ1ZSB9LFxuICAgICAgICAgICAgeyBuYW1lOiAnaGVpZ2h0JywgdHlwZTogcG9zaXRpdmVJbnRlZ2VyQXJndW1lbnQsIHJlcXVpcmVkOiB0cnVlIH0sXG4gICAgICAgIF07XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgUmVzaXplV2luZG93VG9GaXREZXZpY2VDb21tYW5kIGV4dGVuZHMgQWN0aW9uQ29tbWFuZEJhc2Uge1xuICAgIHN0YXRpYyBtZXRob2ROYW1lID0gY2FtZWxDYXNlKFRZUEUucmVzaXplV2luZG93VG9GaXREZXZpY2UpO1xuXG4gICAgY29uc3RydWN0b3IgKG9iaiwgdGVzdFJ1biwgdmFsaWRhdGVQcm9wZXJ0aWVzKSB7XG4gICAgICAgIHN1cGVyKG9iaiwgdGVzdFJ1biwgVFlQRS5yZXNpemVXaW5kb3dUb0ZpdERldmljZSwgdmFsaWRhdGVQcm9wZXJ0aWVzKTtcbiAgICB9XG5cbiAgICBnZXRBc3NpZ25hYmxlUHJvcGVydGllcyAoKSB7XG4gICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICB7IG5hbWU6ICdkZXZpY2UnLCB0eXBlOiByZXNpemVXaW5kb3dEZXZpY2VBcmd1bWVudCwgcmVxdWlyZWQ6IHRydWUgfSxcbiAgICAgICAgICAgIHsgbmFtZTogJ29wdGlvbnMnLCB0eXBlOiBhY3Rpb25PcHRpb25zLCBpbml0OiBpbml0UmVzaXplVG9GaXREZXZpY2VPcHRpb25zLCByZXF1aXJlZDogdHJ1ZSB9LFxuICAgICAgICBdO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIE1heGltaXplV2luZG93Q29tbWFuZCBleHRlbmRzIEFjdGlvbkNvbW1hbmRCYXNlIHtcbiAgICBzdGF0aWMgbWV0aG9kTmFtZSA9IGNhbWVsQ2FzZShUWVBFLm1heGltaXplV2luZG93KTtcblxuICAgIGNvbnN0cnVjdG9yICgpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgdGhpcy50eXBlID0gVFlQRS5tYXhpbWl6ZVdpbmRvdztcbiAgICB9XG59XG4iXX0=