blob: ed1e30a1783076879adc6073c7fc12554dc8d3d3 [file] [log] [blame]
<!DOCTYPE html>
<script src="../../resources/js-test.js"></script>
<body>
Test that innerHTML/outerHTML does not mangle javascript: urls.
<div id=console></div>
<div id=jsurltest><a href='javascript:test(&37;3C!--D--&37;3E)'>link</a></div>
<script>
var r = document.getElementById('jsurltest');
r.innerHTML = r.innerHTML.replace('&amp;37;3C!--D--&amp;37;3E', 123);
shouldBeEqualToString('r.innerHTML', '<a href="javascript:test(123)">link</a>');
r.firstChild.setAttribute('href', 'javascript:test(\"text<\")');
shouldBeEqualToString('r.innerHTML', '<a href=\'javascript:test("text<")\'>link</a>');
r.firstChild.setAttribute('href', 'javascript:test(\'text>\')');
shouldBeEqualToString("r.innerHTML", '<a href="javascript:test(\'text>\')">link</a>');
testString = 'javascript:test(\'text&\',"test2&")';
r.firstChild.setAttribute('href', testString);
shouldBeEqualToString('r.innerHTML', '<a href="javascript:test(\'text&amp;\',&quot;test2&amp;&quot;)">link</a>');
r.firstChild.href = 'javascript:window.location=\'?x&y\'';
shouldBeEqualToString("r.firstChild.outerHTML", '<a href="javascript:window.location=\'?x&amp;y\'">link</a>');
// Behavior is same as FF
r.firstChild.href = 'javascript:window.location=\'?x&amp;y\'';
shouldBeEqualToString('r.firstChild.outerHTML', '<a href="javascript:window.location=\'?x&amp;amp;y\'">link</a>');
r.innerHTML = '<a href="javascript:window.location=\'?x&amp;y\'">link</a>';
shouldBeEqualToString('r.firstChild.outerHTML', '<a href="javascript:window.location=\'?x&amp;y\'">link</a>');
</script>