51 lines
1.5 KiB
JavaScript
51 lines
1.5 KiB
JavaScript
(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)
|