This commit is contained in:
Bobby Holley 2011-12-06 11:05:26 -08:00
Родитель 04717714b3
Коммит 4a0db49061
4 изменённых файлов: 81 добавлений и 0 удалений

Просмотреть файл

@ -74,6 +74,7 @@ _CHROME_FILES = \
test_nodelists.xul \
test_getweakmapkeys.xul \
test_weakmaps.xul \
test_bug706301.xul \
$(NULL)
# Disabled until this test gets updated to test the new proxy based

Просмотреть файл

@ -0,0 +1,52 @@
<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="chrome://global/skin"?>
<?xml-stylesheet type="text/css" href="chrome://mochikit/content/tests/SimpleTest/test.css"?>
<!--
https://bugzilla.mozilla.org/show_bug.cgi?id=706301
-->
<window title="Mozilla Bug 706301"
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
<script type="application/javascript" src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"/>
<!-- test results are displayed in the html:body -->
<body xmlns="http://www.w3.org/1999/xhtml">
<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=706301"
target="_blank">Mozilla Bug 706301</a>
<iframe id="ifr" src="http://mochi.test:8888/tests/js/xpconnect/tests/mochitest/file_bug706301.html" onload="doTest();" />
</body>
<!-- test code goes here -->
<script type="application/javascript">
<![CDATA[
/** Test for Bug 706301 **/
SimpleTest.waitForExplicitFinish();
function getLengthInChrome(nodelist) {
// Make sure the object is Xray wrapped.
ok(nodelist === XPCNativeWrapper(nodelist), "object passed from content to chrome " +
"should be Xray-wrapped.");
// Perform the operation.
Object.getOwnPropertyDescriptor(nodelist, 'length');
return nodelist['length'] == 0;
}
function finishTestInChrome() {
SimpleTest.finish();
}
function doTest() {
// Set up the callbacks for content.
$('ifr').contentWindow.wrappedJSObject.getLengthInChrome = getLengthInChrome;
$('ifr').contentWindow.wrappedJSObject.finishTestInChrome = finishTestInChrome;
$('ifr').contentWindow.wrappedJSObject.ok = ok;
// Kick off the test.
$('ifr').contentWindow.postMessage({}, '*');
}
]]>
</script>
</window>

Просмотреть файл

@ -95,6 +95,7 @@ _TEST_FILES = bug500931_helper.html \
test_bug655297.html \
test_bug691059.html \
file_nodelists.html \
file_bug706301.html \
$(NULL)
_CHROME_FILES = \

Просмотреть файл

@ -0,0 +1,27 @@
<!DOCTYPE html>
<html>
<head>
<script type="application/javascript">
window.addEventListener('message', doContentTest);
function doContentTest() {
// This has always worked.
var nodelist1 = document.getElementsByTagName('details');
Object.getOwnPropertyDescriptor(nodelist1, 'length');
ok(nodelist1['length'] == 0, "Content should be able to get the length of " +
"its own nodelist after calling getOwnPropertyDescriptor.");
// This is bug 706301.
var nodelist2 = document.getElementsByTagName('section');
ok(getLengthInChrome(nodelist2), "Chrome should be able to get the length of " +
"content nodelist after calling getOwnPropertyDescriptor.");
// All done.
finishTestInChrome();
}
</script>
</head>
<body>
</body>
</html>