1
0
mirror of https://git.tt-rss.org/git/tt-rss.git synced 2025-12-19 02:41:30 +00:00

upgrade Dojo to 1.6.1

This commit is contained in:
Andrew Dolgov
2011-11-08 20:40:44 +04:00
parent 870a70e109
commit 81bea17aef
680 changed files with 51915 additions and 74107 deletions

View File

@@ -1,5 +1,5 @@
/*
Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved.
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
*/
@@ -9,6 +9,8 @@ if(!dojo._hasResource["dojo.robotx"]){ //_hasResource checks added by build. Do
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
@@ -16,18 +18,48 @@ dojo.experimental("dojo.robotx");
// dojo.require this file
(function(){
// have to wait for test page to load before testing!
doh.robot._runsemaphore.lock.push("dojo.robotx.lock");
var iframe = document.getElementById('robotapplication');
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(){
//iframe = document.getElementById('robotapplication');
// initial load handler: update the document and start the tests
doh.robot._updateDocument();
onIframeLoad = null;
var scrollRoot = (document.compatMode == 'BackCompat')? document.body : document.documentElement;
@@ -35,7 +67,15 @@ var onIframeLoad=function(){
if(consoleHeight){
iframe.style.height = (scrollRoot.clientHeight - consoleHeight)+"px";
}
doh.run();
// 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(){
@@ -66,6 +106,9 @@ if(iframe['attachEvent'] !== undefined){
dojo.connect(iframe, 'onload', iframeLoad);
}
dojo.mixin(doh.robot,{
_updateDocument: function(){
dojo.setContext(iframe.contentWindow, iframe.contentWindow.document);
@@ -84,22 +127,13 @@ dojo.mixin(doh.robot,{
// 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;
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=url;
document.getElementsByTagName("head")[0].appendChild(base);
});
// see above note about race conditions
if(robotReady){
attachIframe();
}
},
waitForPageToLoad: function(/*Function*/ submitActions){
@@ -134,7 +168,6 @@ dojo.mixin(doh.robot,{
}
});
})();
}