@browserstack/testcafe
Version:
Automated browser testing for the modern web development stack.
48 lines • 6.49 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const testcafe_browser_tools_1 = __importDefault(require("testcafe-browser-tools"));
exports.default = {
openedBrowsers: {},
isMultiBrowser: true,
supportMultipleWindows: true,
needCleanUpBrowserInfo: true,
getActiveWindowId(browserId) {
return this.openedBrowsers[browserId].activeWindowId;
},
setActiveWindowId(browserId, val) {
this.openedBrowsers[browserId].activeWindowId = val;
},
cleanUpBrowserInfo(browserId) {
delete this.openedBrowsers[browserId];
},
async openBrowser(browserId, pageUrl, browserName, allowMultipleWindows) {
const args = browserName.split(' ');
const alias = args.shift();
const browserInfo = await testcafe_browser_tools_1.default.getBrowserInfo(alias);
const openParameters = Object.assign({}, browserInfo);
if (args.length)
openParameters.cmd = args.join(' ') + (openParameters.cmd ? ' ' + openParameters.cmd : '');
await testcafe_browser_tools_1.default.open(openParameters, pageUrl);
let activeWindowId = null;
if (allowMultipleWindows)
activeWindowId = this.calculateWindowId();
this.openedBrowsers[browserId] = { activeWindowId };
},
async isLocalBrowser() {
return true;
},
async getBrowserList() {
const installations = await testcafe_browser_tools_1.default.getInstallations();
return Object.keys(installations);
},
async isValidBrowserName(browserName) {
const browserNames = await this.getBrowserList();
browserName = browserName.toLowerCase().split(' ')[0];
return browserNames.indexOf(browserName) > -1;
}
};
module.exports = exports.default;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWxseS1pbnN0YWxsZWQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYnJvd3Nlci9wcm92aWRlci9idWlsdC1pbi9sb2NhbGx5LWluc3RhbGxlZC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLG9GQUFrRDtBQUVsRCxrQkFBZTtJQUNYLGNBQWMsRUFBRSxFQUFFO0lBRWxCLGNBQWMsRUFBRSxJQUFJO0lBRXBCLHNCQUFzQixFQUFFLElBQUk7SUFFNUIsc0JBQXNCLEVBQUUsSUFBSTtJQUU1QixpQkFBaUIsQ0FBRSxTQUFTO1FBQ3hCLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxjQUFjLENBQUM7SUFDekQsQ0FBQztJQUVELGlCQUFpQixDQUFFLFNBQVMsRUFBRSxHQUFHO1FBQzdCLElBQUksQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDLENBQUMsY0FBYyxHQUFHLEdBQUcsQ0FBQztJQUN4RCxDQUFDO0lBRUQsa0JBQWtCLENBQUUsU0FBUztRQUN6QixPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDMUMsQ0FBQztJQUVELEtBQUssQ0FBQyxXQUFXLENBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxXQUFXLEVBQUUsb0JBQW9CO1FBQ3BFLE1BQU0sSUFBSSxHQUFJLFdBQVcsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDckMsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBRTNCLE1BQU0sV0FBVyxHQUFNLE1BQU0sZ0NBQVksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDaEUsTUFBTSxjQUFjLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsV0FBVyxDQUFDLENBQUM7UUFFdEQsSUFBSSxJQUFJLENBQUMsTUFBTTtZQUNYLGNBQWMsQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxjQUFjLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUUvRixNQUFNLGdDQUFZLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUVqRCxJQUFJLGNBQWMsR0FBRyxJQUFJLENBQUM7UUFFMUIsSUFBSSxvQkFBb0I7WUFDcEIsY0FBYyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1FBRTlDLElBQUksQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxjQUFjLEVBQUUsQ0FBQztJQUN4RCxDQUFDO0lBRUQsS0FBSyxDQUFDLGNBQWM7UUFDaEIsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVELEtBQUssQ0FBQyxjQUFjO1FBQ2hCLE1BQU0sYUFBYSxHQUFHLE1BQU0sZ0NBQVksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1FBRTVELE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBRUQsS0FBSyxDQUFDLGtCQUFrQixDQUFFLFdBQVc7UUFDakMsTUFBTSxZQUFZLEdBQUcsTUFBTSxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7UUFFakQsV0FBVyxHQUFHLFdBQVcsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFdEQsT0FBTyxZQUFZLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQ2xELENBQUM7Q0FDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGJyb3dzZXJUb29scyBmcm9tICd0ZXN0Y2FmZS1icm93c2VyLXRvb2xzJztcblxuZXhwb3J0IGRlZmF1bHQge1xuICAgIG9wZW5lZEJyb3dzZXJzOiB7fSxcblxuICAgIGlzTXVsdGlCcm93c2VyOiB0cnVlLFxuXG4gICAgc3VwcG9ydE11bHRpcGxlV2luZG93czogdHJ1ZSxcblxuICAgIG5lZWRDbGVhblVwQnJvd3NlckluZm86IHRydWUsXG5cbiAgICBnZXRBY3RpdmVXaW5kb3dJZCAoYnJvd3NlcklkKSB7XG4gICAgICAgIHJldHVybiB0aGlzLm9wZW5lZEJyb3dzZXJzW2Jyb3dzZXJJZF0uYWN0aXZlV2luZG93SWQ7XG4gICAgfSxcblxuICAgIHNldEFjdGl2ZVdpbmRvd0lkIChicm93c2VySWQsIHZhbCkge1xuICAgICAgICB0aGlzLm9wZW5lZEJyb3dzZXJzW2Jyb3dzZXJJZF0uYWN0aXZlV2luZG93SWQgPSB2YWw7XG4gICAgfSxcblxuICAgIGNsZWFuVXBCcm93c2VySW5mbyAoYnJvd3NlcklkKSB7XG4gICAgICAgIGRlbGV0ZSB0aGlzLm9wZW5lZEJyb3dzZXJzW2Jyb3dzZXJJZF07XG4gICAgfSxcblxuICAgIGFzeW5jIG9wZW5Ccm93c2VyIChicm93c2VySWQsIHBhZ2VVcmwsIGJyb3dzZXJOYW1lLCBhbGxvd011bHRpcGxlV2luZG93cykge1xuICAgICAgICBjb25zdCBhcmdzICA9IGJyb3dzZXJOYW1lLnNwbGl0KCcgJyk7XG4gICAgICAgIGNvbnN0IGFsaWFzID0gYXJncy5zaGlmdCgpO1xuXG4gICAgICAgIGNvbnN0IGJyb3dzZXJJbmZvICAgID0gYXdhaXQgYnJvd3NlclRvb2xzLmdldEJyb3dzZXJJbmZvKGFsaWFzKTtcbiAgICAgICAgY29uc3Qgb3BlblBhcmFtZXRlcnMgPSBPYmplY3QuYXNzaWduKHt9LCBicm93c2VySW5mbyk7XG5cbiAgICAgICAgaWYgKGFyZ3MubGVuZ3RoKVxuICAgICAgICAgICAgb3BlblBhcmFtZXRlcnMuY21kID0gYXJncy5qb2luKCcgJykgKyAob3BlblBhcmFtZXRlcnMuY21kID8gJyAnICsgb3BlblBhcmFtZXRlcnMuY21kIDogJycpO1xuXG4gICAgICAgIGF3YWl0IGJyb3dzZXJUb29scy5vcGVuKG9wZW5QYXJhbWV0ZXJzLCBwYWdlVXJsKTtcblxuICAgICAgICBsZXQgYWN0aXZlV2luZG93SWQgPSBudWxsO1xuXG4gICAgICAgIGlmIChhbGxvd011bHRpcGxlV2luZG93cylcbiAgICAgICAgICAgIGFjdGl2ZVdpbmRvd0lkID0gdGhpcy5jYWxjdWxhdGVXaW5kb3dJZCgpO1xuXG4gICAgICAgIHRoaXMub3BlbmVkQnJvd3NlcnNbYnJvd3NlcklkXSA9IHsgYWN0aXZlV2luZG93SWQgfTtcbiAgICB9LFxuXG4gICAgYXN5bmMgaXNMb2NhbEJyb3dzZXIgKCkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9LFxuXG4gICAgYXN5bmMgZ2V0QnJvd3Nlckxpc3QgKCkge1xuICAgICAgICBjb25zdCBpbnN0YWxsYXRpb25zID0gYXdhaXQgYnJvd3NlclRvb2xzLmdldEluc3RhbGxhdGlvbnMoKTtcblxuICAgICAgICByZXR1cm4gT2JqZWN0LmtleXMoaW5zdGFsbGF0aW9ucyk7XG4gICAgfSxcblxuICAgIGFzeW5jIGlzVmFsaWRCcm93c2VyTmFtZSAoYnJvd3Nlck5hbWUpIHtcbiAgICAgICAgY29uc3QgYnJvd3Nlck5hbWVzID0gYXdhaXQgdGhpcy5nZXRCcm93c2VyTGlzdCgpO1xuXG4gICAgICAgIGJyb3dzZXJOYW1lID0gYnJvd3Nlck5hbWUudG9Mb3dlckNhc2UoKS5zcGxpdCgnICcpWzBdO1xuXG4gICAgICAgIHJldHVybiBicm93c2VyTmFtZXMuaW5kZXhPZihicm93c2VyTmFtZSkgPiAtMTtcbiAgICB9XG59O1xuIl19