Upstream version 9.37.197.0
[platform/framework/web/crosswalk.git] / src / third_party / WebKit / Tools / GardeningServer / scripts / checkout_unittests.js
1 /*
2  * Copyright (C) 2011 Google Inc. All rights reserved.
3  *
4  * Redistribution and use in source and binary forms, with or without
5  * modification, are permitted provided that the following conditions
6  * are met:
7  * 1. Redistributions of source code must retain the above copyright
8  *    notice, this list of conditions and the following disclaimer.
9  * 2. Redistributions in binary form must reproduce the above copyright
10  *    notice, this list of conditions and the following disclaimer in the
11  *    documentation and/or other materials provided with the distribution.
12  *
13  * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
14  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
15  * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
16  * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
17  * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
18  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
19  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
20  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
21  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
22  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
23  * THE POSSIBILITY OF SUCH DAMAGE.
24  */
25
26 (function () {
27
28 module("checkout");
29
30 asyncTest("lastBlinkRollRevision", 0, function() {
31     var simulator = new NetworkSimulator();
32
33     var requests = [];
34     simulator.get = function(url)
35     {
36         requests.push([url]);
37         return Promise.resolve();
38     };
39
40     simulator.ajax = function(options)
41     {
42         if (options.url.indexOf('/ping') == -1) {
43             ok(false, 'Received non-ping ajax request: ' + options.url);
44             return Promise.reject('Received non-ping ajax request: ' + options.url);
45         }
46         return Promise.resolve();
47     };
48
49     simulator.runTest(function() {
50         checkout.lastBlinkRollRevision(function() {
51             ok(true);
52         }, function() {
53             ok(false, 'Checkout should be available.');
54         });
55     }).then(function() {
56         deepEqual(requests, [
57             ["/lastroll"]
58         ]);
59         start();
60     });;
61 });
62
63 asyncTest("rebaseline", 3, function() {
64     var simulator = new NetworkSimulator();
65
66     var requests = [];
67     simulator.post = function(url, body)
68     {
69         requests.push([url, body]);
70         return Promise.resolve();
71     };
72     simulator.ajax = function(options)
73     {
74         if (options.url.indexOf('/ping') == -1) {
75             ok(false, 'Received non-ping ajax request: ' + options.url);
76             return Promise.reject('Received non-ping ajax request: ' + options.url);
77         }
78         return Promise.resolve();
79     };
80
81     var kExpectedTestNameProgressStack = [
82         'fast/test.html',
83         'another/test.svg',
84         'another/test.svg', // This is the first one.
85     ];
86
87     simulator.runTest(function() {
88         checkout.rebaseline([{
89             'builderName': 'WebKit Linux',
90             'testName': 'another/test.svg',
91             'failureTypeList': ['IMAGE'],
92         }, {
93             'builderName': 'WebKit Mac10.6',
94             'testName': 'another/test.svg',
95             'failureTypeList': ['IMAGE', 'TEXT', 'IMAGE+TEXT'],
96         }, {
97             'builderName': 'Webkit Win7',
98             'testName': 'fast/test.html',
99             'failureTypeList': ['IMAGE+TEXT'],
100         }], function(failureInfo) {
101             equals(failureInfo.testName, kExpectedTestNameProgressStack.pop());
102         }, function() {
103             ok(false, 'There are no debug bots in the list');
104         }).catch().then(function() {
105             ok(true);
106         }, function() {
107             ok(false, 'Checkout should be available.');
108         });
109     }).then(function() {
110
111         deepEqual(requests, [
112             ["/rebaselineall",
113              JSON.stringify({
114                  "another/test.svg": {
115                      "WebKit Linux": ["png"],
116                      "WebKit Mac10.6": ["png","txt"]},
117                  "fast/test.html": {
118                      "Webkit Win7": ["txt","png"]
119                  }})]
120         ]);
121         start();
122     });
123 });
124
125 asyncTest("rebaseline-debug-bot", 4, function() {
126     var simulator = new NetworkSimulator();
127     simulator.post = function(url, body)
128     {
129         return Promise.resolve();
130     };
131     simulator.ajax = function(options)
132     {
133         return Promise.resolve();
134     };
135
136     simulator.runTest(function() {
137         checkout.rebaseline([{
138             'builderName': 'WebKit Linux (dbg)',
139             'testName': 'another/test.svg',
140             'failureTypeList': ['IMAGE'],
141         }], function(failureInfo) {
142             ok(true);
143         }, function(failureInfo) {
144             ok(true);
145         }).then(function() {
146             ok(true);
147         }, function() {
148             ok(false);
149         });
150     }).then(start);
151 });
152
153 })();