Add an AngularJS test to DoYouEvenBench
[WebKit-https.git] / PerformanceTests / DoYouEvenBench / benchmark.html
index 211eb42..b4e2af3 100644 (file)
@@ -1,7 +1,7 @@
 <!DOCTYPE html>
 <html>
 <head>
-<title>Not Completely Unrealistic DOM Benchmark</title>
+<title>DoYouEvenBench</title>
 <script src="benchmark.js"></script>
 <script>
 
@@ -19,21 +19,21 @@ BenchmarkRunner.suite({
     tests: [
         ['Adding' + numberOfItemsToAdd + 'Items', function (newTodo, contentWindow, contentDocument) {
             var todoController = contentWindow.todo.controller;
-    for (var i = 0; i < numberOfItemsToAdd; i++) {
-        newTodo.value = 'Something to do ' + i;
-        todoController.addItem({keyCode: todoController.ENTER_KEY, target: newTodo});
-        }
-    }],
-    ['CompletingAllItems', function (newTodo, contentWindow, contentDocument) {
-    var checkboxes = contentDocument.querySelectorAll('.toggle');
-    for (var i = 0; i < checkboxes.length; i++)
-        checkboxes[i].click();
-    }],
-        ['DeletingAllItems', function (newTodo, contentWindow, contentDocument) {
-    var deleteButtons = contentDocument.querySelectorAll('.destroy');
-    for (var i = 0; i < deleteButtons.length; i++)
-        deleteButtons[i].click();
-    }],
+        for (var i = 0; i < numberOfItemsToAdd; i++) {
+            newTodo.value = 'Something to do ' + i;
+            todoController.addItem({keyCode: todoController.ENTER_KEY, target: newTodo});
+            }
+        }],
+        ['CompletingAllItems', function (newTodo, contentWindow, contentDocument) {
+        var checkboxes = contentDocument.querySelectorAll('.toggle');
+        for (var i = 0; i < checkboxes.length; i++)
+            checkboxes[i].click();
+        }],
+            ['DeletingAllItems', function (newTodo, contentWindow, contentDocument) {
+        var deleteButtons = contentDocument.querySelectorAll('.destroy');
+        for (var i = 0; i < deleteButtons.length; i++)
+            deleteButtons[i].click();
+        }],
     ]
 });
 
@@ -56,24 +56,24 @@ BenchmarkRunner.suite({
         });
     },
     tests: [
-    ['Adding' + numberOfItemsToAdd + 'Items', function (params) {
-    for (var i = 0; i < numberOfItemsToAdd; i++) {
-    params.emberRun(function () { params.views["new-todo"].set('value', 'Something to do' + i); });
-    params.emberRun(function () { params.views["new-todo"].insertNewline(document.createEvent('Event')); });
-    }
-    }],
-    ['CompletingAllItems', function (params, contentWindow, contentDocument) {
-    var checkboxes = contentDocument.querySelectorAll('.ember-checkbox');
-    for (var i = 0; i < checkboxes.length; i++) {
-    var view = params.views[checkboxes[i].id];
-    params.emberRun(function () { view.set('checked', true); });
-    }
-    }],
-    ['DeletingItems', function (params, contentWindow, contentDocument) {
-    var deleteButtons = contentDocument.querySelectorAll('.destroy');
-    for (var i = 0; i < deleteButtons.length; i++)
-    params.emberRun(function () { deleteButtons[i].click(); });
-    }],
+        ['Adding' + numberOfItemsToAdd + 'Items', function (params) {
+        for (var i = 0; i < numberOfItemsToAdd; i++) {
+        params.emberRun(function () { params.views["new-todo"].set('value', 'Something to do' + i); });
+        params.emberRun(function () { params.views["new-todo"].insertNewline(document.createEvent('Event')); });
+        }
+        }],
+        ['CompletingAllItems', function (params, contentWindow, contentDocument) {
+        var checkboxes = contentDocument.querySelectorAll('.ember-checkbox');
+        for (var i = 0; i < checkboxes.length; i++) {
+        var view = params.views[checkboxes[i].id];
+        params.emberRun(function () { view.set('checked', true); });
+        }
+        }],
+        ['DeletingItems', function (params, contentWindow, contentDocument) {
+        var deleteButtons = contentDocument.querySelectorAll('.destroy');
+        for (var i = 0; i < deleteButtons.length; i++)
+        params.emberRun(function () { deleteButtons[i].click(); });
+        }],
     ]
 });
 
