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

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

Issue 10879080: Implementing polyfills for insertAdjacent* to get them working on FF. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Sync to latest. Created 8 years, 3 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
« no previous file with comments | « lib/html/doc/interface/Element.dartdoc ('k') | tests/html/element_test.dart » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
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
3 // BSD-style license that can be found in the LICENSE file
4
5 #library('ElementAddTest');
6 #import('../../pkg/unittest/unittest.dart');
7 #import('../../pkg/unittest/html_config.dart');
8 #import('dart:html');
9 #source('util.dart');
10
11 main() {
12 useHtmlConfiguration();
13
14 void expectNoSuchMethod(void fn()) =>
15 Expect.throws(fn, (e) => e is NoSuchMethodException);
16
17 group('addHTML', () {
18 test('htmlelement', () {
19 // Adding a <tr/> to a table should auto-wrap it into a tbody element.
20 var el = new TableElement();
21 el.addHTML('<tr>test</tr>');
22 expect(el.elements.length, equals(1));
23 var section = el.elements[0];
24 expect(section is TableSectionElement);
25 expect(section.elements.length, equals(1));
26 expect(section.elements[0] is TableRowElement);
27
28 el.addHTML('<tr>test</tr>');
29 expect(el.elements.length, equals(2));
30 // Validate that the first item is still first.
31 expect(el.elements[0] == section);
32 expect(el.elements[1] is TableSectionElement);
33 });
34
35 test('documentFragment', () {
36 var fragment = new DocumentFragment();
37 fragment.addHTML('<span>something</span>');
38 expect(fragment.elements.length, equals(1));
39 expect(fragment.elements[0] is SpanElement);
40 });
41 });
42
43 group('addText', () {
44 test('htmlelement', () {
45 var el = new DivElement();
46 el.addText('foo');
47 // No elements were created.
48 expect(el.elements.length, equals(0));
49 // One text node was added.
50 expect(el.nodes.length, equals(1));
51 });
52
53 test('documentFragment', () {
54 var fragment = new DocumentFragment();
55 fragment.addText('foo');
56 // No elements were created.
57 expect(fragment.elements.length, equals(0));
58 // One text node was added.
59 expect(fragment.nodes.length, equals(1));
60 });
61 });
62
63 group('insertAdjacentElement', () {
64 test('beforebegin', () {
65 var parent = new DivElement();
66 var child = new DivElement();
67 var newChild = new SpanElement();
68 parent.elements.add(child);
69
70 child.insertAdjacentElement('beforebegin', newChild);
71
72 expect(parent.elements.length, 2);
73 expect(parent.elements[0] is SpanElement);
74 });
75
76 test('afterend', () {
77 var parent = new DivElement();
78 var child = new DivElement();
79 var newChild = new SpanElement();
80 parent.elements.add(child);
81
82 child.insertAdjacentElement('afterend', newChild);
83
84 expect(parent.elements.length, 2);
85 expect(parent.elements[1] is SpanElement);
86 });
87
88 test('afterbegin', () {
89 var parent = new DivElement();
90 var child = new DivElement();
91 var newChild = new SpanElement();
92 parent.elements.add(child);
93
94 parent.insertAdjacentElement('afterbegin', newChild);
95
96 expect(parent.elements.length, 2);
97 expect(parent.elements[0] is SpanElement);
98 });
99
100 test('beforeend', () {
101 var parent = new DivElement();
102 var child = new DivElement();
103 var newChild = new SpanElement();
104 parent.elements.add(child);
105
106 parent.insertAdjacentElement('beforeend', newChild);
107
108 expect(parent.elements.length, 2);
109 expect(parent.elements[1] is SpanElement);
110 });
111 });
112
113 group('insertAdjacentHTML', () {
114 test('beforebegin', () {
115 var parent = new DivElement();
116 var child = new DivElement();
117 parent.elements.add(child);
118
119 child.insertAdjacentHTML('beforebegin', '<span></span>');
120
121 expect(parent.elements.length, 2);
122 expect(parent.elements[0] is SpanElement);
123 });
124
125 test('afterend', () {
126 var parent = new DivElement();
127 var child = new DivElement();
128 parent.elements.add(child);
129
130 child.insertAdjacentHTML('afterend', '<span></span>');
131
132 expect(parent.elements.length, 2);
133 expect(parent.elements[1] is SpanElement);
134 });
135
136 test('afterbegin', () {
137 var parent = new DivElement();
138 var child = new DivElement();
139 parent.elements.add(child);
140
141 parent.insertAdjacentHTML('afterbegin', '<span></span>');
142
143 expect(parent.elements.length, 2);
144 expect(parent.elements[0] is SpanElement);
145 });
146
147 test('beforeend', () {
148 var parent = new DivElement();
149 var child = new DivElement();
150 parent.elements.add(child);
151
152 parent.insertAdjacentHTML('beforeend', '<span></span>');
153
154 expect(parent.elements.length, 2);
155 expect(parent.elements[1] is SpanElement);
156 });
157 });
158
159 group('insertAdjacentText', () {
160 test('beforebegin', () {
161 var parent = new DivElement();
162 var child = new DivElement();
163 parent.elements.add(child);
164
165 child.insertAdjacentText('beforebegin', 'test');
166
167 expect(parent.nodes.length, 2);
168 expect(parent.nodes[0] is Text);
169 });
170
171 test('afterend', () {
172 var parent = new DivElement();
173 var child = new DivElement();
174 parent.elements.add(child);
175
176 child.insertAdjacentText('afterend', 'test');
177
178 expect(parent.nodes.length, 2);
179 expect(parent.nodes[1] is Text);
180 });
181
182 test('afterbegin', () {
183 var parent = new DivElement();
184 var child = new DivElement();
185 parent.elements.add(child);
186
187 parent.insertAdjacentText('afterbegin', 'test');
188
189 expect(parent.nodes.length, 2);
190 expect(parent.nodes[0] is Text);
191 });
192
193 test('beforeend', () {
194 var parent = new DivElement();
195 var child = new DivElement();
196 parent.elements.add(child);
197
198 parent.insertAdjacentText('beforeend', 'test');
199
200 expect(parent.nodes.length, 2);
201 expect(parent.nodes[1] is Text);
202 });
203 });
204 }
OLDNEW
« no previous file with comments | « lib/html/doc/interface/Element.dartdoc ('k') | tests/html/element_test.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698