<% // // Jala Project [http://opensvn.csie.org/traccgi/jala] // // Copyright 2004 ORF Online und Teletext GmbH // // Licensed under the Apache License, Version 2.0 (the ``License''); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an ``AS IS'' BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. // // $Revision$ // $LastChangedBy$ // $LastChangedDate$ // $HeadURL$ // %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" > <head> <title>Jala Unit Test Runner</title> <link rel="stylesheet" type="text/css" media="screen" href="<% root.href action="jala.test.css" %>" /> <script type="text/javascript"> <!-- function toggleCheckboxes(reverse) { var state = document.getElementById("toggle").checked; if (reverse) { state = !state; } var form = document.getElementById("tests"); var inputs = form.getElementsByTagName("input"); var cb; for (var i=0; i<inputs.length; i++) { cb = inputs[i]; if (cb.type == "checkbox") { cb.checked = state; } } return false; } --> </script> </head> <body> <div class="header"> <div class="title">Jala Unit Test Runner</div> <div class="directory"><% test.directory prefix="Tests: " %></div> </div> <div class="main"> <div class="list"> <form id="tests" method="post" action="<% root.href action="jala.test" %>"> <% test.list prefix='<h4>Available Tests</h4><ul>' suffix='<li><br /><input id="toggle" type="checkbox" onclick="toggleCheckboxes()" /><a href="#" onclick="toggleCheckboxes(true);">select all</a></li></ul><input class="submit" type="submit" name="run" value="Execute" />' %> </form> </div> <div class="result"> <table class="statistics"> <tr> <th>Tests</th> <th>Functions</th> </tr> <tr> <td><span class="passed"><% test.testsRun %></span> run</td> <td><span class="passed"><% test.functionsPassed %></span> passed</td> </tr> <tr> <td><span class="failed"><% test.testsFailed %></span> failed</td> <td><span class="failed"><% test.functionsFailed %></span> failed</td> </tr> </table> <% test.results %> </div> </div> </body> </html> <% #result ------------------------------------------------------------------ %> <h4 class="<% param.status %>">Results of '<% param.name %>':</h4> <% param.log prefix="<dl>" suffix="</dl>" %> <% #item -------------------------------------------------------------------- %> <li> <input type="checkbox" name="test" value="<% param.name %>" <% param.checked %>/><a href="?test=<% param.name %>"><% param.name %></a> </li> <% #logFailed --------------------------------------------------------------- %> <dt class="test error">Error</dt> <dd> <% param.functionName prefix='<span class="function">' suffix='()</span>' %></span> <div class="message"><% param.name suffix=": " %><% param.message %></div> <div class="comment"><% param.comment %></div> <div><% param.fileName prefix="at " %><% param.lineNumber prefix=":" %></div> <div class="stackTrace"><% param.stackTrace encoding="html" %></div> </dd> <% #logPassed --------------------------------------------------------------- %> <dt class="test passed">Passed</dt> <dd><span class="function"><% param.functionName %>()</span><span class="elapsed">(in <% param.elapsed %> ms)</span></dd> <% #stylesheet -------------------------------------------------------------- %> body { font-family: Verdana, Arial, Helvetica; font-size: 0.85em; margin: 0; padding: 0; } a { text-decoration: none; color: #333; } a:hover { text-decoration: underline; } div.header { background-color: #aaa; border-bottom: 1px solid #333; font-size: 18px; font-weight: bold; color: #ddd; padding: 10px 20px; } div.header div.title { float: left; font-size: 18px; font-weight: bold; color: #ddd; } div.header div.directory { text-align: right; font-size: 11px; font-weight: normal; color: #eee; padding: 5px; } div.main { margin: 20px; } div.footer { margin-top: 400px; padding: 10px 0 10px 20px; clear: both; background-color: #eee; font-size: 0.7em; color: #999; } div.list { float: left; width: 200px; padding-right: 30px; border-right: 1px solid #ccc; } div.list h4 { margin: 0; padding: 0 0 10px 0; font-size: 1em; } div.list form { margin: 0; padding: 0; } div.list ul { list-style-type: none; margin: 0; padding: 0; } div.list ul li { padding: 0; margin-top:1px; font-size: 0.95em; } div.list .submit { margin: 15px 0 0 0; padding: 0 10px; border: 1px solid gray; } div.result { margin-left: 250px; padding-left: 20px; } /** statistics **/ table.statistics { xborder: 1px solid black; border-collapse: collapse; } table.statistics th { text-align: left; font-size: 0.9em; } table.statistics td { padding-right: 15px; color: #666; } table.statistics span.passed { color: #009900; font-weight: bold; } table.statistics span.failed { color: #cc0000; font-weight: bold; } /** result formattings **/ div.result h4 { font-size: 1em; font-weight: bold; border-top: 1px solid #ccc; padding-top: 20px; } dt { float: left; } dt.test { width: 70px; padding: 2px 10px; } dt.passed { background-color:#33cc33; font-size: 0.9em; } dt.error { background-color:#cc0000; color: #efefef; font-size: 0.9em; } dd { font-size: 0.95em; margin: 0 0 10px 100px; padding: 2px; } span.title, span.function { width: 200px; padding-right:10px; } span.function { font-style: italic; } span.elapsed { font-size: 0.9em; }