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

Side by Side Diff: tests/html/element_add_test.dart

Issue 1221043003: appendHtml, when sanitizing, should create document fragment in the right context (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: One more try. Suppress invalid co19 tests. Slight code cleanup. Created 5 years, 5 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
« no previous file with comments | « tests/co19/co19-dartium.status ('k') | tools/dom/templates/html/impl/impl_Element.darttemplate » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file 3 // BSD-style license that can be found in the LICENSE file
4 4
5 library ElementAddTest; 5 library ElementAddTest;
6 import 'package:unittest/unittest.dart'; 6 import 'package:unittest/unittest.dart';
7 import 'package:unittest/html_config.dart'; 7 import 'package:unittest/html_config.dart';
8 import 'util.dart'; 8 import 'util.dart';
9 import 'dart:html'; 9 import 'dart:html';
10 10
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
55 expect(el.children[0], equals(span)); 55 expect(el.children[0], equals(span));
56 expect(el.children[1], isDivElement); 56 expect(el.children[1], isDivElement);
57 }); 57 });
58 58
59 test('documentFragment', () { 59 test('documentFragment', () {
60 var fragment = new DocumentFragment(); 60 var fragment = new DocumentFragment();
61 fragment.appendHtml('<span>something</span>'); 61 fragment.appendHtml('<span>something</span>');
62 expect(fragment.children.length, equals(1)); 62 expect(fragment.children.length, equals(1));
63 expect(fragment.children[0], isSpanElement); 63 expect(fragment.children[0], isSpanElement);
64 }); 64 });
65
66 test('html interpreted in correct context', () {
67 // appendHtml, in order to sanitize, needs to create a document fragment,
68 // but it needs to be created in the right context. If we try to append
69 // table components then the document fragment needs the table context
70 // or it will fail to create them.
71 var el = new TableElement();
72 el.appendHtml('<tr><td>foo</td></tr>');
73 expect(el.children.length, 1);
74 var section = el.children.first;
75 expect(section is TableSectionElement, isTrue);
76 var row = section.children.first;
77 expect(row is TableRowElement, isTrue);
78 var item = row.children.first;
79 expect(item is TableCellElement, isTrue);
80 expect(item.innerHtml, 'foo');
81 });
82
83 test("use body context for elements that are don't support it", () {
84 // Some elements can't be used as context for createContextualFragment,
85 // often because it doesn't make any sense. So adding children to a
86 // <br> has no real effect on the page, but we can do it. But the
87 // document fragment will have to be created in the body context. Verify
88 // that this doesn't throw and that the children show up.
89 var el = new BRElement();
90 el.appendHtml("<p>Stuff</p>");
91 expect(el.children.length, 1);
92 expect(el.children[0].outerHtml, "<p>Stuff</p>");
93 });
65 }); 94 });
66 95
67 group('appendText', () { 96 group('appendText', () {
68 test('htmlelement', () { 97 test('htmlelement', () {
69 var el = new DivElement(); 98 var el = new DivElement();
70 el.appendText('foo'); 99 el.appendText('foo');
71 // No children were created. 100 // No children were created.
72 expect(el.children.length, equals(0)); 101 expect(el.children.length, equals(0));
73 // One text node was added. 102 // One text node was added.
74 expect(el.nodes.length, equals(1)); 103 expect(el.nodes.length, equals(1));
(...skipping 157 matching lines...) Expand 10 before | Expand all | Expand 10 after
232 var child = new DivElement(); 261 var child = new DivElement();
233 parent.children.add(child); 262 parent.children.add(child);
234 263
235 parent.insertAdjacentText('beforeend', 'test'); 264 parent.insertAdjacentText('beforeend', 'test');
236 265
237 expect(parent.nodes.length, 2); 266 expect(parent.nodes.length, 2);
238 expect(parent.nodes[1], isText); 267 expect(parent.nodes[1], isText);
239 }); 268 });
240 }); 269 });
241 } 270 }
OLDNEW
« no previous file with comments | « tests/co19/co19-dartium.status ('k') | tools/dom/templates/html/impl/impl_Element.darttemplate » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698