benchpress
Version:
Benchpress - a framework for e2e performance tests
39 lines • 6.14 kB
JavaScript
import { bind } from 'angular2/src/core/di';
import { isPresent, StringWrapper } from 'angular2/src/facade/lang';
import { WebDriverExtension, PerfLogFeatures } from '../web_driver_extension';
import { WebDriverAdapter } from '../web_driver_adapter';
export class FirefoxDriverExtension extends WebDriverExtension {
constructor(_driver) {
super();
this._driver = _driver;
this._profilerStarted = false;
}
static get BINDINGS() { return _PROVIDERS; }
gc() { return this._driver.executeScript('window.forceGC()'); }
timeBegin(name) {
if (!this._profilerStarted) {
this._profilerStarted = true;
this._driver.executeScript('window.startProfiler();');
}
return this._driver.executeScript('window.markStart("' + name + '");');
}
timeEnd(name, restartName = null) {
var script = 'window.markEnd("' + name + '");';
if (isPresent(restartName)) {
script += 'window.markStart("' + restartName + '");';
}
return this._driver.executeScript(script);
}
readPerfLog() {
return this._driver.executeAsyncScript('var cb = arguments[0]; window.getProfile(cb);');
}
perfLogFeatures() { return new PerfLogFeatures({ render: true, gc: true }); }
supports(capabilities) {
return StringWrapper.equals(capabilities['browserName'].toLowerCase(), 'firefox');
}
}
var _PROVIDERS = [
bind(FirefoxDriverExtension)
.toFactory((driver) => new FirefoxDriverExtension(driver), [WebDriverAdapter])
];
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlyZWZveF9kcml2ZXJfZXh0ZW5zaW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiZGlmZmluZ19wbHVnaW5fd3JhcHBlci1vdXRwdXRfcGF0aC14QkxJQnJWUi50bXAvYmVuY2hwcmVzcy9zcmMvd2ViZHJpdmVyL2ZpcmVmb3hfZHJpdmVyX2V4dGVuc2lvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiT0FBTyxFQUFDLElBQUksRUFBb0IsTUFBTSxzQkFBc0I7T0FDckQsRUFBQyxTQUFTLEVBQUUsYUFBYSxFQUFDLE1BQU0sMEJBQTBCO09BQzFELEVBQUMsa0JBQWtCLEVBQUUsZUFBZSxFQUFDLE1BQU0seUJBQXlCO09BQ3BFLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSx1QkFBdUI7QUFFdEQsNENBQTRDLGtCQUFrQjtJQUs1RCxZQUFvQixPQUF5QjtRQUMzQyxPQUFPLENBQUM7UUFEVSxZQUFPLEdBQVAsT0FBTyxDQUFrQjtRQUUzQyxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsS0FBSyxDQUFDO0lBQ2hDLENBQUM7SUFQRCxXQUFXLFFBQVEsS0FBaUIsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7SUFTeEQsRUFBRSxLQUFLLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUUvRCxTQUFTLENBQUMsSUFBWTtRQUNwQixFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUM7WUFDM0IsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQztZQUM3QixJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO1FBQ3hELENBQUM7UUFDRCxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsb0JBQW9CLEdBQUcsSUFBSSxHQUFHLEtBQUssQ0FBQyxDQUFDO0lBQ3pFLENBQUM7SUFFRCxPQUFPLENBQUMsSUFBWSxFQUFFLFdBQVcsR0FBVyxJQUFJO1FBQzlDLElBQUksTUFBTSxHQUFHLGtCQUFrQixHQUFHLElBQUksR0FBRyxLQUFLLENBQUM7UUFDL0MsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUMzQixNQUFNLElBQUksb0JBQW9CLEdBQUcsV0FBVyxHQUFHLEtBQUssQ0FBQztRQUN2RCxDQUFDO1FBQ0QsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFFRCxXQUFXO1FBQ1QsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsa0JBQWtCLENBQUMsK0NBQStDLENBQUMsQ0FBQztJQUMxRixDQUFDO0lBRUQsZUFBZSxLQUFzQixNQUFNLENBQUMsSUFBSSxlQUFlLENBQUMsRUFBQyxNQUFNLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUU1RixRQUFRLENBQUMsWUFBa0M7UUFDekMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLGFBQWEsQ0FBQyxDQUFDLFdBQVcsRUFBRSxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBQ3BGLENBQUM7QUFDSCxDQUFDO0FBRUQsSUFBSSxVQUFVLEdBQUc7SUFDZixJQUFJLENBQUMsc0JBQXNCLENBQUM7U0FDdkIsU0FBUyxDQUFDLENBQUMsTUFBTSxLQUFLLElBQUksc0JBQXNCLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0NBQ25GLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge2JpbmQsIHByb3ZpZGUsIFByb3ZpZGVyfSBmcm9tICdhbmd1bGFyMi9zcmMvY29yZS9kaSc7XG5pbXBvcnQge2lzUHJlc2VudCwgU3RyaW5nV3JhcHBlcn0gZnJvbSAnYW5ndWxhcjIvc3JjL2ZhY2FkZS9sYW5nJztcbmltcG9ydCB7V2ViRHJpdmVyRXh0ZW5zaW9uLCBQZXJmTG9nRmVhdHVyZXN9IGZyb20gJy4uL3dlYl9kcml2ZXJfZXh0ZW5zaW9uJztcbmltcG9ydCB7V2ViRHJpdmVyQWRhcHRlcn0gZnJvbSAnLi4vd2ViX2RyaXZlcl9hZGFwdGVyJztcblxuZXhwb3J0IGNsYXNzIEZpcmVmb3hEcml2ZXJFeHRlbnNpb24gZXh0ZW5kcyBXZWJEcml2ZXJFeHRlbnNpb24ge1xuICBzdGF0aWMgZ2V0IEJJTkRJTkdTKCk6IFByb3ZpZGVyW10geyByZXR1cm4gX1BST1ZJREVSUzsgfVxuXG4gIHByaXZhdGUgX3Byb2ZpbGVyU3RhcnRlZDogYm9vbGVhbjtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9kcml2ZXI6IFdlYkRyaXZlckFkYXB0ZXIpIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMuX3Byb2ZpbGVyU3RhcnRlZCA9IGZhbHNlO1xuICB9XG5cbiAgZ2MoKSB7IHJldHVybiB0aGlzLl9kcml2ZXIuZXhlY3V0ZVNjcmlwdCgnd2luZG93LmZvcmNlR0MoKScpOyB9XG5cbiAgdGltZUJlZ2luKG5hbWU6IHN0cmluZyk6IFByb21pc2U8YW55PiB7XG4gICAgaWYgKCF0aGlzLl9wcm9maWxlclN0YXJ0ZWQpIHtcbiAgICAgIHRoaXMuX3Byb2ZpbGVyU3RhcnRlZCA9IHRydWU7XG4gICAgICB0aGlzLl9kcml2ZXIuZXhlY3V0ZVNjcmlwdCgnd2luZG93LnN0YXJ0UHJvZmlsZXIoKTsnKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuX2RyaXZlci5leGVjdXRlU2NyaXB0KCd3aW5kb3cubWFya1N0YXJ0KFwiJyArIG5hbWUgKyAnXCIpOycpO1xuICB9XG5cbiAgdGltZUVuZChuYW1lOiBzdHJpbmcsIHJlc3RhcnROYW1lOiBzdHJpbmcgPSBudWxsKTogUHJvbWlzZTxhbnk+IHtcbiAgICB2YXIgc2NyaXB0ID0gJ3dpbmRvdy5tYXJrRW5kKFwiJyArIG5hbWUgKyAnXCIpOyc7XG4gICAgaWYgKGlzUHJlc2VudChyZXN0YXJ0TmFtZSkpIHtcbiAgICAgIHNjcmlwdCArPSAnd2luZG93Lm1hcmtTdGFydChcIicgKyByZXN0YXJ0TmFtZSArICdcIik7JztcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuX2RyaXZlci5leGVjdXRlU2NyaXB0KHNjcmlwdCk7XG4gIH1cblxuICByZWFkUGVyZkxvZygpOiBQcm9taXNlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLl9kcml2ZXIuZXhlY3V0ZUFzeW5jU2NyaXB0KCd2YXIgY2IgPSBhcmd1bWVudHNbMF07IHdpbmRvdy5nZXRQcm9maWxlKGNiKTsnKTtcbiAgfVxuXG4gIHBlcmZMb2dGZWF0dXJlcygpOiBQZXJmTG9nRmVhdHVyZXMgeyByZXR1cm4gbmV3IFBlcmZMb2dGZWF0dXJlcyh7cmVuZGVyOiB0cnVlLCBnYzogdHJ1ZX0pOyB9XG5cbiAgc3VwcG9ydHMoY2FwYWJpbGl0aWVzOiB7W2tleTogc3RyaW5nXTogYW55fSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBTdHJpbmdXcmFwcGVyLmVxdWFscyhjYXBhYmlsaXRpZXNbJ2Jyb3dzZXJOYW1lJ10udG9Mb3dlckNhc2UoKSwgJ2ZpcmVmb3gnKTtcbiAgfVxufVxuXG52YXIgX1BST1ZJREVSUyA9IFtcbiAgYmluZChGaXJlZm94RHJpdmVyRXh0ZW5zaW9uKVxuICAgICAgLnRvRmFjdG9yeSgoZHJpdmVyKSA9PiBuZXcgRmlyZWZveERyaXZlckV4dGVuc2lvbihkcml2ZXIpLCBbV2ViRHJpdmVyQWRhcHRlcl0pXG5dO1xuIl19