angular2
Version:
Angular 2 - a web framework for modern web apps
1 lines • 5.78 kB
Source Map (JSON)
{"version":3,"sources":["testability.js"],"names":[],"mappings":"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","file":"angular2/src/core/testability/testability.js","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"]}