angular2
Version:
Angular 2 - a web framework for modern web apps
1 lines • 5.61 kB
Source Map (JSON)
{"version":3,"sources":["testability.js"],"names":[],"mappings":"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","file":"angular2/src/core/testability/testability.es6","sourcesContent":["import {Injectable} from 'angular2/di';\nimport {DOM} from 'angular2/src/dom/dom_adapter';\nimport {Map, MapWrapper, List, ListWrapper} from 'angular2/src/facade/collection';\nimport {StringWrapper, isBlank, BaseException} from 'angular2/src/facade/lang';\nimport * as getTestabilityModule from 'angular2/src/core/testability/get_testability';\n\n\n/**\n * The Testability service provides testing hooks that can be accessed from\n * the browser and by services such as Protractor. Each bootstrapped Angular\n * application on the page will have an instance of Testability.\n */\n@Injectable()\nexport class Testability {\n _pendingCount: number;\n _callbacks: List;\n\n constructor() {\n this._pendingCount = 0;\n this._callbacks = ListWrapper.create();\n }\n\n increaseCount(delta: number = 1) {\n this._pendingCount += delta;\n if (this._pendingCount < 0) {\n throw new BaseException('pending async requests below zero');\n } else if (this._pendingCount == 0) {\n this._runCallbacks();\n }\n return this._pendingCount;\n }\n\n _runCallbacks() {\n while (this._callbacks.length !== 0) {\n ListWrapper.removeLast(this._callbacks)();\n }\n }\n\n whenStable(callback: Function) {\n ListWrapper.push(this._callbacks, callback);\n\n if (this._pendingCount === 0) {\n this._runCallbacks();\n }\n // TODO(juliemr) - hook into the zone api.\n }\n\n getPendingCount(): number {\n return this._pendingCount;\n }\n\n findBindings(using, binding: string, exactMatch: boolean): List {\n // TODO(juliemr): implement.\n return [];\n }\n}\n\n@Injectable()\nexport class TestabilityRegistry {\n _applications: Map;\n\n constructor() {\n this._applications = MapWrapper.create();\n\n getTestabilityModule.GetTestability.addToWindow(this);\n }\n\n registerApplication(token, testability: Testability) {\n MapWrapper.set(this._applications, token, testability);\n }\n\n findTestabilityInTree(elem) : Testability {\n if (elem == null) {\n return null;\n }\n if (MapWrapper.contains(this._applications, elem)) {\n return MapWrapper.get(this._applications, elem);\n }\n if (DOM.isShadowRoot(elem)) {\n return this.findTestabilityInTree(DOM.getHost(elem));\n }\n return this.findTestabilityInTree(DOM.parentElement(elem));\n }\n}\n"]}