| OLD | NEW |
| 1 /** Support code for the tests in this directory. */ | 1 /// Support code for the tests in this directory. |
| 2 library support; | 2 library support; |
| 3 | 3 |
| 4 import 'dart:io'; | 4 import 'dart:io'; |
| 5 import 'dart:collection'; | 5 import 'dart:collection'; |
| 6 import 'package:path/path.dart' as path; | 6 import 'package:path/path.dart' as path; |
| 7 import 'package:html5lib/src/treebuilder.dart'; | 7 import 'package:html5lib/src/treebuilder.dart'; |
| 8 import 'package:html5lib/dom.dart'; | 8 import 'package:html5lib/dom.dart'; |
| 9 import 'package:html5lib/dom_parsing.dart'; | 9 import 'package:html5lib/dom_parsing.dart'; |
| 10 | 10 |
| 11 typedef TreeBuilder TreeBuilderFactory(bool namespaceHTMLElements); | 11 typedef TreeBuilder TreeBuilderFactory(bool namespaceHTMLElements); |
| (...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 65 data[key] = '${data[key]}$line\n'; | 65 data[key] = '${data[key]}$line\n'; |
| 66 } | 66 } |
| 67 } | 67 } |
| 68 | 68 |
| 69 if (data.length > 0) { | 69 if (data.length > 0) { |
| 70 result.add(normaliseOutput(data)); | 70 result.add(normaliseOutput(data)); |
| 71 } | 71 } |
| 72 return result; | 72 return result; |
| 73 } | 73 } |
| 74 | 74 |
| 75 /** | 75 /// If the current heading is a test section heading return the heading, |
| 76 * If the current heading is a test section heading return the heading, | 76 /// otherwise return null. |
| 77 * otherwise return null. | |
| 78 */ | |
| 79 static String sectionHeading(String line) { | 77 static String sectionHeading(String line) { |
| 80 return line.startsWith("#") ? line.substring(1).trim() : null; | 78 return line.startsWith("#") ? line.substring(1).trim() : null; |
| 81 } | 79 } |
| 82 | 80 |
| 83 static Map normaliseOutput(Map data) { | 81 static Map normaliseOutput(Map data) { |
| 84 // Remove trailing newlines | 82 // Remove trailing newlines |
| 85 data.forEach((key, value) { | 83 data.forEach((key, value) { |
| 86 if (value.endsWith("\n")) { | 84 if (value.endsWith("\n")) { |
| 87 data[key] = value.substring(0, value.length - 1); | 85 data[key] = value.substring(0, value.length - 1); |
| 88 } | 86 } |
| 89 }); | 87 }); |
| 90 return data; | 88 return data; |
| 91 } | 89 } |
| 92 } | 90 } |
| 93 | 91 |
| 94 /** | 92 /// Serialize the [document] into the html5 test data format. |
| 95 * Serialize the [document] into the html5 test data format. | |
| 96 */ | |
| 97 testSerializer(Document document) { | 93 testSerializer(Document document) { |
| 98 return (new TestSerializer()..visit(document)).toString(); | 94 return (new TestSerializer()..visit(document)).toString(); |
| 99 } | 95 } |
| 100 | 96 |
| 101 /** Serializes the DOM into test format. See [testSerializer]. */ | 97 /// Serializes the DOM into test format. See [testSerializer]. |
| 102 class TestSerializer extends TreeVisitor { | 98 class TestSerializer extends TreeVisitor { |
| 103 final StringBuffer _str; | 99 final StringBuffer _str; |
| 104 int _indent = 0; | 100 int _indent = 0; |
| 105 String _spaces = ''; | 101 String _spaces = ''; |
| 106 | 102 |
| 107 TestSerializer() : _str = new StringBuffer(); | 103 TestSerializer() : _str = new StringBuffer(); |
| 108 | 104 |
| 109 String toString() => _str.toString(); | 105 String toString() => _str.toString(); |
| 110 | 106 |
| 111 int get indent => _indent; | 107 int get indent => _indent; |
| (...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 158 key = "${attr.prefix} ${attr.name}"; | 154 key = "${attr.prefix} ${attr.name}"; |
| 159 } | 155 } |
| 160 _newline(); | 156 _newline(); |
| 161 _str.write('$key="$v"'); | 157 _str.write('$key="$v"'); |
| 162 } | 158 } |
| 163 indent -= 2; | 159 indent -= 2; |
| 164 } | 160 } |
| 165 visitChildren(node); | 161 visitChildren(node); |
| 166 } | 162 } |
| 167 } | 163 } |
| OLD | NEW |