diff --git a/extensions/transformiix/resources/buster/buster.xul b/extensions/transformiix/resources/buster/buster.xul index 14838772bed2..e6d5a4407dd6 100644 --- a/extensions/transformiix/resources/buster/buster.xul +++ b/extensions/transformiix/resources/buster/buster.xul @@ -66,24 +66,11 @@ - - - - - - - - - - - - - - - - - - - - + + + + + + + diff --git a/extensions/transformiix/resources/buster/txTools.css b/extensions/transformiix/resources/buster/txTools.css index da928f275922..c80cea16c60b 100644 --- a/extensions/transformiix/resources/buster/txTools.css +++ b/extensions/transformiix/resources/buster/txTools.css @@ -26,30 +26,23 @@ text.head { font-weight: bold; } -column { - margin-left: 2px; - margin-right: 2px; -} - -#tests{ - overflow: auto; -} - -.succeeded { - background-color: green; -} - -.failed { - background-color: red; -} - :-moz-outliner-row(success) { - background-color: green; + background-color: green ! important; } :-moz-outliner-row(fail) { - background-color: red; + background-color: red ! important; } +:-moz-outliner-row(selected) +{ + border: 1px solid blue ! important; + background-color: white ; +} + +:-moz-outliner-cell-text(selected) +{ + color: black ! important; +} diff --git a/extensions/transformiix/resources/buster/txTools.js b/extensions/transformiix/resources/buster/txTools.js index 58459df1d2aa..2786ae9ed2a8 100644 --- a/extensions/transformiix/resources/buster/txTools.js +++ b/extensions/transformiix/resources/buster/txTools.js @@ -20,23 +20,25 @@ * Axel Hecht (Original Author) */ -var name_array,__docSet; +var name_array,index_array,__docSet; -function do_transforms(new_name_array,verbose){ +function do_transforms(new_name_array,new_number_array,verbose){ if (new_name_array) { name_array=new_name_array; + index_array=new_number_array; dump("\n==============================\n"); dump("TransforMiiX regression buster\n"); dump("==============================\n"); } if (name_array.length){ current=name_array.shift(); - __docSet=new txDocSet(current); + __docSet=new txDocSet(current,index_array.shift()); } } -function txDocSet(name,verbose){ +function txDocSet(name,index,verbose){ this.mName = name; + this.mIndex = index; this.mBase = document.getElementById('xalan_base').getAttribute('value'); if (verbose) this.mVerbose=verbose; this.mSource = document.implementation.createDocument("","",null); @@ -48,7 +50,12 @@ function txDocSet(name,verbose){ this.mReference.addEventListener("load",this.refLoaded,false); this.mSource.load(this.mBase+"conf/"+name+".xml"); this.mStyle.load(this.mBase+"conf/"+name+".xsl"); - this.mReference.load(this.mBase+"conf-gold/"+name+".out"); + this.mIsError = name.match(/\/err\//); + if (this.mIsError){ + this.mLoaded = 2; + } else { + this.mReference.load(this.mBase+"conf-gold/"+name+".out"); + } } txDocSet.prototype = { @@ -59,7 +66,9 @@ txDocSet.prototype = { mResult : null, mReference : null, mVerbose : false, + mIsError : false, mLoaded : 0, + mIndex : 0, styleLoaded : function(e){ __docSet.stuffLoaded(1); @@ -74,25 +83,31 @@ txDocSet.prototype = { __docSet.mLoaded+=mask; if (this.mLoaded==7){ netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect'); - var txProc = new XSLTProcessor(),isGood; + var txProc = new XSLTProcessor(),isGood=false; dump("\nTrying "+this.mName+" "); txProc.transformDocument(this.mSource,this.mStyle,this.mResult,null); - try{ - isGood = DiffDOM(this.mResult.documentElement,this.mReference.documentElement); - } catch (e) {isGood = false;}; - if (!isGood){ - dump(" and failed\n\n"); - this.mVerbose=true; - handle_result(this.mName,false); - } else { - dump(" and succeeded\n\n"); - handle_result(this.mName,true); - } - if (this.mVerbose){ - dump("Result:\n"); + if (this.mIsError) { + dump("for error test\nResult:\n"); DumpDOM(this.mResult); - dump("Reference:\n"); - DumpDOM(this.mReference); + handle_result(this.mIndex,true); + } else { + try{ + isGood = DiffDOM(this.mResult.documentElement,this.mReference.documentElement); + } catch (e) {isGood = false;}; + if (!isGood){ + dump(" and failed\n\n"); + this.mVerbose=true; + handle_result(this.mIndex,false); + } else { + dump(" and succeeded\n\n"); + handle_result(this.mIndex,true); + } + if (this.mVerbose){ + dump("Result:\n"); + DumpDOM(this.mResult); + dump("Reference:\n"); + DumpDOM(this.mReference); + } } do_transforms(); } diff --git a/extensions/transformiix/resources/buster/xulTxTools.js b/extensions/transformiix/resources/buster/xulTxTools.js index df34c3e46d3f..5b9256169376 100644 --- a/extensions/transformiix/resources/buster/xulTxTools.js +++ b/extensions/transformiix/resources/buster/xulTxTools.js @@ -1,10 +1,10 @@ -/* -*- Mode: Java; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- +/* -*- tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- * * The contents of this file are subject to the Mozilla Public * License Version 1.1 (the "License"); you may not use this file * except in compliance with the License. You may obtain a copy of * the License at http://www.mozilla.org/MPL/ - * + * * Software distributed under the License is distributed on an "AS * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or * implied. See the License for the specific language governing @@ -25,24 +25,103 @@ var isinited=false; var xalan_base, xalan_xml, xalan_elems, xalan_length, content_row, target; var matchRE, matchNameTag, matchFieldTag; var tests_run, tests_passed, tests_failed; +var view = ({ +// nsIOutlinerView + rowCount : 0, + getRowProperties : function(i, prop) { + netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect'); + if (this.success[i]==1) prop.AppendElement(this.smile); + if (this.success[i]==-1) prop.AppendElement(this.sad); + }, + getColumnProperties : function(index, prop) {}, + getCellProperties : function(index, prop) {}, + isContainer : function(index) {return false;}, + outliner : null, + setOutliner : function(out) { this.outliner = out; }, + getCellText : function(i, col) { + switch(col){ + case "name": + return this.names[i]; + case "purp": + return this.purps[i]; + case "comm": + return this.comms[i]; + default: + return "XXX in "+ col+" and "+i; + } + }, +// privates + names : null, + purps : null, + comms : null, + success : null, + smile : null, + sad : null, + select : function(index) { + netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect'); + if (!this.selection.isSelected(index)) + this.selection.toggleSelect(index); + }, + unselect : function(index) { + netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect'); + if (this.selection.isSelected(index)) + this.selection.toggleSelect(index); + }, + swallow : function(initial) { + this.rowCount = initial.length; + this.content = initial; + this.success = new Array(this.rowCount); + this.names = new Array(this.rowCount); + this.purps = new Array(this.rowCount); + this.comms = new Array(this.rowCount); + for (k=0;k1) + this.purps[k] = cur.childNodes.item(1).firstChild.nodeValue; + if (cur.childNodes.length>3) + this.comms[k] = cur.childNodes.item(3).firstChild.nodeValue; + } + netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect'); + this.outliner.rowCountChanged(0,this.rowCount); + }, + remove : function(first,last){ + last = Math.min(this.rowCount,last); + first = Math.max(0,first); + this.names.splice(first,last-first+1); + this.purps.splice(first,last-first+1); + this.comms.splice(first,last-first+1); + this.success.splice(first,last-first+1); + this.rowCount=this.names.length; + this.outliner.rowCountChanged(first,this.rowCount); + }, + getNames : function(first,last){ + last = Math.min(this.rowCount,last); + first = Math.max(0,first); + list = new Array(last-first+1); + for (k=first;k<=last;k++) + list[k-first] = this.names[k]; + return list; + } +}); + +function setView(outliner, v) { + outliner.boxObject.QueryInterface(Components.interfaces.nsIOutlinerBoxObject).view = v; +} function loaderstuff(eve) { var ns = "http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"; - content_row = document.createElementNS(ns,"row"); - content_row.setAttribute("flex","1"); - content_row.appendChild(document.createElementNS(ns,"checkbox")); - content_row.appendChild(document.createElementNS(ns,"text")); - content_row.appendChild(document.createElementNS(ns,"text")); - content_row.appendChild(document.createElementNS(ns,"text")); - content_row.setAttribute("class", "notrun"); netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect'); - target = document.getElementById("xalan_grid"); + var atomservice = Components.classes["@mozilla.org/atom-service;1"].getService(Components.interfaces.nsIAtomService); + view.smile = atomservice.getAtom("success"); + view.sad = atomservice.getAtom("fail"); matchNameTag = document.getElementById("search-name"); matchFieldTag = document.getElementById("search-field"); tests_run = document.getElementById("tests_run"); tests_passed = document.getElementById("tests_passed"); tests_failed = document.getElementById("tests_failed"); xalan_base = document.getElementById("xalan_base"); + setView(document.getElementById('out'), view) xalan_xml = document.implementation.createDocument("","",null); xalan_xml.addEventListener("load", xalanIndexLoaded, false); xalan_xml.load("complete-xalanindex.xml"); @@ -51,122 +130,99 @@ function loaderstuff(eve) { } function xalanIndexLoaded(e) { - xalan_elems = xalan_xml.documentElement; - xalan_length = Math.floor(xalan_elems.childNodes.length/2); + populate_xalan(); return true; } function refresh_xalan() { - while(target.childNodes.length>1) target.removeChild(target.lastChild); - pop_last = 0; populate_xalan(); return true; } function populate_xalan() { - var upper=pop_last+pop_chunk; - var current,test,i,j, lName, re=/\/err\//; - var searchField = matchFieldTag.getAttribute("value"); - var matchValue = matchNameTag.value; - if (matchValue.length==0) matchValue='.'; - var matchRE = new RegExp(matchValue); - for (i=pop_last;i=0;k--){ + sels.getRangeAt(k,a,b); + view.remove(a.value,b.value); + view.selection.clearRange(a.value,b.value); + } + } else { + var last=view.rowCount; + for (k=view.selection.getRangeCount()-1;k>=0;k--){ + view.selection.getRangeAt(k,a,b); + view.remove(b.value+1,last); + view.selection.clearRange(a.value,b.value); + last = a.value-1; + } + view.remove(0,last); } } function select(){ - var searchField = matchFieldTag.getAttribute("value"); + netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect'); + var searchField = matchFieldTag.getAttribute("data"); var matchRE = new RegExp(matchNameTag.value); - var nds = target.childNodes; - for (i=1;i