X-Git-Url: http://git.asbjorn.it/?a=blobdiff_plain;f=build%2Fruntest%2Fenv.js;h=f3afb1959ebcd7ebd4bb73a74560d53d3b1f3abf;hb=b147039acc32884b50b955ebd94eeaa430713786;hp=564b02207754035687ca19f2bb0caa5332a21cd5;hpb=b5bf00a37368baf69595434c0329f869b9ca18e9;p=jquery.git diff --git a/build/runtest/env.js b/build/runtest/env.js index 564b022..f3afb19 100644 --- a/build/runtest/env.js +++ b/build/runtest/env.js @@ -79,17 +79,22 @@ var window = this; this._dom = Packages.javax.xml.parsers. DocumentBuilderFactory.newInstance() .newDocumentBuilder().parse(file); + + if ( !obj_nodes.containsKey( this._dom ) ) + obj_nodes.put( this._dom, this ); }; DOMDocument.prototype = { createTextNode: function(text){ - return makeNode( this._dom.createTextNode(text) ); + return makeNode( this._dom.createTextNode( + text.replace(/&/g, "&").replace(//g, ">")) ); }, createElement: function(name){ - return makeNode( this._dom.createElement(name) ); + return makeNode( this._dom.createElement(name.toLowerCase()) ); }, getElementsByTagName: function(name){ - return new DOMNodeList( this._dom.getElementsByTagName(name) ); + return new DOMNodeList( this._dom.getElementsByTagName( + name.toLowerCase()) ); }, getElementById: function(id){ var elems = this._dom.getElementsByTagName("*"); @@ -145,6 +150,10 @@ var window = this; } }; + function getDocument(node){ + return obj_nodes.get(node); + } + // DOM NodeList window.DOMNodeList = function(list){ @@ -188,10 +197,10 @@ var window = this; return makeNode( this._dom.cloneNode(deep) ); }, get ownerDocument(){ - return document; + return getDocument( this._dom.ownerDocument ); }, get documentElement(){ - return document.documentElement; + return makeNode( this._dom.documentElement ); }, get parentNode() { return makeNode( this._dom.getParentNode() ); @@ -214,7 +223,10 @@ var window = this; window.DOMElement = function(elem){ this._dom = elem; - this.style = {}; + this.style = { + get opacity(){ return this._opacity; }, + set opacity(val){ this._opacity = val + ""; } + }; // Load CSS info var styles = (this.getAttribute("style") || "").split(/\s*;\s*/); @@ -264,6 +276,10 @@ var window = this; return this.childNodes.valueOf(); }, set innerHTML(html){ + html = html.replace(/<\/?([A-Z]+)/g, function(m){ + return m.toLowerCase(); + }); + var nodes = this.ownerDocument.importNode( new DOMDocument( new java.io.ByteArrayInputStream( (new java.lang.String("" + html + "")) @@ -292,8 +308,7 @@ var window = this; set textContent(text){ while (this.firstChild) this.removeChild( this.firstChild ); - this.appendChild( document.createTextNode(text) ); - this.innerHTML = document.createTextNode(text).nodeValue; + this.appendChild( this.ownerDocument.createTextNode(text)); }, style: {}, @@ -396,6 +411,22 @@ var window = this; blur: function(){}, get elements(){ return this.getElementsByTagName("*"); + }, + get contentWindow(){ + return this.nodeName == "IFRAME" ? { + document: this.contentDocument + } : null; + }, + get contentDocument(){ + if ( this.nodeName == "IFRAME" ) { + if ( !this._doc ) + this._doc = new DOMDocument( + new java.io.ByteArrayInputStream((new java.lang.String( + "")) + .getBytes("UTF8"))); + return this._doc; + } else + return null; } });