//>>built
define("doh/_browserRunner",["dojo/dom","dojo/dom-geometry","dojo/dom-style","dojo/_base/fx","dojo/_base/lang","dojo/query","dojo/domReady","dojo/sniff","dojo/window","doh/runner"],function(_1,_2,_3,_4,_5,_6,_7,_8,_9,_a){
_a.isBrowser=true;
var _b;
try{
_b=(window.parent==window)||!Boolean(window.parent.doh);
}
catch(e){
_b=true;
}
if(_b){
var _c=function(id){
return document.getElementById(id);
};
var _d=function(_e,_f,_10){
if(!_10){
_10=window;
}
var _11=_f;
if(typeof _f=="string"){
_11=_10[_f];
}
var _12=function(){
return _11.apply(_10,arguments);
};
if(_7&&_e=="load"){
_7(_12);
}else{
if(window["attachEvent"]){
window.attachEvent("on"+_e,_12);
}else{
if(window["addEventListener"]){
window.addEventListener(_e,_12,false);
}else{
if(document["addEventListener"]){
document.addEventListener(_e,_12,false);
}
}
}
}
};
var _13=function(str){
return str.replace(/&/gm,"&").replace(//gm,">").replace(/"/gm,""");
};
var _14=function(n){
switch(true){
case n<1000:
return n+"ms";
case n<60000:
return Math.round(n/100)/10+"s";
case n<3600000:
return Math.round(n/6000)/10+"m";
default:
return Math.round(n/360000)/10+"h";
}
};
var _15=[],_16=0;
var _17=function(_18,_19){
var msg="";
for(var x=0;x<_18.length;x++){
msg+=" "+_18[x];
}
msg=_13(msg);
msg=msg.replace("\t"," ").replace(" "," ").replace("\n","
");
if(!_c("logBody")){
_15.push(msg);
return;
}else{
if(_15.length&&!_19){
var tm;
while((tm=_15.shift())){
_17(tm,true);
}
}
}
var _1a=_c("logBody");
var tn=document.createElement("div");
tn.innerHTML=msg;
_1a.appendChild(tn);
_16++;
};
var _1b=function(n){
while(n&&!n.getAttribute("_target")){
n=n.parentNode;
if(!n.getAttribute){
n=null;
}
}
return n;
};
_a._jumpToLog=function(e){
var _1c=_1b(e?e.target:window.event.srcElement);
if(!_1c){
return;
}
var _1d=Number(_1c.getAttribute("_target"));
var lb=_c("logBody");
if(_1d>=lb.childNodes.length){
return;
}
var t=lb.childNodes[_1d];
t.scrollIntoView();
if(_3&&_4){
var _1e=_3.get(t.parentNode.parentNode,"backgroundColor");
var _1f=_3.get(_1c.parentNode,"backgroundColor");
var _20=_4.animateProperty({node:t,duration:500,properties:{backgroundColor:{start:_1f,end:_1e}},onEnd:function(){
t.style.backgroundColor="";
}});
var _21=_4.animateProperty({node:t,duration:500,properties:{backgroundColor:{start:_1e,end:_1f}},onEnd:function(){
_20.play();
}});
_21.play();
}
};
_a._jumpToSuite=function(e){
var _22=_1b(e?e.target:window.event.srcElement);
if(!_22){
return;
}
var _23=_22.getAttribute("_target");
var gn=_24(_23);
if(!gn){
return;
}
gn.scrollIntoView();
};
_a._init=(function(oi){
return function(){
var lb=_c("logBody");
if(lb){
while(lb.firstChild){
lb.removeChild(lb.firstChild);
}
_16=0;
}
this._totalTime=0;
this._suiteCount=0;
oi.apply(_a,arguments);
};
})(_a._init);
_a._setupGroupForRun=(function(os){
return function(_25){
var tg=_a._groups[_25];
_a._curTestCount=tg.length;
_a._curGroupCount=1;
var gn=_24(_25);
if(gn){
gn.getElementsByTagName("td")[2].setAttribute("_target",_16+1);
}
os.apply(_a,arguments);
};
})(_a._setupGroupForRun);
var _26=_a._report;
_a._report=function(){
var tb=_c("testList");
if(tb){
var _27=tb.getElementsByTagName("tfoot");
if(_27.length){
tb.removeChild(_27[0]);
}
var _28=tb.createTFoot();
var row=_28.insertRow(-1);
row.className="inProgress";
var _29=row.insertCell(-1);
_29.colSpan=2;
_29.innerHTML="Result";
_29=row.insertCell(-1);
_29.innerHTML=this._testCount+" tests in "+this._groupCount+" groups /"+this._errorCount+" errors, "+this._failureCount+" failures";
_29.setAttribute("_target",_16+1);
row.insertCell(-1).innerHTML=_14(_a._totalTime);
}
if(_a.perfTestResults){
require(["dojox/math/stats","dojox/charting/DataChart","dojox/charting/plot2d/Scatter","dojox/charting/plot2d/Lines","dojo/data/ItemFileReadStore"],function(_2a,_2b,_2c,_2d,_2e){
_5.mixin(_a,_2a);
var _2f=function(div,_30,_31){
var _32=_a.median(_31);
var _33=[];
var i;
for(i=0;i<_31.length;i++){
_33.push(_32);
}
var _34={label:"name",items:[{name:_30,trials:_31},{name:"Median",trials:_33}]};
var ifs=new _2e({data:_34});
var min=Math.floor(_a.min(_31));
var max=Math.ceil(_a.max(_31));
var _35=(max-min)/10;
if(min>0){
min=min-_35;
if(min<0){
min=0;
}
min=Math.floor(min);
}
if(max>0){
max=max+_35;
max=Math.ceil(max);
}
_35=(max-min)/10;
var _36=new _2b(div,{type:_2d,displayRange:_31.length,xaxis:{min:1,max:_31.length,majorTickStep:Math.ceil((_31.length-1)/10),htmlLabels:false},yaxis:{min:min,max:max,majorTickStep:_35,vertical:true,htmlLabels:false}});
_36.setStore(ifs,{name:"*"},"trials");
};
try{
var g;
var _37=_c("perfTestsBody");
var _38=[];
_a.perfTestAnalytics={};
_a.showPerfTestsPage();
for(g in _a.perfTestResults){
_a.perfTestAnalytics[g]={};
var grp=_a.perfTestResults[g];
var hdr=document.createElement("h1");
hdr.appendChild(document.createTextNode("Group: "+g));
_37.appendChild(hdr);
var ind=document.createElement("blockquote");
_37.appendChild(ind);
var f;
for(f in grp){
var _39=grp[f];
if(!_39){
continue;
}
var _3a=document.createElement("h3");
_3a.appendChild(document.createTextNode("TEST: "+f));
_3a.style.textDecoration="underline";
ind.appendChild(_3a);
var div=document.createElement("div");
ind.appendChild(div);
var _3b="TRIAL SIZE: "+_39.trials[0].testIterations+" iterations
"+"NUMBER OF TRIALS: "+_39.trials.length+"
";
var i;
var _3c=[];
var _3d=[];
for(i=0;i<_39.trials.length;i++){
_3c.push(_39.trials[i].average);
_3d.push(_39.trials[i].executionTime);
}
var _3e=_a.perfTestAnalytics[g][f]={averageTrialExecutionTime:_a.mean(_3d),maxTestIterationTime:_a.max(_3c),minTestIterationTime:_a.min(_3c),averageTestIterationTime:_a.mean(_3c),medianTestIterationTime:_a.median(_3c),varianceTestIterationTime:_a.variance(_3c),standardDeviationTestIterationTime:_a.sd(_3c)};
_3b+="AVERAGE TRIAL EXECUTION TIME: "+_3e.averageTrialExecutionTime.toFixed(10)+"ms.
";
_3b+="MAXIMUM TEST ITERATION TIME: "+_3e.maxTestIterationTime.toFixed(10)+"ms.
";
_3b+="MINIMUM TEST ITERATION TIME: "+_3e.minTestIterationTime.toFixed(10)+"ms.
";
_3b+="AVERAGE TEST ITERATION TIME: "+_3e.averageTestIterationTime.toFixed(10)+"ms.
";
_3b+="MEDIAN TEST ITERATION TIME: "+_3e.medianTestIterationTime.toFixed(10)+"ms.
";
_3b+="VARIANCE TEST ITERATION TIME: "+_3e.varianceTestIterationTime.toFixed(10)+"ms.
";
_3b+="STANDARD DEVIATION ON TEST ITERATION TIME: "+_3e.standardDeviationTestIterationTime.toFixed(10)+"ms.
";
div.innerHTML=_3b;
div=document.createElement("div");
div.innerHTML="
Average Test Execution Time (in milliseconds, with median line)
";
ind.appendChild(div);
div=document.createElement("div");
_3.set(div,"width","600px");
_3.set(div,"height","250px");
ind.appendChild(div);
_38.push({div:div,title:"Average Test Execution Time",data:_3c});
div=document.createElement("div");
div.innerHTML="Average Trial Execution Time (in milliseconds, with median line)
";
ind.appendChild(div);
div=document.createElement("div");
_3.set(div,"width","600px");
_3.set(div,"height","250px");
ind.appendChild(div);
_38.push({div:div,title:"Average Trial Execution Time",data:_3d});
}
}
var _3f=function(){
if(_38.length){
var _40=_38.shift();
_2f(_40.div,_40.title,_40.data);
}
setTimeout(_3f,50);
};
setTimeout(_3f,150);
}
catch(e){
_a.debug(e);
}
});
}
_26.apply(_a,arguments);
};
_a.error=undefined;
if(this["opera"]&&opera.postError){
_a.debug=function(){
var msg="";
for(var x=0;x"+_4d+"
";
tds[3].innerHTML="";
tb.appendChild(tg);
return tg;
};
var _4f=function(_50,_51){
if(!_43){
return;
}
var cgn=_44[_50];
if(!cgn["__items"]){
cgn.__items=[];
}
var tn=_43.cloneNode(true);
var tds=tn.getElementsByTagName("td");
tds[2].innerHTML=_51.name;
tds[3].innerHTML="";
var nn=(cgn.__lastFixture||cgn.__groupNode).nextSibling;
if(nn){
nn.parentNode.insertBefore(tn,nn);
}else{
cgn.__groupNode.parentNode.appendChild(tn);
}
tn.style.display="none";
cgn.__items.push(tn);
return (cgn.__lastFixture=tn);
};
var _52=function(_53,_54){
if(_44[_53]){
return _44[_53][_54.name];
}
return null;
};
var _24=function(_55){
if(_44[_55]){
return _44[_55].__groupNode;
}
return null;
};
var _56=[];
_a._updateTestList=function(_57,_58,_59){
if(!_41){
if(_57&&_58){
_56.push([_57,_58]);
}
return;
}else{
if(_56.length&&!_59){
var tr;
while((tr=_56.shift())){
_a._updateTestList(tr[0],tr[1],true);
}
}
}
if(_57&&_58){
if(!_44[_57]){
_44[_57]={"__groupNode":_4c(_57)};
}
if(!_44[_57][_58.name]){
_44[_57][_58.name]=_4f(_57,_58);
}
}
};
_a._testRegistered=_a._updateTestList;
_a._groupStarted=function(_5a){
if(this._suiteCount==0){
this._runedSuite=0;
this._currentGlobalProgressBarWidth=0;
this._suiteCount=this._testCount;
}
if(_a._inGroup!=_5a){
_a._groupTotalTime=0;
_a._runed=0;
_a._inGroup=_5a;
this._runedSuite++;
}
var gn=_24(_5a);
if(gn){
gn.className="inProgress";
}
};
_a._groupFinished=function(_5b,_5c){
var gn=_24(_5b);
if(gn&&_a._inGroup==_5b){
_a._totalTime+=_a._groupTotalTime;
gn.getElementsByTagName("td")[3].innerHTML=_14(_a._groupTotalTime);
gn.getElementsByTagName("td")[2].lastChild.className="";
_a._inGroup=null;
var _5d=_a._updateGlobalProgressBar(this._runedSuite/this._groupCount,_5c,_5b);
gn.className=_5d?"failure":"success";
_a._currentGlobalProgressBarWidth=parseInt(this._runedSuite/this._groupCount*10000)/100;
}
if(_a._inGroup==_5b){
this.debug("Total time for GROUP \"",_5b,"\" is ",_14(_a._groupTotalTime));
}
};
_a._testStarted=function(_5e,_5f){
var fn=_52(_5e,_5f);
if(fn){
fn.className="inProgress";
}
};
var _60={};
var _61=function(_62){
if(_c("hiddenAudio")&&_c("audio")&&_c("audio").checked){
var nt=_60[_62];
if((!nt)||(((new Date)-nt)>700)){
_60[_62]=new Date();
var tc=document.createElement("span");
_c("hiddenAudio").appendChild(tc);
tc.innerHTML="";
}
}
};
_a._updateGlobalProgressBar=function(p,_63,_64){
var _65=_c("progressOuter");
var _66=_65.childNodes[_a._runedSuite-1];
if(!_66){
_66=document.createElement("div");
_65.appendChild(_66);
_66.className="success";
_66.setAttribute("_target",_64);
}
if(!_63&&!_66._failure){
_66._failure=true;
_66.className="failure";
if(_64){
_66.setAttribute("title","failed group "+_64);
}
}
var tp=parseInt(p*10000)/100;
_66.style.width=(tp-_a._currentGlobalProgressBarWidth)+"%";
return _66._failure;
};
_a._testFinished=function(_67,_68,_69){
var fn=_52(_67,_68);
var _6a=_68.endTime-_68.startTime;
var gn;
if(fn){
fn.getElementsByTagName("td")[3].innerHTML=_14(_6a);
fn.className=(_69)?"success":"failure";
fn.getElementsByTagName("td")[2].setAttribute("_target",_16);
if(!_69){
_61("doh");
gn=_24(_67);
if(gn){
gn.className="failure";
_46(_67)(null,true);
}
}
}
if(_a._inGroup==_67){
gn=_24(_67);
_a._runed++;
if(gn&&_a._curTestCount){
var p=_a._runed/_a._curTestCount;
var _6b=this._updateGlobalProgressBar((_a._runedSuite+p-1)/_a._groupCount,_69,_67);
var _6c=gn.getElementsByTagName("td")[2].lastChild;
_6c.className=_6b?"failure":"success";
_6c.style.width=parseInt(p*100)+"%";
gn.getElementsByTagName("td")[3].innerHTML=parseInt(p*10000)/100+"%";
}
}
this._groupTotalTime+=_6a;
this.debug((_69?"PASSED":"FAILED"),"test:",_68.name,_6a,"ms");
};
_a._registerUrl=function(_6d,url,_6e,_6f,_70){
_6d=_6d||url;
this._registerTest(_6d,{name:url,setUp:function(){
_a.currentGroupName=_6d;
_a.currentGroup=this;
_a.currentUrl=url;
_a.dohArgs=_70;
this.d=new _a.Deferred();
_a.currentTestDeferred=this.d;
_a.showTestPage();
_c("testBody").src=url;
},timeout:_6e||10000,runTest:function(){
return this.d;
},tearDown:function(){
_a.currentGroupName=null;
_a.currentGroup=null;
_a.currentTestDeferred=null;
_a.currentUrl=null;
_a.showLogPage();
}},_6f);
};
var _71=1;
var _72=function(_73,_74){
var i;
for(i=0;i<_74.length;i++){
var _75=_c(_74[i]);
if(_75){
_75.style.display="none";
}
}
_73=_c(_73);
if(_73){
_73.style.display="";
_73.style.zIndex=++_71;
}
};
_a.showTestPage=function(){
_72("testBody",["logBody","perfTestsBody"]);
};
_a.showLogPage=function(){
_72("logBody",["testBody","perfTestsBody"]);
};
_a.showPerfTestsPage=function(){
_72("perfTestsBody",["testBody","logBody"]);
};
var _76=true;
_a.toggleRunAll=function(){
_76=!_76;
if(!_c("testList")){
return;
}
var tb=_c("testList").tBodies[0];
var _77=tb.getElementsByTagName("input");
var x=0;
var tn;
while((tn=_77[x++])){
tn.checked=_76;
_a._groups[tn.group].skip=(!_76);
}
};
var _78=null;
var _79=function(){
if(_78){
clearTimeout(_78);
}
var tl=_c("testList");
if(!tl){
return;
}
_78=setTimeout(function(){
tl.style.display="none";
tl.style.display="";
},10);
};
_d("resize",_79);
_d("load",_79);
_d("load",function(){
if(_41){
return;
}
_41=true;
_42=_c("groupTemplate");
if(!_42){
return;
}
_42.parentNode.removeChild(_42);
_42.style.display="";
_43=_c("testTemplate");
_43.parentNode.removeChild(_43);
_43.style.display="";
_a._updateTestList();
});
_d("load",function(){
var _7a=_a._onEnd;
_a._onEnd=function(){
_7a.apply(_a,arguments);
if(_a._failureCount==0){
_a.debug("WOOHOO!!");
_61("woohoo");
}else{
}
if(_c("play")){
_7b();
}
};
if(!_c("play")){
return;
}
var _7c=false;
var _7b=function(){
if(_7c){
_c("play").style.display=_c("pausedMsg").style.display="";
_c("playingMsg").style.display=_c("pause").style.display="none";
_7c=false;
}else{
_c("play").style.display=_c("pausedMsg").style.display="none";
_c("playingMsg").style.display=_c("pause").style.display="";
_7c=true;
}
};
_a.run=(function(_7d){
return function(){
if(!_a._currentGroup){
_7b();
}
return _7d.apply(_a,arguments);
};
})(_a.run);
var _7e=_c("toggleButtons").getElementsByTagName("span");
var _7f;
var idx=0;
while((_7f=_7e[idx++])){
_7f.onclick=_7b;
}
});
}else{
var _80=window.parent.doh;
var _81=_80.currentGroupName;
var _82=_80.currentUrl;
if(_81){
_a._onEnd=function(){
_80._errorCount+=_a._errorCount;
_80._failureCount+=_a._failureCount;
_80._testCount+=_a._testCount;
_80.currentTestDeferred.callback(true);
};
_a._testRegistered=function(_83,_84){
_84.name=_82+"::"+arguments[0]+"::"+_84.name;
_80._updateTestList(_81,_84);
};
_a.debug=_5.hitch(_80,"debug");
_a.error=_5.hitch(_80,"error");
_a.registerUrl=_5.hitch(_80,"registerUrl");
_a._testStarted=function(_85,_86){
_80._testStarted(_81,_86);
};
_a._testFinished=function(g,f,s){
_80._testFinished(_81,f,s);
if(_a.perfTestResults){
try{
var _87=g.toString();
var _88=f.name;
while(_88.indexOf("::")>=0){
_88=_88.substring(_88.indexOf("::")+2,_88.length);
}
if(!_80.perfTestResults){
_80.perfTestResults={};
}
if(!_80.perfTestResults[_87]){
_80.perfTestResults[_87]={};
}
_80.perfTestResults[_87][f.name]=_a.perfTestResults[_87][_88];
}
catch(e){
_a.debug(e);
}
}
};
_a._groupStarted=function(){
if(!this._setParent){
_80._curTestCount=this._testCount;
_80._curGroupCount=this._groupCount;
this._setParent=true;
}
};
_a._report=function(){
};
}
}
var _89=_a._fixHeight=function(){
if(_8("ie")){
var _8a=0;
var _8b=_6("#testLayout > tbody > tr");
for(var i=0;i<_8b.length-1;i++){
_8a+=_2.position(_8b[i]).h;
}
try{
_1.byId("testLayout").style.height=(_9.getBox().h-_8a)+"px";
}
catch(e){
setTimeout(function(){
_89();
},0);
}
}
};
return _a;
});