]> git.pond.sub.org Git - eow/blobdiff - static/dojo-release-1.1.1/util/doh/_browserRunner.js
Replace Dojo with jQuery
[eow] / static / dojo-release-1.1.1 / util / doh / _browserRunner.js
diff --git a/static/dojo-release-1.1.1/util/doh/_browserRunner.js b/static/dojo-release-1.1.1/util/doh/_browserRunner.js
deleted file mode 100644 (file)
index 9e9e3f3..0000000
+++ /dev/null
@@ -1,465 +0,0 @@
-if(window["dojo"]){
-       dojo.provide("doh._browserRunner");
-}
-
-// FIXME: need to add prompting for monkey-do testing
-// FIXME: need to implement progress bar
-// FIXME: need to implement errors in progress bar
-
-(function(){
-       if(window.parent == window){
-               // we're the top-dog window.
-
-               // borrowed from Dojo, etc.
-               var byId = function(id){
-                       return document.getElementById(id);
-               }
-
-               var _addOnEvt = function(       type,           // string
-                                                                       refOrName,      // function or string
-                                                                       scope){         // object, defaults is window
-
-                       if(!scope){ scope = window; }
-
-                       var funcRef = refOrName;
-                       if(typeof refOrName == "string"){
-                               funcRef = scope[refOrName];
-                       }
-                       var enclosedFunc = function(){ return funcRef.apply(scope, arguments); };
-
-                       if((window["dojo"])&&(type == "load")){
-                               dojo.addOnLoad(enclosedFunc);
-                       }else{
-                               if(window["attachEvent"]){
-                                       window.attachEvent("on"+type, enclosedFunc);
-                               }else if(window["addEventListener"]){
-                                       window.addEventListener(type, enclosedFunc, false);
-                               }else if(document["addEventListener"]){
-                                       document.addEventListener(type, enclosedFunc, false);
-                               }
-                       }
-               };
-
-               //
-               // Over-ride or implement base runner.js-provided methods
-               //
-               var _logBacklog = [];
-               var sendToLogPane = function(args, skip){
-                       var msg = "";
-                       for(var x=0; x<args.length; x++){
-                               msg += " "+args[x];
-                       }
-                       // workarounds for IE. Wheeee!!!
-                       msg = msg.replace("\t", "&nbsp;&nbsp;&nbsp;&nbsp;");
-                       msg = msg.replace(" ", "&nbsp;");
-                       msg = msg.replace("\n", "<br>&nbsp;");
-                       if(!byId("logBody")){
-                               _logBacklog.push(msg);
-                               return;
-                       }else if((_logBacklog.length)&&(!skip)){
-                               var tm;
-                               while(tm=_logBacklog.shift()){
-                                       sendToLogPane(tm, true);
-                               }
-                       }
-                       var tn = document.createElement("div");
-                       tn.innerHTML = msg;
-                       byId("logBody").appendChild(tn);
-               }
-
-               doh._init = (function(oi){
-                       return function(){
-                               var lb = byId("logBody");
-                               if(lb){
-                                       // clear the console before each run
-                                       while(lb.firstChild){
-                                               lb.removeChild(lb.firstChild);
-                                       }
-                               }
-                               oi.apply(doh, arguments);
-                       }
-               })(doh._init);
-
-               if(this["opera"] && opera.postError){
-                       doh.debug = function(){
-                               var msg = "";
-                               for(var x=0; x<arguments.length; x++){
-                                       msg += " "+arguments[x];
-                               }
-                               sendToLogPane([msg]);
-                               opera.postError("DEBUG:"+msg);
-                       }
-               }else if(window["console"]){
-                       if(console.info){
-                               doh.debug = function(){
-                                       sendToLogPane.call(window, arguments);
-                                       console.debug.apply(console, arguments);
-                               }
-                       }else{
-                               doh.debug = function(){
-                                       var msg = "";
-                                       for(var x=0; x<arguments.length; x++){
-                                               msg += " "+arguments[x];
-                                       }
-                                       sendToLogPane([msg]);
-                                       console.log("DEBUG:"+msg);
-                               }
-                       }
-               }else{
-                       doh.debug = function(){
-                               sendToLogPane.call(window, arguments);
-                       }
-               }
-
-               var loaded = false;
-               var groupTemplate = null;
-               var testTemplate = null;
-
-               var groupNodes = {};
-
-               var _groupTogglers = {};
-
-               var _getGroupToggler = function(group, toggle){
-                       if(_groupTogglers[group]){ return _groupTogglers[group]; }
-                       var rolledUp = true;
-                       return _groupTogglers[group] = function(evt, forceOpen){
-                               var nodes = groupNodes[group].__items;
-                               if(rolledUp||forceOpen){
-                                       rolledUp = false;
-                                       for(var x=0; x<nodes.length; x++){
-                                               nodes[x].style.display = "";
-                                       }
-                                       toggle.innerHTML = "&#054;";
-                               }else{
-                                       rolledUp = true;
-                                       for(var x=0; x<nodes.length; x++){
-                                               nodes[x].style.display = "none";
-                                       }
-                                       toggle.innerHTML = "&#052;";
-                               }
-                       };
-               }
-
-               var addGroupToList = function(group){
-                       if(!byId("testList")){ return; }
-                       var tb = byId("testList").tBodies[0];
-                       var tg = groupTemplate.cloneNode(true);
-                       var tds = tg.getElementsByTagName("td");
-                       var toggle = tds[0];
-                       toggle.onclick = _getGroupToggler(group, toggle);
-                       var cb = tds[1].getElementsByTagName("input")[0];
-                       cb.group = group;
-                       cb.onclick = function(evt){
-                               doh._groups[group].skip = (!this.checked);
-                       }
-                       tds[2].innerHTML = group;
-                       tds[3].innerHTML = "";
-
-                       tb.appendChild(tg);
-                       return tg;
-               }
-
-               var addFixtureToList = function(group, fixture){
-                       if(!testTemplate){ return; }
-                       var cgn = groupNodes[group];
-                       if(!cgn["__items"]){ cgn.__items = []; }
-                       var tn = testTemplate.cloneNode(true);
-                       var tds = tn.getElementsByTagName("td");
-
-                       tds[2].innerHTML = fixture.name;
-                       tds[3].innerHTML = "";
-
-                       var nn = (cgn.__lastFixture||cgn.__groupNode).nextSibling;
-                       if(nn){
-                               nn.parentNode.insertBefore(tn, nn);
-                       }else{
-                               cgn.__groupNode.parentNode.appendChild(tn);
-                       }
-                       // FIXME: need to make group display toggleable!!
-                       tn.style.display = "none";
-                       cgn.__items.push(tn);
-                       return cgn.__lastFixture = tn;
-               }
-
-               var getFixtureNode = function(group, fixture){
-                       if(groupNodes[group]){
-                               return groupNodes[group][fixture.name];
-                       }
-                       return null;
-               }
-
-               var getGroupNode = function(group){
-                       if(groupNodes[group]){
-                               return groupNodes[group].__groupNode;
-                       }
-                       return null;
-               }
-
-               var updateBacklog = [];
-               doh._updateTestList = function(group, fixture, unwindingBacklog){
-                       if(!loaded){
-                               if(group && fixture){
-                                       updateBacklog.push([group, fixture]);
-                               }
-                               return;
-                       }else if((updateBacklog.length)&&(!unwindingBacklog)){
-                               var tr;
-                               while(tr=updateBacklog.shift()){
-                                       doh._updateTestList(tr[0], tr[1], true);
-                               }
-                       }
-                       if(group && fixture){
-                               if(!groupNodes[group]){
-                                       groupNodes[group] = {
-                                               "__groupNode": addGroupToList(group)
-                                       };
-                               }
-                               if(!groupNodes[group][fixture.name]){
-                                       groupNodes[group][fixture.name] = addFixtureToList(group, fixture)
-                               }
-                       }
-               }
-
-               doh._testRegistered = doh._updateTestList;
-
-               doh._groupStarted = function(group){
-                       // console.debug("_groupStarted", group);
-                       var gn = getGroupNode(group);
-                       if(gn){
-                               gn.className = "inProgress";
-                       }
-               }
-
-               doh._groupFinished = function(group, success){
-                       // console.debug("_groupFinished", group);
-                       var gn = getGroupNode(group);
-                       if(gn){
-                               gn.className = (success) ? "success" : "failure";
-                       }
-               }
-
-               doh._testStarted = function(group, fixture){
-                       // console.debug("_testStarted", group, fixture.name);
-                       var fn = getFixtureNode(group, fixture);
-                       if(fn){
-                               fn.className = "inProgress";
-                       }
-               }
-
-               var _nameTimes = {};
-               var _playSound = function(name){
-                       if(byId("hiddenAudio") && byId("audio") && byId("audio").checked){
-                               // console.debug("playing:", name);
-                               var nt = _nameTimes[name];
-                               // only play sounds once every second or so
-                               if((!nt)||(((new Date)-nt) > 700)){
-                                       _nameTimes[name] = new Date();
-                                       var tc = document.createElement("span");
-                                       byId("hiddenAudio").appendChild(tc);
-                                       tc.innerHTML = '<embed src="_sounds/'+name+'.wav" autostart="true" loop="false" hidden="true" width="1" height="1"></embed>';
-                               }
-                       }
-               }
-
-               doh._testFinished = function(group, fixture, success){
-                       var fn = getFixtureNode(group, fixture);
-                       if(fn){
-                               fn.getElementsByTagName("td")[3].innerHTML = (fixture.endTime-fixture.startTime)+"ms";
-                               fn.className = (success) ? "success" : "failure";
-
-                               if(!success){
-                                       _playSound("doh");
-                                       var gn = getGroupNode(group);
-                                       if(gn){
-                                               gn.className = "failure";
-                                               _getGroupToggler(group)(null, true);
-                                       }
-                               }
-                       }
-                       this.debug(((success) ? "PASSED" : "FAILED"), "test:", fixture.name);
-               }
-
-               // FIXME: move implementation to _browserRunner?
-               doh.registerUrl = function(     /*String*/ group, 
-                                                                               /*String*/ url, 
-                                                                               /*Integer*/ timeout){
-                       var tg = new String(group);
-                       this.register(group, {
-                               name: url,
-                               setUp: function(){
-                                       doh.currentGroupName = tg;
-                                       doh.currentGroup = this;
-                                       doh.currentUrl = url;
-                                       this.d = new doh.Deferred();
-                                       doh.currentTestDeferred = this.d;
-                                       showTestPage();
-                                       byId("testBody").src = url;
-                               },
-                               timeout: timeout||10000, // 10s
-                               // timeout: timeout||1000, // 10s
-                               runTest: function(){
-                                       // FIXME: implement calling into the url's groups here!!
-                                       return this.d;
-                               },
-                               tearDown: function(){
-                                       doh.currentGroupName = null;
-                                       doh.currentGroup = null;
-                                       doh.currentTestDeferred = null;
-                                       doh.currentUrl = null;
-                                       // this.d.errback(false);
-                                       // byId("testBody").src = "about:blank";
-                                       showLogPage();
-                               }
-                       });
-               }
-
-               // 
-               // Utility code for runner.html
-               //
-               // var isSafari = navigator.appVersion.indexOf("Safari") >= 0;
-               var tabzidx = 1;
-               var _showTab = function(toShow, toHide){
-                       // FIXME: I don't like hiding things this way.
-                       byId(toHide).style.display = "none";
-                       with(byId(toShow).style){
-                               display = "";
-                               zIndex = ++tabzidx;
-                       }
-               }
-
-               showTestPage = function(){
-                       _showTab("testBody", "logBody");
-               }
-
-               showLogPage = function(){
-                       _showTab("logBody", "testBody");
-               }
-
-               var runAll = true;
-               toggleRunAll = function(){
-                       // would be easier w/ query...sigh
-                       runAll = (!runAll);
-                       if(!byId("testList")){ return; }
-                       var tb = byId("testList").tBodies[0];
-                       var inputs = tb.getElementsByTagName("input");
-                       var x=0; var tn;
-                       while(tn=inputs[x++]){
-                               tn.checked = runAll;
-                               doh._groups[tn.group].skip = (!runAll);
-                       }
-               }
-
-               var listHeightTimer = null;
-               var setListHeight = function(){
-                       if(listHeightTimer){
-                               clearTimeout(listHeightTimer);
-                       }
-                       var tl = byId("testList");
-                       if(!tl){ return; }
-                       listHeightTimer = setTimeout(function(){
-                               tl.style.display = "none";
-                               tl.style.display = "";
-
-                       }, 10);
-               }
-
-               _addOnEvt("resize", setListHeight);
-               _addOnEvt("load", setListHeight);
-               _addOnEvt("load", function(){
-                       if(loaded){ return; }
-                       loaded = true;
-                       groupTemplate = byId("groupTemplate");
-                       if(!groupTemplate){ 
-                               // make sure we've got an ammenable DOM structure
-                               return;
-                       }
-                       groupTemplate.parentNode.removeChild(groupTemplate);
-                       groupTemplate.style.display = "";
-                       testTemplate = byId("testTemplate");
-                       testTemplate.parentNode.removeChild(testTemplate);
-                       testTemplate.style.display = "";
-                       doh._updateTestList();
-               });
-
-               _addOnEvt("load", 
-                       function(){
-                               doh._onEnd = function(){
-                                       if(doh._failureCount == 0){
-                                               doh.debug("WOOHOO!!");
-                                               _playSound("woohoo");
-                                       }else{
-                                               console.debug("doh._failureCount:", doh._failureCount);
-                                       }
-                                       if(byId("play")){
-                                               toggleRunning();
-                                       }
-                               }
-                               if(!byId("play")){ 
-                                       // make sure we've got an ammenable DOM structure
-                                       return;
-                               }
-                               var isRunning = false;
-                               var toggleRunning = function(){
-                                       // ugg, this would be so much better w/ dojo.query()
-                                       if(isRunning){
-                                               byId("play").style.display = byId("pausedMsg").style.display = "";
-                                               byId("playingMsg").style.display = byId("pause").style.display = "none";
-                                               isRunning = false;
-                                       }else{
-                                               byId("play").style.display = byId("pausedMsg").style.display = "none";
-                                               byId("playingMsg").style.display = byId("pause").style.display = "";
-                                               isRunning = true;
-                                       }
-                               }
-                               doh.run = (function(oldRun){
-                                       return function(){
-                                               if(!doh._currentGroup){
-                                                       toggleRunning();
-                                               }
-                                               return oldRun.apply(doh, arguments);
-                                       }
-                               })(doh.run);
-                               var btns = byId("toggleButtons").getElementsByTagName("span");
-                               var node; var idx=0;
-                               while(node=btns[idx++]){
-                                       node.onclick = toggleRunning;
-                               }
-                       }
-               );
-       }else{
-               // we're in an iframe environment. Time to mix it up a bit.
-
-               _doh = window.parent.doh;
-               var _thisGroup = _doh.currentGroupName;
-               var _thisUrl = _doh.currentUrl;
-               if(_thisGroup){
-                       doh._testRegistered = function(group, tObj){
-                               _doh._updateTestList(_thisGroup, tObj);
-                       }
-                       doh._onEnd = function(){
-                               _doh._errorCount += doh._errorCount;
-                               _doh._failureCount += doh._failureCount;
-                               _doh._testCount += doh._testCount;
-                               // should we be really adding raw group counts?
-                               _doh._groupCount += doh._groupCount;
-                               _doh.currentTestDeferred.callback(true);
-                       }
-                       var otr = doh._getTestObj;
-                       doh._getTestObj = function(){
-                               var tObj = otr.apply(doh, arguments);
-                               tObj.name = _thisUrl+"::"+arguments[0]+"::"+tObj.name;
-                               return tObj;
-                       }
-                       doh.debug = doh.hitch(_doh, "debug");
-                       doh.registerUrl = doh.hitch(_doh, "registerUrl");
-                       doh._testStarted = function(group, fixture){
-                               _doh._testStarted(_thisGroup, fixture);
-                       }
-                       doh._testFinished = function(g, f, s){
-                               _doh._testFinished(_thisGroup, f, s);
-                       }
-                       doh._report = function(){};
-               }
-       }
-
-})();