blob: d6e450a133fe85c62f97da5fa47aa8bb9c25b1f1 [file] [log] [blame]
var global = window;
function readBlobAsArrayBuffer(blob) {
return new Promise(function (resolve, reject) {
var reader = new FileReader();
reader.onload = function (evt) {
resolve(evt.target.result);
};
reader.onabort = function (evt) {
reject(evt);
};
reader.onerror = function (evt) {
reject(evt);
};
reader.readAsText(blob, "utf-8");
});
}
new Promise(function (resolve, reject) {
global.req = new XMLHttpRequest;
req.responseType = "blob";
req.open("GET", "resources/get.txt", true);
req.onreadystatechange = function () {
if (req.readyState != req.DONE) {
return;
}
shouldBe("req.status", "200");
shouldBe("req.response.size", "4");
readBlobAsArrayBuffer(req.response).then(function (value) {
global.buffer = value;
shouldBeEqualToString("buffer", "PASS");
testPassed("Set responseType before open(): Successful");
}).then(resolve, reject);
};
req.send(null);
}).catch(function (r) {
testFailed("Set responseType before open: Failed: " + r);
}).then(function () {
return new Promise(function (resolve, reject)
{
global.req = new XMLHttpRequest;
req.open('GET', 'resources/get.txt', true);
req.onreadystatechange = function () {
if (req.readyState != req.DONE) {
return;
}
shouldBe("req.status", "200");
shouldBe("req.response.size", "4");
readBlobAsArrayBuffer(req.response).then(function (value) {
global.buffer = value;
shouldBeEqualToString("buffer", "PASS");
testPassed("Set responseType before send(): Successful");
}).then(resolve, reject);
};
req.responseType = 'blob';
req.send(null);
});
}).catch(function (r) {
testFailed("Set responseType before send(): Failed: " + r);
}).then(function () {
return new Promise(function (resolve, reject)
{
global.req = new XMLHttpRequest;
req.open('GET', 'resources/get.txt', true);
req.onreadystatechange = function () {
if (req.readyState == req.HEADERS_RECEIVED) {
req.responseType = 'blob';
return;
} else if (req.readyState != req.DONE) {
return;
}
shouldBe("req.status", "200");
shouldBe("req.response.size", "4");
readBlobAsArrayBuffer(req.response).then(function (value) {
global.buffer = value;
shouldBeEqualToString("buffer", "PASS");
testPassed("Set responseType in HEADERS_RECEIVED: Successful");
}).then(finishJSTest, reject);
};
req.send(null);
});
}).catch(function (r) {
testFailed("Set responseType in HEADERS_RECEIVED: Failed: " + r);
finishJSTest();
});