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

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

Issue 11413071: Deprecating Element.elements for Element.children. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Review feedback. Created 8 years, 1 month 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 | « tests/html/cssstyledeclaration_test.dart ('k') | tests/html/element_add_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
1 // Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2011, 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 DocumentFragmentTest; 5 library DocumentFragmentTest;
6 import '../../pkg/unittest/lib/unittest.dart'; 6 import '../../pkg/unittest/lib/unittest.dart';
7 import '../../pkg/unittest/lib/html_config.dart'; 7 import '../../pkg/unittest/lib/html_config.dart';
8 import 'dart:html'; 8 import 'dart:html';
9 part 'util.dart'; 9 part 'util.dart';
10 10
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
53 // that'll intercept these calls without implementing the entire 53 // that'll intercept these calls without implementing the entire
54 // CSSStyleDeclaration interface, so we'll settle for them being no-ops. 54 // CSSStyleDeclaration interface, so we'll settle for them being no-ops.
55 style.cssText = '* {color: blue}'; 55 style.cssText = '* {color: blue}';
56 style.removeProperty('color'); 56 style.removeProperty('color');
57 style.setProperty('color', 'blue'); 57 style.setProperty('color', 'blue');
58 } 58 }
59 59
60 group('constructors', () { 60 group('constructors', () {
61 test('0-argument makes an empty fragment', () { 61 test('0-argument makes an empty fragment', () {
62 final fragment = new DocumentFragment(); 62 final fragment = new DocumentFragment();
63 expect(fragment.elements, equals([])); 63 expect(fragment.children, equals([]));
64 }); 64 });
65 65
66 test('.html parses input as HTML', () { 66 test('.html parses input as HTML', () {
67 final fragment = new DocumentFragment.html('<a>foo</a>'); 67 final fragment = new DocumentFragment.html('<a>foo</a>');
68 expect(fragment.elements[0], isAnchorElement); 68 expect(fragment.children[0], isAnchorElement);
69 }); 69 });
70 70
71 // test('.svg parses input as SVG', () { 71 // test('.svg parses input as SVG', () {
72 // final fragment = new DocumentFragment.svg('<a>foo</a>'); 72 // final fragment = new DocumentFragment.svg('<a>foo</a>');
73 // expect(fragment.elements[0] is SVGAElement, isTrue); 73 // expect(fragment.children[0] is SVGAElement, isTrue);
74 // }); 74 // });
75 75
76 // TODO(nweiz): enable this once XML is ported. 76 // TODO(nweiz): enable this once XML is ported.
77 // test('.xml parses input as XML', () { 77 // test('.xml parses input as XML', () {
78 // final fragment = new DocumentFragment.xml('<a>foo</a>'); 78 // final fragment = new DocumentFragment.xml('<a>foo</a>');
79 // expect(fragment.elements[0] is XMLElement, isTrue); 79 // expect(fragment.children[0] is XMLElement, isTrue);
80 // }); 80 // });
81 }); 81 });
82 82
83 test('Unsupported operations throw errors', () { 83 test('Unsupported operations throw errors', () {
84 var emptyFragment = new DocumentFragment(); 84 var emptyFragment = new DocumentFragment();
85 expectUnsupported(() => emptyFragment.attributes = {}); 85 expectUnsupported(() => emptyFragment.attributes = {});
86 expectUnsupported(() => emptyFragment.classes = []); 86 expectUnsupported(() => emptyFragment.classes = []);
87 expectUnsupported(() => emptyFragment.classes.add('foo')); 87 expectUnsupported(() => emptyFragment.classes.add('foo'));
88 expectUnsupported(() => emptyFragment.dataAttributes = {}); 88 expectUnsupported(() => emptyFragment.dataAttributes = {});
89 expectUnsupported(() => emptyFragment.contentEditable = "true"); 89 expectUnsupported(() => emptyFragment.contentEditable = "true");
90 expectUnsupported(() => emptyFragment.dir); 90 expectUnsupported(() => emptyFragment.dir);
91 expectUnsupported(() => emptyFragment.dir = "ltr"); 91 expectUnsupported(() => emptyFragment.dir = "ltr");
92 expectUnsupported(() => emptyFragment.draggable = true); 92 expectUnsupported(() => emptyFragment.draggable = true);
93 expectUnsupported(() => emptyFragment.hidden = true); 93 expectUnsupported(() => emptyFragment.hidden = true);
94 expectUnsupported(() => emptyFragment.id = "foo"); 94 expectUnsupported(() => emptyFragment.id = "foo");
95 expectUnsupported(() => emptyFragment.lang); 95 expectUnsupported(() => emptyFragment.lang);
96 expectUnsupported(() => emptyFragment.lang = "en"); 96 expectUnsupported(() => emptyFragment.lang = "en");
97 expectUnsupported(() => emptyFragment.scrollLeft = 10); 97 expectUnsupported(() => emptyFragment.scrollLeft = 10);
98 expectUnsupported(() => emptyFragment.scrollTop = 10); 98 expectUnsupported(() => emptyFragment.scrollTop = 10);
99 expectUnsupported(() => emptyFragment.spellcheck = true); 99 expectUnsupported(() => emptyFragment.spellcheck = true);
100 expectUnsupported(() => emptyFragment.translate = true); 100 expectUnsupported(() => emptyFragment.translate = true);
101 expectUnsupported(() => emptyFragment.tabIndex = 5); 101 expectUnsupported(() => emptyFragment.tabIndex = 5);
102 expectUnsupported(() => emptyFragment.title = "foo"); 102 expectUnsupported(() => emptyFragment.title = "foo");
103 expectUnsupported(() => emptyFragment.webkitdropzone = "foo"); 103 expectUnsupported(() => emptyFragment.webkitdropzone = "foo");
104 expectUnsupported(() => emptyFragment.webkitRegionOverflow = "foo"); 104 expectUnsupported(() => emptyFragment.webkitRegionOverflow = "foo");
105 }); 105 });
106 106
107 group('elements', () { 107 group('children', () {
108 var fragment; 108 var fragment;
109 var elements; 109 var children;
110 110
111 init() { 111 init() {
112 fragment = new DocumentFragment(); 112 fragment = new DocumentFragment();
113 elements = fragment.elements; 113 children = fragment.children;
114 fragment.nodes.addAll( 114 fragment.nodes.addAll(
115 [new Text("1"), new Element.tag("A"), new Element.tag("B"), 115 [new Text("1"), new Element.tag("A"), new Element.tag("B"),
116 new Text("2"), new Element.tag("I"), new Text("3"), 116 new Text("2"), new Element.tag("I"), new Text("3"),
117 new Element.tag("U")]); 117 new Element.tag("U")]);
118 }; 118 };
119 119
120 test('is initially empty', () { 120 test('is initially empty', () {
121 elements = new DocumentFragment().elements; 121 children = new DocumentFragment().children;
122 expect(elements, equals([])); 122 expect(children, equals([]));
123 expect(elements.isEmpty, isTrue); 123 expect(children.isEmpty, isTrue);
124 }); 124 });
125 125
126 test('filters out non-element nodes', () { 126 test('filters out non-element nodes', () {
127 init(); 127 init();
128 expect(_nodeStrings(fragment.nodes), 128 expect(_nodeStrings(fragment.nodes),
129 orderedEquals(["1", "A", "B", "2", "I", "3", "U"])); 129 orderedEquals(["1", "A", "B", "2", "I", "3", "U"]));
130 expect(_nodeStrings(elements), 130 expect(_nodeStrings(children),
131 orderedEquals(["A", "B", "I", "U"])); 131 orderedEquals(["A", "B", "I", "U"]));
132 }); 132 });
133 133
134 test('only indexes elements, not other nodes', () { 134 test('only indexes children, not other nodes', () {
135 init(); 135 init();
136 elements[1] = new Element.tag("BR"); 136 children[1] = new Element.tag("BR");
137 expect(_nodeStrings(fragment.nodes), 137 expect(_nodeStrings(fragment.nodes),
138 orderedEquals(["1", "A", "BR", "2", "I", "3", "U"])); 138 orderedEquals(["1", "A", "BR", "2", "I", "3", "U"]));
139 expect(_nodeStrings(elements), 139 expect(_nodeStrings(children),
140 orderedEquals(["A", "BR", "I", "U"])); 140 orderedEquals(["A", "BR", "I", "U"]));
141 }); 141 });
142 142
143 test('adds to both elements and nodes', () { 143 test('adds to both children and nodes', () {
144 init(); 144 init();
145 elements.add(new Element.tag("UL")); 145 children.add(new Element.tag("UL"));
146 expect(_nodeStrings(fragment.nodes), 146 expect(_nodeStrings(fragment.nodes),
147 orderedEquals(["1", "A", "B", "2", "I", "3", "U", "UL"])); 147 orderedEquals(["1", "A", "B", "2", "I", "3", "U", "UL"]));
148 expect(_nodeStrings(elements), 148 expect(_nodeStrings(children),
149 orderedEquals(["A", "B", "I", "U", "UL"])); 149 orderedEquals(["A", "B", "I", "U", "UL"]));
150 }); 150 });
151 151
152 test('removes only elements, from both elements and nodes', () { 152 test('removes only children, from both children and nodes', () {
153 init(); 153 init();
154 expect(elements.removeLast().tagName, equals('U')); 154 expect(children.removeLast().tagName, equals('U'));
155 expect(_nodeStrings(fragment.nodes), 155 expect(_nodeStrings(fragment.nodes),
156 orderedEquals(["1", "A", "B", "2", "I", "3"])); 156 orderedEquals(["1", "A", "B", "2", "I", "3"]));
157 expect(_nodeStrings(elements), 157 expect(_nodeStrings(children),
158 orderedEquals(["A", "B", "I"])); 158 orderedEquals(["A", "B", "I"]));
159 159
160 expect(elements.removeLast().tagName, "I"); 160 expect(children.removeLast().tagName, "I");
161 expect(_nodeStrings(fragment.nodes), 161 expect(_nodeStrings(fragment.nodes),
162 equals(["1", "A", "B", "2", "3"])); 162 equals(["1", "A", "B", "2", "3"]));
163 expect(_nodeStrings(elements), equals(["A", "B"])); 163 expect(_nodeStrings(children), equals(["A", "B"]));
164 }); 164 });
165 165
166 test('accessors are wrapped', () { 166 test('accessors are wrapped', () {
167 init(); 167 init();
168 expect(elements[0].tagName, "A"); 168 expect(children[0].tagName, "A");
169 expect(_nodeStrings(elements.filter((e) => e.tagName == "I")), ["I"]); 169 expect(_nodeStrings(children.filter((e) => e.tagName == "I")), ["I"]);
170 expect(elements.every((e) => e is Element), isTrue); 170 expect(children.every((e) => e is Element), isTrue);
171 expect(elements.some((e) => e.tagName == "U"), isTrue); 171 expect(children.some((e) => e.tagName == "U"), isTrue);
172 expect(elements.isEmpty, isFalse); 172 expect(children.isEmpty, isFalse);
173 expect(elements.length, 4); 173 expect(children.length, 4);
174 expect(elements[2].tagName, "I"); 174 expect(children[2].tagName, "I");
175 expect(elements.last.tagName, "U"); 175 expect(children.last.tagName, "U");
176 }); 176 });
177 177
178 test('setting elements overwrites nodes as well', () { 178 test('setting children overwrites nodes as well', () {
179 init(); 179 init();
180 fragment.elements = [new Element.tag("DIV"), new Element.tag("HEAD")]; 180 fragment.children = [new Element.tag("DIV"), new Element.tag("HEAD")];
181 expect(_nodeStrings(fragment.nodes), equals(["DIV", "HEAD"])); 181 expect(_nodeStrings(fragment.nodes), equals(["DIV", "HEAD"]));
182 }); 182 });
183 }); 183 });
184 184
185 test('setting innerHTML works', () { 185 test('setting innerHTML works', () {
186 var fragment = new DocumentFragment(); 186 var fragment = new DocumentFragment();
187 fragment.nodes.add(new Text("foo")); 187 fragment.nodes.add(new Text("foo"));
188 fragment.innerHTML = "<a>bar</a>baz"; 188 fragment.innerHTML = "<a>bar</a>baz";
189 expect(_nodeStrings(fragment.nodes), equals(["A", "baz"])); 189 expect(_nodeStrings(fragment.nodes), equals(["A", "baz"]));
190 }); 190 });
(...skipping 153 matching lines...) Expand 10 before | Expand all | Expand 10 after
344 // // assertConstError(() => fragment.classes.add('foo')); 344 // // assertConstError(() => fragment.classes.add('foo'));
345 // }); 345 // });
346 346
347 test('query searches the fragment', () { 347 test('query searches the fragment', () {
348 var fragment = new DocumentFragment.html( 348 var fragment = new DocumentFragment.html(
349 "<div class='foo'><a>foo</a><b>bar</b></div>"); 349 "<div class='foo'><a>foo</a><b>bar</b></div>");
350 expect(fragment.query(".foo a").tagName, "A"); 350 expect(fragment.query(".foo a").tagName, "A");
351 expect(_nodeStrings(fragment.queryAll(".foo *")), equals(["A", "B"])); 351 expect(_nodeStrings(fragment.queryAll(".foo *")), equals(["A", "B"]));
352 }); 352 });
353 } 353 }
OLDNEW
« no previous file with comments | « tests/html/cssstyledeclaration_test.dart ('k') | tests/html/element_add_test.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698