1 describe("/admin/regenerate-manifest", function () {
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 assert.deepEqual(manifest, {
22 it("should generate manifest with bug trackers without repositories", function () {
23 queryAndFetchAll("INSERT INTO bug_trackers (tracker_id, tracker_name, tracker_new_bug_url) VALUES"
24 + " (1, 'Bugzilla', 'bugs.webkit.org')", [], function () {
25 httpGet('/admin/regenerate-manifest', function (response) {
26 assert.equal(response.statusCode, 200);
27 httpGet('/data/manifest', function (response) {
28 assert.equal(response.statusCode, 200);
29 var manifest = JSON.parse(response.responseText);
30 assert.deepEqual(manifest['bugTrackers'], { 'Bugzilla': { newBugUrl: 'bugs.webkit.org', repositories: null } });
37 it("should generate manifest with bug trackers and repositories", function () {
38 queryAndFetchAll("INSERT INTO repositories (repository_id, repository_name, repository_url, repository_blame_url) VALUES"
39 + " (1, 'WebKit', 'trac.webkit.org', null), (2, 'Chromium', null, 'SomeBlameURL')", [], function () {
40 queryAndFetchAll("INSERT INTO bug_trackers (tracker_id, tracker_name) VALUES (3, 'Bugzilla'), (4, 'Issue Tracker')", [], function () {
41 queryAndFetchAll("INSERT INTO tracker_repositories (tracrepo_tracker, tracrepo_repository) VALUES (3, 1), (4, 1), (4, 2)", [], function () {
42 httpGet('/admin/regenerate-manifest', function (response) {
43 assert.equal(response.statusCode, 200);
44 httpGet('/data/manifest', function (response) {
45 assert.equal(response.statusCode, 200);
46 var manifest = JSON.parse(response.responseText);
47 assert.deepEqual(manifest['repositories'], {
48 'WebKit': { url: 'trac.webkit.org', blameUrl: null },
49 'Chromium': { url: null, blameUrl: 'SomeBlameURL' }
51 assert.deepEqual(manifest['bugTrackers']['Bugzilla'], { newBugUrl: null, repositories: ['WebKit'] });
52 assert.deepEqual(manifest['bugTrackers']['Issue Tracker'], { newBugUrl: null, repositories: ['WebKit', 'Chromium'] });
61 it("should generate manifest with builders", function () {
62 queryAndFetchAll("INSERT INTO builders (builder_id, builder_name, builder_password_hash, builder_build_url) VALUES"
63 + " (1, 'SomeBuilder', 'a', null), (2, 'SomeOtherBuilder', 'b', 'SomeURL')", [], function () {
64 httpGet('/admin/regenerate-manifest', function (response) {
65 assert.equal(response.statusCode, 200);
66 httpGet('/data/manifest', function (response) {
67 assert.equal(response.statusCode, 200);
68 var manifest = JSON.parse(response.responseText);
69 assert.deepEqual(manifest['builders'], {
70 '1': { name: 'SomeBuilder', buildUrl: null },
71 '2': { name: 'SomeOtherBuilder', buildUrl: 'SomeURL' }
79 it("should generate manifest with tests", function () {
80 queryAndFetchAll("INSERT INTO tests (test_id, test_name, test_parent) VALUES"
81 + " (1, 'SomeTest', null), (2, 'SomeOtherTest', null), (3, 'ChildTest', 1)", [], function () {
82 httpGet('/admin/regenerate-manifest', function (response) {
83 assert.equal(response.statusCode, 200);
84 httpGet('/data/manifest', function (response) {
85 assert.equal(response.statusCode, 200);
86 var manifest = JSON.parse(response.responseText);
87 assert.deepEqual(manifest['tests'], {
88 '1': { name: 'SomeTest', url: null, parentId: null },
89 '2': { name: 'SomeOtherTest', url: null, parentId: null },
90 '3': { name: 'ChildTest', url: null, parentId: '1' }
98 it("should generate manifest with metrics", function () {
99 queryAndFetchAll("INSERT INTO tests (test_id, test_name, test_parent) VALUES"
100 + " (1, 'SomeTest', null), (2, 'SomeOtherTest', null), (3, 'ChildTest', 1)", [], function () {
101 queryAndFetchAll('INSERT INTO aggregators (aggregator_id, aggregator_name, aggregator_definition) values (4, $1, $2)',
102 ['Total', 'values.reduce(function (a, b) { return a + b; })'], function () {
103 queryAndFetchAll("INSERT INTO test_metrics (metric_id, metric_test, metric_name, metric_aggregator) VALUES"
104 + " (5, 1, 'Time', null), (6, 2, 'Time', 4), (7, 2, 'Malloc', 4)", [], function () {
105 httpGet('/admin/regenerate-manifest', function (response) {
106 assert.equal(response.statusCode, 200);
107 httpGet('/data/manifest', function (response) {
108 assert.equal(response.statusCode, 200);
109 var manifest = JSON.parse(response.responseText);
110 assert.deepEqual(manifest['metrics'], {
111 '5': { name: 'Time', test: '1', aggregator: null },
112 '6': { name: 'Time', test: '2', aggregator: 'Total' },
113 '7': { name: 'Malloc', test: '2', aggregator: 'Total' }
123 // FIXME: Test the generation of all and dashboard.