| <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> |