Changeset 156088 in webkit


Ignore:
Timestamp:
Sep 19, 2013 1:07:48 AM (11 years ago)
Author:
rniwa@webkit.org
Message:

Add an AngularJS test to DoYouEvenBench
https://bugs.webkit.org/show_bug.cgi?id=121595

Reviewed by Antti Koivisto.

  • DoYouEvenBench/benchmark.html:
  • DoYouEvenBench/todomvc/architecture-examples/angularjs: Added.
  • DoYouEvenBench/todomvc/architecture-examples/angularjs/bower.json: Added.
  • DoYouEvenBench/todomvc/architecture-examples/angularjs/bower_components: Added.
  • DoYouEvenBench/todomvc/architecture-examples/angularjs/bower_components/angular: Added.
  • DoYouEvenBench/todomvc/architecture-examples/angularjs/bower_components/angular-mocks: Added.
  • DoYouEvenBench/todomvc/architecture-examples/angularjs/bower_components/angular-mocks/angular-mocks.js: Added.
  • DoYouEvenBench/todomvc/architecture-examples/angularjs/bower_components/angular/angular.js: Added.
  • DoYouEvenBench/todomvc/architecture-examples/angularjs/bower_components/todomvc-common: Added.
  • DoYouEvenBench/todomvc/architecture-examples/angularjs/bower_components/todomvc-common/base.css: Added.
  • DoYouEvenBench/todomvc/architecture-examples/angularjs/bower_components/todomvc-common/base.js: Added.
  • DoYouEvenBench/todomvc/architecture-examples/angularjs/bower_components/todomvc-common/bg.png: Added.
  • DoYouEvenBench/todomvc/architecture-examples/angularjs/index.html: Added.
  • DoYouEvenBench/todomvc/architecture-examples/angularjs/js: Added.
  • DoYouEvenBench/todomvc/architecture-examples/angularjs/js/app.js: Added.
  • DoYouEvenBench/todomvc/architecture-examples/angularjs/js/controllers: Added.
  • DoYouEvenBench/todomvc/architecture-examples/angularjs/js/controllers/todoCtrl.js: Added.
  • DoYouEvenBench/todomvc/architecture-examples/angularjs/js/directives: Added.
  • DoYouEvenBench/todomvc/architecture-examples/angularjs/js/directives/todoBlur.js: Added.
  • DoYouEvenBench/todomvc/architecture-examples/angularjs/js/directives/todoEscape.js: Added.
  • DoYouEvenBench/todomvc/architecture-examples/angularjs/js/directives/todoFocus.js: Added.
  • DoYouEvenBench/todomvc/architecture-examples/angularjs/js/services: Added.
  • DoYouEvenBench/todomvc/architecture-examples/angularjs/js/services/todoStorage.js: Added.
  • DoYouEvenBench/todomvc/architecture-examples/angularjs/readme.md: Added.
  • DoYouEvenBench/todomvc/architecture-examples/angularjs/test: Added.
  • DoYouEvenBench/todomvc/architecture-examples/angularjs/test/config: Added.
  • DoYouEvenBench/todomvc/architecture-examples/angularjs/test/config/testacular.conf.js: Added.
  • DoYouEvenBench/todomvc/architecture-examples/angularjs/test/package.json: Added.
  • DoYouEvenBench/todomvc/architecture-examples/angularjs/test/readme.md: Added.
  • DoYouEvenBench/todomvc/architecture-examples/angularjs/test/unit: Added.
  • DoYouEvenBench/todomvc/architecture-examples/angularjs/test/unit/directivesSpec.js: Added.
  • DoYouEvenBench/todomvc/architecture-examples/angularjs/test/unit/todoCtrlSpec.js: Added.
