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

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

Issue 10854208: Adding Element.AddHTML and Element.addText methods. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Implementing polyfills for insertAdjacent* to get tests working on FF. Created 8 years, 4 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 test('svg', () {
63 var svg = new SVGElement.tag('g');
64 svg.addText('foo');
65 // No elements were created.
66 expect(svg.elements.length, equals(0));
67 // One text node was added.
68 expect(svg.nodes.length, equals(1));
69 });
70 });
71
72 group('insertAdjacentElement', () {
73 test('beforebegin', () {
74 var parent = new DivElement();
75 var child = new DivElement();
76 var newChild = new SpanElement();
77 parent.elements.add(child);
78
79 child.insertAdjacentElement('beforebegin', newChild);
80
81 expect(parent.elements.length, 2);
82 expect(parent.elements[0] is SpanElement);
83 });
84
85 test('afterend', () {
86 var parent = new DivElement();
87 var child = new DivElement();
88 var newChild = new SpanElement();
89 parent.elements.add(child);
90
91 child.insertAdjacentElement('afterend', newChild);
92
93 expect(parent.elements.length, 2);
94 expect(parent.elements[1] is SpanElement);
95 });
96
97 test('afterbegin', () {
98 var parent = new DivElement();
99 var child = new DivElement();
100 var newChild = new SpanElement();
101 parent.elements.add(child);
102
103 parent.insertAdjacentElement('afterbegin', newChild);
104
105 expect(parent.elements.length, 2);
106 expect(parent.elements[0] is SpanElement);
107 });
108
109 test('beforeend', () {
110 var parent = new DivElement();
111 var child = new DivElement();
112 var newChild = new SpanElement();
113 parent.elements.add(child);
114
115 parent.insertAdjacentElement('beforeend', newChild);
116
117 expect(parent.elements.length, 2);
118 expect(parent.elements[1] is SpanElement);
119 });
120 });
121
122 group('insertAdjacentHTML', () {
123 test('beforebegin', () {
124 var parent = new DivElement();
125 var child = new DivElement();
126 parent.elements.add(child);
127
128 child.insertAdjacentHTML('beforebegin', '<span></span>');
129
130 expect(parent.elements.length, 2);
131 expect(parent.elements[0] is SpanElement);
132 });
133
134 test('afterend', () {
135 var parent = new DivElement();
136 var child = new DivElement();
137 parent.elements.add(child);
138
139 child.insertAdjacentHTML('afterend', '<span></span>');
140
141 expect(parent.elements.length, 2);
142 expect(parent.elements[1] is SpanElement);
143 });
144
145 test('afterbegin', () {
146 var parent = new DivElement();
147 var child = new DivElement();
148 parent.elements.add(child);
149
150 parent.insertAdjacentHTML('afterbegin', '<span></span>');
151
152 expect(parent.elements.length, 2);
153 expect(parent.elements[0] is SpanElement);
154 });
155
156 test('beforeend', () {
157 var parent = new DivElement();
158 var child = new DivElement();
159 parent.elements.add(child);
160
161 parent.insertAdjacentHTML('beforeend', '<span></span>');
162
163 expect(parent.elements.length, 2);
164 expect(parent.elements[1] is SpanElement);
165 });
166 });
167
168 group('insertAdjacentText', () {
169 test('beforebegin', () {
170 var parent = new DivElement();
171 var child = new DivElement();
172 parent.elements.add(child);
173
174 child.insertAdjacentText('beforebegin', 'test');
175
176 expect(parent.nodes.length, 2);
177 expect(parent.nodes[0] is Text);
178 });
179
180 test('afterend', () {
181 var parent = new DivElement();
182 var child = new DivElement();
183 parent.elements.add(child);
184
185 child.insertAdjacentText('afterend', 'test');
186
187 expect(parent.nodes.length, 2);
188 expect(parent.nodes[1] is Text);
189 });
190
191 test('afterbegin', () {
192 var parent = new DivElement();
193 var child = new DivElement();
194 parent.elements.add(child);
195
196 parent.insertAdjacentText('afterbegin', 'test');
197
198 expect(parent.nodes.length, 2);
199 expect(parent.nodes[0] is Text);
200 });
201
202 test('beforeend', () {
203 var parent = new DivElement();
204 var child = new DivElement();
205 parent.elements.add(child);
206
207 parent.insertAdjacentText('beforeend', 'test');
208
209 expect(parent.nodes.length, 2);
210 expect(parent.nodes[1] is Text);
211 });
212 });
213 }
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