| OLD | NEW |
| (Empty) |
| 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"); | |
| 29 | |
| 30 var kExampleResultsByTest = { | |
| 31 "scrollbars/custom-scrollbar-with-incomplete-style.html": { | |
| 32 "Mock Builder": { | |
| 33 "expected": "IMAGE", | |
| 34 "actual": "CRASH" | |
| 35 }, | |
| 36 "Mock Linux": { | |
| 37 "expected": "TEXT", | |
| 38 "actual": "CRASH" | |
| 39 } | |
| 40 }, | |
| 41 "userscripts/another-test.html": { | |
| 42 "Mock Builder": { | |
| 43 "expected": "PASS", | |
| 44 "actual": "TEXT" | |
| 45 } | |
| 46 } | |
| 47 } | |
| 48 | |
| 49 test("ui.onebar", 3, function() { | |
| 50 if (window.location.hash) { | |
| 51 window.location.hash = ''; | |
| 52 } | |
| 53 | |
| 54 onebar = new ui.onebar(); | |
| 55 onebar.attach(); | |
| 56 equal(onebar.innerHTML, | |
| 57 '<div><select id="platform-picker"><option>Apple</option><option>Chromiu
m</option><option>GTK</option><option>Qt</option></select></div>' + | |
| 58 '<ul class="ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-hea
der ui-corner-all">' + | |
| 59 '<li class="ui-state-default ui-corner-top ui-tabs-selected ui-state
-active"><a href="#unexpected">Unexpected Failures</a></li>' + | |
| 60 '<li class="ui-state-default ui-corner-top"><a href="#expected">Expe
cted Failures</a></li>' + | |
| 61 '<li class="ui-state-default ui-corner-top ui-state-disabled"><a hre
f="#results">Results</a></li>' + | |
| 62 '<li class="ui-state-default ui-corner-top"><a href="#perf">perf</a>
</li>' + | |
| 63 '</ul>' + | |
| 64 '<div id="unexpected" class="ui-tabs-panel ui-widget-content ui-corner-b
ottom"></div>' + | |
| 65 '<div id="expected" class="ui-tabs-panel ui-widget-content ui-corner-bot
tom ui-tabs-hide"></div>' + | |
| 66 '<div id="results" class="ui-tabs-panel ui-widget-content ui-corner-bott
om ui-tabs-hide"></div>' + | |
| 67 '<div id="perf" class="ui-tabs-panel ui-widget-content ui-corner-bottom
ui-tabs-hide"></div>'); | |
| 68 | |
| 69 onebar.select('expected'); | |
| 70 equal(window.location.hash, '#expected'); | |
| 71 onebar.select('unexpected'); | |
| 72 equal(window.location.hash, '#unexpected'); | |
| 73 | |
| 74 $(onebar).detach(); | |
| 75 }); | |
| 76 | |
| 77 test("results.ResultsGrid", 1, function() { | |
| 78 var grid = new ui.results.ResultsGrid() | |
| 79 grid.addResults([ | |
| 80 'http://example.com/layout-test-results/foo-bar-diff.txt', | |
| 81 'http://example.com/layout-test-results/foo-bar-expected.png', | |
| 82 'http://example.com/layout-test-results/foo-bar-actual.png', | |
| 83 'http://example.com/layout-test-results/foo-bar-diff.png', | |
| 84 ]); | |
| 85 equal(grid.innerHTML, | |
| 86 '<table class="comparison">' + | |
| 87 '<thead>' + | |
| 88 '<tr>' + | |
| 89 '<th>Expected</th>' + | |
| 90 '<th>Actual</th>' + | |
| 91 '<th>Diff</th>' + | |
| 92 '</tr>' + | |
| 93 '</thead>' + | |
| 94 '<tbody>' + | |
| 95 '<tr>' + | |
| 96 '<td class="expected result-container"><img class="image-res
ult" src="http://example.com/layout-test-results/foo-bar-expected.png"></td>' + | |
| 97 '<td class="actual result-container"><img class="image-resul
t" src="http://example.com/layout-test-results/foo-bar-actual.png"></td>' + | |
| 98 '<td class="diff result-container"><img class="image-result"
src="http://example.com/layout-test-results/foo-bar-diff.png"></td>' + | |
| 99 '</tr>' + | |
| 100 '</tbody>' + | |
| 101 '</table>' + | |
| 102 '<table class="comparison">' + | |
| 103 '<thead>' + | |
| 104 '<tr>' + | |
| 105 '<th>Expected</th>' + | |
| 106 '<th>Actual</th>' + | |
| 107 '<th>Diff</th>' + | |
| 108 '</tr>' + | |
| 109 '</thead>' + | |
| 110 '<tbody>' + | |
| 111 '<tr>' + | |
| 112 '<td class="expected result-container"></td>' + | |
| 113 '<td class="actual result-container"></td>' + | |
| 114 '<td class="diff result-container"><iframe class="text-resul
t" src="http://example.com/layout-test-results/foo-bar-diff.txt"></iframe></td>'
+ | |
| 115 '</tr>' + | |
| 116 '</tbody>' + | |
| 117 '</table>'); | |
| 118 }); | |
| 119 | |
| 120 test("results.ResultsGrid (crashlog)", 1, function() { | |
| 121 var grid = new ui.results.ResultsGrid() | |
| 122 grid.addResults(['http://example.com/layout-test-results/foo-bar-crash-log.t
xt']); | |
| 123 equal(grid.innerHTML, '<iframe class="text-result" src="http://example.com/l
ayout-test-results/foo-bar-crash-log.txt"></iframe>'); | |
| 124 }); | |
| 125 | |
| 126 test("results.ResultsGrid (empty)", 1, function() { | |
| 127 var grid = new ui.results.ResultsGrid() | |
| 128 grid.addResults([]); | |
| 129 equal(grid.innerHTML, 'No results to display.'); | |
| 130 }); | |
| 131 | |
| 132 test("time", 6, function() { | |
| 133 var time = new ui.RelativeTime(); | |
| 134 equal(time.tagName, 'TIME'); | |
| 135 equal(time.className, 'relative'); | |
| 136 deepEqual(Object.getOwnPropertyNames(time.__proto__).sort(), [ | |
| 137 'date', | |
| 138 'init', | |
| 139 'setDate', | |
| 140 'update', | |
| 141 ]); | |
| 142 equal(time.outerHTML, '<time class="relative"></time>'); | |
| 143 var tenMinutesAgo = new Date(); | |
| 144 tenMinutesAgo.setMinutes(tenMinutesAgo.getMinutes() - 10); | |
| 145 time.setDate(tenMinutesAgo); | |
| 146 equal(time.outerHTML, '<time class="relative">10 minutes ago</time>'); | |
| 147 equal(time.date().getTime(), tenMinutesAgo.getTime()); | |
| 148 }); | |
| 149 | |
| 150 test("StatusArea", 3, function() { | |
| 151 var statusArea = new ui.StatusArea(); | |
| 152 var id = statusArea.newId(); | |
| 153 statusArea.addMessage(id, 'First Message'); | |
| 154 statusArea.addMessage(id, 'Second Message'); | |
| 155 equal(statusArea.outerHTML, | |
| 156 '<div class="status processing" style="visibility: visible; ">' + | |
| 157 '<ul class="actions"><li><button class="action">Close</button></li><
/ul>' + | |
| 158 '<progress class="process-text">Processing...</progress>' + | |
| 159 '<div id="status-content-1" class="status-content">' + | |
| 160 '<div class="message">First Message</div>' + | |
| 161 '<div class="message">Second Message</div>' + | |
| 162 '</div>' + | |
| 163 '</div>'); | |
| 164 | |
| 165 var secondStatusArea = new ui.StatusArea(); | |
| 166 var secondId = secondStatusArea.newId(); | |
| 167 secondStatusArea.addMessage(secondId, 'First Message second id'); | |
| 168 | |
| 169 equal(statusArea.outerHTML, | |
| 170 '<div class="status processing" style="visibility: visible; ">' + | |
| 171 '<ul class="actions"><li><button class="action">Close</button></li><
/ul>' + | |
| 172 '<progress class="process-text">Processing...</progress>' + | |
| 173 '<div id="status-content-1" class="status-content">' + | |
| 174 '<div class="message">First Message</div>' + | |
| 175 '<div class="message">Second Message</div>' + | |
| 176 '</div>' + | |
| 177 '<div id="status-content-2" class="status-content">' + | |
| 178 '<div class="message">First Message second id</div>' + | |
| 179 '</div>' + | |
| 180 '</div>'); | |
| 181 | |
| 182 statusArea.addFinalMessage(id, 'Final Message 1'); | |
| 183 statusArea.addFinalMessage(secondId, 'Final Message 2'); | |
| 184 | |
| 185 equal(statusArea.outerHTML, | |
| 186 '<div class="status" style="visibility: visible; ">' + | |
| 187 '<ul class="actions"><li><button class="action">Close</button></li><
/ul>' + | |
| 188 '<progress class="process-text">Processing...</progress>' + | |
| 189 '<div id="status-content-1" class="status-content">' + | |
| 190 '<div class="message">First Message</div>' + | |
| 191 '<div class="message">Second Message</div>' + | |
| 192 '<div class="message">Final Message 1</div>' + | |
| 193 '</div>' + | |
| 194 '<div id="status-content-2" class="status-content">' + | |
| 195 '<div class="message">First Message second id</div>' + | |
| 196 '<div class="message">Final Message 2</div>' + | |
| 197 '</div>' + | |
| 198 '</div>'); | |
| 199 | |
| 200 statusArea.close(); | |
| 201 }); | |
| 202 | |
| 203 })(); | |
| OLD | NEW |