michael@0: /*** michael@0: michael@0: MochiKit.MockDOM 1.4.2 michael@0: michael@0: See for documentation, downloads, license, etc. michael@0: michael@0: (c) 2005 Bob Ippolito. All rights Reserved. michael@0: michael@0: ***/ michael@0: michael@0: if (typeof(MochiKit) == "undefined") { michael@0: MochiKit = {}; michael@0: } michael@0: michael@0: if (typeof(MochiKit.MockDOM) == "undefined") { michael@0: MochiKit.MockDOM = {}; michael@0: } michael@0: michael@0: MochiKit.MockDOM.NAME = "MochiKit.MockDOM"; michael@0: MochiKit.MockDOM.VERSION = "1.4.2"; michael@0: michael@0: MochiKit.MockDOM.__repr__ = function () { michael@0: return "[" + this.NAME + " " + this.VERSION + "]"; michael@0: }; michael@0: michael@0: /** @id MochiKit.MockDOM.toString */ michael@0: MochiKit.MockDOM.toString = function () { michael@0: return this.__repr__(); michael@0: }; michael@0: michael@0: /** @id MochiKit.MockDOM.createDocument */ michael@0: MochiKit.MockDOM.createDocument = function () { michael@0: var doc = new MochiKit.MockDOM.MockElement("DOCUMENT"); michael@0: doc.body = doc.createElement("BODY"); michael@0: doc.appendChild(doc.body); michael@0: return doc; michael@0: }; michael@0: michael@0: /** @id MochiKit.MockDOM.MockElement */ michael@0: MochiKit.MockDOM.MockElement = function (name, data, ownerDocument) { michael@0: this.tagName = this.nodeName = name.toUpperCase(); michael@0: this.ownerDocument = ownerDocument || null; michael@0: if (name == "DOCUMENT") { michael@0: this.nodeType = 9; michael@0: this.childNodes = []; michael@0: } else if (typeof(data) == "string") { michael@0: this.nodeValue = data; michael@0: this.nodeType = 3; michael@0: } else { michael@0: this.nodeType = 1; michael@0: this.childNodes = []; michael@0: } michael@0: if (name.substring(0, 1) == "<") { michael@0: var nameattr = name.substring( michael@0: name.indexOf('"') + 1, name.lastIndexOf('"')); michael@0: name = name.substring(1, name.indexOf(" ")); michael@0: this.tagName = this.nodeName = name.toUpperCase(); michael@0: this.setAttribute("name", nameattr); michael@0: } michael@0: }; michael@0: michael@0: MochiKit.MockDOM.MockElement.prototype = { michael@0: /** @id MochiKit.MockDOM.MockElement.prototype.createElement */ michael@0: createElement: function (tagName) { michael@0: return new MochiKit.MockDOM.MockElement(tagName, null, this.nodeType == 9 ? this : this.ownerDocument); michael@0: }, michael@0: /** @id MochiKit.MockDOM.MockElement.prototype.createTextNode */ michael@0: createTextNode: function (text) { michael@0: return new MochiKit.MockDOM.MockElement("text", text, this.nodeType == 9 ? this : this.ownerDocument); michael@0: }, michael@0: /** @id MochiKit.MockDOM.MockElement.prototype.setAttribute */ michael@0: setAttribute: function (name, value) { michael@0: this[name] = value; michael@0: }, michael@0: /** @id MochiKit.MockDOM.MockElement.prototype.getAttribute */ michael@0: getAttribute: function (name) { michael@0: return this[name]; michael@0: }, michael@0: /** @id MochiKit.MockDOM.MockElement.prototype.appendChild */ michael@0: appendChild: function (child) { michael@0: this.childNodes.push(child); michael@0: }, michael@0: /** @id MochiKit.MockDOM.MockElement.prototype.toString */ michael@0: toString: function () { michael@0: return "MockElement(" + this.tagName + ")"; michael@0: }, michael@0: /** @id MochiKit.MockDOM.MockElement.prototype.getElementsByTagName */ michael@0: getElementsByTagName: function (tagName) { michael@0: var foundElements = []; michael@0: MochiKit.Base.nodeWalk(this, function(node){ michael@0: if (tagName == '*' || tagName == node.tagName) { michael@0: foundElements.push(node); michael@0: return node.childNodes; michael@0: } michael@0: }); michael@0: return foundElements; michael@0: } michael@0: }; michael@0: michael@0: /** @id MochiKit.MockDOM.EXPORT_OK */ michael@0: MochiKit.MockDOM.EXPORT_OK = [ michael@0: "mockElement", michael@0: "createDocument" michael@0: ]; michael@0: michael@0: /** @id MochiKit.MockDOM.EXPORT */ michael@0: MochiKit.MockDOM.EXPORT = [ michael@0: "document" michael@0: ]; michael@0: michael@0: MochiKit.MockDOM.__new__ = function () { michael@0: this.document = this.createDocument(); michael@0: }; michael@0: michael@0: MochiKit.MockDOM.__new__();