<!DOCTYPE HTML> <html> <!-- https://bugzilla.mozilla.org/show_bug.cgi?id=1020244 --> <head> <meta charset="utf-8"> <title>Test for Bug 1020244 - Test the chrome-only AnonymousContent API</title> <script type="application/javascript" src="/tests/SimpleTest/SimpleTest.js"></script> <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/> </head> <body> <a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1020244">Mozilla Bug 1020244</a> <script type="application/javascript;version=1.8"> // Testing the presence of the chrome-only API ok(!document.insertAnonymousContent, "Content document shouldn't have access to insertAnonymousContent"); ok(!document.removeAnonymousContent, "Content document shouldn't have access to removeAnonymousContent"); let chromeDocument = SpecialPowers.wrap(document); ok(chromeDocument.insertAnonymousContent, "Chrome document should have access to insertAnonymousContent"); ok(chromeDocument.removeAnonymousContent, "Chrome document should have access to removeAnonymousContent"); // Testing invalid inputs let invalidNodes = [null, undefined, false, 1, "string"]; for (let node of invalidNodes) { let didThrow = false; try { chromeDocument.insertAnonymousContent(node); } catch (e) { didThrow = true; } ok(didThrow, "Passing an invalid node to insertAnonymousContent should throw"); } // Testing the API of the returned object let div = document.createElement("div"); div.textContent = "this is a test element"; let anonymousContent = chromeDocument.insertAnonymousContent(div); ok(anonymousContent, "AnonymousContent object returned"); let members = ["getTextContentForElement", "setTextContentForElement", "getAttributeForElement", "setAttributeForElement", "removeAttributeForElement", "getCanvasContext", "setAnimationForElement"]; for (let member of members) { ok(member in anonymousContent, "AnonymousContent object defines " + member); } chromeDocument.removeAnonymousContent(anonymousContent); </script> </body> </html>