~ubuntu-branches/ubuntu/raring/qtwebkit-source/raring-proposed

« back to all changes in this revision

Viewing changes to Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/ui/results_unittests.js

  • Committer: Package Import Robot
  • Author(s): Jonathan Riddell
  • Date: 2013-02-18 14:24:18 UTC
  • Revision ID: package-import@ubuntu.com-20130218142418-eon0jmjg3nj438uy
Tags: upstream-2.3
ImportĀ upstreamĀ versionĀ 2.3

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
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('ui.results');
 
29
 
 
30
asyncTest('FlakinessData', 1, function() {
 
31
    var dashboard = new ui.results.FlakinessData();
 
32
    dashboard.addEventListener('load', function() {
 
33
        // setTimeout to be after the FlakinessData's load handler.
 
34
        setTimeout(function() {
 
35
            window.postMessage({command: 'heightChanged', height: 15}, '*');
 
36
            // setTimeout to be after the postMessage has been handled.
 
37
            setTimeout(function() {
 
38
                equals(dashboard.offsetHeight, 15);
 
39
                $(dashboard).detach();
 
40
                start();
 
41
            }, 0);
 
42
        }, 0);
 
43
    });
 
44
    document.body.appendChild(dashboard);
 
45
});
 
46
 
 
47
var kExampleResultsByTest = {
 
48
    "scrollbars/custom-scrollbar-with-incomplete-style.html": {
 
49
        "Mock Builder": {
 
50
            "expected": "IMAGE",
 
51
            "actual": "CRASH"
 
52
        },
 
53
        "Mock Linux": {
 
54
            "expected": "TEXT",
 
55
            "actual": "CRASH"
 
56
        }
 
57
    },
 
58
    "userscripts/another-test.html": {
 
59
        "Mock Builder": {
 
60
            "expected": "PASS",
 
61
            "actual": "TEXT"
 
62
        }
 
63
    }
 
64
};
 
65
 
 
66
var kExampleReftestResults = {
 
67
    "reftest.html": {
 
68
        "Mock Builder": {
 
69
            "expected": "PASS",
 
70
            "actual": "IMAGE",
 
71
            "is_reftest": true
 
72
        }
 
73
    },
 
74
    "mismatch-reftest.html": {
 
75
        "Mock Builder": {
 
76
            "expected": "PASS",
 
77
            "actual": "IMAGE",
 
78
            "is_mismatch_reftest": true
 
79
        }
 
80
    }
 
81
};
 
82
 
 
83
var kExampleResultsWithTimeoutByTest = {
 
84
    "fast/not-fast-test.html": {
 
85
        "Mock Builder": {
 
86
            "expected": "PASS",
 
87
            "actual": "TIMEOUT"
 
88
        }
 
89
    }
 
90
};
 
91
 
 
92
var kExampleGreaterThanFourResultsByTest = {
 
93
    "scrollbars/custom-scrollbar-with-incomplete-style.html": {
 
94
        "Mock Linux": {
 
95
            "expected": "TEXT",
 
96
            "actual": "CRASH"
 
97
        }
 
98
    },
 
99
    "scrollbars/1.html": {
 
100
        "Mock Linux": {
 
101
            "expected": "TEXT",
 
102
            "actual": "CRASH"
 
103
        }
 
104
    },
 
105
    "scrollbars/2.html": {
 
106
        "Mock Linux": {
 
107
            "expected": "TEXT",
 
108
            "actual": "CRASH"
 
109
        }
 
110
    },
 
111
    "scrollbars/3.html": {
 
112
        "Mock Linux": {
 
113
            "expected": "TEXT",
 
114
            "actual": "CRASH"
 
115
        }
 
116
    },
 
117
    "userscripts/another-test.html": {
 
118
        "Mock Builder": {
 
119
            "expected": "PASS",
 
120
            "actual": "TEXT"
 
121
        }
 
122
    }
 
123
};
 
