diff options
author | Matt A. Tobin <email@mattatobin.com> | 2020-02-25 15:07:00 -0500 |
---|---|---|
committer | Matt A. Tobin <email@mattatobin.com> | 2020-02-25 15:07:00 -0500 |
commit | 0ddd00f1959c78ce37c14fef3c83401408fca3bf (patch) | |
tree | d408e02767c86cf8aac3acbb86722b03c77ede6f /toolkit/modules/tests/MockDocument.jsm | |
parent | 20f0905b33cbb18d1caa80c55e2f552c2e18957b (diff) | |
download | UXP-0ddd00f1959c78ce37c14fef3c83401408fca3bf.tar UXP-0ddd00f1959c78ce37c14fef3c83401408fca3bf.tar.gz UXP-0ddd00f1959c78ce37c14fef3c83401408fca3bf.tar.lz UXP-0ddd00f1959c78ce37c14fef3c83401408fca3bf.tar.xz UXP-0ddd00f1959c78ce37c14fef3c83401408fca3bf.zip |
Issue #439 - Remove tests from toolkit/
Diffstat (limited to 'toolkit/modules/tests/MockDocument.jsm')
-rw-r--r-- | toolkit/modules/tests/MockDocument.jsm | 50 |
1 files changed, 0 insertions, 50 deletions
diff --git a/toolkit/modules/tests/MockDocument.jsm b/toolkit/modules/tests/MockDocument.jsm deleted file mode 100644 index 3cae9bb91..000000000 --- a/toolkit/modules/tests/MockDocument.jsm +++ /dev/null @@ -1,50 +0,0 @@ -/** - * Provides infrastructure for tests that would require mock document. - */ - -"use strict"; - -this.EXPORTED_SYMBOLS = ["MockDocument"] - -const {classes: Cc, interfaces: Ci, utils: Cu, results: Cr} = Components; - -Cu.importGlobalProperties(["URL"]); - -const MockDocument = { - /** - * Create a document for the given URL containing the given HTML with the ownerDocument of all <form>s having a mocked location. - */ - createTestDocument(aDocumentURL, aContent = "<form>", aType = "text/html") { - let parser = Cc["@mozilla.org/xmlextras/domparser;1"]. - createInstance(Ci.nsIDOMParser); - parser.init(); - let parsedDoc = parser.parseFromString(aContent, aType); - - for (let element of parsedDoc.forms) { - this.mockOwnerDocumentProperty(element, parsedDoc, aDocumentURL); - } - return parsedDoc; - }, - - mockOwnerDocumentProperty(aElement, aDoc, aURL) { - // Mock the document.location object so we can unit test without a frame. We use a proxy - // instead of just assigning to the property since it's not configurable or writable. - let document = new Proxy(aDoc, { - get(target, property, receiver) { - // document.location is normally null when a document is outside of a "browsing context". - // See https://html.spec.whatwg.org/#the-location-interface - if (property == "location") { - return new URL(aURL); - } - return target[property]; - }, - }); - - // Assign element.ownerDocument to the proxy so document.location works. - Object.defineProperty(aElement, "ownerDocument", { - value: document, - }); - }, - -}; - |