@@ -89,23 +89,23 @@ BenchmarkRunner.suite({
     },
     tests: [
         ['Adding' + numberOfItemsToAdd + 'Items', function (newTodo, contentWindow, contentDocument) {
-    var appView = contentWindow.appView;
-    var fakeEvent = {which: contentWindow.ENTER_KEY};
-    for (var i = 0; i < numberOfItemsToAdd; i++) {
-        newTodo.value = 'Something to do ' + i;
-    appView.createOnEnter(fakeEvent);
-        }
-    }],
-    ['CompletingAllItems', function (newTodo, contentWindow, contentDocument) {
-    var checkboxes = contentDocument.querySelectorAll('.toggle');
-    for (var i = 0; i < checkboxes.length; i++)
-        checkboxes[i].click();
-    }],
-        ['DeletingAllItems', function (newTodo, contentWindow, contentDocument) {
-    var deleteButtons = contentDocument.querySelectorAll('.destroy');
-    for (var i = 0; i < deleteButtons.length; i++)
-        deleteButtons[i].click();
-    }],
+        var appView = contentWindow.appView;
+        var fakeEvent = {which: contentWindow.ENTER_KEY};
+        for (var i = 0; i < numberOfItemsToAdd; i++) {
+            newTodo.value = 'Something to do ' + i;
+        appView.createOnEnter(fakeEvent);
+            }
+        }],
+        ['CompletingAllItems', function (newTodo, contentWindow, contentDocument) {
+        var checkboxes = contentDocument.querySelectorAll('.toggle');
+        for (var i = 0; i < checkboxes.length; i++)
+            checkboxes[i].click();
+        }],
+            ['DeletingAllItems', function (newTodo, contentWindow, contentDocument) {
+        var deleteButtons = contentDocument.querySelectorAll('.destroy');
+        for (var i = 0; i < deleteButtons.length; i++)
+            deleteButtons[i].click();
+        }],
     ]
 });
 
@@ -121,25 +121,61 @@ BenchmarkRunner.suite({
     },
     tests: [
         ['Adding' + numberOfItemsToAdd + 'Items', function (newTodo, contentWindow, contentDocument) {
-    var app = contentWindow.app;
-    var fakeEvent = {which: app.ENTER_KEY};
-    for (var i = 0; i < numberOfItemsToAdd; i++) {
-        newTodo.value = 'Something to do ' + i;
-    app.create.call(newTodo, fakeEvent);
-        }
-    }],
-    ['CompletingAllItems', function (newTodo, contentWindow, contentDocument) {
-    var app = contentWindow.app;
-    var checkboxes = contentDocument.querySelectorAll('.toggle');
-    for (var i = 0; i < checkboxes.length; i++)
-    app.toggle.call(checkboxes[i]);
-    }],
-        ['DeletingAllItems', function (newTodo, contentWindow, contentDocument) {
-    var app = contentWindow.app;
-    var deleteButtons = contentDocument.querySelectorAll('.destroy');
-    for (var i = 0; i < deleteButtons.length; i++)
-    app.destroy.call(deleteButtons[i]);
-    }],
+        var app = contentWindow.app;
+        var fakeEvent = {which: app.ENTER_KEY};
+        for (var i = 0; i < numberOfItemsToAdd; i++) {
+            newTodo.value = 'Something to do ' + i;
+        app.create.call(newTodo, fakeEvent);
+            }
+        }],
+        ['CompletingAllItems', function (newTodo, contentWindow, contentDocument) {
+        var app = contentWindow.app;
+        var checkboxes = contentDocument.querySelectorAll('.toggle');
+        for (var i = 0; i < checkboxes.length; i++)
+        app.toggle.call(checkboxes[i]);
+        }],
+            ['DeletingAllItems', function (newTodo, contentWindow, contentDocument) {
+        var app = contentWindow.app;
+        var deleteButtons = contentDocument.querySelectorAll('.destroy');
+        for (var i = 0; i < deleteButtons.length; i++)
+        app.destroy.call(deleteButtons[i]);
+        }],
+    ]
+});
+
+BenchmarkRunner.suite({
+    name: 'AngularJS/TodoMVC',
+    url: 'todomvc/architecture-examples/angularjs/index.html',
+    prepare: function (contentWindow, contentDocument) {
+    var storage = [];
+        return BenchmarkRunner.waitForElement('#new-todo').then(function (element) {
+            element.focus();
+            return element;
+        });
+    },
+    tests: [
+        ['Adding' + numberOfItemsToAdd + 'Items', function (newTodo, contentWindow, contentDocument) {
+        var todomvc = contentWindow.todomvc;
+        var submitEvent = document.createEvent('Event');
+        submitEvent.initEvent('submit', true, true);
+        var inputEvent = document.createEvent('Event');
+        inputEvent.initEvent('input', true, true);
+        for (var i = 0; i < numberOfItemsToAdd; i++) {
+            newTodo.value = 'Something to do ' + i;
+            newTodo.dispatchEvent(inputEvent);
+            newTodo.form.dispatchEvent(submitEvent);
+            }
+        }],
+        ['CompletingAllItems', function (newTodo, contentWindow, contentDocument) {
+        var checkboxes = contentDocument.querySelectorAll('.toggle');
+        for (var i = 0; i < checkboxes.length; i++)
+            checkboxes[i].click();
+        }],
+            ['DeletingAllItems', function (newTodo, contentWindow, contentDocument) {
+        var deleteButtons = contentDocument.querySelectorAll('.destroy');
+        for (var i = 0; i < deleteButtons.length; i++)
+            deleteButtons[i].click();
+        }],
     ]
 });