OLD | NEW |
1 #library("dom_query_html"); | 1 #library("dom_query"); |
2 #import("dart:html"); | 2 #import("dart:html"); |
3 #import('../common/common.dart'); | 3 #import('../common/common.dart'); |
4 #source("Common.dart"); | 4 #import('runner.dart'); |
5 #source("RunnerSuite.dart"); | |
6 | 5 |
7 void main() { | 6 void main() { |
8 final int num = 40; | 7 final int num = 40; |
9 | 8 |
10 // Try to force real results. | 9 // Try to force real results. |
11 var ret; | 10 var ret; |
12 | 11 |
13 String html = document.body.innerHTML; | 12 String html = document.body.innerHTML; |
14 | 13 |
15 new Suite(window, 'dom-query') | 14 new Suite(window, 'dom-query') |
16 .prep(() { | 15 .prep(() { |
17 html = BenchUtil.replaceAll(html, 'id="test(\\w).*?"', (Match match) { | 16 html = BenchUtil.replaceAll(html, 'id="test(\\w).*?"', (Match match) { |
18 final group = match.group(1); | 17 final group = match.group(1); |
19 return 'id="test${group}${num}"'; | 18 return 'id="test${group}${num}"'; |
20 }); | 19 }); |
21 html = BenchUtil.replaceAll(html, 'name="test.*?"', (Match match) { | 20 html = BenchUtil.replaceAll(html, 'name="test.*?"', (Match match) { |
22 return 'name="test${num}"'; | 21 return 'name="test${num}"'; |
23 }); | 22 }); |
24 html = BenchUtil.replaceAll(html, 'class="foo.*?"', (Match match) { | 23 html = BenchUtil.replaceAll(html, 'class="foo.*?"', (Match match) { |
25 return 'class="foo test${num} bar"'; | 24 return 'class="foo test${num} bar"'; |
26 }); | 25 }); |
27 final div = new Element.tag('div'); | 26 final div = new Element.tag('div'); |
28 div.innerHTML = html; | 27 div.innerHTML = html; |
29 document.body.nodes.add(div); | 28 document.body.$dom_appendChild(div); |
30 }) | 29 }) |
31 .test('getElementById', () { | 30 .test('getElementById', () { |
32 for (int i = 0; i < num * 30; i++) { | 31 for (int i = 0; i < num * 30; i++) { |
33 ret = document.query('#testA$num').hidden; | 32 ret = document.$dom_getElementById('testA$num').$dom_nodeType; |
34 ret = document.query('#testB$num').hidden; | 33 ret = document.$dom_getElementById('testB$num').$dom_nodeType; |
35 ret = document.query('#testC$num').hidden; | 34 ret = document.$dom_getElementById('testC$num').$dom_nodeType; |
36 ret = document.query('#testD$num').hidden; | 35 ret = document.$dom_getElementById('testD$num').$dom_nodeType; |
37 ret = document.query('#testE$num').hidden; | 36 ret = document.$dom_getElementById('testE$num').$dom_nodeType; |
38 ret = document.query('#testF$num').hidden; | 37 ret = document.$dom_getElementById('testF$num').$dom_nodeType; |
39 } | 38 } |
40 }) | 39 }) |
41 .test('getElementById (not in document)', () { | 40 .test('getElementById (not in document)', () { |
42 for (int i = 0; i < num * 30; i++) { | 41 for (int i = 0; i < num * 30; i++) { |
43 ret = document.query('#testA'); | 42 ret = document.$dom_getElementById('testA'); |
44 ret = document.query('#testB'); | 43 ret = document.$dom_getElementById('testB'); |
45 ret = document.query('#testC'); | 44 ret = document.$dom_getElementById('testC'); |
46 ret = document.query('#testD'); | 45 ret = document.$dom_getElementById('testD'); |
47 ret = document.query('#testE'); | 46 ret = document.$dom_getElementById('testE'); |
48 ret = document.query('#testF'); | 47 ret = document.$dom_getElementById('testF'); |
49 } | 48 } |
50 }) | 49 }) |
51 .test('getElementsByTagName(div)', () { | 50 .test('getElementsByTagName(div)', () { |
52 for (int i = 0; i < num; i++) { | 51 for (int i = 0; i < num; i++) { |
53 var elems = document.queryAll('div'); | 52 final elems = document.$dom_getElementsByTagName('div'); |
54 ret = elems.last().hidden; | 53 ret = elems.last().$dom_nodeType; |
55 } | 54 } |
56 }) | 55 }) |
57 .test('getElementsByTagName(p)', () { | 56 .test('getElementsByTagName(p)', () { |
58 for (int i = 0; i < num; i++) { | 57 for (int i = 0; i < num; i++) { |
59 final elems = document.queryAll('p'); | 58 final elems = document.$dom_getElementsByTagName('p'); |
60 ret = elems.last().hidden; | 59 ret = elems.last().$dom_nodeType; |
61 } | 60 } |
62 }) | 61 }) |
63 .test('getElementsByTagName(a)', () { | 62 .test('getElementsByTagName(a)', () { |
64 for (int i = 0; i < num; i++) { | 63 for (int i = 0; i < num; i++) { |
65 var elems = document.queryAll('a'); | 64 final elems = document.$dom_getElementsByTagName('a'); |
66 ret = elems.last().hidden; | 65 ret = elems.last().$dom_nodeType; |
67 } | 66 } |
68 }) | 67 }) |
69 .test('getElementsByTagName(*)', () { | 68 .test('getElementsByTagName(*)', () { |
70 for (int i = 0; i < num; i++) { | 69 for (int i = 0; i < num; i++) { |
71 var elems = document.queryAll('*'); | 70 var elems = document.$dom_getElementsByTagName('*'); |
72 ret = elems.last().hidden; | 71 ret = elems.last().$dom_nodeType; |
73 } | 72 } |
74 }) | 73 }) |
75 .test('getElementsByTagName (not in document)', () { | 74 .test('getElementsByTagName (not in document)', () { |
76 for (int i = 0; i < num; i++) { | 75 for (int i = 0; i < num; i++) { |
77 var elems = document.queryAll('strong'); | 76 final elems = document.$dom_getElementsByTagName('strong'); |
78 ret = elems.length == 0; | 77 ret = elems.last().$dom_nodeType; |
79 } | 78 } |
80 }) | 79 }) |
81 .test('getElementsByName', () { | 80 .test('getElementsByName', () { |
82 for (int i = 0; i < num * 20; i++) { | 81 for (int i = 0; i < num * 20; i++) { |
83 var elems = document.queryAll('[name="test$num"]'); | 82 ElementList elems = document.$dom_getElementsByName('test$num'); |
84 ret = elems.last().hidden; | 83 ret = elems[elems.length-1].$dom_nodeType; |
85 elems = document.queryAll('[name="test$num"]'); | 84 elems = document.$dom_getElementsByName('test$num'); |
86 ret = elems.last().hidden; | 85 ret = elems[elems.length-1].$dom_nodeType; |
87 elems = document.queryAll('[name="test$num"]'); | 86 elems = document.$dom_getElementsByName('test$num'); |
88 ret = elems.last().hidden; | 87 ret = elems[elems.length-1].$dom_nodeType; |
89 elems = document.queryAll('[name="test$num"]'); | 88 elems = document.$dom_getElementsByName('test$num'); |
90 ret = elems.last().hidden; | 89 ret = elems[elems.length-1].$dom_nodeType; |
91 } | 90 } |
92 }) | 91 }) |
93 .test('getElementsByName (not in document)', () { | 92 .test('getElementsByName (not in document)', () { |
94 for (int i = 0; i < num * 20; i++) { | 93 for (int i = 0; i < num * 20; i++) { |
95 ret = document.queryAll('[name="test"]').length == 0; | 94 ret = document.$dom_getElementsByName('test').length == 0; |
96 ret = document.queryAll('[name="test"]').length == 0; | 95 ret = document.$dom_getElementsByName('test').length == 0; |
97 ret = document.queryAll('[name="test"]').length == 0; | 96 ret = document.$dom_getElementsByName('test').length == 0; |
98 ret = document.queryAll('[name="test"]').length == 0; | 97 ret = document.$dom_getElementsByName('test').length == 0; |
99 ret = document.queryAll('[name="test"]').length == 0; | 98 ret = document.$dom_getElementsByName('test').length == 0; |
100 } | 99 } |
101 }) | 100 }) |
102 .end(); | 101 .end(); |
103 } | 102 } |
OLD | NEW |