| <!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('&37;3C!--D--&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&\',"test2&")">link</a>'); |
| |
| r.firstChild.href = 'javascript:window.location=\'?x&y\''; |
| shouldBeEqualToString("r.firstChild.outerHTML", '<a href="javascript:window.location=\'?x&y\'">link</a>'); |
| |
| // Behavior is same as FF |
| r.firstChild.href = 'javascript:window.location=\'?x&y\''; |
| shouldBeEqualToString('r.firstChild.outerHTML', '<a href="javascript:window.location=\'?x&amp;y\'">link</a>'); |
| r.innerHTML = '<a href="javascript:window.location=\'?x&y\'">link</a>'; |
| shouldBeEqualToString('r.firstChild.outerHTML', '<a href="javascript:window.location=\'?x&y\'">link</a>'); |
| </script> |