OO-ize DOM builder, improve performance (part 1), add benchmarking suite
This commit is contained in:
parent
c202c04631
commit
a7b2294c11
22 changed files with 1953 additions and 813 deletions
51
bench/resources/tests.js
Normal file
51
bench/resources/tests.js
Normal file
|
|
@ -0,0 +1,51 @@
|
|||
(function (global) {
|
||||
"use strict"
|
||||
|
||||
var BenchmarkTestStep = global.BenchmarkTestStep
|
||||
var Suites = global.Suites = []
|
||||
|
||||
Suites.push(function (numberOfItemsToAdd) {
|
||||
return {
|
||||
name: "Mithril (TodoMVC 1.3)",
|
||||
url: "app/index.html",
|
||||
version: "next (dev version)",
|
||||
prepare: function (runner) {
|
||||
return runner.waitForElement("#new-todo")
|
||||
.then(function (element) {
|
||||
element.focus()
|
||||
return element
|
||||
})
|
||||
},
|
||||
tests: [
|
||||
new BenchmarkTestStep("Adding" + numberOfItemsToAdd + "Items",
|
||||
function (newTodo) {
|
||||
for (var i = 0; i < numberOfItemsToAdd; i++) {
|
||||
var inputEvent = document.createEvent("Event")
|
||||
inputEvent.initEvent("input", true, true)
|
||||
newTodo.value = "Mithril ------- Something to do " + i
|
||||
newTodo.dispatchEvent(inputEvent)
|
||||
|
||||
var keydownEvent = document.createEvent("Event")
|
||||
keydownEvent.initEvent("keyup", true, true)
|
||||
keydownEvent.keyCode = 13 // VK_ENTER
|
||||
newTodo.dispatchEvent(keydownEvent)
|
||||
}
|
||||
}),
|
||||
new BenchmarkTestStep("CompletingAllItems",
|
||||
function (newTodo, contentWindow, document) {
|
||||
var checkboxes = document.getElementsByClassName("toggle")
|
||||
for (var i = 0; i < checkboxes.length; i++) {
|
||||
checkboxes[i].click()
|
||||
}
|
||||
}),
|
||||
new BenchmarkTestStep("DeletingAllItems",
|
||||
function (newTodo, contentWindow, document) {
|
||||
var buttons = document.getElementsByClassName("destroy")
|
||||
for (var i = buttons.length - 1; i > -1; i--) {
|
||||
buttons[i].click()
|
||||
}
|
||||
})
|
||||
]
|
||||
}
|
||||
})
|
||||
})(this)
|
||||
Loading…
Add table
Add a link
Reference in a new issue