feat(testability): option to disable tree walking
This commit is contained in:
parent
ed25a29cc8
commit
8f5360c387
|
@ -91,8 +91,9 @@ class PublicTestability implements _JsObjectProxyable {
|
|||
|
||||
class GetTestability {
|
||||
static addToWindow(TestabilityRegistry registry) {
|
||||
js.context['getAngularTestability'] = _jsify((Element elem) {
|
||||
Testability testability = registry.findTestabilityInTree(elem);
|
||||
js.context['getAngularTestability'] = _jsify((Element elem,
|
||||
[bool findInAncestors = true]) {
|
||||
Testability testability = registry.findTestabilityInTree(elem, findInAncestors);
|
||||
if (testability == null) {
|
||||
throw 'Could not find testability for element.';
|
||||
}
|
||||
|
|
|
@ -15,8 +15,9 @@ class PublicTestability {
|
|||
|
||||
export class GetTestability {
|
||||
static addToWindow(registry: TestabilityRegistry) {
|
||||
global.getAngularTestability = function(elem: Element): PublicTestability {
|
||||
var testability = registry.findTestabilityInTree(elem);
|
||||
global.getAngularTestability = function(elem: Element, findInAncestors: boolean = true):
|
||||
PublicTestability {
|
||||
var testability = registry.findTestabilityInTree(elem, findInAncestors);
|
||||
|
||||
if (testability == null) {
|
||||
throw new Error('Could not find testability for element.');
|
||||
|
|
|
@ -84,12 +84,14 @@ export class TestabilityRegistry {
|
|||
|
||||
getAllTestabilities(): List<Testability> { return MapWrapper.values(this._applications); }
|
||||
|
||||
findTestabilityInTree(elem: Node): Testability {
|
||||
findTestabilityInTree(elem: Node, findInAncestors: boolean = true): Testability {
|
||||
if (elem == null) {
|
||||
return null;
|
||||
}
|
||||
if (this._applications.has(elem)) {
|
||||
return this._applications.get(elem);
|
||||
} else if (!findInAncestors) {
|
||||
return null;
|
||||
}
|
||||
if (DOM.isShadowRoot(elem)) {
|
||||
return this.findTestabilityInTree(DOM.getHost(elem));
|
||||
|
|
Loading…
Reference in New Issue