blob: 158bbdccfe1ab9ac6c6d46ba2db40d9900c79ccf [file] [log] [blame]
<!DOCTYPE html>
<script src="/js-test-resources/js-test.js"></script>
<script src="post-blob-content-type-tests.js"></script>
<script type="text/javascript">
description("Test verifies that content MIME type is set correctly " +
"when Blob is sent using " +
"<a href='http://www.w3.org/TR/XMLHttpRequest/#the-send-method'>XMLHttpRequest synchronously.</a>");
var xhr;
var expectedMimeType;
function runSyncTests() {
var testCount = xhrBlobTestCases.length;
for (var i = 0; i < testCount; i++) {
var testCase = xhrBlobTestCases[i];
var mime = testCase.mime;
var file = testCase.file;
var expectedMime = testCase.expectedMime;
var url = testCase.url !== undefined ? testCase.url + xhrBlobTestUrl : xhrBlobTestUrl;
url += testCase.allowOrigin || "";
if (testCase.shouldThrow !== undefined) {
try {
testBlobContentTypeSync(url, file, mime, expectedMime, testCase.closeBeforeSend);
} catch (e) {
testPassed("Exception should be thrown.")
}
} else {
testBlobContentTypeSync(url, file, mime, expectedMime);
}
}
}
function testBlobContentTypeSync(url, fileName, mimeType, expectedMime, closeBeforeSend) {
var blob;
if (fileName) {
if (mimeType !== "")
blob = new File(["Test content"], fileName, {type: mimeType});
else
blob = new File(["Test content"], fileName);
} else {
if (mimeType !== "")
blob = new Blob(["Test content"], {type: mimeType});
else
blob = new Blob(["Test content"]);
}
xhr = new XMLHttpRequest();
xhr.open("POST", url, false);
if (closeBeforeSend)
blob.close();
xhr.send(blob);
if (xhr.status === 200) {
postedMimeType = JSON.parse(xhr.response)['content-type'];
if (expectedMime === '') {
shouldBeTrue("postedMimeType === undefined");
} else {
shouldBeEqualToString("postedMimeType", expectedMime);
}
} else
testFailed("Unknown error");
}
runSyncTests();
</script>