Index: samples/third_party/dromaeo/tests/dom-query-htmlfast.dart |
diff --git a/samples/third_party/dromaeo/tests/dom-query-htmlfast.dart b/samples/third_party/dromaeo/tests/dom-query-htmlfast.dart |
new file mode 100644 |
index 0000000000000000000000000000000000000000..d6017b74b0cb524eefff7d7dc71f91e69e4944b3 |
--- /dev/null |
+++ b/samples/third_party/dromaeo/tests/dom-query-htmlfast.dart |
@@ -0,0 +1,112 @@ |
+#library("dom_query"); |
+#import("dart:html"); |
+#import('../common/common.dart'); |
+#import('runner.dart'); |
+ |
+void main() { |
+ final int num = 40; |
+ |
+ // Try to force real results. |
+ var ret; |
+ |
+ String html = document.body.innerHTML; |
+ |
+ new Suite(window, 'dom-query') |
+ .prep(() { |
+ html = BenchUtil.replaceAll(html, 'id="test(\\w).*?"', (Match match) { |
+ final group = match.group(1); |
+ return 'id="test${group}${num}"'; |
+ }); |
+ html = BenchUtil.replaceAll(html, 'name="test.*?"', (Match match) { |
+ return 'name="test${num}"'; |
+ }); |
+ html = BenchUtil.replaceAll(html, 'class="foo.*?"', (Match match) { |
+ return 'class="foo test${num} bar"'; |
+ }); |
+ final div = new Element.tag('div'); |
+ div.innerHTML = html; |
+ document.body.$dom_appendChild(div); |
+ }) |
+ .test('getElementById', () { |
+ for (int i = 0; i < num * 30; i++) { |
+ ret = document.$dom_getElementById('testA$num').hidden; |
+ ret = document.$dom_getElementById('testB$num').hidden; |
+ ret = document.$dom_getElementById('testC$num').hidden; |
+ ret = document.$dom_getElementById('testD$num').hidden; |
+ ret = document.$dom_getElementById('testE$num').hidden; |
+ ret = document.$dom_getElementById('testF$num').hidden; |
+ } |
+ }) |
+ .test('getElementById (not in document)', () { |
+ for (int i = 0; i < num * 30; i++) { |
+ ret = document.$dom_getElementById('testA'); |
+ ret = document.$dom_getElementById('testB'); |
+ ret = document.$dom_getElementById('testC'); |
+ ret = document.$dom_getElementById('testD'); |
+ ret = document.$dom_getElementById('testE'); |
+ ret = document.$dom_getElementById('testF'); |
+ } |
+ }) |
+ .test('getElementsByTagName(div)', () { |
+ for (int i = 0; i < num; i++) { |
+ final elems = document.$dom_getElementsByTagName('div'); |
+ for (int j = 0, len = elems.length; j < len; j++) { |
+ ret = elems[j].hidden; |
+ } |
+ } |
+ }) |
+ .test('getElementsByTagName(p)', () { |
+ for (int i = 0; i < num; i++) { |
+ final elems = document.$dom_getElementsByTagName('p'); |
+ for (int j = 0, len = elems.length; j < len; j++) { |
+ ret = elems[j].hidden; |
+ } |
+ } |
+ }) |
+ .test('getElementsByTagName(a)', () { |
+ for (int i = 0; i < num; i++) { |
+ final elems = document.$dom_getElementsByTagName('a'); |
+ for (int j = 0, len = elems.length; j < len; j++) { |
+ ret = elems[j].hidden; |
+ } |
+ } |
+ }) |
+ .test('getElementsByTagName(*)', () { |
+ for (int i = 0; i < num; i++) { |
+ var elems = document.$dom_getElementsByTagName('*'); |
+ for (int j = 0, len = elems.length; j < len; j++) { |
+ ret = elems[j].hidden; |
+ } |
+ } |
+ }) |
+ .test('getElementsByTagName (not in document)', () { |
+ for (int i = 0; i < num; i++) { |
+ final elems = document.$dom_getElementsByTagName('strong'); |
+ for (int j = 0, len = elems.length; j < len; j++) { |
+ ret = elems[j].hidden; |
+ } |
+ } |
+ }) |
+ .test('getElementsByName', () { |
+ for (int i = 0; i < num * 20; i++) { |
+ var elems = document.$dom_getElementsByName('test$num'); |
+ ret = elems[elems.length-1].nodeType; |
+ elems = document.$dom_getElementsByName('test$num'); |
+ ret = elems[elems.length-1].nodeType; |
+ elems = document.$dom_getElementsByName('test$num'); |
+ ret = elems[elems.length-1].nodeType; |
+ elems = document.$dom_getElementsByName('test$num'); |
+ ret = elems[elems.length-1].nodeType; |
+ } |
+ }) |
+ .test('getElementsByName (not in document)', () { |
+ for (int i = 0; i < num * 20; i++) { |
+ ret = document.$dom_getElementsByName('test').length == 0; |
+ ret = document.$dom_getElementsByName('test').length == 0; |
+ ret = document.$dom_getElementsByName('test').length == 0; |
+ ret = document.$dom_getElementsByName('test').length == 0; |
+ ret = document.$dom_getElementsByName('test').length == 0; |
+ } |
+ }) |
+ .end(); |
+} |