Index: pkg/third_party/html5lib/test/parser_feature_test.dart |
diff --git a/pkg/third_party/html5lib/test/parser_feature_test.dart b/pkg/third_party/html5lib/test/parser_feature_test.dart |
index f96a8e25fd4ade02d79406824a94f06eeb6bc8c0..212ae053321991c7eac651b0d2d23831cae01dd8 100644 |
--- a/pkg/third_party/html5lib/test/parser_feature_test.dart |
+++ b/pkg/third_party/html5lib/test/parser_feature_test.dart |
@@ -9,9 +9,9 @@ import 'package:html5lib/src/treebuilder.dart'; |
main() { |
test('doctype is cloneable', () { |
- var doc = parse('<!DOCTYPE HTML>'); |
+ var doc = parse('<!doctype HTML>'); |
DocumentType doctype = doc.nodes[0]; |
- expect(doctype.clone().outerHtml, '<!DOCTYPE html>'); |
+ expect(doctype.clone().toString(), '<!DOCTYPE html>'); |
}); |
test('line counter', () { |
@@ -22,12 +22,12 @@ main() { |
test('namespace html elements on', () { |
var doc = new HtmlParser('', tree: new TreeBuilder(true)).parse(); |
- expect(doc.nodes[0].namespace, Namespaces.html); |
+ expect(doc.nodes[0].namespaceUri, Namespaces.html); |
}); |
test('namespace html elements off', () { |
var doc = new HtmlParser('', tree: new TreeBuilder(false)).parse(); |
- expect(doc.nodes[0].namespace, null); |
+ expect(doc.nodes[0].namespaceUri, null); |
}); |
test('parse error spans - full', () { |
@@ -156,60 +156,62 @@ ParseError:4:3: Unexpected DOCTYPE. Ignored. |
test('empty document has html, body, and head', () { |
var doc = parse(''); |
- expect(doc.outerHtml, '<html><head></head><body></body></html>'); |
+ var html = '<html><head></head><body></body></html>'; |
+ expect(doc.outerHtml, html); |
+ expect(doc.documentElement.outerHtml, html); |
expect(doc.head.outerHtml, '<head></head>'); |
expect(doc.body.outerHtml, '<body></body>'); |
}); |
test('strange table case', () { |
- var doc = parseFragment('<table><tbody><foo>'); |
- expect(doc.outerHtml, '<foo></foo><table><tbody></tbody></table>'); |
+ var doc = parse('<table><tbody><foo>').body; |
+ expect(doc.innerHtml, '<foo></foo><table><tbody></tbody></table>'); |
}); |
group('html serialization', () { |
test('attribute order', () { |
// Note: the spec only requires a stable order. |
// However, we preserve the input order via LinkedHashMap |
- var doc = parseFragment('<foo d=1 a=2 c=3 b=4>'); |
- expect(doc.outerHtml, '<foo d="1" a="2" c="3" b="4"></foo>'); |
- expect(doc.querySelector('foo').attributes.remove('a'), '2'); |
- expect(doc.outerHtml, '<foo d="1" c="3" b="4"></foo>'); |
- doc.querySelector('foo').attributes['a'] = '0'; |
- expect(doc.outerHtml, '<foo d="1" c="3" b="4" a="0"></foo>'); |
+ var body = parse('<foo d=1 a=2 c=3 b=4>').body; |
+ expect(body.innerHtml, '<foo d="1" a="2" c="3" b="4"></foo>'); |
+ expect(body.querySelector('foo').attributes.remove('a'), '2'); |
+ expect(body.innerHtml, '<foo d="1" c="3" b="4"></foo>'); |
+ body.querySelector('foo').attributes['a'] = '0'; |
+ expect(body.innerHtml, '<foo d="1" c="3" b="4" a="0"></foo>'); |
}); |
test('escaping Text node in <script>', () { |
- var doc = parseFragment('<script>a && b</script>'); |
- expect(doc.outerHtml, '<script>a && b</script>'); |
+ Element e = parseFragment('<script>a && b</script>').firstChild; |
+ expect(e.outerHtml, '<script>a && b</script>'); |
}); |
test('escaping Text node in <span>', () { |
- var doc = parseFragment('<span>a && b</span>'); |
- expect(doc.outerHtml, '<span>a && b</span>'); |
+ Element e = parseFragment('<span>a && b</span>').firstChild; |
+ expect(e.outerHtml, '<span>a && b</span>'); |
}); |
test('Escaping attributes', () { |
- var doc = parseFragment('<div class="a<b>">'); |
- expect(doc.outerHtml, '<div class="a<b>"></div>'); |
- doc = parseFragment('<div class=\'a"b\'>'); |
- expect(doc.outerHtml, '<div class="a"b"></div>'); |
+ Element e = parseFragment('<div class="a<b>">').firstChild; |
+ expect(e.outerHtml, '<div class="a<b>"></div>'); |
+ e = parseFragment('<div class=\'a"b\'>').firstChild; |
+ expect(e.outerHtml, '<div class="a"b"></div>'); |
}); |
test('Escaping non-breaking space', () { |
var text = '<span>foO\u00A0bar</span>'; |
expect(text.codeUnitAt(text.indexOf('O') + 1), 0xA0); |
- var doc = parseFragment(text); |
- expect(doc.outerHtml, '<span>foO bar</span>'); |
+ Element e = parseFragment(text).firstChild; |
+ expect(e.outerHtml, '<span>foO bar</span>'); |
}); |
test('Newline after <pre>', () { |
- var doc = parseFragment('<pre>\n\nsome text</span>'); |
- expect(doc.querySelector('pre').nodes[0].data, '\nsome text'); |
- expect(doc.outerHtml, '<pre>\n\nsome text</pre>'); |
+ Element e = parseFragment('<pre>\n\nsome text</span>').firstChild; |
+ expect((e.firstChild as Text).data, '\nsome text'); |
+ expect(e.outerHtml, '<pre>\n\nsome text</pre>'); |
- doc = parseFragment('<pre>\nsome text</span>'); |
- expect(doc.querySelector('pre').nodes[0].data, 'some text'); |
- expect(doc.outerHtml, '<pre>some text</pre>'); |
+ e = parseFragment('<pre>\nsome text</span>').firstChild; |
+ expect((e.firstChild as Text).data, 'some text'); |
+ expect(e.outerHtml, '<pre>some text</pre>'); |
}); |
test('xml namespaces', () { |