Location:
trunk/PerformanceTests
Files:
31 added
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/PerformanceTests/ChangeLog

    r156073 r156088  
     12013-09-19  Ryosuke Niwa  <rniwa@webkit.org>
     2
     3        Add an AngularJS test to DoYouEvenBench
     4        https://bugs.webkit.org/show_bug.cgi?id=121595
     5
     6        Reviewed by Antti Koivisto.
     7
     8        * DoYouEvenBench/benchmark.html:
     9        * DoYouEvenBench/todomvc/architecture-examples/angularjs: Added.
     10        * DoYouEvenBench/todomvc/architecture-examples/angularjs/bower.json: Added.
     11        * DoYouEvenBench/todomvc/architecture-examples/angularjs/bower_components: Added.
     12        * DoYouEvenBench/todomvc/architecture-examples/angularjs/bower_components/angular: Added.
     13        * DoYouEvenBench/todomvc/architecture-examples/angularjs/bower_components/angular-mocks: Added.
     14        * DoYouEvenBench/todomvc/architecture-examples/angularjs/bower_components/angular-mocks/angular-mocks.js: Added.
     15        * DoYouEvenBench/todomvc/architecture-examples/angularjs/bower_components/angular/angular.js: Added.
     16        * DoYouEvenBench/todomvc/architecture-examples/angularjs/bower_components/todomvc-common: Added.
     17        * DoYouEvenBench/todomvc/architecture-examples/angularjs/bower_components/todomvc-common/base.css: Added.
     18        * DoYouEvenBench/todomvc/architecture-examples/angularjs/bower_components/todomvc-common/base.js: Added.
     19        * DoYouEvenBench/todomvc/architecture-examples/angularjs/bower_components/todomvc-common/bg.png: Added.
     20        * DoYouEvenBench/todomvc/architecture-examples/angularjs/index.html: Added.
     21        * DoYouEvenBench/todomvc/architecture-examples/angularjs/js: Added.
     22        * DoYouEvenBench/todomvc/architecture-examples/angularjs/js/app.js: Added.
     23        * DoYouEvenBench/todomvc/architecture-examples/angularjs/js/controllers: Added.
     24        * DoYouEvenBench/todomvc/architecture-examples/angularjs/js/controllers/todoCtrl.js: Added.
     25        * DoYouEvenBench/todomvc/architecture-examples/angularjs/js/directives: Added.
     26        * DoYouEvenBench/todomvc/architecture-examples/angularjs/js/directives/todoBlur.js: Added.
     27        * DoYouEvenBench/todomvc/architecture-examples/angularjs/js/directives/todoEscape.js: Added.
     28        * DoYouEvenBench/todomvc/architecture-examples/angularjs/js/directives/todoFocus.js: Added.
     29        * DoYouEvenBench/todomvc/architecture-examples/angularjs/js/services: Added.
     30        * DoYouEvenBench/todomvc/architecture-examples/angularjs/js/services/todoStorage.js: Added.
     31        * DoYouEvenBench/todomvc/architecture-examples/angularjs/readme.md: Added.
     32        * DoYouEvenBench/todomvc/architecture-examples/angularjs/test: Added.
     33        * DoYouEvenBench/todomvc/architecture-examples/angularjs/test/config: Added.
     34        * DoYouEvenBench/todomvc/architecture-examples/angularjs/test/config/testacular.conf.js: Added.
     35        * DoYouEvenBench/todomvc/architecture-examples/angularjs/test/package.json: Added.
     36        * DoYouEvenBench/todomvc/architecture-examples/angularjs/test/readme.md: Added.
     37        * DoYouEvenBench/todomvc/architecture-examples/angularjs/test/unit: Added.
     38        * DoYouEvenBench/todomvc/architecture-examples/angularjs/test/unit/directivesSpec.js: Added.
     39        * DoYouEvenBench/todomvc/architecture-examples/angularjs/test/unit/todoCtrlSpec.js: Added.
     40
    1412013-09-17  Ryosuke Niwa  <rniwa@webkit.org>
    242
  • trunk/PerformanceTests/DoYouEvenBench/benchmark.html

    r156073 r156088  
    22<html>
    33<head>
    4 <title>Not Completely Unrealistic DOM Benchmark</title>
     4<title>DoYouEvenBench</title>
    55<script src="benchmark.js"></script>
    66<script>
     
    2020        ['Adding' + numberOfItemsToAdd + 'Items', function (newTodo, contentWindow, contentDocument) {
    2121            var todoController = contentWindow.todo.controller;
    22     for (var i = 0; i < numberOfItemsToAdd; i++) {
    23         newTodo.value = 'Something to do ' + i;
    24         todoController.addItem({keyCode: todoController.ENTER_KEY, target: newTodo});
    25         }
    26     }],
    27     ['CompletingAllItems', function (newTodo, contentWindow, contentDocument) {
    28     var checkboxes = contentDocument.querySelectorAll('.toggle');
    29     for (var i = 0; i < checkboxes.length; i++)
    30         checkboxes[i].click();
    31     }],
    32         ['DeletingAllItems', function (newTodo, contentWindow, contentDocument) {
    33     var deleteButtons = contentDocument.querySelectorAll('.destroy');
    34     for (var i = 0; i < deleteButtons.length; i++)
    35         deleteButtons[i].click();
    36     }],
     22        for (var i = 0; i < numberOfItemsToAdd; i++) {
     23            newTodo.value = 'Something to do ' + i;
     24            todoController.addItem({keyCode: todoController.ENTER_KEY, target: newTodo});
     25            }
     26        }],
     27        ['CompletingAllItems', function (newTodo, contentWindow, contentDocument) {
     28        var checkboxes = contentDocument.querySelectorAll('.toggle');
     29        for (var i = 0; i < checkboxes.length; i++)
     30            checkboxes[i].click();
     31        }],
     32            ['DeletingAllItems', function (newTodo, contentWindow, contentDocument) {
     33        var deleteButtons = contentDocument.querySelectorAll('.destroy');
     34        for (var i = 0; i < deleteButtons.length; i++)
     35            deleteButtons[i].click();
     36        }],
    3737    ]
    3838});
     
    5757    },
    5858    tests: [
    59     ['Adding' + numberOfItemsToAdd + 'Items', function (params) {
    60     for (var i = 0; i < numberOfItemsToAdd; i++) {
    61     params.emberRun(function () { params.views["new-todo"].set('value', 'Something to do' + i); });
    62     params.emberRun(function () { params.views["new-todo"].insertNewline(document.createEvent('Event')); });
    63     }
    64     }],
    65     ['CompletingAllItems', function (params, contentWindow, contentDocument) {
    66     var checkboxes = contentDocument.querySelectorAll('.ember-checkbox');
    67     for (var i = 0; i < checkboxes.length; i++) {
    68     var view = params.views[checkboxes[i].id];
    69     params.emberRun(function () { view.set('checked', true); });
    70     }
    71     }],
    72     ['DeletingItems', function (params, contentWindow, contentDocument) {
    73     var deleteButtons = contentDocument.querySelectorAll('.destroy');
    74     for (var i = 0; i < deleteButtons.length; i++)
    75     params.emberRun(function () { deleteButtons[i].click(); });
    76     }],
     59        ['Adding' + numberOfItemsToAdd + 'Items', function (params) {
     60        for (var i = 0; i < numberOfItemsToAdd; i++) {
     61        params.emberRun(function () { params.views["new-todo"].set('value', 'Something to do' + i); });
     62        params.emberRun(function () { params.views["new-todo"].insertNewline(document.createEvent('Event')); });
     63        }
     64        }],
     65        ['CompletingAllItems', function (params, contentWindow, contentDocument) {
     66        var checkboxes = contentDocument.querySelectorAll('.ember-checkbox');
     67        for (var i = 0; i < checkboxes.length; i++) {
     68        var view = params.views[checkboxes[i].id];
     69        params.emberRun(function () { view.set('checked', true); });
     70        }
     71        }],
     72        ['DeletingItems', function (params, contentWindow, contentDocument) {
     73        var deleteButtons = contentDocument.querySelectorAll('.destroy');
     74        for (var i = 0; i < deleteButtons.length; i++)
     75        params.emberRun(function () { deleteButtons[i].click(); });
     76        }],
    7777    ]
    7878});
     
    9090    tests: [
    9191        ['Adding' + numberOfItemsToAdd + 'Items', function (newTodo, contentWindow, contentDocument) {
    92     var appView = contentWindow.appView;
    93     var fakeEvent = {which: contentWindow.ENTER_KEY};
    94     for (var i = 0; i < numberOfItemsToAdd; i++) {
    95         newTodo.value = 'Something to do ' + i;
    96     appView.createOnEnter(fakeEvent);
    97         }
    98     }],
    99     ['CompletingAllItems', function (newTodo, contentWindow, contentDocument) {
    100     var checkboxes = contentDocument.querySelectorAll('.toggle');
    101     for (var i = 0; i < checkboxes.length; i++)
    102         checkboxes[i].click();
    103     }],
    104         ['DeletingAllItems', function (newTodo, contentWindow, contentDocument) {
    105     var deleteButtons = contentDocument.querySelectorAll('.destroy');
    106     for (var i = 0; i < deleteButtons.length; i++)
    107         deleteButtons[i].click();
    108     }],
     92        var appView = contentWindow.appView;
     93        var fakeEvent = {which: contentWindow.ENTER_KEY};
     94        for (var i = 0; i < numberOfItemsToAdd; i++) {
     95            newTodo.value = 'Something to do ' + i;
     96        appView.createOnEnter(fakeEvent);
     97            }
     98        }],
     99        ['CompletingAllItems', function (newTodo, contentWindow, contentDocument) {
     100        var checkboxes = contentDocument.querySelectorAll('.toggle');
     101        for (var i = 0; i < checkboxes.length; i++)
     102            checkboxes[i].click();
     103        }],
     104            ['DeletingAllItems', function (newTodo, contentWindow, contentDocument) {
     105        var deleteButtons = contentDocument.querySelectorAll('.destroy');
     106        for (var i = 0; i < deleteButtons.length; i++)
     107            deleteButtons[i].click();
     108        }],
    109109    ]
    110110});
     
    122122    tests: [
    123123        ['Adding' + numberOfItemsToAdd + 'Items', function (newTodo, contentWindow, contentDocument) {
    124     var app = contentWindow.app;
    125     var fakeEvent = {which: app.ENTER_KEY};
    126     for (var i = 0; i < numberOfItemsToAdd; i++) {
    127         newTodo.value = 'Something to do ' + i;
    128     app.create.call(newTodo, fakeEvent);
    129         }
    130     }],
    131     ['CompletingAllItems', function (newTodo, contentWindow, contentDocument) {
    132     var app = contentWindow.app;
    133     var checkboxes = contentDocument.querySelectorAll('.toggle');
    134     for (var i = 0; i < checkboxes.length; i++)
    135     app.toggle.call(checkboxes[i]);
    136     }],
    137         ['DeletingAllItems', function (newTodo, contentWindow, contentDocument) {
    138     var app = contentWindow.app;
    139     var deleteButtons = contentDocument.querySelectorAll('.destroy');
    140     for (var i = 0; i < deleteButtons.length; i++)
    141     app.destroy.call(deleteButtons[i]);
    142     }],
     124        var app = contentWindow.app;
     125        var fakeEvent = {which: app.ENTER_KEY};
     126        for (var i = 0; i < numberOfItemsToAdd; i++) {
     127            newTodo.value = 'Something to do ' + i;
     128        app.create.call(newTodo, fakeEvent);
     129            }
     130        }],
     131        ['CompletingAllItems', function (newTodo, contentWindow, contentDocument) {
     132        var app = contentWindow.app;
     133        var checkboxes = contentDocument.querySelectorAll('.toggle');
     134        for (var i = 0; i < checkboxes.length; i++)
     135        app.toggle.call(checkboxes[i]);
     136        }],
     137            ['DeletingAllItems', function (newTodo, contentWindow, contentDocument) {
     138        var app = contentWindow.app;
     139        var deleteButtons = contentDocument.querySelectorAll('.destroy');
     140        for (var i = 0; i < deleteButtons.length; i++)
     141        app.destroy.call(deleteButtons[i]);
     142        }],
     143    ]
     144});
     145
     146BenchmarkRunner.suite({
     147    name: 'AngularJS/TodoMVC',
     148    url: 'todomvc/architecture-examples/angularjs/index.html',
     149    prepare: function (contentWindow, contentDocument) {
     150    var storage = [];
     151        return BenchmarkRunner.waitForElement('#new-todo').then(function (element) {
     152            element.focus();
     153            return element;
     154        });
     155    },
     156    tests: [
     157        ['Adding' + numberOfItemsToAdd + 'Items', function (newTodo, contentWindow, contentDocument) {
     158        var todomvc = contentWindow.todomvc;
     159        var submitEvent = document.createEvent('Event');
     160        submitEvent.initEvent('submit', true, true);
     161        var inputEvent = document.createEvent('Event');
     162        inputEvent.initEvent('input', true, true);
     163        for (var i = 0; i < numberOfItemsToAdd; i++) {
     164            newTodo.value = 'Something to do ' + i;
     165            newTodo.dispatchEvent(inputEvent);
     166            newTodo.form.dispatchEvent(submitEvent);
     167            }
     168        }],
     169        ['CompletingAllItems', function (newTodo, contentWindow, contentDocument) {
     170        var checkboxes = contentDocument.querySelectorAll('.toggle');
     171        for (var i = 0; i < checkboxes.length; i++)
     172            checkboxes[i].click();
     173        }],
     174            ['DeletingAllItems', function (newTodo, contentWindow, contentDocument) {
     175        var deleteButtons = contentDocument.querySelectorAll('.destroy');
     176        for (var i = 0; i < deleteButtons.length; i++)
     177            deleteButtons[i].click();
     178        }],
    143179    ]
    144180});
Note: See TracChangeset for help on using the changeset viewer.