Commit 58c54c1c authored by Kazuhiko Shiozaki's avatar Kazuhiko Shiozaki

Zelenium: remove not-required directories.

parent 6bd1ebbe
Manifest-Version: 1.0
Ant-Version: Apache Ant 1.8.1
Created-By: 1.6.0-google-v4-54639-21652009 (Sun Microsystems Inc.)
Main-Class: org.openqa.grid.selenium.GridLauncher
Name: Build-Info
Selenium-Version: 2.6.0
Selenium-Revision: 13840
Selenium-Build-Time: 2011-09-13 14:55:47
body {
margin-top: 0;
margin-bottom: 0;
font-family: Verdana, Arial, Helvetica, sans-serif;
color: #000;
font-size: 0.8em;
background-color: #fff;
}
a:link, a:visited {
color: #00F;
}
a:hover {
color: #F00;
}
h1 {
font-size: 1.2em;
font-weight: bold;
color: #039;
font-family: Verdana, Arial, Helvetica, sans-serif;
}
h2 {
font-weight: bold;
color: #039;
font-family: Verdana, Arial, Helvetica, sans-serif;
}
h3 {
font-weight: bold;
color: #039;
text-decoration: underline;
font-family: Verdana, Arial, Helvetica, sans-serif;
}
h4 {
font-weight: bold;
color: #039;
font-family: Verdana, Arial, Helvetica, sans-serif;
}
.jsUnitTestResultSuccess {
color: #000;
}
.jsUnitTestResultNotSuccess {
color: #F00;
}
\ No newline at end of file
this file is required due to differences in behavior between Mozilla/Opera
and Internet Explorer.
main-data.html calls kickOffTests() which calls top.testManager.start()
in the top most frame. top.testManager.start() initializes the output
frames using document.write and HTML containing a relative <link> to the
jsUnitStyle.css file. In MSIE, the base href used to find the CSS file is
that of the top level frame however in Mozilla/Opera the base href is
that of main-data.html. This leads to not-found for the jsUnitStyle.css
in Mozilla/Opera. Creating app/css/jsUnitStyle.css works around this problem.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>emptyPage</title>
</head>
<body>
</body>
</html>
This diff is collapsed.
// Mock setTimeout, clearTimeout
// Contributed by Pivotal Computer Systems, www.pivotalsf.com
var Clock = {
timeoutsMade: 0,
scheduledFunctions: {},
nowMillis: 0,
reset: function() {
this.scheduledFunctions = {};
this.nowMillis = 0;
this.timeoutsMade = 0;
},
tick: function(millis) {
var oldMillis = this.nowMillis;
var newMillis = oldMillis + millis;
this.runFunctionsWithinRange(oldMillis, newMillis);
this.nowMillis = newMillis;
},
runFunctionsWithinRange: function(oldMillis, nowMillis) {
var scheduledFunc;
var funcsToRun = [];
for (var timeoutKey in this.scheduledFunctions) {
scheduledFunc = this.scheduledFunctions[timeoutKey];
if (scheduledFunc != undefined &&
scheduledFunc.runAtMillis >= oldMillis &&
scheduledFunc.runAtMillis <= nowMillis) {
funcsToRun.push(scheduledFunc);
this.scheduledFunctions[timeoutKey] = undefined;
}
}
if (funcsToRun.length > 0) {
funcsToRun.sort(function(a, b) {
return a.runAtMillis - b.runAtMillis;
});
for (var i = 0; i < funcsToRun.length; ++i) {
try {
this.nowMillis = funcsToRun[i].runAtMillis;
funcsToRun[i].funcToCall();
if (funcsToRun[i].recurring) {
Clock.scheduleFunction(funcsToRun[i].timeoutKey,
funcsToRun[i].funcToCall,
funcsToRun[i].millis,
true);
}
} catch(e) {
}
}
this.runFunctionsWithinRange(oldMillis, nowMillis);
}
},
scheduleFunction: function(timeoutKey, funcToCall, millis, recurring) {
Clock.scheduledFunctions[timeoutKey] = {
runAtMillis: Clock.nowMillis + millis,
funcToCall: funcToCall,
recurring: recurring,
timeoutKey: timeoutKey,
millis: millis
};
}
};
function setTimeout(funcToCall, millis) {
Clock.timeoutsMade = Clock.timeoutsMade + 1;
Clock.scheduleFunction(Clock.timeoutsMade, funcToCall, millis, false);
return Clock.timeoutsMade;
}
function setInterval(funcToCall, millis) {
Clock.timeoutsMade = Clock.timeoutsMade + 1;
Clock.scheduleFunction(Clock.timeoutsMade, funcToCall, millis, true);
return Clock.timeoutsMade;
}
function clearTimeout(timeoutKey) {
Clock.scheduledFunctions[timeoutKey] = undefined;
}
function clearInterval(timeoutKey) {
Clock.scheduledFunctions[timeoutKey] = undefined;
}
This diff is collapsed.
function jsUnitTestSuite() {
this.isjsUnitTestSuite = true;
this.testPages = Array();
this.pageIndex = 0;
}
jsUnitTestSuite.prototype.addTestPage = function (pageName)
{
this.testPages[this.testPages.length] = pageName;
}
jsUnitTestSuite.prototype.addTestSuite = function (suite)
{
for (var i = 0; i < suite.testPages.length; i++)
this.addTestPage(suite.testPages[i]);
}
jsUnitTestSuite.prototype.containsTestPages = function ()
{
return this.testPages.length > 0;
}
jsUnitTestSuite.prototype.nextPage = function ()
{
return this.testPages[this.pageIndex++];
}
jsUnitTestSuite.prototype.hasMorePages = function ()
{
return this.pageIndex < this.testPages.length;
}
jsUnitTestSuite.prototype.clone = function ()
{
var clone = new jsUnitTestSuite();
clone.testPages = this.testPages;
return clone;
}
if (xbDEBUG.on)
{
xbDebugTraceObject('window', 'jsUnitTestSuite');
}
var TRACE_LEVEL_NONE = new JsUnitTraceLevel(0, null);
var TRACE_LEVEL_WARNING = new JsUnitTraceLevel(1, "#FF0000");
var TRACE_LEVEL_INFO = new JsUnitTraceLevel(2, "#009966");
var TRACE_LEVEL_DEBUG = new JsUnitTraceLevel(3, "#0000FF");
function JsUnitTracer(testManager) {
this._testManager = testManager;
this._traceWindow = null;
this.popupWindowsBlocked = false;
}
JsUnitTracer.prototype.initialize = function() {
if (this._traceWindow != null && top.testManager.closeTraceWindowOnNewRun.checked)
this._traceWindow.close();
this._traceWindow = null;
}
JsUnitTracer.prototype.finalize = function() {
if (this._traceWindow != null) {
this._traceWindow.document.write('<\/body>\n<\/html>');
this._traceWindow.document.close();
}
}
JsUnitTracer.prototype.warn = function() {
this._trace(arguments[0], arguments[1], TRACE_LEVEL_WARNING);
}
JsUnitTracer.prototype.inform = function() {
this._trace(arguments[0], arguments[1], TRACE_LEVEL_INFO);
}
JsUnitTracer.prototype.debug = function() {
this._trace(arguments[0], arguments[1], TRACE_LEVEL_DEBUG);
}
JsUnitTracer.prototype._trace = function(message, value, traceLevel) {
if (!top.shouldSubmitResults() && this._getChosenTraceLevel().matches(traceLevel)) {
var traceString = message;
if (value)
traceString += ': ' + value;
var prefix = this._testManager.getTestFileName() + ":" +
this._testManager.getTestFunctionName() + " - ";
this._writeToTraceWindow(prefix, traceString, traceLevel);
}
}
JsUnitTracer.prototype._getChosenTraceLevel = function() {
var levelNumber = eval(top.testManager.traceLevel.value);
return traceLevelByLevelNumber(levelNumber);
}
JsUnitTracer.prototype._writeToTraceWindow = function(prefix, traceString, traceLevel) {
var htmlToAppend = '<p class="jsUnitDefault">' + prefix + '<font color="' + traceLevel.getColor() + '">' + traceString + '</font><\/p>\n';
this._getTraceWindow().document.write(htmlToAppend);
}
JsUnitTracer.prototype._getTraceWindow = function() {
if (this._traceWindow == null && !top.shouldSubmitResults() && !this.popupWindowsBlocked) {
this._traceWindow = window.open('', '', 'width=600, height=350,status=no,resizable=yes,scrollbars=yes');
if (!this._traceWindow)
this.popupWindowsBlocked = true;
else {
var resDoc = this._traceWindow.document;
resDoc.write('<html>\n<head>\n<link rel="stylesheet" href="css/jsUnitStyle.css">\n<title>Tracing - JsUnit<\/title>\n<head>\n<body>');
resDoc.write('<h2>Tracing - JsUnit<\/h2>\n');
resDoc.write('<p class="jsUnitDefault"><i>(Traces are color coded: ');
resDoc.write('<font color="' + TRACE_LEVEL_WARNING.getColor() + '">Warning</font> - ');
resDoc.write('<font color="' + TRACE_LEVEL_INFO.getColor() + '">Information</font> - ');
resDoc.write('<font color="' + TRACE_LEVEL_DEBUG.getColor() + '">Debug</font>');
resDoc.write(')</i></p>');
}
}
return this._traceWindow;
}
if (xbDEBUG.on) {
xbDebugTraceObject('window', 'JsUnitTracer');
}
function JsUnitTraceLevel(levelNumber, color) {
this._levelNumber = levelNumber;
this._color = color;
}
JsUnitTraceLevel.prototype.matches = function(anotherTraceLevel) {
return this._levelNumber >= anotherTraceLevel._levelNumber;
}
JsUnitTraceLevel.prototype.getColor = function() {
return this._color;
}
function traceLevelByLevelNumber(levelNumber) {
switch (levelNumber) {
case 0: return TRACE_LEVEL_NONE;
case 1: return TRACE_LEVEL_WARNING;
case 2: return TRACE_LEVEL_INFO;
case 3: return TRACE_LEVEL_DEBUG;
}
return null;
}
\ No newline at end of file
var versionRequest;
function isOutOfDate(newVersionNumber) {
return JSUNIT_VERSION < newVersionNumber;
}
function sendRequestForLatestVersion(url) {
versionRequest = createXmlHttpRequest();
if (versionRequest) {
versionRequest.onreadystatechange = requestStateChanged;
versionRequest.open("GET", url, true);
versionRequest.send(null);
}
}
function createXmlHttpRequest() {
if (window.XMLHttpRequest)
return new XMLHttpRequest();
else if (window.ActiveXObject)
return new ActiveXObject("Microsoft.XMLHTTP");
}
function requestStateChanged() {
if (versionRequest && versionRequest.readyState == 4) {
if (versionRequest.status == 200) {
var latestVersion = versionRequest.responseText;
if (isOutOfDate(latestVersion))
versionNotLatest(latestVersion);
else
versionLatest();
} else
versionCheckError();
}
}
function checkForLatestVersion(url) {
setLatestVersionDivHTML("Checking for newer version...");
try {
sendRequestForLatestVersion(url);
} catch (e) {
setLatestVersionDivHTML("An error occurred while checking for a newer version: " + e.message);
}
}
function versionNotLatest(latestVersion) {
setLatestVersionDivHTML('<font color="red">A newer version of JsUnit, version ' + latestVersion + ', is available.</font>');
}
function versionLatest() {
setLatestVersionDivHTML("You are running the latest version of JsUnit.");
}
function setLatestVersionDivHTML(string) {
document.getElementById("versionCheckDiv").innerHTML = string;
}
function versionCheckError() {
setLatestVersionDivHTML("An error occurred while checking for a newer version.");
}
\ No newline at end of file
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title></title>
<link rel="stylesheet" type="text/css" href="../css/jsUnitStyle.css">
</head>
<body>
<div id="content"><b>Errors:</b> 0</div>
</body>
</html>
\ No newline at end of file
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title></title>
<link rel="stylesheet" type="text/css" href="../css/jsUnitStyle.css">
</head>
<body>
<div id="content"><b>Failures:</b> 0</div>
</body>
</html>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title></title>
<link rel="stylesheet" type="text/css" href="../css/jsUnitStyle.css">
</head>
<body>
<div id="content"><b>Runs:</b> 0</div>
</body>
</html>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title></title>
</head>
<frameset cols="200,190,*" border="0">
<frame name="mainCountsRuns" src="main-counts-runs.html" scrolling="no" frameborder="0">
<frame name="mainCountsErrors" src="main-counts-errors.html" scrolling="no" frameborder="0">
<frame name="mainCountsFailures" src="main-counts-failures.html" scrolling="no" frameborder="0">
<noframes>
<body>
<p>jsUnit uses frames in order to remove dependencies upon a browser's implementation of document.getElementById
and HTMLElement.innerHTML.</p>
</body>
</noframes>
</frameset>
</html>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>JsUnit main-data.html</title>
<link rel="stylesheet" type="text/css" href="../css/jsUnitStyle.css">
<script language="JavaScript" type="text/javascript" src="jsUnitCore.js"></script>
<script language="JavaScript" type="text/javascript" src="jsUnitVersionCheck.js"></script>
<script language="JavaScript" type="text/javascript">
function pageLoaded() {
giveFocusToTestFileNameField();
}
function giveFocusToTestFileNameField() {
if (document.testRunnerForm.testFileName.type != "hidden")
document.testRunnerForm.testFileName.focus();
}
function kickOffTests() {
//
// Check if Init was called by onload handler
//
if (typeof(top.testManager) == 'undefined') {
top.init();
}
if (isBlank(top.testManager.getTestFileName())) {
top.testManager.fatalError('No Test Page specified.');
return;
}
top.testManager.setup();
top.testManager._currentSuite().addTestPage(top.testManager.resolveUserEnteredTestFileName());
top.tracer.initialize();
var traceLevel = document.forms.testRunnerForm.traceLevel;
if (traceLevel.value != '0')
{
var traceWindow = top.tracer._getTraceWindow();
if (traceWindow) {
traceWindow.focus();
}
else {
top.testManager.fatalError('Tracing requires popup windows, and popups are blocked in your browser.\n\nPlease enable popups if you wish to use tracing.');
}
}
top.testManager.start();
}
</script>
</head>
<body onload="pageLoaded();">
<table width="100%" cellpadding="0" cellspacing="0" border="0" summary="jsUnit Information" bgcolor="#DDDDDD">
<tr>
<td width="1"><a href="http://www.jsunit.net" target="_blank"><img src="../images/logo_jsunit.gif" alt="JsUnit" border="0"/></a></td>
<td width="50">&nbsp;</td>
<th nowrap align="left">
<h4>JsUnit <script language="javascript">document.write(JSUNIT_VERSION);</script> TestRunner</h4>
<font size="-2"><i>Running on <script language="javascript" type="text/javascript">document.write(navigator.userAgent);</script>
</i></font>
</th>
<td nowrap align="right" valign="middle">
<font size="-2">
<b><a href="http://www.jsunit.net/" target="_blank">www.jsunit.net</a></b>&nbsp;&nbsp;<br>
</font>
<a href="http://www.pivotalsf.com/" target="top">
<img border="0" src="../images/powerby-transparent.gif" alt="Powered By Pivotal">
</a>
</td>
</tr>
</table>
<form name="testRunnerForm" action="">
<script type="text/javascript" language="javascript">
if (!jsUnitGetParm('testpage')) {
document.write("<p>Enter the filename of the Test Page to be run:</p>");
} else {
document.write("<br>");
};
</script>
<table cellpadding="0" cellspacing="0" border="0" summary="Form for entering test case location">
<tr>
<td align="center" valign="middle">
<script language="JavaScript" type="text/javascript">
document.write(top.getDocumentProtocol());
</script>
</td>
<td nowrap align="center" valign="bottom">
&nbsp;
<script language="JavaScript" type="text/javascript">
var specifiedTestPage = jsUnitGetParm('testpage');
if (specifiedTestPage) {
var html = '<input type="hidden" name="testFileName" value="';
var valueString = '';
if ((top.getDocumentProtocol() == 'http://' || top.getDocumentProtocol() == 'https://') && jsUnitGetParm('testpage').indexOf('/') == 0)
valueString += top.location.host;
valueString += specifiedTestPage;
var testParms = top.jsUnitConstructTestParms();
if (testParms != '') {
valueString += '?';
valueString += testParms;
}
html += valueString;
html += '">';
html += valueString;
document.write(html);
} else {
if (top.getDocumentProtocol() == 'file:///' && top.browserSupportsReadingFullPathFromFileField())
document.write('<input type="file" name="testFileName" size="60">');
else
document.write('<input type="text" name="testFileName" size="60">');
}
</script>
<input type="button" name="runButton" value="Run" onclick="kickOffTests()">
</td>
</tr>
</table>
<br>
<hr>
<table cellpadding="0" cellspacing="0" border="0" summary="Choose Trace Level">
<tr>
<td nowrap>Trace level:</td>
<td><select name="traceLevel">
<option value="0" selected>
no tracing
</option>
<option value="1">
warning (lowest)
</option>
<option value="2">
info
</option>
<option value="3">
debug (highest)
</option>
</select></td>
<td>&nbsp;&nbsp;&nbsp;</td>
<td><input type="checkbox" name="closeTraceWindowOnNewRun" checked></td>
<td nowrap>Close old trace window on new run</td>
<td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td>
<td nowrap>Page load timeout:</td>
<td>&nbsp;
<script language="javascript" type="text/javascript">
document.write('<input type="text" size="2" name="timeout" value="' + top.jsUnitTestManager.TESTPAGE_WAIT_SEC + '">');
</script>
</td>
<td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td>
<td nowrap>Setup page timeout:</td>
<td>&nbsp;
<script language="javascript" type="text/javascript">
document.write('<input type="text" size="2" name="setUpPageTimeout" value="' + top.jsUnitTestManager.SETUPPAGE_TIMEOUT + '">');
</script>
</td>
</tr>
</table>
<hr>
</form>
</body>
</html>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>JsUnit main-errors.html</title>
<link rel="stylesheet" type="text/css" href="../css/jsUnitStyle.css">
</head>
<body>
<hr>
<form name="testRunnerForm" action="javascript:top.testManager.showMessageForSelectedProblemTest()">
<p>Errors and failures:&nbsp;</p>
<select size="5" ondblclick="top.testManager.showMessageForSelectedProblemTest()" name="problemsList">
<option>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</option>
</select>
<br>
<input type="button" value="Show selected" onclick="top.testManager.showMessageForSelectedProblemTest()">
&nbsp;&nbsp;&nbsp;
<input type="button" value="Show all" onclick="top.testManager.showMessagesForAllProblemTests()">
</form>
</body>
</html>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">
<html>
<head>
<title>jsUnit Main Frame</title>
</head>
<frameset rows="230,30,30,30,0,*" border="0">>
<frame name="mainData" src="main-data.html" scrolling="no" frameborder="0">
<frame name="mainStatus" src="main-status.html" scrolling="no" frameborder="0">
<frame name="mainProgress" src="main-progress.html" scrolling="no" frameborder="0">
<frame name="mainCounts" src="main-counts.html" scrolling="no" frameborder="0">
<frame name="mainResults" src="main-results.html" scrolling="no" frameborder="0">
<frame name="mainErrors" src="main-errors.html" scrolling="no" frameborder="0">
<noframes>
<body>
<p>Sorry, JsUnit requires frames.</p>
</body>
</noframes>
</frameset>
</html>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>jsUnit External Data Document loader</title>
<script language="JavaScript" type="text/javascript">
var loadStatus;
var callback = function () {
};
function buffer() {
return window.frames.documentBuffer;
}
function load(uri) {
loadStatus = 'loading';
buffer().document.location.href = uri;
}
function loadComplete() {
top.xbDEBUG.dump('main-loader.html:loadComplete(): loadStatus = ' + loadStatus + ' href=' + buffer().document.location.href);
if (loadStatus == 'loading') {
loadStatus = 'complete';
callback();
callback = function () {
};
}
}
if (top.xbDEBUG.on) {
var scopeName = 'main_loader_' + (new Date()).getTime();
top[scopeName] = window;
top.xbDebugTraceFunction(scopeName, 'buffer');
top.xbDebugTraceFunction(scopeName, 'load');
top.xbDebugTraceFunction(scopeName, 'loadComplete');
}
</script>
</head>
<body>
<iframe name="documentBuffer" onload="loadComplete()"></iframe>
</body>
</html>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>JsUnit main-progress.html</title>
<link rel="stylesheet" type="text/css" href="../css/jsUnitStyle.css">
</head>
<body>
<table width="375" cellpadding="0" cellspacing="0" border="0" summary="Test progress indicator">
<tr>
<td width="65" valign="top"><b>Progress:</b></td>
<td width="300" height="14" valign="middle">
<table width="300" cellpadding="0" cellspacing="0" border="1" summary="Progress image">
<tr>
<td width="300" height="14" valign="top"><img name="progress" height="14" width="0"
alt="progress image" src="../images/green.gif"></td>
</tr>
</table>
</td>
</tr>
</table>
</body>
</html>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>JsUnit main-results.html</title>
<link rel="stylesheet" type="text/css" href="../css/jsUnitStyle.css">
</head>
<body>
<script language="javascript" type="text/javascript">
var DEFAULT_SUBMIT_WEBSERVER = "localhost:8080";
function submitUrlFromSpecifiedUrl() {
var result = "";
var specifiedUrl = top.getSpecifiedResultUrl();
if (specifiedUrl.indexOf("http://") != 0)
result = "http://";
result += specifiedUrl;
return result;
}
function submitUrlFromTestRunnerLocation() {
var result = "http://";
var webserver = top.getWebserver();
if (webserver == null) // running over file:///
webserver = DEFAULT_SUBMIT_WEBSERVER;
result += webserver;
result += "/jsunit/acceptor";
return result;
}
var submitUrl = "";
if (top.wasResultUrlSpecified()) {
submitUrl = submitUrlFromSpecifiedUrl();
} else {
submitUrl = submitUrlFromTestRunnerLocation();
}
var formString = "<form name=\"resultsForm\" action=\"" + submitUrl + "\" method=\"post\" target=\"_top\">";
document.write(formString);
</script>
<input type="hidden" name="id">
<input type="hidden" name="userAgent">
<input type="hidden" name="jsUnitVersion">
<input type="hidden" name="time">
<input type="hidden" name="url">
<input type="hidden" name="cacheBuster">
<select size="5" name="testCases" multiple></select>
</form>
<script language="javascript" type="text/javascript">
function populateHeaderFields(id, userAgent, jsUnitVersion, baseURL) {
document.resultsForm.id.value = id;
document.resultsForm.userAgent.value = userAgent;
document.resultsForm.jsUnitVersion.value = jsUnitVersion;
document.resultsForm.url.value = baseURL;
document.resultsForm.cacheBuster.value = new Date().getTime();
}
function submitResults() {
var testCasesField = document.resultsForm.testCases;
for (var i = 0; i < testCasesField.length; i++) {
testCasesField[i].selected = true;
}
document.resultsForm.submit();
}
</script>
</body>
</html>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>JsUnit main-status.html</title>
<link rel="stylesheet" type="text/css" href="../css/jsUnitStyle.css">
</head>
<body>
<div id="content"><b>Status:</b> (Idle)</div>
</body>
</html>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>JsUnit Test Container</title>
</head>
<frameset rows="0, *" border="0">
<frame name="testContainerController" src="testContainerController.html">
<frame name="testFrame" src="emptyPage.html">
<noframes>
<body>
<p>Sorry, JsUnit requires frames.</p>
</body>
</noframes>
</frameset>
</html>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>JsUnit Test Container Controller</title>
<script language="javascript" type="text/javascript">
var containerReady = false;
function init() {
containerReady = true;
}
function isPageLoaded() {
if (!containerReady)
return false;
var isTestPageLoaded = false;
try {
// attempt to access the var isTestPageLoaded in the testFrame
if (typeof(top.testManager.containerTestFrame.isTestPageLoaded) != 'undefined') {
isTestPageLoaded = top.testManager.containerTestFrame.isTestPageLoaded;
}
// ok, if the above did not throw an exception, then the
// variable is defined. If the onload has not fired in the
// testFrame then isTestPageLoaded is still false. Otherwise
// the testFrame has set it to true
}
catch (e) {
// an error occured while attempting to access the isTestPageLoaded
// in the testFrame, therefore the testFrame has not loaded yet
isTestPageLoaded = false;
}
return isTestPageLoaded;
}
function isContainerReady() {
return containerReady;
}
function setNotReady() {
try {
// attempt to set the isTestPageLoaded variable
// in the test frame to false.
top.testManager.containerTestFrame.isTestPageLoaded = false;
}
catch (e) {
// testFrame.isTestPageLoaded not available... ignore
}
}
function setTestPage(testPageURI) {
setNotReady();
top.jsUnitParseParms(testPageURI);
testPageURI = appendCacheBusterParameterTo(testPageURI);
try {
top.testManager.containerTestFrame.location.href = testPageURI;
} catch (e) {
}
}
function appendCacheBusterParameterTo(testPageURI) {
if (testPageURI.indexOf("?") == -1)
testPageURI += "?";
else
testPageURI += "&";
testPageURI += "cacheBuster=";
testPageURI += new Date().getTime();
return testPageURI;
}
</script>
</head>
<body onload="init()">
Test Container Controller
</body>
</html>
\ No newline at end of file
// xbDebug.js revision: 0.003 2002-02-26
/* ***** BEGIN LICENSE BLOCK *****
* Licensed under Version: MPL 1.1/GPL 2.0/LGPL 2.1
* Full Terms at /xbProjects-srce/license/mpl-tri-license.txt
*
* Software distributed under the License is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
* for the specific language governing rights and limitations under the
* License.
*
* The Original Code is Netscape code.
*
* The Initial Developer of the Original Code is
* Netscape Corporation.
* Portions created by the Initial Developer are Copyright (C) 2001
* the Initial Developer. All Rights Reserved.
*
* Contributor(s): Bob Clary <bclary@netscape.com>
*
* ***** END LICENSE BLOCK ***** */
/*
ChangeLog:
2002-02-25: bclary - modified xbDebugTraceOject to make sure
that original versions of wrapped functions were not
rewrapped. This had caused an infinite loop in IE.
2002-02-07: bclary - modified xbDebug.prototype.close to not null
the debug window reference. This can cause problems with
Internet Explorer if the page is refreshed. These issues will
be addressed at a later date.
*/
function xbDebug()
{
this.on = false;
this.stack = new Array();
this.debugwindow = null;
this.execprofile = new Object();
}
xbDebug.prototype.push = function ()
{
this.stack[this.stack.length] = this.on;
this.on = true;
}
xbDebug.prototype.pop = function ()
{
this.on = this.stack[this.stack.length - 1];
--this.stack.length;
}
xbDebug.prototype.open = function ()
{
if (this.debugwindow && !this.debugwindow.closed)
this.close();
this.debugwindow = window.open('about:blank', 'DEBUGWINDOW', 'height=400,width=600,resizable=yes,scrollbars=yes');
this.debugwindow.title = 'xbDebug Window';
this.debugwindow.document.write('<html><head><title>xbDebug Window</title></head><body><h3>Javascript Debug Window</h3></body></html>');
this.debugwindow.focus();
}
xbDebug.prototype.close = function ()
{
if (!this.debugwindow)
return;
if (!this.debugwindow.closed)
this.debugwindow.close();
// bc 2002-02-07, other windows may still hold a reference to this: this.debugwindow = null;
}
xbDebug.prototype.dump = function (msg)
{
if (!this.on)
return;
if (!this.debugwindow || this.debugwindow.closed)
this.open();
this.debugwindow.document.write(msg + '<br>');
return;
}
var xbDEBUG = new xbDebug();
window.onunload = function () {
xbDEBUG.close();
}
function xbDebugGetFunctionName(funcref)
{
if (!funcref)
{
return '';
}
if (funcref.name)
return funcref.name;
var name = funcref + '';
name = name.substring(name.indexOf(' ') + 1, name.indexOf('('));
funcref.name = name;
if (!name) alert('name not defined');
return name;
}
// emulate functionref.apply for IE mac and IE win < 5.5
function xbDebugApplyFunction(funcname, funcref, thisref, argumentsref)
{
var rv;
if (!funcref)
{
alert('xbDebugApplyFunction: funcref is null');
}
if (typeof(funcref.apply) != 'undefined')
return funcref.apply(thisref, argumentsref);
var applyexpr = 'thisref.xbDebug_orig_' + funcname + '(';
var i;
for (i = 0; i < argumentsref.length; i++)
{
applyexpr += 'argumentsref[' + i + '],';
}
if (argumentsref.length > 0)
{
applyexpr = applyexpr.substring(0, applyexpr.length - 1);
}
applyexpr += ')';
return eval(applyexpr);
}
function xbDebugCreateFunctionWrapper(scopename, funcname, precall, postcall)
{
var wrappedfunc;
var scopeobject = eval(scopename);
var funcref = scopeobject[funcname];
scopeobject['xbDebug_orig_' + funcname] = funcref;
wrappedfunc = function ()
{
var rv;
precall(scopename, funcname, arguments);
rv = xbDebugApplyFunction(funcname, funcref, scopeobject, arguments);
postcall(scopename, funcname, arguments, rv);
return rv;
};
if (typeof(funcref.constructor) != 'undefined')
wrappedfunc.constructor = funcref.constuctor;
if (typeof(funcref.prototype) != 'undefined')
wrappedfunc.prototype = funcref.prototype;
scopeobject[funcname] = wrappedfunc;
}
function xbDebugCreateMethodWrapper(contextname, classname, methodname, precall, postcall)
{
var context = eval(contextname);
var methodref = context[classname].prototype[methodname];
context[classname].prototype['xbDebug_orig_' + methodname] = methodref;
var wrappedmethod = function ()
{
var rv;
// eval 'this' at method run time to pick up reference to the object's instance
var thisref = eval('this');
// eval 'arguments' at method run time to pick up method's arguments
var argsref = arguments;
precall(contextname + '.' + classname, methodname, argsref);
rv = xbDebugApplyFunction(methodname, methodref, thisref, argsref);
postcall(contextname + '.' + classname, methodname, argsref, rv);
return rv;
};
return wrappedmethod;
}
function xbDebugPersistToString(obj)
{
var s = '';
var p;
if (obj == null)
return 'null';
switch (typeof(obj))
{
case 'number':
return obj;
case 'string':
return '"' + obj + '"';
case 'undefined':
return 'undefined';
case 'boolean':
return obj + '';
}
if (obj.constructor)
return '[' + xbDebugGetFunctionName(obj.constructor) + ']';
return null;
}
function xbDebugTraceBefore(scopename, funcname, funcarguments)
{
var i;
var s = '';
var execprofile = xbDEBUG.execprofile[scopename + '.' + funcname];
if (!execprofile)
execprofile = xbDEBUG.execprofile[scopename + '.' + funcname] = { started: 0, time: 0, count: 0 };
for (i = 0; i < funcarguments.length; i++)
{
s += xbDebugPersistToString(funcarguments[i]);
if (i < funcarguments.length - 1)
s += ', ';
}
xbDEBUG.dump('enter ' + scopename + '.' + funcname + '(' + s + ')');
execprofile.started = (new Date()).getTime();
}
function xbDebugTraceAfter(scopename, funcname, funcarguments, rv)
{
var i;
var s = '';
var execprofile = xbDEBUG.execprofile[scopename + '.' + funcname];
if (!execprofile)
xbDEBUG.dump('xbDebugTraceAfter: execprofile not created for ' + scopename + '.' + funcname);
else if (execprofile.started == 0)
xbDEBUG.dump('xbDebugTraceAfter: execprofile.started == 0 for ' + scopename + '.' + funcname);
else
{
execprofile.time += (new Date()).getTime() - execprofile.started;
execprofile.count++;
execprofile.started = 0;
}
for (i = 0; i < funcarguments.length; i++)
{
s += xbDebugPersistToString(funcarguments[i]);
if (i < funcarguments.length - 1)
s += ', ';
}
xbDEBUG.dump('exit ' + scopename + '.' + funcname + '(' + s + ')==' + xbDebugPersistToString(rv));
}
function xbDebugTraceFunction(scopename, funcname)
{
xbDebugCreateFunctionWrapper(scopename, funcname, xbDebugTraceBefore, xbDebugTraceAfter);
}
function xbDebugTraceObject(contextname, classname)
{
var classref = eval(contextname + '.' + classname);
var p;
var sp;
if (!classref || !classref.prototype)
return;
for (p in classref.prototype)
{
sp = p + '';
if (typeof(classref.prototype[sp]) == 'function' && (sp).indexOf('xbDebug_orig') == -1)
{
classref.prototype[sp] = xbDebugCreateMethodWrapper(contextname, classname, sp, xbDebugTraceBefore, xbDebugTraceAfter);
}
}
}
function xbDebugDumpProfile()
{
var p;
var execprofile;
var avg;
for (p in xbDEBUG.execprofile)
{
execprofile = xbDEBUG.execprofile[p];
avg = Math.round(100 * execprofile.time / execprofile.count) / 100;
xbDEBUG.dump('Execution profile ' + p + ' called ' + execprofile.count + ' times. Total time=' + execprofile.time + 'ms. Avg Time=' + avg + 'ms.');
}
}
rake_file(
name = "jsunit",
src = ".")
\ No newline at end of file
TRACING
- Tracing is now color coded by trace level
- Traces are now prefixed with the Test Page and Test Function from which the trace is made
ASSERTION FUNCTIONS
- assertArrayEquals(array1, array2) introduced
- assertObjectEquals(object1, object2) introduced
- assertHTMLEquals function introduced
- assertEvaluatesToTrue and assertEvaluatesToFalse introduced
- assertHashEquals }
- assertRoughlyEquals } Pivotal functions
- assertContains }
- changed expected/actual values display strings to use angle brackets, rather than square brackets
- CLIENT-SIDE
- HTML in result output is now correctly escaped
- page load timeout changed to 120 seconds by default
- setup page timeout change to 120 seconds by default
- cache-buster for testpage retrieval & results submission
- jsUnitRestoredHTMLDiv
- turn off tracing, alerts, confirms when submitting
- testPage parameter should be URL-encoded (only opera cares though)
- Speed-up of Firefox/Mozilla (thanks to Chris Wesseling)
- jsUnitMockTimeout.js (thanks to Pivotal, especially Nathan Wilmes)
SERVER
- start-browser scripts in bin
- Migration of Java code to require Java 5.0
- JSPs require a JDK
- StandaloneTest and DistributedTest continue on after a failure in a particular browser or remote server respectively
- StandaloneTest has a suite() method that makes the test run have multiple JUnit tests, one per browser
- DistribuedTest has a suite() method that makes the test run have multiple JUnit tests, one per remote machine URL
- Change to XML output format of test runs to include more information and be more hierarchical (machine->browser->test page->test case)
- Logs are now prefixed with "JSTEST-" in order to match JUnit's "TEST-"
- Logs now contain the browser ID (e.g. JSTEST-12345.5.xml means browser with ID 5); displayer servlet now takes an id and a browserId parameter
- added support for launching the default system browser on Windows and UNIX (see the constant on net.jsunit.StandaloneTest)
- StandaloneTest now runs tests in all specified browsers, even after an earlier browser failed
- New "config" servlet that shows the configuration as XML of the server
- Distributed Tests now send back an XML document that includes the XML for browser results as opposed to just a "success"/"failure" node
- runner servlet takes a "url" querystring parameter that overrides the server's url property
- test run requests to the JsUnitServer and the FarmServer are queued up and in serial so that different clients don't step on eachother
- addition of new configuration parameter, "closeBrowsersAfterTestRuns", for whether to attempt to close browsers after test runs
- addition of new configuration property, "timeoutSeconds", for how long to time browsers out
- addition of new configuration property, "ignoreUnresponsiveRemoteMachines", for whether to care that remote machines don't uccessfully run the tests
- addition of new configuration property, "description", which contains a human-readable description of the server
- new index.jsp ("/") page
- jsunit.org registered; redirects to edwardh.com/jsunit
BUGS
- fix for "retry test run" bug
- bug 1070436 fixed
- bug with multiple browsers and resultId specified fixed
- Bug 1281427 fixed (test submission for Opera)
- Safari fix
- Bug 1431040 fixed
ECLIPSE PLUGIN
- Eclipse plugin version 1.0
body {
margin-top: 0;
margin-bottom: 0;
font-family: Verdana, Arial, Helvetica, sans-serif;
color: #000;
font-size: 0.8em;
background-color: #fff;
}
a:link, a:visited {
color: #00F;
}
a:hover {
color: #F00;
}
h1 {
font-size: 1.2em;
font-weight: bold;
color: #039;
font-family: Verdana, Arial, Helvetica, sans-serif;
}
h2 {
font-weight: bold;
color: #039;
font-family: Verdana, Arial, Helvetica, sans-serif;
}
h3 {
font-weight: bold;
color: #039;
text-decoration: underline;
font-family: Verdana, Arial, Helvetica, sans-serif;
}
h4 {
font-weight: bold;
color: #039;
font-family: Verdana, Arial, Helvetica, sans-serif;
}
.jsUnitTestResultSuccess {
color: #000;
}
.jsUnitTestResultNotSuccess {
color: #F00;
}
.unselectedTab {
font-family: Verdana, Arial, Helvetica, sans-serif;
height: 26px;
background: #FFFFFF;
border-style: solid;
border-bottom-width: 1px;
border-top-width: 1px;
border-left-width: 1px;
border-right-width: 1px;
}
.selectedTab {
font-family: Verdana, Arial, Helvetica, sans-serif;
height: 26px;
background: #DDDDDD;
font-weight: bold;
border-style: solid;
border-bottom-width: 0px;
border-top-width: 1px;
border-left-width: 1px;
border-right-width: 1px;
}
.tabHeaderSeparator {
height: 26px;
background: #FFFFFF;
border-style: solid;
border-bottom-width: 1px;
border-top-width: 0px;
border-left-width: 0px;
border-right-width: 0px;
}
\ No newline at end of file
content readystate jar:chrome/readystate.jar!/content/ xpcnativewrappers=no
overlay chrome://browser/content/browser.xul chrome://readystate/content/overlay.xul
<?xml version="1.0"?>
<RDF xmlns="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:em="http://www.mozilla.org/2004/em-rdf#">
<Description about="urn:mozilla:install-manifest">
<em:id>readystate@openqa.org</em:id>
<em:type>2</em:type>
<em:name>DocumentReadyState</em:name>
<em:version>1.0</em:version>
<em:description>Provides a mechanism to update the document readyState property</em:description>
<!-- Firefox -->
<em:targetApplication>
<Description>
<em:id>{ec8030f7-c20a-464f-9b0e-13a3a9e97384}</em:id>
<em:minVersion>1.4.1</em:minVersion>
<em:maxVersion>8.0.*</em:maxVersion>
</Description>
</em:targetApplication>
</Description>
</RDF>
<?xml version="1.0"?>
<RDF xmlns="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:em="http://www.mozilla.org/2004/em-rdf#">
<Description about="urn:mozilla:install-manifest">
<em:id>{538F0036-F358-4f84-A764-89FB437166B4}</em:id>
<em:type>2</em:type>
<em:name>KillFF</em:name>
<em:version>1.0</em:version>
<em:description>Provides a chrome URL that can kill the browser</em:description>
<!-- Firefox -->
<em:targetApplication>
<Description>
<em:id>{ec8030f7-c20a-464f-9b0e-13a3a9e97384}</em:id>
<em:minVersion>1.4.1</em:minVersion>
<em:maxVersion>8.0.*</em:maxVersion>
</Description>
</em:targetApplication>
</Description>
</RDF>
<html><body>Firefox should die immediately upon viewing this! If you're reading this, there must be a bug!
<script src="chrome://global/content/globalOverlay.js"></script>
<script>
goQuitApplication();
</script>
</body></html>
content readystate jar:chrome/readystate.jar!/content/ xpcnativewrappers=no
overlay chrome://browser/content/browser.xul chrome://readystate/content/overlay.xul
<?xml version="1.0"?>
<RDF xmlns="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:em="http://www.mozilla.org/2004/em-rdf#">
<Description about="urn:mozilla:install-manifest">
<em:id>readystate@openqa.org</em:id>
<em:type>2</em:type>
<em:name>DocumentReadyState</em:name>
<em:version>1.0</em:version>
<em:description>Provides a mechanism to update the document readyState property</em:description>
<!-- Firefox -->
<em:targetApplication>
<Description>
<em:id>{ec8030f7-c20a-464f-9b0e-13a3a9e97384}</em:id>
<em:minVersion>1.4.1</em:minVersion>
<em:maxVersion>8.0.*</em:maxVersion>
</Description>
</em:targetApplication>
</Description>
</RDF>
<?xml version="1.0"?>
<RDF xmlns="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:em="http://www.mozilla.org/2004/em-rdf#">
<Description about="urn:mozilla:install-manifest">
<em:id>{503A0CD4-EDC8-489b-853B-19E0BAA8F0A4}</em:id>
<em:type>2</em:type>
<em:name>Selenium RC Runner</em:name>
<em:version>1.0</em:version>
<em:description>Provides a chrome URL that can accept commands from Selenium Remote Control</em:description>
<!-- Firefox -->
<em:targetApplication>
<Description>
<em:id>{ec8030f7-c20a-464f-9b0e-13a3a9e97384}</em:id>
<em:minVersion>1.4.1</em:minVersion>
<em:maxVersion>8.0.*</em:maxVersion>
</Description>
</em:targetApplication>
</Description>
</RDF>
<?xml version="1.0"?>
<RDF xmlns="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:em="http://www.mozilla.org/2004/em-rdf#">
<Description about="urn:mozilla:install-manifest">
<em:id>{538F0036-F358-4f84-A764-89FB437166B4}</em:id>
<em:type>2</em:type>
<em:name>KillFF</em:name>
<em:version>1.0</em:version>
<em:description>Provides a chrome URL that can kill the browser</em:description>
<!-- Firefox -->
<em:targetApplication>
<Description>
<em:id>{ec8030f7-c20a-464f-9b0e-13a3a9e97384}</em:id>
<em:minVersion>1.4.1</em:minVersion>
<em:maxVersion>8.0.*</em:maxVersion>
</Description>
</em:targetApplication>
</Description>
</RDF>
<html><body>Firefox should die immediately upon viewing this! If you're reading this, there must be a bug!
<script src="chrome://global/content/globalOverlay.js"></script>
<script>
goQuitApplication();
</script>
</body></html>
{
"host": null,
"port": 4444,
"newSessionWaitTimeout": -1,
"servlets" : [],
"prioritizer": null,
"capabilityMatcher": "org.openqa.grid.internal.utils.DefaultCapabilityMatcher",
"throwOnCapabilityNotPresent": true,
"nodePolling": 5000,
"cleanUpCycle": 5000,
"timeout": 300000,
"maxSession": 5
}
\ No newline at end of file
{
"capabilities":
[
{
"browserName": "firefox",
"maxInstances": 5
},
{
"browserName": "chrome",
"maxInstances": 5
},
{
"browserName": "internet explorer",
"maxInstances": 1
}
],
"configuration":
{
"proxy": "org.openqa.grid.selenium.proxy.WebDriverRemoteProxy",
"maxSession": 5,
"port": 5555,
"host": ip,
"register": true,
"registerCycle": 5000,
"hubPort": 4444
}
}
\ No newline at end of file
role = <hub|remotecontrol|webdriver> (default is no grid, just run an RC/webdriver server). When launching a node for webdriver or remotecontrol, the parameters will be forwarded to the server on the node, so you can use something like -role remotecontrol -trustAllSSLCertificates. In that case, the SeleniumServer will be launch with the trustallSSLCertificates option.
# hub config
host = (hub & node) <IP | hostname> : usually not needed and determined automatically. For exotic network configuration, network with VPN, specifying the host might be necessary.
port = (hub & node) <xxxx> : the port the remote/hub will listen on.Default to 4444.
throwOnCapabilityNotPresent = (hub) <true | false> default to true. If true, the hub will reject test requests right away if no proxy is currently registered that can host that capability.Set it to false to have the request queued until a node supporting the capability is added to the grid.
newSessionWaitTimeout = (hub) <XXXX>. Default to no timeout ( -1 ) the time in ms after which a new test waiting for a node to become available will time out.When that happens, the test will throw an exception before starting a browser.
capabilityMatcher = (hub) a class implementing the CapabilityMatcher interface. Defaults to org.openqa.grid.internal.utils.DefaultCapabilityMatcher. Specify the logic the hub will follow to define if a request can be assigned to a node.Change this class if you want to have the matching process use regular expression insted of exact match for the version of the browser for instance.
prioritizer = (hub) a class implementing the Prioritizer interface. Default to null ( no priority = FIFO ).Specify a custom prioritizer if you need the grid to process the tests from the CI, or the IE tests first for instance.
servlets = (hub & node) <com.mycompany.MyServlet,com.mycompany.MyServlet2> to register a new servlet on the hub/node. The servlet will accessible under the path /grid/admin/MyServlet /grid/admin/MyServlet2
grid1Yml = (hub) a YML file following grid1 format.
hubConfig = (hub) a JSON file following grid2 format.
# config that will be inherited by the proxy and used for the node management.
cleanupCycle = (node) <XXXX> in ms. How often a proxy will check for timed out thread.
nodeTimeout = (node) <XXXX> the timeout in seconds before the hub automatically ends a test that hasn't had aby activity than XX sec.The browser will be released for another test to use.This typically takes care of the client crashes.
hub = (node) <http://localhost:4444/grid/register> : the url that will be used to post the registration request.
proxy = (node) the class that will be used to represent the node. By default org.openqa.grid.selenium.proxy.SeleniumRemoteProxy ( selenium1 / RC ) org.openqa.grid.selenium.proxy.WebDriverRemoteProxy ( selenium2 / webdriver )
maxSession = (node) max number of tests that can run at the same time on the node, independently of the browser used.
registerCycle = (node) how often in ms the node will try to register itself again.Allow to restart the hub without having to restart the nodes.
nodePolling = (node) how often the hub checks if the node is still alive.
\ No newline at end of file
JsUnit 22.2 alpha 11
\ No newline at end of file
[$Version]
update_info=kfmclient_3_2.upd:kfmclient_3_2
[FMSettings]
AlwaysNewWin=false
HomeURL=~
RenameIconDirectly=false
ShowFileTips=true
ShowPreviewsInFileTips=true
[HTML Settings]
AutomaticDetectionLanguage=0
[Java/JavaScript Settings]
AppletServerTimeout=60
ECMADomains=
EnableJava=true
EnableJavaScript=true
EnableJavaScriptDebug=false
JavaArgs=
JavaDomains=
JavaPath=java
ReportJavaScriptErrors=false
ShutdownAppletServer=true
UseKio=false
UseSecurityManager=true
WindowFocusPolicy=0
WindowMovePolicy=0
WindowOpenPolicy=0
WindowResizePolicy=0
WindowStatusPolicy=0
[KFileDialog Settings]
Recent Files=$HOME/proxy.pac,$HOME/wpad.dat,/mnt/hgfs/DiskC/Documents and Settings/jxiong/Local Settings/Temp/customProfileDirCUSTFFCHROME/proxy.pac
[KonqMainWindow Toolbar Speech Toolbar]
IconText=IconOnly
Index=4
[KonqMainWindow Toolbar bookmarkToolBar]
Hidden=true
IconText=IconTextRight
Index=3
[KonqMainWindow Toolbar extraToolBar]
IconText=IconOnly
Index=0
[KonqMainWindow Toolbar locationToolBar]
IconText=IconOnly
Index=2
[KonqMainWindow Toolbar mainToolBar]
Index=1
[Notification Messages]
plugin-application/x-shockwave-flash=no
[Socks]
SOCKS_lib_path=
[Trash]
ConfirmDelete=true
ConfirmTrash=true
/*--
$Id: JDOM_license.txt 2140 2006-04-25 07:41:01Z ddeboer $
Copyright (C) 2000-2003 Jason Hunter & Brett McLaughlin.
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
1. Redistributions of source code must retain the above copyright
notice, this list of conditions, and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright
notice, this list of conditions, and the disclaimer that follows
these conditions in the documentation and/or other materials
provided with the distribution.
3. The name "JDOM" must not be used to endorse or promote products
derived from this software without prior written permission. For
written permission, please contact <license AT jdom DOT org>.
4. Products derived from this software may not be called "JDOM", nor
may "JDOM" appear in their name, without prior written permission
from the JDOM Project Management <pm AT jdom DOT org>.
In addition, we request (but do not require) that you include in the
end-user documentation provided with the redistribution and/or in the
software itself an acknowledgement equivalent to the following:
"This product includes software developed by the
JDOM Project (http://www.jdom.org/)."
Alternatively, the acknowledgment may be graphical using the logos
available at http://www.jdom.org/images/logos.
THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE JDOM AUTHORS OR THE PROJECT
CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
SUCH DAMAGE.
This software consists of voluntary contributions made by many
individuals on behalf of the JDOM Project and was originally
created by Jason Hunter <jhunter AT jdom DOT org> and
Brett McLaughlin <brett AT jdom DOT org>. For more information on
the JDOM Project, please see <http://www.jdom.org/>.
*/
<HTML>
<HEAD>
<TITLE>Jetty License</TITLE>
</HEAD>
<BODY BGCOLOR="#FFFFFF">
<FONT FACE=ARIAL,HELVETICA>
<CENTER><FONT SIZE=+3><B>Jetty License</B></FONT></CENTER>
<CENTER><FONT SIZE=-1><B>$Revision: 2140 $</B></FONT></CENTER>
<B>Preamble:</B>
<p>
The intent of this document is to state the conditions under which the
Jetty Package may be copied, such that the Copyright Holder maintains some
semblance of control over the development of the package, while giving the
users of the package the right to use, distribute and make reasonable
modifications to the Package in accordance with the goals and ideals of
the Open Source concept as described at
<A HREF="http://www.opensource.org">http://www.opensource.org</A>.
<P>
It is the intent of this license to allow commercial usage of the Jetty
package, so long as the source code is distributed or suitable visible
credit given or other arrangements made with the copyright holders.
<P><B>Definitions:</B>
<P>
<UL>
<LI> "Jetty" refers to the collection of Java classes that are
distributed as a HTTP server with servlet capabilities and
associated utilities.
<p>
<LI> "Package" refers to the collection of files distributed by the
Copyright Holder, and derivatives of that collection of files
created through textual modification.
<P>
<LI> "Standard Version" refers to such a Package if it has not been
modified, or has been modified in accordance with the wishes
of the Copyright Holder.
<P>
<LI> "Copyright Holder" is whoever is named in the copyright or
copyrights for the package. <BR>
Mort Bay Consulting Pty. Ltd. (Australia) is the "Copyright
Holder" for the Jetty package.
<P>
<LI> "You" is you, if you're thinking about copying or distributing
this Package.
<P>
<LI> "Reasonable copying fee" is whatever you can justify on the
basis of media cost, duplication charges, time of people involved,
and so on. (You will not be required to justify it to the
Copyright Holder, but only to the computing community at large
as a market that must bear the fee.)
<P>
<LI> "Freely Available" means that no fee is charged for the item
itself, though there may be fees involved in handling the item.
It also means that recipients of the item may redistribute it
under the same conditions they received it.
<P>
</UL>
0. The Jetty Package is Copyright (c) Mort Bay Consulting Pty. Ltd.
(Australia) and others. Individual files in this package may contain
additional copyright notices. The javax.servlet packages are copyright
Sun Microsystems Inc. <P>
1. The Standard Version of the Jetty package is
available from <A HREF=http://jetty.mortbay.org>http://jetty.mortbay.org</A>.
<P>
2. You may make and distribute verbatim copies of the source form
of the Standard Version of this Package without restriction, provided that
you include this license and all of the original copyright notices
and associated disclaimers.
<P>
3. You may make and distribute verbatim copies of the compiled form of the
Standard Version of this Package without restriction, provided that you
include this license.
<P>
4. You may apply bug fixes, portability fixes and other modifications
derived from the Public Domain or from the Copyright Holder. A Package
modified in such a way shall still be considered the Standard Version.
<P>
5. You may otherwise modify your copy of this Package in any way, provided
that you insert a prominent notice in each changed file stating how and
when you changed that file, and provided that you do at least ONE of the
following:
<P>
<BLOCKQUOTE>
a) Place your modifications in the Public Domain or otherwise make them
Freely Available, such as by posting said modifications to Usenet or
an equivalent medium, or placing the modifications on a major archive
site such as ftp.uu.net, or by allowing the Copyright Holder to include
your modifications in the Standard Version of the Package.<P>
b) Use the modified Package only within your corporation or organization.
<P>
c) Rename any non-standard classes so the names do not conflict
with standard classes, which must also be provided, and provide
a separate manual page for each non-standard class that clearly
documents how it differs from the Standard Version.
<P>
d) Make other arrangements with the Copyright Holder.
<P>
</BLOCKQUOTE>
6. You may distribute modifications or subsets of this Package in source
code or compiled form, provided that you do at least ONE of the following:<P>
<BLOCKQUOTE>
a) Distribute this license and all original copyright messages, together
with instructions (in the about dialog, manual page or equivalent) on where
to get the complete Standard Version.<P>
b) Accompany the distribution with the machine-readable source of
the Package with your modifications. The modified package must include
this license and all of the original copyright notices and associated
disclaimers, together with instructions on where to get the complete
Standard Version.
<P>
c) Make other arrangements with the Copyright Holder.
<P>
</BLOCKQUOTE>
7. You may charge a reasonable copying fee for any distribution of this
Package. You may charge any fee you choose for support of this Package.
You may not charge a fee for this Package itself. However,
you may distribute this Package in aggregate with other (possibly
commercial) programs as part of a larger (possibly commercial) software
distribution provided that you meet the other distribution requirements
of this license.<P>
8. Input to or the output produced from the programs of this Package
do not automatically fall under the copyright of this Package, but
belong to whomever generated them, and may be sold commercially, and
may be aggregated with this Package.
<P>
9. Any program subroutines supplied by you and linked into this Package
shall not be considered part of this Package.
<P>
10. The name of the Copyright Holder may not be used to endorse or promote
products derived from this software without specific prior written
permission.
<P>
11. This license may change with each release of a Standard Version of
the Package. You may choose to use the license associated with version
you are using or the license of the latest Standard Version.
<P>
12. THIS PACKAGE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR
IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
<P>
13. If any superior law implies a warranty, the sole remedy under such shall
be , at the Copyright Holders option either a) return of any price paid or
b) use or reasonable endeavours to repair or replace the software.
<P>
14. This license shall be read under the laws of Australia.
<P>
<center>The End</center>
<center><FONT size=-1>This license was derived from the <I>Artistic</I> license published
on <a href=http://www.opensource.org>http://www.opensource.com</a></font></center>
</FONT>
This diff is collapsed.
This diff is collapsed.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<!-- JsUnit -->
<!-- ***** BEGIN LICENSE BLOCK *****
- Version: MPL 1.1/GPL 2.0/LGPL 2.1
-
- The contents of this file are subject to the Mozilla Public License Version
- 1.1 (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.mozilla.org/MPL/
-
- Software distributed under the License is distributed on an "AS IS" basis,
- WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
- for the specific language governing rights and limitations under the
- License.
-
- The Original Code is Edward Hieatt code.
-
- The Initial Developer of the Original Code is
- Edward Hieatt, edward@jsunit.net.
- Portions created by the Initial Developer are Copyright (C) 2001
- the Initial Developer. All Rights Reserved.
-
- Contributor(s):
- Edward Hieatt, edward@jsunit.net (original author)
- Bob Clary, bc@bclary.comn
-
- Alternatively, the contents of this file may be used under the terms of
- either the GNU General Public License Version 2 or later (the "GPL"), or
- the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
- in which case the provisions of the GPL or the LGPL are applicable instead
- of those above. If you wish to allow use of your version of this file only
- under the terms of either the GPL or the LGPL, and not to allow others to
- use your version of this file under the terms of the MPL, indicate your
- decision by deleting the provisions above and replace them with the notice
- and other provisions required by the LGPL or the GPL. If you do not delete
- the provisions above, a recipient may use your version of this file under
- the terms of any one of the MPL, the GPL or the LGPL.
-
- ***** END LICENSE BLOCK ***** -->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Licensing</title>
<link rel="stylesheet" type="text/css" href="../app/css/jsUnitStyle.css">
</head>
<body>
<table width="100%" cellpadding="0" cellspacing="0" border="1" summary="jsUnit Information">
<tr>
<th align="center" valign="top"><h1>JsUnit Licenses</h1></th>
<td align="right" valign="top">
<a href="http://www.jsunit.net/" target="_blank">JsUnit Home</a><br>
<a href="mailto:edward@jsunit.net">edward@jsunit.net</a><br>
</tr>
</table>
<p><h2>Third-party licenses:</h2>
<ul>
<li>JDOM: Portions of this software are copyright Copyright (C) 2000-2003 Jason Hunter & Brett McLaughlin. All
rights reserved. See <a href="JDOM_license.txt">JDOM_license.txt</a>.
<li>Jetty: Portions of this software are copyright � Mort Bay Consulting Pty. Ltd. (Australia) and others. All
Rights Reserved. See <a href="Jetty_license.html">Jetty_license.html</a>.
<li>Individual files in this package may contain additional copyright notices. The javax.servlet packages are
copyright Sun Microsystems Inc. All Rights Reserved.
</ul>
</p>
<p><h2>JsUnit licenses:</h2>
JsUnit is licensed under 3 different licenses giving you the freedom
to use, modify and distribute JsUnit in a variety of fashions.
</p>
<ol>
<li>
<p><a href="MPL-1.1.txt">Mozilla Public License 1.1</a></p>
<p>See <a href="http://www.mozilla.org/MPL/">mozilla.org</a>
for more details.</p>
</li>
<li>
<p><a href="gpl-2.txt">GNU Public License 2</a></p>
<p>See <a href="http://www.gnu.org/licenses/licenses.html">www.gnu.org</a>
for more details.</p>
</li>
<li>
<p><a href="lgpl-2.1.txt">GNU Lesser Public License 2.1</a></p>
<p>See <a href="http://www.gnu.org/licenses/licenses.html">www.gnu.org</a>
for more details.</p>
</li>
</ol>
<p>
Every Java and JavaScript source file in this distribution should be considered to be under the following licensing
terms.
<pre>
***** BEGIN LICENSE BLOCK *****
- Version: MPL 1.1/GPL 2.0/LGPL 2.1
-
- The contents of this file are subject to the Mozilla Public License Version
- 1.1 (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.mozilla.org/MPL/
-
- Software distributed under the License is distributed on an "AS IS" basis,
- WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
- for the specific language governing rights and limitations under the
- License.
-
- The Original Code is Edward Hieatt code.
-
- The Initial Developer of the Original Code is
- Edward Hieatt, edward@jsunit.net.
- Portions created by the Initial Developer are Copyright (C) 2003
- the Initial Developer. All Rights Reserved.
-
- Author Edward Hieatt, edward@jsunit.net
-
- Alternatively, the contents of this file may be used under the terms of
- either the GNU General Public License Version 2 or later (the "GPL"), or
- the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
- in which case the provisions of the GPL or the LGPL are applicable instead
- of those above. If you wish to allow use of your version of this file only
- under the terms of either the GPL or the LGPL, and not to allow others to
- use your version of this file under the terms of the MPL, indicate your
- decision by deleting the provisions above and replace them with the notice
- and other provisions required by the LGPL or the GPL. If you do not delete
- the provisions above, a recipient may use your version of this file under
- the terms of any one of the MPL, the GPL or the LGPL.
-
- ***** END LICENSE BLOCK *****
</pre>
</p>
</body>
</html>
This diff is collapsed.
/* ***** BEGIN LICENSE BLOCK *****
* Version: MPL 1.1/GPL 2.0/LGPL 2.1
*
* The contents of this file are subject to the Mozilla Public License Version
* 1.1 (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.mozilla.org/MPL/
*
* Software distributed under the License is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
* for the specific language governing rights and limitations under the
* License.
*
* The Original Code is __________________________________________.
*
* The Initial Developer of the Original Code is
* ____________________________________________.
* Portions created by the Initial Developer are Copyright (C) 2___
* the Initial Developer. All Rights Reserved.
*
* Contributor(s):
*
* Alternatively, the contents of this file may be used under the terms of
* either the GNU General Public License Version 2 or later (the "GPL"), or
* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
* in which case the provisions of the GPL or the LGPL are applicable instead
* of those above. If you wish to allow use of your version of this file only
* under the terms of either the GPL or the LGPL, and not to allow others to
* use your version of this file under the terms of the MPL, indicate your
* decision by deleting the provisions above and replace them with the notice
* and other provisions required by the GPL or the LGPL. If you do not delete
* the provisions above, a recipient may use your version of this file under
* the terms of any one of the MPL, the GPL or the LGPL.
*
* ***** END LICENSE BLOCK ***** */
<!-- ***** BEGIN LICENSE BLOCK *****
- Version: MPL 1.1/GPL 2.0/LGPL 2.1
-
- The contents of this file are subject to the Mozilla Public License Version
- 1.1 (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.mozilla.org/MPL/
-
- Software distributed under the License is distributed on an "AS IS" basis,
- WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
- for the specific language governing rights and limitations under the
- License.
-
- The Original Code is __________________________________________.
-
- The Initial Developer of the Original Code is
- ____________________________________________.
- Portions created by the Initial Developer are Copyright (C) 2___
- the Initial Developer. All Rights Reserved.
-
- Contributor(s):
-
- Alternatively, the contents of this file may be used under the terms of
- either the GNU General Public License Version 2 or later (the "GPL"), or
- the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
- in which case the provisions of the GPL or the LGPL are applicable instead
- of those above. If you wish to allow use of your version of this file only
- under the terms of either the GPL or the LGPL, and not to allow others to
- use your version of this file under the terms of the MPL, indicate your
- decision by deleting the provisions above and replace them with the notice
- and other provisions required by the LGPL or the GPL. If you do not delete
- the provisions above, a recipient may use your version of this file under
- the terms of any one of the MPL, the GPL or the LGPL.
-
- ***** END LICENSE BLOCK ***** -->
JsUnit
Copyright (C) 2001-6 Edward Hieatt, edward@jsunit.net
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
Please see http://www.jsunit.net/ for JsUnit documentation and
the "licenses" directory for license information.
\ No newline at end of file
-----BEGIN X509 CRL-----
MIIBMTCBmwIBATANBgkqhkiG9w0BAQUFADBZMRowGAYDVQQKDBFDeWJlclZpbGxp
YW5zLmNvbTEuMCwGA1UECwwlQ3liZXJWaWxsaWFucyBDZXJ0aWZpY2F0aW9uIEF1
dGhvcml0eTELMAkGA1UEBhMCVVMXDTExMDQwNjE4MDkzM1oXDTM4MDgyMjE4MDkz
M1qgDjAMMAoGA1UdFAQDAgECMA0GCSqGSIb3DQEBBQUAA4GBAF5UZY3sD/weyCFy
K3SAQ5K+LOsq5osj8sQxnfvvduPV0Kx0wO2ZHEe21QDZJKcrGXg4YhG8jP4P1cqE
QEs58pKCLdwjpaWtv1yxqF+qRORM3zcL5a9pZ8KHp+RFRJ2IoZtxEo+9xXrvxAVc
b0GGcPYJLa3jis++qLowCQFjwMo8
-----END X509 CRL-----
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>JsUnit Test Runner</title>
<script language="JavaScript" type="text/javascript" src="app/xbDebug.js"></script>
<script language="JavaScript" type="text/javascript" src="app/jsUnitCore.js"></script>
<script language="JavaScript" type="text/javascript">
var DEFAULT_TEST_FRAME_HEIGHT = 250;
function jsUnitParseParms(string) {
var i;
var searchString = unescape(string);
var parameterHash = new Object();
if (!searchString) {
return parameterHash;
}
i = searchString.indexOf('?');
if (i != -1) {
searchString = searchString.substring(i + 1);
}
var parmList = searchString.split('&');
var a;
for (i = 0; i < parmList.length; i++) {
a = parmList[i].split('=');
a[0] = a[0].toLowerCase();
if (a.length > 1) {
parameterHash[a[0]] = a[1];
}
else {
parameterHash[a[0]] = true;
}
}
return parameterHash;
}
function jsUnitConstructTestParms() {
var p;
var parms = '';
for (p in jsUnitParmHash) {
var value = jsUnitParmHash[p];
if (!value ||
p == 'testpage' ||
p == 'autorun' ||
p == 'submitresults' ||
p == 'showtestframe' ||
p == 'resultid') {
continue;
}
if (parms) {
parms += '&';
}
parms += p;
if (typeof(value) != 'boolean') {
parms += '=' + value;
}
}
return escape(parms);
}
var jsUnitParmHash = jsUnitParseParms(document.location.search);
// set to true to turn debugging code on, false to turn it off.
xbDEBUG.on = jsUnitGetParm('debug') ? true : false;
</script>
<script language="JavaScript" type="text/javascript" src="app/jsUnitTestManager.js"></script>
<script language="JavaScript" type="text/javascript" src="app/jsUnitTracer.js"></script>
<script language="JavaScript" type="text/javascript" src="app/jsUnitTestSuite.js"></script>
<script language="JavaScript" type="text/javascript">
var testManager;
var utility;
var tracer;
if (!Array.prototype.push) {
Array.prototype.push = function (anObject) {
this[this.length] = anObject;
}
}
if (!Array.prototype.pop) {
Array.prototype.pop = function () {
if (this.length > 0) {
delete this[this.length - 1];
this.length--;
}
}
}
function shouldKickOffTestsAutomatically() {
return jsUnitGetParm('autorun') == "true";
}
function shouldShowTestFrame() {
return jsUnitGetParm('showtestframe');
}
function shouldSubmitResults() {
return jsUnitGetParm('submitresults');
}
function getResultId() {
if (jsUnitGetParm('resultid'))
return jsUnitGetParm('resultid');
return "";
}
function submitResults() {
window.mainFrame.mainData.document.testRunnerForm.runButton.disabled = true;
window.mainFrame.mainResults.populateHeaderFields(getResultId(), navigator.userAgent, JSUNIT_VERSION, testManager.resolveUserEnteredTestFileName());
window.mainFrame.mainResults.submitResults();
}
function wasResultUrlSpecified() {
return shouldSubmitResults() && jsUnitGetParm('submitresults') != 'true';
}
function getSpecifiedResultUrl() {
return jsUnitGetParm('submitresults');
}
function init() {
var testRunnerFrameset = document.getElementById('testRunnerFrameset');
if (shouldShowTestFrame() && testRunnerFrameset) {
var testFrameHeight;
if (jsUnitGetParm('showtestframe') == 'true')
testFrameHeight = DEFAULT_TEST_FRAME_HEIGHT;
else
testFrameHeight = jsUnitGetParm('showtestframe');
testRunnerFrameset.rows = '*,0,' + testFrameHeight;
}
testManager = new jsUnitTestManager();
tracer = new JsUnitTracer(testManager);
if (shouldKickOffTestsAutomatically()) {
window.mainFrame.mainData.kickOffTests();
}
}
</script>
</head>
<frameset id="testRunnerFrameset" rows="*,0,0" border="0" onload="init()">
<frame frameborder="0" name="mainFrame" src="./app/main-frame.html">
<frame frameborder="0" name="documentLoader" src="./app/main-loader.html">
<frame frameborder="0" name="testContainer" src="./app/testContainer.html">
<noframes>
<body>
<p>Sorry, JsUnit requires support for frames.</p>
</body>
</noframes>
</frameset>
</html>
\ No newline at end of file
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment