diff --git a/lib/mock/test_bed.dart b/lib/mock/test_bed.dart index e0cf5064d..fef0711ff 100644 --- a/lib/mock/test_bed.dart +++ b/lib/mock/test_bed.dart @@ -63,7 +63,8 @@ class TestBed { */ List toNodeList(html) { var div = new DivElement(); - div.setInnerHtml(html, treeSanitizer: new NullTreeSanitizer()); + var sanitizedHtml = _handleWhitespace(html); + div.setInnerHtml(sanitizedHtml, treeSanitizer: new NullTreeSanitizer()); var nodes = []; for (var node in div.nodes) { nodes.add(node); @@ -101,4 +102,12 @@ class TestBed { } getScope(Node node) => getProbe(node).scope; + + String _handleWhitespace(html) { + return html.split('\n') + .map((line) { + var trimmed = line.trim(); + return trimmed + (trimmed.isEmpty || trimmed.endsWith('>') ? '' : ' ');}) + .join(); + } } diff --git a/test/mock/test_bed_spec.dart b/test/mock/test_bed_spec.dart index 661c5f4ac..d19f26795 100644 --- a/test/mock/test_bed_spec.dart +++ b/test/mock/test_bed_spec.dart @@ -27,6 +27,24 @@ void main() { expect(directiveInst.destroyed).toBe(true); }); + it('should handle whitespace cleanly', () { + var root = _.compile(''' +
+

+

+
+ + '''); + + expect(root).toBeAnInstanceOf(DivElement); + expect(_.rootElements[1]).toBeAnInstanceOf(SpanElement); + expect(_.rootElements.length).toBe(2); + }); + }); }