<script>
if (window.testRunner)
    testRunner.dumpAsText();
</script>

Passes if we don't crash.  (Note the following script tag has "smart" quotes.)

<script type=”text/javascript”>
</script>
