summaryrefslogtreecommitdiff
path: root/lib/dojo/robotx.js
diff options
context:
space:
mode:
Diffstat (limited to 'lib/dojo/robotx.js')
-rw-r--r--lib/dojo/robotx.js173
1 files changed, 0 insertions, 173 deletions
diff --git a/lib/dojo/robotx.js b/lib/dojo/robotx.js
deleted file mode 100644
index 3a07c6903..000000000
--- a/lib/dojo/robotx.js
+++ /dev/null
@@ -1,173 +0,0 @@
-/*
- Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
- Available via Academic Free License >= 2.1 OR the modified BSD license.
- see: http://dojotoolkit.org/license for details
-*/
-
-
-if(!dojo._hasResource["dojo.robotx"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code.
-dojo._hasResource["dojo.robotx"] = true;
-dojo.provide("dojo.robotx");
-dojo.require("dojo.robot");
-
-
-dojo.experimental("dojo.robotx");
-
-// loads an external app into an iframe and points dojo.doc to the iframe document, allowing the robot to control it
-// to use: set robotURL in djConfig to the URL you want to load
-// dojo.require this file
-
-(function(){
-
-var iframe = null;
-
-var groupStarted=dojo.connect(doh, '_groupStarted', function(){
- dojo.disconnect(groupStarted);
- iframe.style.visibility="visible";
-});
-
-var attachIframe = function(){
- dojo.addOnLoad(function(){
- var emptyStyle = {
- overflow: dojo.isWebKit? 'hidden' : 'visible',
- margin: '0px',
- borderWidth: '0px',
- height: '100%',
- width: '100%'
- };
- dojo.style(document.documentElement, emptyStyle);
- dojo.style(document.body, emptyStyle);
- document.body.appendChild(iframe);
- var base=document.createElement('base');
- base.href=iframe.src;
- document.getElementsByTagName("head")[0].appendChild(base);
- });
-};
-
-// Prevent race conditions between iframe loading and robot init.
-// If iframe is allowed to load while the robot is typing, sync XHRs can prevent the robot from completing its initialization.
-var robotReady=false;
-var robotFrame=null;
-var _run=doh.robot._run;
-doh.robot._run=function(frame){
- // Called from robot when the robot completed its initialization.
- robotReady = true;
- robotFrame = frame;
- doh.robot._run=_run;
- // If initRobot was already called, then attach the iframe.
- if(iframe.src){ attachIframe(); }
-}
-
-var onIframeLoad=function(){
- // initial load handler: update the document and start the tests
- doh.robot._updateDocument();
- onIframeLoad = null;
- var scrollRoot = (document.compatMode == 'BackCompat')? document.body : document.documentElement;
- var consoleHeight = document.getElementById('robotconsole').offsetHeight;
- if(consoleHeight){
- iframe.style.height = (scrollRoot.clientHeight - consoleHeight)+"px";
- }
- // If dojo is present in the test case, then at least make a best effort to wait for it to load.
- // The test must handle other race conditions like initial data queries by itself.
- if(iframe.contentWindow.dojo){
- iframe.contentWindow.dojo.addOnLoad(function(){
- doh.robot._run(robotFrame);
- });
- }else{
- doh.robot._run(robotFrame);
- }
-};
-
-var iframeLoad=function(){
- if(onIframeLoad){
- onIframeLoad();
- }
- var unloadConnect = dojo.connect(dojo.body(), 'onunload', function(){
- dojo.global = window;
- dojo.doc = document;
- dojo.disconnect(unloadConnect);
- });
-};
-
-// write the firebug console to a place it will fit
-dojo.config.debugContainerId = "robotconsole";
-dojo.config.debugHeight = dojo.config.debugHeight || 200;
-document.write('<div id="robotconsole" style="position:absolute;left:0px;bottom:0px;width:100%;"></div>');
-
-// write the iframe
-//document.writeln('<iframe id="robotapplication" style="visibility:hidden; border:0px none; padding:0px; margin:0px; position:absolute; left:0px; top:0px; width:100%; height:100%; z-index: 1;" src="'+dojo.config.robotURL+'" onload="iframeLoad();" ></iframe>');
-iframe = document.createElement('iframe');
-iframe.setAttribute("ALLOWTRANSPARENCY","true");
-iframe.scrolling = dojo.isIE? "yes" : "auto";
-dojo.style(iframe,{visibility:'hidden', border:'0px none', padding:'0px', margin:'0px', position:'absolute', left:'0px', top:'0px', width:'100%', height:'100%'});
-if(iframe['attachEvent'] !== undefined){
- iframe.attachEvent('onload', iframeLoad);
-}else{
- dojo.connect(iframe, 'onload', iframeLoad);
-}
-
-
-
-
-dojo.mixin(doh.robot,{
- _updateDocument: function(){
- dojo.setContext(iframe.contentWindow, iframe.contentWindow.document);
- var win = dojo.global;
- if(win["dojo"]){
- // allow the tests to subscribe to topics published by the iframe
- dojo._topics = win.dojo._topics;
- }
-
- },
-
- initRobot: function(/*String*/ url){
- // summary:
- // Opens the application at the specified URL for testing, redirecting dojo to point to the application environment instead of the test environment.
- //
- // url:
- // URL to open. Any of the test's dojo.doc calls (e.g. dojo.byId()), and any dijit.registry calls (e.g. dijit.byId()) will point to elements and widgets inside this application.
- //
-
- iframe.src=url;
- // see above note about race conditions
- if(robotReady){
- attachIframe();
-
- }
- },
-
- waitForPageToLoad: function(/*Function*/ submitActions){
- // summary:
- // Notifies DOH that the doh.robot is about to make a page change in the application it is driving,
- // returning a doh.Deferred object the user should return in their runTest function as part of a DOH test.
- //
- // description:
- // Notifies DOH that the doh.robot is about to make a page change in the application it is driving,
- // returning a doh.Deferred object the user should return in their runTest function as part of a DOH test.
- // Example:
- // runTest:function(){
- // return waitForPageLoad(function(){ doh.robot.keyPress(dojo.keys.ENTER, 500); });
- // }
- //
- // submitActions:
- // The doh.robot will execute the actions the test passes into the submitActions argument (like clicking the submit button),
- // expecting these actions to create a page change (like a form submit).
- // After these actions execute and the resulting page loads, the next test will start.
- //
-
- var d = new doh.Deferred();
- // create iframe event handler to track submit progress
- onIframeLoad = function(){
- onIframeLoad = null;
- // set dojo.doc on every page change to point to the iframe doc so the robot works
- doh.robot._updateDocument();
- d.callback(true);
- };
- submitActions();
- return d;
- }
-
-});
-})();
-
-}