<script language="JavaScript"> | |
if (window["selenium_has_been_loaded_into_this_window"]==null) | |
{ | |
__SELENIUM_JS__ | |
// Some background on the code below: broadly speaking, where we are relative to other windows | |
// when running in proxy injection mode depends on whether we are in a frame set file or not. | |
// | |
// In regular HTML files, the selenium JavaScript is injected into an iframe called "selenium" | |
// in order to reduce its impact on the JavaScript environment (through namespace pollution, | |
// etc.). So in regular HTML files, we need to look at the parent of the current window when we want | |
// a handle to, e.g., the application window. | |
// | |
// In frame set files, we can't use an iframe, so we put the JavaScript in the head element and share | |
// the window with the frame set. So in this case, we need to look at the current window, not the | |
// parent when looking for, e.g., the application window. (TODO: Perhaps I should have just | |
// assigned a regular frame for selenium?) | |
// | |
BrowserBot.prototype.getContentWindow = function() { | |
return window; | |
}; | |
BrowserBot.prototype.getTargetWindow = function(windowName) { | |
return window; | |
}; | |
BrowserBot.prototype.getCurrentWindow = function() { | |
return window; | |
}; | |
LOG.openLogWindow = function(message, className) { | |
// disable for now | |
}; | |
BrowserBot.prototype.relayToRC = function(name) { | |
var object = eval(name); | |
var s = 'state:' + serializeObject(name, object) + "\n"; | |
sendToRC(s,"state=true"); | |
} | |
function selenium_frameRunTest(oldOnLoadRoutine) { | |
if (oldOnLoadRoutine) { | |
eval(oldOnLoadRoutine); | |
} | |
runSeleniumTest(); | |
} | |
function seleniumOnLoad() { | |
injectedSessionId = "@SESSION_ID@"; | |
window["selenium_has_been_loaded_into_this_window"] = true; | |
runSeleniumTest(); | |
} | |
function seleniumOnUnload() { | |
sendToRC("Current window or frame is closed!", "closing=true"); | |
} | |
if (window.addEventListener) { | |
window.addEventListener("load", seleniumOnLoad, false); // firefox | |
window.addEventListener("unload", seleniumOnUnload, false); // firefox | |
} else if (window.attachEvent){ | |
window.attachEvent("onload", seleniumOnLoad); // IE | |
window.attachEvent("onunload", seleniumOnUnload); // IE | |
} | |
else { | |
throw "causing a JavaScript error to tell the world that I did not arrange to be run on load"; | |
} | |
injectedSessionId = "@SESSION_ID@"; | |
proxyInjectionMode = true; | |
} | |
</script> |