angular2
Version:
Angular 2 - a web framework for modern web apps
62 lines • 8.62 kB
JavaScript
export { verifyNoBrowserErrors } from './e2e_util';
var benchpress = global['benchpress'];
var bind = benchpress.bind;
var Options = benchpress.Options;
export function runClickBenchmark(config) {
browser.ignoreSynchronization = !config.waitForAngular2;
var buttons = config.buttons.map(function (selector) { return $(selector); });
config.work = function () { buttons.forEach(function (button) { button.click(); }); };
return runBenchmark(config);
}
export function runBenchmark(config) {
return getScaleFactor(browser.params.benchmark.scaling)
.then(function (scaleFactor) {
var description = {};
var urlParams = [];
if (config.params) {
config.params.forEach(function (param) {
var name = param.name;
var value = applyScaleFactor(param.value, scaleFactor, param.scale);
urlParams.push(name + '=' + value);
description[name] = value;
});
}
var url = encodeURI(config.url + '?' + urlParams.join('&'));
return browser.get(url).then(function () {
return global['benchpressRunner'].sample({
id: config.id,
execute: config.work,
prepare: config.prepare,
microMetrics: config.microMetrics,
bindings: [bind(Options.SAMPLE_DESCRIPTION).toValue(description)]
});
});
});
}
function getScaleFactor(possibleScalings) {
return browser.executeScript('return navigator.userAgent')
.then(function (userAgent) {
var scaleFactor = 1;
possibleScalings.forEach(function (entry) {
if (userAgent.match(entry.userAgent)) {
scaleFactor = entry.value;
}
});
return scaleFactor;
});
}
function applyScaleFactor(value, scaleFactor, method) {
if (method === 'log2') {
return value + Math.log(scaleFactor) / Math.LN2;
}
else if (method === 'sqrt') {
return value * Math.sqrt(scaleFactor);
}
else if (method === 'linear') {
return value * scaleFactor;
}
else {
return value;
}
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVyZl91dGlsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiZGlmZmluZ19wbHVnaW5fd3JhcHBlci1vdXRwdXRfcGF0aC14QkxJQnJWUi50bXAvYW5ndWxhcjIvc3JjL3Rlc3RpbmcvcGVyZl91dGlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLFNBQVEscUJBQXFCLFFBQU8sWUFBWSxDQUFDO0FBRWpELElBQUksVUFBVSxHQUFHLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQztBQUN0QyxJQUFJLElBQUksR0FBRyxVQUFVLENBQUMsSUFBSSxDQUFDO0FBQzNCLElBQUksT0FBTyxHQUFHLFVBQVUsQ0FBQyxPQUFPLENBQUM7QUFFakMsa0NBQWtDLE1BQU07SUFDdEMsT0FBTyxDQUFDLHFCQUFxQixHQUFHLENBQUMsTUFBTSxDQUFDLGVBQWUsQ0FBQztJQUN4RCxJQUFJLE9BQU8sR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFTLFFBQVEsSUFBSSxNQUFNLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDN0UsTUFBTSxDQUFDLElBQUksR0FBRyxjQUFhLE9BQU8sQ0FBQyxPQUFPLENBQUMsVUFBUyxNQUFNLElBQUksTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDcEYsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUM5QixDQUFDO0FBRUQsNkJBQTZCLE1BQU07SUFDakMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUM7U0FDbEQsSUFBSSxDQUFDLFVBQVMsV0FBVztRQUN4QixJQUFJLFdBQVcsR0FBRyxFQUFFLENBQUM7UUFDckIsSUFBSSxTQUFTLEdBQUcsRUFBRSxDQUFDO1FBQ25CLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO1lBQ2xCLE1BQU0sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLFVBQVMsS0FBSztnQkFDbEMsSUFBSSxJQUFJLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQztnQkFDdEIsSUFBSSxLQUFLLEdBQUcsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxXQUFXLEVBQUUsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUNwRSxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksR0FBRyxHQUFHLEdBQUcsS0FBSyxDQUFDLENBQUM7Z0JBQ25DLFdBQVcsQ0FBQyxJQUFJLENBQUMsR0FBRyxLQUFLLENBQUM7WUFDNUIsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDO1FBQ0QsSUFBSSxHQUFHLEdBQUcsU0FBUyxDQUFDLE1BQU0sQ0FBQyxHQUFHLEdBQUcsR0FBRyxHQUFHLFNBQVMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUM1RCxNQUFNLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUM7WUFDM0IsTUFBTSxDQUFDLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLE1BQU0sQ0FBQztnQkFDdkMsRUFBRSxFQUFFLE1BQU0sQ0FBQyxFQUFFO2dCQUNiLE9BQU8sRUFBRSxNQUFNLENBQUMsSUFBSTtnQkFDcEIsT0FBTyxFQUFFLE1BQU0sQ0FBQyxPQUFPO2dCQUN2QixZQUFZLEVBQUUsTUFBTSxDQUFDLFlBQVk7Z0JBQ2pDLFFBQVEsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUM7YUFDbEUsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQztBQUNULENBQUM7QUFFRCx3QkFBd0IsZ0JBQWdCO0lBQ3RDLE1BQU0sQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLDRCQUE0QixDQUFDO1NBQ3JELElBQUksQ0FBQyxVQUFTLFNBQWlCO1FBQzlCLElBQUksV0FBVyxHQUFHLENBQUMsQ0FBQztRQUNwQixnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsVUFBUyxLQUFLO1lBQ3JDLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDckMsV0FBVyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUM7WUFDNUIsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO1FBQ0gsTUFBTSxDQUFDLFdBQVcsQ0FBQztJQUNyQixDQUFDLENBQUMsQ0FBQztBQUNULENBQUM7QUFFRCwwQkFBMEIsS0FBSyxFQUFFLFdBQVcsRUFBRSxNQUFNO0lBQ2xELEVBQUUsQ0FBQyxDQUFDLE1BQU0sS0FBSyxNQUFNLENBQUMsQ0FBQyxDQUFDO1FBQ3RCLE1BQU0sQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDO0lBQ2xELENBQUM7SUFBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsTUFBTSxLQUFLLE1BQU0sQ0FBQyxDQUFDLENBQUM7UUFDN0IsTUFBTSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3hDLENBQUM7SUFBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsTUFBTSxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUM7UUFDL0IsTUFBTSxDQUFDLEtBQUssR0FBRyxXQUFXLENBQUM7SUFDN0IsQ0FBQztJQUFDLElBQUksQ0FBQyxDQUFDO1FBQ04sTUFBTSxDQUFDLEtBQUssQ0FBQztJQUNmLENBQUM7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHt2ZXJpZnlOb0Jyb3dzZXJFcnJvcnN9IGZyb20gJy4vZTJlX3V0aWwnO1xuXG52YXIgYmVuY2hwcmVzcyA9IGdsb2JhbFsnYmVuY2hwcmVzcyddO1xudmFyIGJpbmQgPSBiZW5jaHByZXNzLmJpbmQ7XG52YXIgT3B0aW9ucyA9IGJlbmNocHJlc3MuT3B0aW9ucztcblxuZXhwb3J0IGZ1bmN0aW9uIHJ1bkNsaWNrQmVuY2htYXJrKGNvbmZpZykge1xuICBicm93c2VyLmlnbm9yZVN5bmNocm9uaXphdGlvbiA9ICFjb25maWcud2FpdEZvckFuZ3VsYXIyO1xuICB2YXIgYnV0dG9ucyA9IGNvbmZpZy5idXR0b25zLm1hcChmdW5jdGlvbihzZWxlY3RvcikgeyByZXR1cm4gJChzZWxlY3Rvcik7IH0pO1xuICBjb25maWcud29yayA9IGZ1bmN0aW9uKCkgeyBidXR0b25zLmZvckVhY2goZnVuY3Rpb24oYnV0dG9uKSB7IGJ1dHRvbi5jbGljaygpOyB9KTsgfTtcbiAgcmV0dXJuIHJ1bkJlbmNobWFyayhjb25maWcpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcnVuQmVuY2htYXJrKGNvbmZpZykge1xuICByZXR1cm4gZ2V0U2NhbGVGYWN0b3IoYnJvd3Nlci5wYXJhbXMuYmVuY2htYXJrLnNjYWxpbmcpXG4gICAgICAudGhlbihmdW5jdGlvbihzY2FsZUZhY3Rvcikge1xuICAgICAgICB2YXIgZGVzY3JpcHRpb24gPSB7fTtcbiAgICAgICAgdmFyIHVybFBhcmFtcyA9IFtdO1xuICAgICAgICBpZiAoY29uZmlnLnBhcmFtcykge1xuICAgICAgICAgIGNvbmZpZy5wYXJhbXMuZm9yRWFjaChmdW5jdGlvbihwYXJhbSkge1xuICAgICAgICAgICAgdmFyIG5hbWUgPSBwYXJhbS5uYW1lO1xuICAgICAgICAgICAgdmFyIHZhbHVlID0gYXBwbHlTY2FsZUZhY3RvcihwYXJhbS52YWx1ZSwgc2NhbGVGYWN0b3IsIHBhcmFtLnNjYWxlKTtcbiAgICAgICAgICAgIHVybFBhcmFtcy5wdXNoKG5hbWUgKyAnPScgKyB2YWx1ZSk7XG4gICAgICAgICAgICBkZXNjcmlwdGlvbltuYW1lXSA9IHZhbHVlO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIHZhciB1cmwgPSBlbmNvZGVVUkkoY29uZmlnLnVybCArICc/JyArIHVybFBhcmFtcy5qb2luKCcmJykpO1xuICAgICAgICByZXR1cm4gYnJvd3Nlci5nZXQodXJsKS50aGVuKGZ1bmN0aW9uKCkge1xuICAgICAgICAgIHJldHVybiBnbG9iYWxbJ2JlbmNocHJlc3NSdW5uZXInXS5zYW1wbGUoe1xuICAgICAgICAgICAgaWQ6IGNvbmZpZy5pZCxcbiAgICAgICAgICAgIGV4ZWN1dGU6IGNvbmZpZy53b3JrLFxuICAgICAgICAgICAgcHJlcGFyZTogY29uZmlnLnByZXBhcmUsXG4gICAgICAgICAgICBtaWNyb01ldHJpY3M6IGNvbmZpZy5taWNyb01ldHJpY3MsXG4gICAgICAgICAgICBiaW5kaW5nczogW2JpbmQoT3B0aW9ucy5TQU1QTEVfREVTQ1JJUFRJT04pLnRvVmFsdWUoZGVzY3JpcHRpb24pXVxuICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICAgIH0pO1xufVxuXG5mdW5jdGlvbiBnZXRTY2FsZUZhY3Rvcihwb3NzaWJsZVNjYWxpbmdzKSB7XG4gIHJldHVybiBicm93c2VyLmV4ZWN1dGVTY3JpcHQoJ3JldHVybiBuYXZpZ2F0b3IudXNlckFnZW50JylcbiAgICAgIC50aGVuKGZ1bmN0aW9uKHVzZXJBZ2VudDogc3RyaW5nKSB7XG4gICAgICAgIHZhciBzY2FsZUZhY3RvciA9IDE7XG4gICAgICAgIHBvc3NpYmxlU2NhbGluZ3MuZm9yRWFjaChmdW5jdGlvbihlbnRyeSkge1xuICAgICAgICAgIGlmICh1c2VyQWdlbnQubWF0Y2goZW50cnkudXNlckFnZW50KSkge1xuICAgICAgICAgICAgc2NhbGVGYWN0b3IgPSBlbnRyeS52YWx1ZTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gc2NhbGVGYWN0b3I7XG4gICAgICB9KTtcbn1cblxuZnVuY3Rpb24gYXBwbHlTY2FsZUZhY3Rvcih2YWx1ZSwgc2NhbGVGYWN0b3IsIG1ldGhvZCkge1xuICBpZiAobWV0aG9kID09PSAnbG9nMicpIHtcbiAgICByZXR1cm4gdmFsdWUgKyBNYXRoLmxvZyhzY2FsZUZhY3RvcikgLyBNYXRoLkxOMjtcbiAgfSBlbHNlIGlmIChtZXRob2QgPT09ICdzcXJ0Jykge1xuICAgIHJldHVybiB2YWx1ZSAqIE1hdGguc3FydChzY2FsZUZhY3Rvcik7XG4gIH0gZWxzZSBpZiAobWV0aG9kID09PSAnbGluZWFyJykge1xuICAgIHJldHVybiB2YWx1ZSAqIHNjYWxlRmFjdG9yO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiB2YWx1ZTtcbiAgfVxufVxuIl19