UNPKG

benchpress

Version:

Benchpress - a framework for e2e performance tests

60 lines 8.72 kB
import { bind, Injector, OpaqueToken } from 'angular2/src/core/di'; import { isBlank } from 'angular2/src/facade/lang'; import { BaseException } from 'angular2/src/facade/exceptions'; import { Options } from './common_options'; /** * A WebDriverExtension implements extended commands of the webdriver protocol * for a given browser, independent of the WebDriverAdapter. * Needs one implementation for every supported Browser. */ export class WebDriverExtension { static bindTo(childTokens) { var res = [ bind(_CHILDREN) .toFactory((injector) => childTokens.map(token => injector.get(token)), [Injector]), bind(WebDriverExtension) .toFactory((children, capabilities) => { var delegate; children.forEach(extension => { if (extension.supports(capabilities)) { delegate = extension; } }); if (isBlank(delegate)) { throw new BaseException('Could not find a delegate for given capabilities!'); } return delegate; }, [_CHILDREN, Options.CAPABILITIES]) ]; return res; } gc() { throw new BaseException('NYI'); } timeBegin(name) { throw new BaseException('NYI'); } timeEnd(name, restartName) { throw new BaseException('NYI'); } /** * Format: * - cat: category of the event * - name: event name: 'script', 'gc', 'render', ... * - ph: phase: 'B' (begin), 'E' (end), 'b' (nestable start), 'e' (nestable end), 'X' (Complete *event) * - ts: timestamp in ms, e.g. 12345 * - pid: process id * - args: arguments, e.g. {heapSize: 1234} * * Based on [Chrome Trace Event *Format](https://docs.google.com/document/d/1CvAClvFfyA5R-PhYUmn5OOQtYMH4h6I0nSsKchNAySU/edit) **/ readPerfLog() { throw new BaseException('NYI'); } perfLogFeatures() { throw new BaseException('NYI'); } supports(capabilities) { return true; } } export class PerfLogFeatures { constructor({ render = false, gc = false, frameCapture = false, userTiming = false } = {}) { this.render = render; this.gc = gc; this.frameCapture = frameCapture; this.userTiming = userTiming; } } var _CHILDREN = new OpaqueToken('WebDriverExtension.children'); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2ViX2RyaXZlcl9leHRlbnNpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJkaWZmaW5nX3BsdWdpbl93cmFwcGVyLW91dHB1dF9wYXRoLXhCTElCclZSLnRtcC9iZW5jaHByZXNzL3NyYy93ZWJfZHJpdmVyX2V4dGVuc2lvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiT0FBTyxFQUFDLElBQUksRUFBcUIsUUFBUSxFQUFFLFdBQVcsRUFBQyxNQUFNLHNCQUFzQjtPQUU1RSxFQUFDLE9BQU8sRUFBWSxNQUFNLDBCQUEwQjtPQUNwRCxFQUFDLGFBQWEsRUFBbUIsTUFBTSxnQ0FBZ0M7T0FFdkUsRUFBQyxPQUFPLEVBQUMsTUFBTSxrQkFBa0I7QUFFeEM7Ozs7R0FJRztBQUNIO0lBQ0UsT0FBTyxNQUFNLENBQUMsV0FBa0I7UUFDOUIsSUFBSSxHQUFHLEdBQUc7WUFDUixJQUFJLENBQUMsU0FBUyxDQUFDO2lCQUNWLFNBQVMsQ0FBQyxDQUFDLFFBQWtCLEtBQUssV0FBVyxDQUFDLEdBQUcsQ0FBQyxLQUFLLElBQUksUUFBUSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUNyRSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQzFCLElBQUksQ0FBQyxrQkFBa0IsQ0FBQztpQkFDbkIsU0FBUyxDQUNOLENBQUMsUUFBOEIsRUFBRSxZQUFZO2dCQUMzQyxJQUFJLFFBQVEsQ0FBQztnQkFDYixRQUFRLENBQUMsT0FBTyxDQUFDLFNBQVM7b0JBQ3hCLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDO3dCQUNyQyxRQUFRLEdBQUcsU0FBUyxDQUFDO29CQUN2QixDQUFDO2dCQUNILENBQUMsQ0FBQyxDQUFDO2dCQUNILEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUM7b0JBQ3RCLE1BQU0sSUFBSSxhQUFhLENBQUMsbURBQW1ELENBQUMsQ0FBQztnQkFDL0UsQ0FBQztnQkFDRCxNQUFNLENBQUMsUUFBUSxDQUFDO1lBQ2xCLENBQUMsRUFDRCxDQUFDLFNBQVMsRUFBRSxPQUFPLENBQUMsWUFBWSxDQUFDLENBQUM7U0FDM0MsQ0FBQztRQUNGLE1BQU0sQ0FBQyxHQUFHLENBQUM7SUFDYixDQUFDO0lBRUQsRUFBRSxLQUFtQixNQUFNLElBQUksYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUV0RCxTQUFTLENBQUMsSUFBWSxJQUFrQixNQUFNLElBQUksYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUV6RSxPQUFPLENBQUMsSUFBWSxFQUFFLFdBQW1CLElBQWtCLE1BQU0sSUFBSSxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBRTVGOzs7Ozs7Ozs7Ozs7UUFZSTtJQUNKLFdBQVcsS0FBcUIsTUFBTSxJQUFJLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFFakUsZUFBZSxLQUFzQixNQUFNLElBQUksYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUV0RSxRQUFRLENBQUMsWUFBa0MsSUFBYSxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztBQUN4RSxDQUFDO0FBRUQ7SUFNRSxZQUNJLEVBQUMsTUFBTSxHQUFHLEtBQUssRUFBRSxFQUFFLEdBQUcsS0FBSyxFQUFFLFlBQVksR0FBRyxLQUFLLEVBQUUsVUFBVSxHQUFHLEtBQUssRUFBQyxHQUNlLEVBQUU7UUFDekYsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7UUFDckIsSUFBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUM7UUFDYixJQUFJLENBQUMsWUFBWSxHQUFHLFlBQVksQ0FBQztRQUNqQyxJQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQztJQUMvQixDQUFDO0FBQ0gsQ0FBQztBQUVELElBQUksU0FBUyxHQUFHLElBQUksV0FBVyxDQUFDLDZCQUE2QixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge2JpbmQsIHByb3ZpZGUsIFByb3ZpZGVyLCBJbmplY3RvciwgT3BhcXVlVG9rZW59IGZyb20gJ2FuZ3VsYXIyL3NyYy9jb3JlL2RpJztcblxuaW1wb3J0IHtpc0JsYW5rLCBpc1ByZXNlbnR9IGZyb20gJ2FuZ3VsYXIyL3NyYy9mYWNhZGUvbGFuZyc7XG5pbXBvcnQge0Jhc2VFeGNlcHRpb24sIFdyYXBwZWRFeGNlcHRpb259IGZyb20gJ2FuZ3VsYXIyL3NyYy9mYWNhZGUvZXhjZXB0aW9ucyc7XG5cbmltcG9ydCB7T3B0aW9uc30gZnJvbSAnLi9jb21tb25fb3B0aW9ucyc7XG5cbi8qKlxuICogQSBXZWJEcml2ZXJFeHRlbnNpb24gaW1wbGVtZW50cyBleHRlbmRlZCBjb21tYW5kcyBvZiB0aGUgd2ViZHJpdmVyIHByb3RvY29sXG4gKiBmb3IgYSBnaXZlbiBicm93c2VyLCBpbmRlcGVuZGVudCBvZiB0aGUgV2ViRHJpdmVyQWRhcHRlci5cbiAqIE5lZWRzIG9uZSBpbXBsZW1lbnRhdGlvbiBmb3IgZXZlcnkgc3VwcG9ydGVkIEJyb3dzZXIuXG4gKi9cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBXZWJEcml2ZXJFeHRlbnNpb24ge1xuICBzdGF0aWMgYmluZFRvKGNoaWxkVG9rZW5zOiBhbnlbXSk6IFByb3ZpZGVyW10ge1xuICAgIHZhciByZXMgPSBbXG4gICAgICBiaW5kKF9DSElMRFJFTilcbiAgICAgICAgICAudG9GYWN0b3J5KChpbmplY3RvcjogSW5qZWN0b3IpID0+IGNoaWxkVG9rZW5zLm1hcCh0b2tlbiA9PiBpbmplY3Rvci5nZXQodG9rZW4pKSxcbiAgICAgICAgICAgICAgICAgICAgIFtJbmplY3Rvcl0pLFxuICAgICAgYmluZChXZWJEcml2ZXJFeHRlbnNpb24pXG4gICAgICAgICAgLnRvRmFjdG9yeShcbiAgICAgICAgICAgICAgKGNoaWxkcmVuOiBXZWJEcml2ZXJFeHRlbnNpb25bXSwgY2FwYWJpbGl0aWVzKSA9PiB7XG4gICAgICAgICAgICAgICAgdmFyIGRlbGVnYXRlO1xuICAgICAgICAgICAgICAgIGNoaWxkcmVuLmZvckVhY2goZXh0ZW5zaW9uID0+IHtcbiAgICAgICAgICAgICAgICAgIGlmIChleHRlbnNpb24uc3VwcG9ydHMoY2FwYWJpbGl0aWVzKSkge1xuICAgICAgICAgICAgICAgICAgICBkZWxlZ2F0ZSA9IGV4dGVuc2lvbjtcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICBpZiAoaXNCbGFuayhkZWxlZ2F0ZSkpIHtcbiAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBCYXNlRXhjZXB0aW9uKCdDb3VsZCBub3QgZmluZCBhIGRlbGVnYXRlIGZvciBnaXZlbiBjYXBhYmlsaXRpZXMhJyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiBkZWxlZ2F0ZTtcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgW19DSElMRFJFTiwgT3B0aW9ucy5DQVBBQklMSVRJRVNdKVxuICAgIF07XG4gICAgcmV0dXJuIHJlcztcbiAgfVxuXG4gIGdjKCk6IFByb21pc2U8YW55PiB7IHRocm93IG5ldyBCYXNlRXhjZXB0aW9uKCdOWUknKTsgfVxuXG4gIHRpbWVCZWdpbihuYW1lOiBzdHJpbmcpOiBQcm9taXNlPGFueT4geyB0aHJvdyBuZXcgQmFzZUV4Y2VwdGlvbignTllJJyk7IH1cblxuICB0aW1lRW5kKG5hbWU6IHN0cmluZywgcmVzdGFydE5hbWU6IHN0cmluZyk6IFByb21pc2U8YW55PiB7IHRocm93IG5ldyBCYXNlRXhjZXB0aW9uKCdOWUknKTsgfVxuXG4gIC8qKlxuICAgKiBGb3JtYXQ6XG4gICAqIC0gY2F0OiBjYXRlZ29yeSBvZiB0aGUgZXZlbnRcbiAgICogLSBuYW1lOiBldmVudCBuYW1lOiAnc2NyaXB0JywgJ2djJywgJ3JlbmRlcicsIC4uLlxuICAgKiAtIHBoOiBwaGFzZTogJ0InIChiZWdpbiksICdFJyAoZW5kKSwgJ2InIChuZXN0YWJsZSBzdGFydCksICdlJyAobmVzdGFibGUgZW5kKSwgJ1gnIChDb21wbGV0ZVxuICAgKmV2ZW50KVxuICAgKiAtIHRzOiB0aW1lc3RhbXAgaW4gbXMsIGUuZy4gMTIzNDVcbiAgICogLSBwaWQ6IHByb2Nlc3MgaWRcbiAgICogLSBhcmdzOiBhcmd1bWVudHMsIGUuZy4ge2hlYXBTaXplOiAxMjM0fVxuICAgKlxuICAgKiBCYXNlZCBvbiBbQ2hyb21lIFRyYWNlIEV2ZW50XG4gICAqRm9ybWF0XShodHRwczovL2RvY3MuZ29vZ2xlLmNvbS9kb2N1bWVudC9kLzFDdkFDbHZGZnlBNVItUGhZVW1uNU9PUXRZTUg0aDZJMG5Tc0tjaE5BeVNVL2VkaXQpXG4gICAqKi9cbiAgcmVhZFBlcmZMb2coKTogUHJvbWlzZTxhbnlbXT4geyB0aHJvdyBuZXcgQmFzZUV4Y2VwdGlvbignTllJJyk7IH1cblxuICBwZXJmTG9nRmVhdHVyZXMoKTogUGVyZkxvZ0ZlYXR1cmVzIHsgdGhyb3cgbmV3IEJhc2VFeGNlcHRpb24oJ05ZSScpOyB9XG5cbiAgc3VwcG9ydHMoY2FwYWJpbGl0aWVzOiB7W2tleTogc3RyaW5nXTogYW55fSk6IGJvb2xlYW4geyByZXR1cm4gdHJ1ZTsgfVxufVxuXG5leHBvcnQgY2xhc3MgUGVyZkxvZ0ZlYXR1cmVzIHtcbiAgcmVuZGVyOiBib29sZWFuO1xuICBnYzogYm9vbGVhbjtcbiAgZnJhbWVDYXB0dXJlOiBib29sZWFuO1xuICB1c2VyVGltaW5nOiBib29sZWFuO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgICAge3JlbmRlciA9IGZhbHNlLCBnYyA9IGZhbHNlLCBmcmFtZUNhcHR1cmUgPSBmYWxzZSwgdXNlclRpbWluZyA9IGZhbHNlfTpcbiAgICAgICAgICB7cmVuZGVyPzogYm9vbGVhbiwgZ2M/OiBib29sZWFuLCBmcmFtZUNhcHR1cmU/OiBib29sZWFuLCB1c2VyVGltaW5nPzogYm9vbGVhbn0gPSB7fSkge1xuICAgIHRoaXMucmVuZGVyID0gcmVuZGVyO1xuICAgIHRoaXMuZ2MgPSBnYztcbiAgICB0aGlzLmZyYW1lQ2FwdHVyZSA9IGZyYW1lQ2FwdHVyZTtcbiAgICB0aGlzLnVzZXJUaW1pbmcgPSB1c2VyVGltaW5nO1xuICB9XG59XG5cbnZhciBfQ0hJTERSRU4gPSBuZXcgT3BhcXVlVG9rZW4oJ1dlYkRyaXZlckV4dGVuc2lvbi5jaGlsZHJlbicpO1xuIl19