<html>
<head>
    <title> Test case for bug 56345 </title>
</head>
<body>
<p> Test case for Bug <a href="https://bugs.webkit.org/show_bug.cgi?id=56345">56345</a>: REGRESSION: Crash in adjustMIMETypeIfNecessary since r81001 </p>
<p> This test verifies that an XHR content with no Content-Type set does not crash the browser. </p>
<body>
<script type="text/javascript">
if (window.testRunner) {
    testRunner.dumpAsText();
    testRunner.waitUntilDone();
}

function checkDone() {
    testRunner.notifyDone();
}

var req = new XMLHttpRequest();
req.onload = checkDone;
req.open("GET", "resources/noContentType.asis", true);
req.send(null);

</script>
</body>
</html>
