|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
<html>
|
|
Packit |
f0b94e |
<head>
|
|
Packit |
f0b94e |
<title>Test for nsIDOMWindowUtils.getTranslationNodes</title>
|
|
Packit |
f0b94e |
<script type="application/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
|
|
Packit |
f0b94e |
<link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/>
|
|
Packit |
f0b94e |
</head>
|
|
Packit |
f0b94e |
<body onload="runTest()">
|
|
Packit |
f0b94e |
<script type="application/javascript">
|
|
Packit |
f0b94e |
var utils = SpecialPowers.wrap(window).
|
|
Packit |
f0b94e |
QueryInterface(SpecialPowers.Ci.nsIInterfaceRequestor).
|
|
Packit |
f0b94e |
getInterface(SpecialPowers.Ci.nsIDOMWindowUtils);
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
function testTranslationRoot(rootNode) {
|
|
Packit |
f0b94e |
var translationNodes = utils.getTranslationNodes(rootNode);
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
var expectedResult = rootNode.getAttribute("expected");
|
|
Packit |
f0b94e |
var expectedLength = expectedResult.split(" ").length;
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
is(translationNodes.length, expectedLength,
|
|
Packit |
f0b94e |
"Correct number of translation nodes for testcase " + rootNode.id);
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
var resultList = [];
|
|
Packit |
f0b94e |
for (var i = 0; i < translationNodes.length; i++) {
|
|
Packit |
f0b94e |
var node = translationNodes.item(i).localName;
|
|
Packit |
f0b94e |
if (translationNodes.isTranslationRootAtIndex(i)) {
|
|
Packit |
f0b94e |
node += "[root]"
|
|
Packit |
f0b94e |
}
|
|
Packit |
f0b94e |
resultList.push(node);
|
|
Packit |
f0b94e |
}
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
is(resultList.length, translationNodes.length,
|
|
Packit |
f0b94e |
"Correct number of translation nodes for testcase " + rootNode.id);
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
is(resultList.join(" "), expectedResult,
|
|
Packit |
f0b94e |
"Correct list of translation nodes for testcase " + rootNode.id);
|
|
Packit |
f0b94e |
}
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
function runTest() {
|
|
Packit |
f0b94e |
isnot(utils, null, "nsIDOMWindowUtils");
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
var testcases = document.querySelectorAll("div[expected]");
|
|
Packit |
f0b94e |
for (var testcase of testcases) {
|
|
Packit |
f0b94e |
testTranslationRoot(testcase);
|
|
Packit |
f0b94e |
}
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
var testiframe = document.getElementById("testiframe");
|
|
Packit |
f0b94e |
var iframediv = testiframe.contentDocument.querySelector("div");
|
|
Packit |
f0b94e |
try {
|
|
Packit |
f0b94e |
var foo = utils.getTranslationNodes(iframediv);
|
|
Packit |
f0b94e |
ok(false, "Cannot use a node from a different document");
|
|
Packit |
f0b94e |
} catch (e) {
|
|
Packit |
f0b94e |
is(e.name, "WrongDocumentError", "Cannot use a node from a different document");
|
|
Packit |
f0b94e |
}
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
SimpleTest.finish();
|
|
Packit |
f0b94e |
}
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
SimpleTest.waitForExplicitFinish();
|
|
Packit |
f0b94e |
</script>
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
expected="div[root] span">
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
lorem ipsum dolor sit amet
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
displayed as a block -->
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
expected="div[root] span[root]">
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
lorem ipsum dolor sit amet
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
with content is returned -->
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
expected="p[root]">
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
lorem ipsum
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
becomes a root -->
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
expected="span[root]">
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
lorem ipsum
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
expected="li[root] li[root]">
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
lorem
|
|
Packit |
f0b94e |
ipsum
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
expected="ul[root] li[root] li[root]">
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
lorem
|
|
Packit |
f0b94e |
ipsum
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
expected="ul[root] li li">
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
lorem
|
|
Packit |
f0b94e |
ipsum
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
expected="li[root] li[root]">
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
lorem
|
|
Packit |
f0b94e |
ipsum
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
or numbers are ignored -->
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
expected="li[root] li[root]">
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
lorem
|
|
Packit |
f0b94e |
ipsum
|
|
Packit |
f0b94e |
-.,;'/!@#$%^*()
|
|
Packit |
f0b94e |
0123456789
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
expected="p[root] a b p[root] a b">
|
|
Packit |
f0b94e |
Lorem ipsum dolor sit amet, consetetur
|
|
Packit |
f0b94e |
Lorem ipsum dolor sit amet, consetetur
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
expected="p[root] a b">
|
|
Packit |
f0b94e |
Lorem ipsum dolor sit amet, consetetur
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
expected="p[root]">
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
Lorem ipsum
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
expected="div[root] p[root]">
|
|
Packit |
f0b94e |
Lorem ipsum
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
Lorem ipsum
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
content are ignored -->
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
expected="div[root]">
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
Lorem Ipsum
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
<style>.dummyClass { color: blue; }</style>
|
|
Packit |
f0b94e |
<script> /* script tag */ </script>
|
|
Packit |
f0b94e |
code
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
srcdoc="Lorem ipsum ">
|
|
Packit |
f0b94e |
</iframe>
|
|
Packit |
f0b94e |
<svg>lorem</svg>
|
|
Packit |
f0b94e |
<math>ipsum</math>
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
the parents are in the list of translation nodes -->
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
expected="p[root] a b span em">
|
|
Packit |
f0b94e |
Lorem ipsum dolor sit amet, consetetur
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
expected="p[root] p[root]">
|
|
Packit |
f0b94e |
Lorem ipsum
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
Lorem ipsum
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
expected="p[root]">
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
Lorem Ipsum
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
</body>
|
|
Packit |
f0b94e |
</html>
|