X-Git-Url: http://git.asbjorn.biz/?a=blobdiff_plain;f=build%2Fruntest%2Fenv.js;h=fae6490b3e501cf1cbafe4d74fffccdff76dd83b;hb=5e7c1fc3ae42e2312bccc7679b03238f7e5d5c17;hp=f4c54bb4bdf6dc7e1680d14e4347fe2962f547a5;hpb=52c6739c20838f2d705d404664dcc0cfa07f2c30;p=jquery.git diff --git a/build/runtest/env.js b/build/runtest/env.js index f4c54bb..fae6490 100644 --- a/build/runtest/env.js +++ b/build/runtest/env.js @@ -12,7 +12,9 @@ var window = this; }; window.__defineSetter__("location", function(url){ - window.document = new DOMDocument(url); + window.document = new DOMDocument( + new Packages.org.xml.sax.InputSource( new java.io.InputStreamReader( + new java.io.FileInputStream(url)))); }); window.__defineGetter__("location", function(url){ @@ -106,7 +108,7 @@ var window = this; return makeNode( this._dom.getDocumentElement() ); }, get ownerDocument(){ - return this; + return null; }, addEventListener: function(){}, removeEventListener: function(){}, @@ -206,8 +208,7 @@ var window = this; this.style = {}; // Load CSS info - var styles = (new String(this.getAttribute("style") || "")) - .split(/\s*;\s*/); + var styles = (this.getAttribute("style") || "").split(/\s*;\s*/); for ( var i = 0; i < styles.length; i++ ) { var style = styles[i].split(/\s*:\s*/); @@ -257,7 +258,7 @@ var window = this; var nodes = this.ownerDocument.importNode( new DOMDocument( new java.io.ByteArrayInputStream( (new java.lang.String("" + html + "")) - .getBytes())).documentElement, true).childNodes; + .getBytes("UTF8"))).documentElement, true).childNodes; while (this.firstChild) this.removeChild( this.firstChild ); @@ -305,6 +306,27 @@ var window = this; set checked(val) { return this.setAttribute("checked",val); }, get selected() { + if ( !this._selectDone ) { + this._selectDone = true; + + if ( this.nodeName == "OPTION" && !this.parentNode.getAttribute("multiple") ) { + var opt = this.parentNode.getElementsByTagName("option"); + + if ( this == opt[0] ) { + var select = true; + + for ( var i = 1; i < opt.length; i++ ) + if ( opt[i].selected ) { + select = false; + break; + } + + if ( select ) + this.selected = true; + } + } + } + var val = this.getAttribute("selected"); return val != "false" && !!val; }, @@ -327,7 +349,7 @@ var window = this; getAttribute: function(name){ return this._dom.hasAttribute(name) ? - this._dom.getAttribute(name) : + new String( this._dom.getAttribute(name) ) : null; }, setAttribute: function(name,value){