83 lines
2.7 KiB
HTML
83 lines
2.7 KiB
HTML
<iframe src="empty.html" id="selectors" width=0 height=0 frameborder=0></iframe>
|
|
<p>The test below should report no failures, and should say PASS at the end.</p>
|
|
<script>
|
|
if (window.testRunner) {
|
|
testRunner.dumpAsText();
|
|
}
|
|
</script>
|
|
<script>
|
|
|
|
function getTestDocument() {
|
|
var iframe = document.getElementById("selectors");
|
|
var doc = iframe.contentDocument;
|
|
for (var i = doc.documentElement.childNodes.length-1; i >= 0; i -= 1)
|
|
doc.documentElement.removeChild(doc.documentElement.childNodes[i]);
|
|
doc.documentElement.appendChild(doc.createElement('head'));
|
|
doc.documentElement.firstChild.appendChild(doc.createElement('title'));
|
|
doc.documentElement.appendChild(doc.createElement('body'));
|
|
return doc;
|
|
}
|
|
|
|
var failCount = 0;
|
|
|
|
function fail(message) {
|
|
document.write(message.replace("&", "&").replace("<", "<") + "<br>");
|
|
++failCount;
|
|
}
|
|
|
|
function assert(condition, message) {
|
|
if (!condition)
|
|
fail(message);
|
|
}
|
|
|
|
function assertEquals(expression, value, message) {
|
|
if (expression != value) {
|
|
expression = (""+expression).replace(/[\r\n]+/g, "\\n");
|
|
value = (""+value).replace(/\r?\n/g, "\\n");
|
|
fail("expected '" + value + "' but got '" + expression + "' - " + message);
|
|
}
|
|
}
|
|
|
|
// test 11: Ranges and Comments
|
|
var msg;
|
|
var doc = getTestDocument();
|
|
var c1 = doc.createComment("11111");
|
|
doc.appendChild(c1);
|
|
var r = doc.createRange();
|
|
r.selectNode(c1);
|
|
msg = 'wrong exception raised';
|
|
try {
|
|
r.surroundContents(doc.createElement('a'));
|
|
msg = 'no exception raised';
|
|
} catch (e) {
|
|
if ('code' in e)
|
|
msg += '; code = ' + e.code;
|
|
if (e.code == 3) // HIERARCHY_REQUEST_ERR
|
|
msg = '';
|
|
}
|
|
assert(msg == '', "when inserting <a> into Document with another child: " + msg);
|
|
var c2 = doc.createComment("22222");
|
|
doc.body.appendChild(c2);
|
|
var c3 = doc.createComment("33333");
|
|
doc.body.appendChild(c3);
|
|
r.setStart(c2, 2);
|
|
r.setEnd(c3, 3);
|
|
var msg = 'wrong exception raised';
|
|
try {
|
|
r.surroundContents(doc.createElement('a'));
|
|
msg = 'no exception raised';
|
|
} catch (e) {
|
|
// COMMENTED OUT FOR 2011 UPDATE - DOM Core changes the exception from RangeException.BAD_BOUNDARYPOINTS_ERR (1) to DOMException.INVALID_STATE_ERR (11)
|
|
// if ('code' in e)
|
|
// msg += '; code = ' + e.code;
|
|
// if (e.code == 1)
|
|
msg = '';
|
|
}
|
|
assert(msg == '', "when trying to surround two halves of comment: " + msg);
|
|
assertEquals(r.toString(), "", "comments returned text");
|
|
|
|
if (failCount == 0)
|
|
document.write("PASS<br>");
|
|
</script>
|
|
|