blob: cd5878203065567d6e2ff75e25da4ab2be3c5704 [file] [log] [blame]
library dromaeo;
import 'dart:async';
import 'dart:html';
import '../common/common.dart';
import "dart:convert";
import 'dart:math' as Math;
part 'Common.dart';
part 'RunnerSuite.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.append(div);
})
.test('getElementById', () {
for (int i = 0; i < num * 30; i++) {
ret = document.getElementById('testA$num').nodeType;
ret = document.getElementById('testB$num').nodeType;
ret = document.getElementById('testC$num').nodeType;
ret = document.getElementById('testD$num').nodeType;
ret = document.getElementById('testE$num').nodeType;
ret = document.getElementById('testF$num').nodeType;
}
})
.test('getElementById (not in document)', () {
for (int i = 0; i < num * 30; i++) {
ret = document.getElementById('testA');
ret = document.getElementById('testB');
ret = document.getElementById('testC');
ret = document.getElementById('testD');
ret = document.getElementById('testE');
ret = document.getElementById('testF');
}
})
.test('getElementsByTagName(div)', () {
for (int i = 0; i < num; i++) {
List<Element> elems = document.getElementsByTagName('div');
ret = elems.last.nodeType;
}
})
.test('getElementsByTagName(p)', () {
for (int i = 0; i < num; i++) {
List<Element> elems = document.getElementsByTagName('p');
ret = elems.last.nodeType;
}
})
.test('getElementsByTagName(a)', () {
for (int i = 0; i < num; i++) {
List<Element> elems = document.getElementsByTagName('a');
ret = elems.last.nodeType;
}
})
.test('getElementsByTagName(*)', () {
for (int i = 0; i < num; i++) {
List<Element> elems = document.getElementsByTagName('*');
ret = elems.last.nodeType;
}
})
.test('getElementsByTagName (not in document)', () {
for (int i = 0; i < num; i++) {
List<Element> elems = document.getElementsByTagName('strong');
ret = elems.length == 0;
}
})
.test('getElementsByName', () {
for (int i = 0; i < num * 20; i++) {
List<Element> elems = document.getElementsByName('test$num');
ret = elems[elems.length-1].nodeType;
elems = document.getElementsByName('test$num');
ret = elems[elems.length-1].nodeType;
elems = document.getElementsByName('test$num');
ret = elems[elems.length-1].nodeType;
elems = document.getElementsByName('test$num');
ret = elems[elems.length-1].nodeType;
}
})
.test('getElementsByName (not in document)', () {
for (int i = 0; i < num * 20; i++) {
ret = document.getElementsByName('test').length == 0;
ret = document.getElementsByName('test').length == 0;
ret = document.getElementsByName('test').length == 0;
ret = document.getElementsByName('test').length == 0;
ret = document.getElementsByName('test').length == 0;
}
})
.end();
}