blob: 2e18053a85b4647fcd4178b06b8be928e487abe5 [file] [log] [blame]
<html>
<head></head>
<body>
<script src="/js-test-resources/js-test.js"></script>
<script>
description('Test for array buffer and data view POST in XMLHttpRequest async send.');
window.jsTestIsAsync = true;
function runTest(type) {
return new Promise(function(resolve, reject) {
var req = new XMLHttpRequest();
req.open('POST', 'resources/post-echo-as-ascii.cgi', true);
req.onreadystatechange = function() {
if (req.readyState == req.DONE) {
debug('req.readyState = ' + req.readyState + ': responseURL = ' + req.responseURL);
resolve(req);
}
}
if (type == 'dataView') {
var array = new Uint8Array([0, 1, 2, 48, 49, 50, 128, 129, 130, 253, 254, 255]);
req.send(new DataView(array.buffer));
} else {
var array = new Uint8Array([0, 1, 2, 48, 49, 50, 128, 129, 130, 253, 254, 255]);
req.send(array);
}
});
}
runTest('dataView').then(function(req) {
window.status = req.status;
shouldBeEqualToString('status', '200');
responseText = req.responseText;
shouldBeEqualToString('responseText', '0 1 2 48 49 50 128 129 130 253 254 255');
return runTest('bufferView');
}).then(function(req) {
window.status = req.status;
shouldBeEqualToString('status', '200');
responseText = req.responseText;
shouldBeEqualToString('responseText', '0 1 2 48 49 50 128 129 130 253 254 255');
}).catch(function(reason) {
testFailed(String(reason));
}).then(finishJSTest, finishJSTest);
</script>
</body>
</html>