Beef up XHR code in sh.wget(), still failing 2 in PhantomJS due to not having web server
This commit is contained in:
parent
2aa46493fa
commit
60a9dc2470
|
@ -444,8 +444,16 @@ define(function(require) {
|
||||||
var path = options.filename || ('file-' + Date.now());
|
var path = options.filename || ('file-' + Date.now());
|
||||||
path = Path.resolve(fs.cwd, path);
|
path = Path.resolve(fs.cwd, path);
|
||||||
|
|
||||||
|
function onerror() {
|
||||||
|
callback(new Error('unable to get resource'));
|
||||||
|
}
|
||||||
|
|
||||||
var request = new XMLHttpRequest();
|
var request = new XMLHttpRequest();
|
||||||
request.addEventListener("load", function() {
|
request.onload = function() {
|
||||||
|
if(request.status !== 200) {
|
||||||
|
return onerror();
|
||||||
|
}
|
||||||
|
|
||||||
var data = new Uint8Array(request.response);
|
var data = new Uint8Array(request.response);
|
||||||
fs.writeFile(path, data, function(err) {
|
fs.writeFile(path, data, function(err) {
|
||||||
if(err) {
|
if(err) {
|
||||||
|
@ -454,9 +462,12 @@ define(function(require) {
|
||||||
callback(null, path);
|
callback(null, path);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}, false);
|
};
|
||||||
request.addEventListener("error", function(err) { callback(err); }, false);
|
request.onerror = onerror;
|
||||||
request.open("GET", url);
|
request.open("GET", url, true);
|
||||||
|
if("withCredentials" in request) {
|
||||||
|
request.withCredentials = true;
|
||||||
|
}
|
||||||
request.responseType = "arraybuffer";
|
request.responseType = "arraybuffer";
|
||||||
request.send();
|
request.send();
|
||||||
};
|
};
|
||||||
|
|
|
@ -20,6 +20,17 @@ define(["Filer", "util"], function(Filer, util) {
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it('should fail when the url does not exist (404)', function(done) {
|
||||||
|
var fs = util.fs();
|
||||||
|
var shell = fs.Shell();
|
||||||
|
|
||||||
|
shell.wget("no-such-url", function(err, data) {
|
||||||
|
expect(err).to.exist;
|
||||||
|
expect(data).not.to.exist;
|
||||||
|
done();
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
it('should download the contents of a file from a url to default filename', function(done) {
|
it('should download the contents of a file from a url to default filename', function(done) {
|
||||||
var fs = util.fs();
|
var fs = util.fs();
|
||||||
var shell = fs.Shell();
|
var shell = fs.Shell();
|
||||||
|
|
Loading…
Reference in New Issue