Bug 512515. Let JAR channels report 'file not found' when the file isn't found in the JAR file. r=bsmedberg

--HG--
extra : rebase_source : bc52f7c34fe08c755d17ca5b3587807d63f34a14
This commit is contained in:
Taras Glek 2009-08-26 09:38:25 -07:00
Родитель 68cafc2b14
Коммит 4dc91848f7
2 изменённых файлов: 20 добавлений и 1 удалений

Просмотреть файл

@ -672,7 +672,8 @@ nsJARChannel::Open(nsIInputStream **stream)
// force load the jar file now so GetContentLength will return a
// meaningful value once we return.
mJarInput->EnsureJarStream();
rv = mJarInput->EnsureJarStream();
if (NS_FAILED(rv)) return rv;
NS_ADDREF(*stream = mJarInput);
return NS_OK;

Просмотреть файл

@ -0,0 +1,18 @@
// Should report file not found on non-existent files
const Cc = Components.classes;
const Ci = Components.interfaces;
const path = "data/test_bug333423.zip";
function run_test() {
var ios = Cc["@mozilla.org/network/io-service;1"].
getService(Ci.nsIIOService);
var spec = "jar:" + ios.newFileURI(do_get_file(path)).spec + "!/";
var channel = ios.newChannel(spec + "file_that_isnt_in.archive", null, null);
try {
instr = channel.open();
do_throw("Failed to report that file doesn't exist")
} catch (e) {
do_check_true(e.name == "NS_ERROR_FILE_NOT_FOUND")
}
}