X-Git-Url: http://git.asbjorn.biz/?a=blobdiff_plain;f=build%2Fruntest%2Fenv.js;h=564b02207754035687ca19f2bb0caa5332a21cd5;hb=b5bf00a37368baf69595434c0329f869b9ca18e9;hp=7a1352af1429aee65d84ef7b4a86a69aaa138e2f;hpb=b83a6b7a323d63280fe325b06e1c38d26b5031a9;p=jquery.git diff --git a/build/runtest/env.js b/build/runtest/env.js index 7a1352a..564b022 100644 --- a/build/runtest/env.js +++ b/build/runtest/env.js @@ -1,3 +1,9 @@ +/* + * Simulated browser environment for Rhino + * By John Resig + * Copyright 2007 John Resig, under the MIT License + */ + // The window Object var window = this; @@ -12,7 +18,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){ @@ -97,11 +105,6 @@ var window = this; get body(){ return this.getElementsByTagName("body")[0]; }, - defaultView: { - getComputedStyle: { - getPropertyValue: function(){ } - } - }, get documentElement(){ return makeNode( this._dom.getDocumentElement() ); }, @@ -123,12 +126,20 @@ var window = this; get defaultView(){ return { - getComputedStyle: function(){ + getComputedStyle: function(elem){ return { - getPropertyValue: function(){ - return ""; + getPropertyValue: function(prop){ + prop = prop.replace(/\-(\w)/g,function(m,c){ + return c.toUpperCase(); + }); + var val = elem.style[prop]; + + if ( prop == "opacity" && val == "" ) + val = "1"; + + return val; } - } + }; } }; } @@ -206,8 +217,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 +267,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 ); @@ -348,7 +358,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){