Unreviewed fix of a test after r190687.
[WebKit-https.git] / Websites / perf.webkit.org / tests / admin-regenerate-manifest.js
1 describe("/admin/regenerate-manifest", function () {
2
3     it("should generate an empty manifest when database is empty", function () {
4         httpGet('/admin/regenerate-manifest', function (response) {
5             assert.equal(response.statusCode, 200);
6             httpGet('/data/manifest', function (response) {
7                 assert.equal(response.statusCode, 200);
8                 var manifest = JSON.parse(response.responseText);
9                 delete manifest.defaultDashboard;
10                 delete manifest.dashboards;
11                 delete manifest.elapsedTime;
12                 delete manifest.siteTitle;
13                 assert.deepEqual(manifest, {
14                     all: {},
15                     bugTrackers: {},
16                     builders: {},
17                     dashboard: {},
18                     metrics: {},
19                     repositories: {},
20                     tests: {}});
21                 notifyDone();
22             });
23         });
24     });
25
26     it("should generate manifest with bug trackers without repositories", function () {
27         queryAndFetchAll("INSERT INTO bug_trackers (tracker_id, tracker_name, tracker_new_bug_url) VALUES"
28             + " (1, 'Bugzilla', 'bugs.webkit.org')", [], function () {
29             httpGet('/admin/regenerate-manifest', function (response) {
30                 assert.equal(response.statusCode, 200);
31                 httpGet('/data/manifest', function (response) {
32                     assert.equal(response.statusCode, 200);
33                     var manifest = JSON.parse(response.responseText);
34                     assert.deepEqual(manifest['bugTrackers'],
35                         {1: {name: 'Bugzilla', bugUrl: null, newBugUrl: 'bugs.webkit.org', repositories: null}});
36                     notifyDone();
37                 });
38             });
39         });
40     });
41
42     it("should generate manifest with bug trackers and repositories", function () {
43         queryAndFetchAll("INSERT INTO repositories (repository_id, repository_name, repository_url, repository_blame_url) VALUES"
44             + " (1, 'WebKit', 'trac.webkit.org', null), (2, 'Chromium', null, 'SomeBlameURL')", [], function () {
45             queryAndFetchAll("INSERT INTO bug_trackers (tracker_id, tracker_name) VALUES (3, 'Bugzilla'), (4, 'Issue Tracker')", [], function () {
46                 queryAndFetchAll("INSERT INTO tracker_repositories (tracrepo_tracker, tracrepo_repository) VALUES (3, 1), (4, 1), (4, 2)", [], function () {
47                     httpGet('/admin/regenerate-manifest', function (response) {
48                         assert.equal(response.statusCode, 200);
49                         httpGet('/data/manifest', function (response) {
50                             assert.equal(response.statusCode, 200);
51                             var manifest = JSON.parse(response.responseText);
52                             assert.deepEqual(manifest['repositories'], {
53                                 1: { name: 'WebKit', url: 'trac.webkit.org', blameUrl: null, hasReportedCommits: false },
54                                 2: { name: 'Chromium', url: null, blameUrl: 'SomeBlameURL', hasReportedCommits: false }
55                             });
56                             assert.deepEqual(manifest['bugTrackers'][3], {name: 'Bugzilla', bugUrl: null, newBugUrl: null, repositories: ['1']});
57                             assert.deepEqual(manifest['bugTrackers'][4], {name: 'Issue Tracker', bugUrl: null, newBugUrl: null, repositories: ['1', '2']});
58                             notifyDone();
59                         });
60                     });
61                 });
62             });
63         });
64     });
65
66     it("should generate manifest with builders", function () {
67         queryAndFetchAll("INSERT INTO builders (builder_id, builder_name, builder_password_hash, builder_build_url) VALUES"
68             + " (1, 'SomeBuilder', 'a', null), (2, 'SomeOtherBuilder', 'b', 'SomeURL')", [], function () {
69             httpGet('/admin/regenerate-manifest', function (response) {
70                 assert.equal(response.statusCode, 200);
71                 httpGet('/data/manifest', function (response) {
72                     assert.equal(response.statusCode, 200);
73                     var manifest = JSON.parse(response.responseText);
74                     assert.deepEqual(manifest['builders'], {
75                         '1': { name: 'SomeBuilder', buildUrl: null },
76                         '2': { name: 'SomeOtherBuilder', buildUrl: 'SomeURL' }
77                     });
78                     notifyDone();
79                 });
80             });
81         });
82     });
83
84     it("should generate manifest with tests", function () {
85         queryAndFetchAll("INSERT INTO tests (test_id, test_name, test_parent) VALUES"
86             + " (1, 'SomeTest', null), (2, 'SomeOtherTest', null),  (3, 'ChildTest', 1)", [], function () {
87             httpGet('/admin/regenerate-manifest', function (response) {
88                 assert.equal(response.statusCode, 200);
89                 httpGet('/data/manifest', function (response) {
90                     assert.equal(response.statusCode, 200);
91                     var manifest = JSON.parse(response.responseText);
92                     assert.deepEqual(manifest['tests'], {
93                         '1': { name: 'SomeTest', url: null, parentId: null },
94                         '2': { name: 'SomeOtherTest', url: null, parentId: null },
95                         '3': { name: 'ChildTest', url: null, parentId: '1' }
96                     });
97                     notifyDone();
98                 });
99             });
100         });
101     });
102
103     it("should generate manifest with metrics", function () {
104         queryAndFetchAll("INSERT INTO tests (test_id, test_name, test_parent) VALUES"
105             + " (1, 'SomeTest', null), (2, 'SomeOtherTest', null),  (3, 'ChildTest', 1)", [], function () {
106             queryAndFetchAll('INSERT INTO aggregators (aggregator_id, aggregator_name, aggregator_definition) values (4, $1, $2)',
107                 ['Total', 'values.reduce(function (a, b) { return a + b; })'], function () {
108                 queryAndFetchAll("INSERT INTO test_metrics (metric_id, metric_test, metric_name, metric_aggregator) VALUES"
109                     + " (5, 1, 'Time', null), (6, 2, 'Time', 4), (7, 2, 'Malloc', 4)", [], function () {
110                     httpGet('/admin/regenerate-manifest', function (response) {
111                         assert.equal(response.statusCode, 200);
112                         httpGet('/data/manifest', function (response) {
113                             assert.equal(response.statusCode, 200);
114                             var manifest = JSON.parse(response.responseText);
115                             assert.deepEqual(manifest['metrics'], {
116                                 '5': { name: 'Time', test: '1', aggregator: null },
117                                 '6': { name: 'Time', test: '2', aggregator: 'Total' },
118                                 '7': { name: 'Malloc', test: '2', aggregator: 'Total' }
119                             });
120                             notifyDone();
121                         });
122                     });
123                 });
124             });
125         });
126     });
127
128     // FIXME: Test the generation of all and dashboard.
129 });