From 01b2e864c1d180e729880962b0589acfe81d51f1 Mon Sep 17 00:00:00 2001 From: Cameron Fischer Date: Tue, 21 May 2024 17:02:37 -0400 Subject: [PATCH] Fixed issue with fakedome TW_Node inheritence (#8195) --- core/modules/utils/fakedom.js | 4 +-- editions/test/tiddlers/tests/test-fakedom.js | 27 ++++++++++++++++++++ 2 files changed, 29 insertions(+), 2 deletions(-) create mode 100644 editions/test/tiddlers/tests/test-fakedom.js diff --git a/core/modules/utils/fakedom.js b/core/modules/utils/fakedom.js index 0c1f5fa54..fb28465fe 100755 --- a/core/modules/utils/fakedom.js +++ b/core/modules/utils/fakedom.js @@ -42,7 +42,7 @@ var TW_TextNode = function(text) { this.textContent = text + ""; }; -Object.setPrototypeOf(TW_TextNode,TW_Node.prototype); +Object.setPrototypeOf(TW_TextNode.prototype,TW_Node.prototype); Object.defineProperty(TW_TextNode.prototype, "nodeType", { get: function() { @@ -67,7 +67,7 @@ var TW_Element = function(tag,namespace) { this.namespaceURI = namespace || "http://www.w3.org/1999/xhtml"; }; -Object.setPrototypeOf(TW_Element,TW_Node.prototype); +Object.setPrototypeOf(TW_Element.prototype,TW_Node.prototype); Object.defineProperty(TW_Element.prototype, "style", { get: function() { diff --git a/editions/test/tiddlers/tests/test-fakedom.js b/editions/test/tiddlers/tests/test-fakedom.js new file mode 100644 index 000000000..7041f017b --- /dev/null +++ b/editions/test/tiddlers/tests/test-fakedom.js @@ -0,0 +1,27 @@ +/*\ +title: test-fakedom.js +type: application/javascript +tags: [[$:/tags/test-spec]] + +Tests the fakedom that Tiddlywiki occasionally uses. + +\*/ +(function(){ + +/*jslint node: true, browser: true */ +/*global $tw: false */ +"use strict"; + +describe("fakedom tests", function() { + + it("properly assigns nodeType based on DOM standards", function() { + // According to MDN, ELEMENT_NODE == 1 && TEXT_NODE == 3 + // There are others, but currently they're not implemented in fakedom + expect($tw.fakeDocument.createElement("div").nodeType).toBe(1); + expect($tw.fakeDocument.createElement("div").ELEMENT_NODE).toBe(1); + expect($tw.fakeDocument.createTextNode("text").nodeType).toBe(3); + expect($tw.fakeDocument.createTextNode("text").TEXT_NODE).toBe(3); + }); +}); + +})();