124
 
 
125
test('View', 18, function() {
 
126
    var delegate = {
 
127
        fetchResultsURLs: function(failureInfo, callback) { return; }
 
128
    };
 
129
 
 
130
    var view = new ui.results.View(delegate);
 
131
    view.setResultsByTest(kExampleResultsByTest);
 
132
 
 
133
    view.firstResult();
 
134
    var testSelector = view.querySelector('.test-selector');
 
135
    var topPanel = testSelector.querySelector('.top-panel');
 
136
    equals(topPanel.childNodes[0], topPanel.querySelector('.active'));;
 
137
    equals($($('.builder-selector', view)[0]).tabs('option', 'selected'), 0);
 
138
 
 
139
    view.nextResult();
 
140
    equals(topPanel.childNodes[0], topPanel.querySelector('.active'));;
 
141
    equals($($('.builder-selector', view)[0]).tabs('option', 'selected'), 1);
 
142
    equals(view.currentTestName(), 'scrollbars/custom-scrollbar-with-incomplete-style.html');
 
143
 
 
144
    view.nextResult();
 
145
    equals(topPanel.childNodes[1], topPanel.querySelector('.active'));;
 
146
    equals($($('.builder-selector', view)[0]).tabs('option', 'selected'), 0);
 
147
    equals(view.currentTestName(), 'userscripts/another-test.html');
 
148
 
 
149
    view.previousResult();
 
150
    equals(topPanel.childNodes[0], topPanel.querySelector('.active'));;
 
151
    equals($($('.builder-selector', view)[0]).tabs('option', 'selected'), 1);
 
152
 
 
153
    view.nextTest();
 
154
    equals(topPanel.childNodes[1], topPanel.querySelector('.active'));;
 
155
    equals($($('.builder-selector', view)[0]).tabs('option', 'selected'), 0);
 
156
    equals(view.currentTestName(), 'userscripts/another-test.html');
 
157
 
 
158
    view.previousTest();
 
159
    equals(topPanel.childNodes[0], topPanel.querySelector('.active'));;
 
160
    equals($($('.builder-selector', view)[0]).tabs('option', 'selected'), 1);
 
161
    equals(view.currentTestName(), 'scrollbars/custom-scrollbar-with-incomplete-style.html');
 
162
 
 
163
    ok(!testSelector.querySelector('.resize-handle'));
 
164
    equals(topPanel.style.minHeight, '');
 
165
});
 
166
 
 
167
test('View with more than four tests', 2, function() {
 
168
    var delegate = {
 
169
        fetchResultsURLs: function(failureInfo, callback) { return; }
 
170
    };
 
171
 
 
172
    var view = new ui.results.View(delegate);
 
173
    view.setResultsByTest(kExampleGreaterThanFourResultsByTest);
 
174
 
 
175
    var testSelector = view.querySelector('.test-selector');
 
176
    var topPanel = testSelector.querySelector('.top-panel');
 
177
 
 
178
    ok(testSelector.querySelector('.resize-handle'));
 
179
    equals(topPanel.style.minHeight, '100px');
 
180
});
 
181
 
 
182
test('View with reftests', 2, function() {
 
183
    var delegate = {
 
184
        fetchResultsURLs: function(failureInfo, callback) { return; }
 
185
    };
 
186
 
 
187
    var view = new ui.results.View(delegate);
 
188
    view.setResultsByTest(kExampleReftestResults);
 
189
    view.firstResult();
 
190
 
 
191
    equals($('.non-action-button', view).length, 1);
 
192
    equals($('.action', view).length, 0);
 
193
});
 
194
 
 
195
test('View of timeouts', 1, function() {
 
196
    var delegate = {
 
197
        fetchResultsURLs: function(failureInfo, callback) { callback([]); }
 
198
    };
 
199
 
 
200
    var view = new ui.results.View(delegate);
 
201
    view.setResultsByTest(kExampleResultsWithTimeoutByTest);
 
202
    view.firstResult();
 
203
 
 
204
    equals($('.results-grid', view).html(), 'No results to display.');
 
205
});
 
206
 
 
207
})();