diff --git a/modules/angular2/src/test_lib/test_lib.es6 b/modules/angular2/src/test_lib/test_lib.es6 index 3abdbcaac0..628dc44d3c 100644 --- a/modules/angular2/src/test_lib/test_lib.es6 +++ b/modules/angular2/src/test_lib/test_lib.es6 @@ -153,9 +153,8 @@ export class SpyObject { function elementText(n) { + var hasNodes = (n) => {var children = DOM.childNodes(n); return children && children.length > 0;} if (!IS_NODEJS) { - var hasNodes = (n) => {var children = DOM.childNodes(n); return children && children.length > 0;} - if (n instanceof Comment) return ''; if (n instanceof Array) return n.map((nn) => elementText(nn)).join(""); @@ -166,33 +165,10 @@ function elementText(n) { return n.textContent; } else { - if (DOM.hasShadowRoot(n)) { - return elementText(DOM.getShadowRoot(n).childNodes); - } else if (n instanceof Array) { + if (n instanceof Array) { return n.map((nn) => elementText(nn)).join(""); - } else if (DOM.tagName(n) == 'content') { - //minimal implementation of getDistributedNodes() - var host = null; - var temp = n; - while (temp.parent) { - if (DOM.hasShadowRoot(temp)) { - host = temp; - } - temp = temp.parent; - } - if (host) { - var list = []; - var select = DOM.getAttribute(n, "select"); - var selectClass = select? select.substring(1): null; - DOM.childNodes(host).forEach((child) => { - var classList = DOM.classList(child); - if (selectClass && classList.indexOf(selectClass) > -1 || selectClass == null && classList.length == 0) { - list.push(child); - } - }); - return list.length > 0? elementText(list): ""; - } - return ""; + } else if (hasNodes(n)) { + return elementText(DOM.childNodesAsList(n)); } else { return DOM.getText(n); } diff --git a/modules/angular2/test/core/compiler/shadow_dom/shadow_dom_emulation_integration_spec.js b/modules/angular2/test/core/compiler/shadow_dom/shadow_dom_emulation_integration_spec.js index d227eada69..fd0eb65f30 100644 --- a/modules/angular2/test/core/compiler/shadow_dom/shadow_dom_emulation_integration_spec.js +++ b/modules/angular2/test/core/compiler/shadow_dom/shadow_dom_emulation_integration_spec.js @@ -1,4 +1,4 @@ -import {describe, xit, it, expect, beforeEach, ddescribe, iit, el} from 'angular2/test_lib'; +import {describe, xit, it, expect, beforeEach, ddescribe, iit, el, IS_NODEJS} from 'angular2/test_lib'; import {StringMapWrapper, List} from 'angular2/src/facade/collection'; import {Type} from 'angular2/src/facade/lang'; @@ -40,12 +40,15 @@ export function main() { var urlResolver = new UrlResolver(); var styleUrlResolver = new StyleUrlResolver(urlResolver); var styleInliner = new StyleInliner(null, styleUrlResolver, urlResolver); + var strategies = { + "scoped" : new EmulatedScopedShadowDomStrategy(styleInliner, styleUrlResolver, DOM.createElement('div')), + "unscoped" : new EmulatedUnscopedShadowDomStrategy(styleUrlResolver, DOM.createElement('div')) + } + if (!IS_NODEJS) { + StringMapWrapper.set(strategies, "native", new NativeShadowDomStrategy(styleUrlResolver)); + } - StringMapWrapper.forEach({ - "native" : new NativeShadowDomStrategy(styleUrlResolver), - "scoped" : new EmulatedScopedShadowDomStrategy(styleInliner, styleUrlResolver, DOM.createElement('div')), - "unscoped" : new EmulatedUnscopedShadowDomStrategy(styleUrlResolver, DOM.createElement('div')), - }, + StringMapWrapper.forEach(strategies, (strategy, name) => { describe(`${name} shadow dom strategy`, () => {