Upstream version 9.37.197.0
[platform/framework/web/crosswalk.git] / src / third_party / WebKit / Tools / GardeningServer / scripts / controllers_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 var kExampleResultsByBuilder = {
29     "Mock Builder": unittest.kExampleResultsJSON,
30 };
31
32 module("controllers");
33
34 asyncTest("UnexpectedFailures", 3, function() {
35     var simulator = new NetworkSimulator();
36
37     simulator.probe = function() {
38         return Promise.resolve();
39     };
40
41     simulator.runTest(function() {
42         var mockView = {};
43         var mockState = {
44             resultsByBuilder: kExampleResultsByBuilder
45         };
46         var expectedResultsByTest = null;
47         var mockDelegate = {
48             showResults: function(resultsView)
49             {
50                 deepEqual(resultsView._resultsByTest, expectedResultsByTest);
51             }
52         }
53         var controller = controllers.UnexpectedFailures(mockState, mockView, mockDelegate);
54
55         var testNameList = null;
56         var mockFailures = {
57             testNameList: function() { return testNameList; }
58         };
59
60         testNameList = ["scrollbars/custom-scrollbar-with-incomplete-style.html"];
61         expectedResultsByTest = {};
62         controller.onExamine(mockFailures);
63
64         testNameList = ["userscripts/another-test.html"];
65         expectedResultsByTest = {
66           "userscripts/another-test.html": {
67             "Mock Builder": {
68               "expected": "PASS",
69               "actual": "TEXT",
70               "is_unexpected": true,
71             }
72           }
73         };
74         controller.onExamine(mockFailures);
75     }).then(start);
76 });
77
78 test("controllers.FailingBuilders", 3, function() {
79     var MockView = base.extends('div', {
80         add: function(node) {
81             this.appendChild(node);
82         }
83     })
84     var view = new MockView();
85     var failingBuilders = new controllers.FailingBuilders(view, 'dummy message');
86     ok(!failingBuilders.hasFailures());
87
88     failingBuilders.update({'DummyBuilder': ['webkit_tests']});
89     ok(failingBuilders.hasFailures());
90
91     equal(view.outerHTML, '<div>' +
92         '<li style="opacity: 0;">' +
93             '<div class="how"></div>' +
94             '<div class="what">' +
95                 '<div class="problem">dummy message:' +
96                     '<ul class="effects">' +
97                         '<li class="builder"><a class="failing-builder" href="http://build.chromium.org/p/chromium.webkit/waterfall?builder=DummyBuilder">' +
98                             '<span class="version">DummyBuilder</span><span class="failures"> webkit_tests</span></a>' +
99                         '</li>' +
100                     '</ul>' +
101                 '</div>' +
102                 '<ul class="causes"></ul>' +
103             '</div>' +
104         '</li>' +
105     '</div>')
106 });
107
108 })();