Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(322)

Side by Side Diff: pkg/third_party/html5lib/test/parser_feature_test.dart

Issue 162093002: fix imports link rel=stylesheet (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 6 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 /** Additional feature tests that aren't based on test data. */ 1 /** Additional feature tests that aren't based on test data. */
2 library parser_feature_test; 2 library parser_feature_test;
3 3
4 import 'package:unittest/unittest.dart'; 4 import 'package:unittest/unittest.dart';
5 import 'package:html5lib/dom.dart'; 5 import 'package:html5lib/dom.dart';
6 import 'package:html5lib/parser.dart'; 6 import 'package:html5lib/parser.dart';
7 import 'package:html5lib/src/constants.dart'; 7 import 'package:html5lib/src/constants.dart';
8 import 'package:html5lib/src/treebuilder.dart'; 8 import 'package:html5lib/src/treebuilder.dart';
9 9
10 main() { 10 main() {
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after
74 expect(error.errorCode, 'unexpected-doctype'); 74 expect(error.errorCode, 'unexpected-doctype');
75 expect(error.span.start.line, 3); 75 expect(error.span.start.line, 3);
76 // Note: error position is at the end, not the beginning 76 // Note: error position is at the end, not the beginning
77 expect(error.span.start.column, 17); 77 expect(error.span.start.column, 17);
78 }); 78 });
79 79
80 test('text spans should have the correct length', () { 80 test('text spans should have the correct length', () {
81 var textContent = '\n hello {{name}}'; 81 var textContent = '\n hello {{name}}';
82 var html = '<body><div>$textContent</div>'; 82 var html = '<body><div>$textContent</div>';
83 var doc = parse(html, generateSpans: true); 83 var doc = parse(html, generateSpans: true);
84 var text = doc.body.nodes[0].nodes[0]; 84 Text text = doc.body.nodes[0].nodes[0];
85 expect(text, new isInstanceOf<Text>()); 85 expect(text, new isInstanceOf<Text>());
86 expect(text.value, textContent); 86 expect(text.data, textContent);
87 expect(text.sourceSpan.start.offset, html.indexOf(textContent)); 87 expect(text.sourceSpan.start.offset, html.indexOf(textContent));
88 expect(text.sourceSpan.length, textContent.length); 88 expect(text.sourceSpan.length, textContent.length);
89 }); 89 });
90 90
91 test('attribute spans', () { 91 test('attribute spans', () {
92 var text = '<element name="x-foo" extends="x-bar" constructor="Foo">'; 92 var text = '<element name="x-foo" extends="x-bar" constructor="Foo">';
93 var doc = parse(text, generateSpans: true); 93 var doc = parse(text, generateSpans: true);
94 var elem = doc.querySelector('element'); 94 var elem = doc.querySelector('element');
95 expect(elem.sourceSpan.start.offset, 0); 95 expect(elem.sourceSpan.start.offset, 0);
96 expect(elem.sourceSpan.end.offset, text.length); 96 expect(elem.sourceSpan.end.offset, text.length);
(...skipping 100 matching lines...) Expand 10 before | Expand all | Expand 10 after
197 197
198 test('Escaping non-breaking space', () { 198 test('Escaping non-breaking space', () {
199 var text = '<span>foO\u00A0bar</span>'; 199 var text = '<span>foO\u00A0bar</span>';
200 expect(text.codeUnitAt(text.indexOf('O') + 1), 0xA0); 200 expect(text.codeUnitAt(text.indexOf('O') + 1), 0xA0);
201 var doc = parseFragment(text); 201 var doc = parseFragment(text);
202 expect(doc.outerHtml, '<span>foO&nbsp;bar</span>'); 202 expect(doc.outerHtml, '<span>foO&nbsp;bar</span>');
203 }); 203 });
204 204
205 test('Newline after <pre>', () { 205 test('Newline after <pre>', () {
206 var doc = parseFragment('<pre>\n\nsome text</span>'); 206 var doc = parseFragment('<pre>\n\nsome text</span>');
207 expect(doc.querySelector('pre').nodes[0].value, '\nsome text'); 207 expect(doc.querySelector('pre').nodes[0].data, '\nsome text');
208 expect(doc.outerHtml, '<pre>\n\nsome text</pre>'); 208 expect(doc.outerHtml, '<pre>\n\nsome text</pre>');
209 209
210 doc = parseFragment('<pre>\nsome text</span>'); 210 doc = parseFragment('<pre>\nsome text</span>');
211 expect(doc.querySelector('pre').nodes[0].value, 'some text'); 211 expect(doc.querySelector('pre').nodes[0].data, 'some text');
212 expect(doc.outerHtml, '<pre>some text</pre>'); 212 expect(doc.outerHtml, '<pre>some text</pre>');
213 }); 213 });
214 214
215 test('xml namespaces', () { 215 test('xml namespaces', () {
216 // Note: this is a nonsensical example, but it triggers the behavior 216 // Note: this is a nonsensical example, but it triggers the behavior
217 // we're looking for with attribute names in foreign content. 217 // we're looking for with attribute names in foreign content.
218 var doc = parse(''' 218 var doc = parse('''
219 <body> 219 <body>
220 <svg> 220 <svg>
221 <desc xlink:type="simple" 221 <desc xlink:type="simple"
(...skipping 17 matching lines...) Expand all
239 var doc = parser.parse(); 239 var doc = parser.parse();
240 expect(doc.body.innerHtml, 'foo'); 240 expect(doc.body.innerHtml, 'foo');
241 expect(parser.errors.length, 1); 241 expect(parser.errors.length, 1);
242 expect(parser.errors[0].errorCode, 'expected-doctype-but-got-chars'); 242 expect(parser.errors[0].errorCode, 'expected-doctype-but-got-chars');
243 expect(parser.errors[0].message, 243 expect(parser.errors[0].message,
244 'Unexpected non-space characters. Expected DOCTYPE.'); 244 'Unexpected non-space characters. Expected DOCTYPE.');
245 expect(parser.errors[0].toString(), 245 expect(parser.errors[0].toString(),
246 'ParserError:1:4: Unexpected non-space characters. ' 246 'ParserError:1:4: Unexpected non-space characters. '
247 'Expected DOCTYPE.'); 247 'Expected DOCTYPE.');
248 }); 248 });
249
250 test('Element.text', () {
251 var doc = parseFragment('<div>foo<div>bar</div>baz</div>');
252 var e = doc.firstChild;
253 var text = e.firstChild;
254 expect((text as Text).data, 'foo');
255 expect(e.text, 'foobarbaz');
256
257 e.text = 'FOO';
258 expect(e.nodes.length, 1);
259 expect(e.firstChild, isNot(text), reason: 'should create a new tree');
260 expect((e.firstChild as Text).data, 'FOO');
261 expect(e.text, 'FOO');
262 });
263
264 test('Text.text', () {
265 var doc = parseFragment('<div>foo<div>bar</div>baz</div>');
266 var e = doc.firstChild;
267 Text text = e.firstChild;
268 expect(text.data, 'foo');
269 expect(text.text, 'foo');
270
271 text.text = 'FOO';
272 expect(text.data, 'FOO');
273 expect(e.text, 'FOObarbaz');
274 expect(text.text, 'FOO');
275 });
276
277 test('Comment.text', () {
278 var doc = parseFragment('<div><!--foo-->bar</div>');
279 var e = doc.firstChild;
280 var c = e.firstChild;
281 expect((c as Comment).data, 'foo');
282 expect(c.text, 'foo');
283 expect(e.text, 'bar');
284
285 c.text = 'qux';
286 expect(c.data, 'qux');
287 expect(c.text, 'qux');
288 expect(e.text, 'bar');
289 });
249 } 290 }
OLDNEW
« no previous file with comments | « pkg/third_party/html5lib/test/dom_compat_test_definitions.dart ('k') | pkg/third_party/html5lib/test/run_all.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698