testing/mochitest/tests/MochiKit-1.4.2/MochiKit/MockDOM.js

Thu, 22 Jan 2015 13:21:57 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Thu, 22 Jan 2015 13:21:57 +0100
branch
TOR_BUG_9701
changeset 15
b8a032363ba2
permissions
-rw-r--r--

Incorporate requested changes from Mozilla in review:
https://bugzilla.mozilla.org/show_bug.cgi?id=1123480#c6

     1 /***
     3 MochiKit.MockDOM 1.4.2
     5 See <http://mochikit.com/> for documentation, downloads, license, etc.
     7 (c) 2005 Bob Ippolito.  All rights Reserved.
     9 ***/
    11 if (typeof(MochiKit) == "undefined") {
    12     MochiKit = {};
    13 }
    15 if (typeof(MochiKit.MockDOM) == "undefined") {
    16     MochiKit.MockDOM = {};
    17 }
    19 MochiKit.MockDOM.NAME = "MochiKit.MockDOM";
    20 MochiKit.MockDOM.VERSION = "1.4.2";
    22 MochiKit.MockDOM.__repr__ = function () {
    23     return "[" + this.NAME + " " + this.VERSION + "]";
    24 };
    26 /** @id MochiKit.MockDOM.toString */
    27 MochiKit.MockDOM.toString = function () {
    28     return this.__repr__();
    29 };
    31 /** @id MochiKit.MockDOM.createDocument */
    32 MochiKit.MockDOM.createDocument = function () {
    33     var doc = new MochiKit.MockDOM.MockElement("DOCUMENT");
    34     doc.body = doc.createElement("BODY");
    35     doc.appendChild(doc.body);
    36     return doc;
    37 };
    39 /** @id MochiKit.MockDOM.MockElement */
    40 MochiKit.MockDOM.MockElement = function (name, data, ownerDocument) {
    41     this.tagName = this.nodeName = name.toUpperCase();
    42     this.ownerDocument = ownerDocument || null;
    43     if (name == "DOCUMENT") {
    44         this.nodeType = 9;
    45         this.childNodes = [];
    46     } else if (typeof(data) == "string") {
    47         this.nodeValue = data;
    48         this.nodeType = 3;
    49     } else {
    50         this.nodeType = 1;
    51         this.childNodes = [];
    52     }
    53     if (name.substring(0, 1) == "<") {
    54         var nameattr = name.substring(
    55             name.indexOf('"') + 1, name.lastIndexOf('"'));
    56         name = name.substring(1, name.indexOf(" "));
    57         this.tagName = this.nodeName = name.toUpperCase();
    58         this.setAttribute("name", nameattr);
    59     }
    60 };
    62 MochiKit.MockDOM.MockElement.prototype = {
    63     /** @id MochiKit.MockDOM.MockElement.prototype.createElement */
    64     createElement: function (tagName) {
    65         return new MochiKit.MockDOM.MockElement(tagName, null, this.nodeType == 9 ? this : this.ownerDocument);
    66     },
    67     /** @id MochiKit.MockDOM.MockElement.prototype.createTextNode */
    68     createTextNode: function (text) {
    69         return new MochiKit.MockDOM.MockElement("text", text, this.nodeType == 9 ? this : this.ownerDocument);
    70     },
    71     /** @id MochiKit.MockDOM.MockElement.prototype.setAttribute */
    72     setAttribute: function (name, value) {
    73         this[name] = value;
    74     },
    75     /** @id MochiKit.MockDOM.MockElement.prototype.getAttribute */
    76     getAttribute: function (name) {
    77         return this[name];
    78     },
    79     /** @id MochiKit.MockDOM.MockElement.prototype.appendChild */
    80     appendChild: function (child) {
    81         this.childNodes.push(child);
    82     },
    83     /** @id MochiKit.MockDOM.MockElement.prototype.toString */
    84     toString: function () {
    85         return "MockElement(" + this.tagName + ")";
    86     },
    87     /** @id MochiKit.MockDOM.MockElement.prototype.getElementsByTagName */
    88     getElementsByTagName: function (tagName) {
    89         var foundElements = [];
    90         MochiKit.Base.nodeWalk(this, function(node){
    91             if (tagName == '*' || tagName == node.tagName) {
    92                 foundElements.push(node);
    93                 return node.childNodes;
    94             }
    95         });
    96         return foundElements;
    97     }
    98 };
   100     /** @id MochiKit.MockDOM.EXPORT_OK */
   101 MochiKit.MockDOM.EXPORT_OK = [
   102     "mockElement",
   103     "createDocument"
   104 ];
   106     /** @id MochiKit.MockDOM.EXPORT */
   107 MochiKit.MockDOM.EXPORT = [
   108     "document"
   109 ];
   111 MochiKit.MockDOM.__new__ = function () {
   112     this.document = this.createDocument();
   113 };
   115 MochiKit.MockDOM.__new__();

mercurial