Index: samples/third_party/dromaeo/tests/dom-modify-htmlfast.dart |
diff --git a/samples/third_party/dromaeo/tests/dom-modify-htmlfast.dart b/samples/third_party/dromaeo/tests/dom-modify-htmlfast.dart |
new file mode 100644 |
index 0000000000000000000000000000000000000000..a6a48b33313c9038773729500257aa7e5df4f76d |
--- /dev/null |
+++ b/samples/third_party/dromaeo/tests/dom-modify-htmlfast.dart |
@@ -0,0 +1,68 @@ |
+#library("dom_modify_html"); |
+#import("dart:html"); |
+#import("dart:json"); |
+#source("Common.dart"); |
+#source("RunnerSuite.dart"); |
+ |
+void main() { |
+ final int num = 400; |
+ |
+ String str = 'null'; |
+ // Very ugly way to build up the string, but let's mimic JS version as much as possible. |
+ for (int i = 0; i < 1024; i++) { |
+ str += new String.fromCharCodes([((25 * Math.random()) + 97).toInt()]); |
+ } |
+ |
+ List<Node> elems = <Node>[]; |
+ |
+ // Try to force real results. |
+ var ret; |
+ |
+ final htmlstr = document.body.innerHTML; |
+ |
+ new Suite(window, 'dom-modify') |
+ .test('createElement', () { |
+ for (int i = 0; i < num; i++) { |
+ ret = new Element.tag('div'); |
+ ret = new Element.tag('span'); |
+ ret = new Element.tag('table'); |
+ ret = new Element.tag('tr'); |
+ ret = new Element.tag('select'); |
+ } |
+ }) |
+ .test('createTextNode', () { |
+ for (int i = 0; i < num; i++) { |
+ ret = new Text(str); |
+ ret = new Text('${str}2'); |
+ ret = new Text('${str}3'); |
+ ret = new Text('${str}4'); |
+ ret = new Text('${str}5'); |
+ } |
+ }) |
+ .test('innerHTML', () { |
+ document.body.innerHTML = htmlstr; |
+ }) |
+ .prep(() { |
+ elems = new List<Node>(); |
+ final telems = document.body.nodes; |
+ for (int i = 0; i < telems.length; i++) { |
+ elems.add(telems[i]); |
+ } |
+ }) |
+ .test('cloneNode', () { |
+ for (int i = 0; i < elems.length; i++) { |
+ ret = elems[i].clone(false); |
+ ret = elems[i].clone(true); |
+ ret = elems[i].clone(true); |
+ } |
+ }) |
+ .test('appendChild', () { |
+ for (int i = 0; i < elems.length; i++) |
+ document.body.$dom_appendChild(elems[i]); |
+ }) |
+ .test('insertBefore', () { |
+ for (int i = 0; i < elems.length; i++) |
+ document.body.insertBefore(elems[i], document.body.$dom_firstChild); |
+ }) |
+ .end(); |
+} |