function setup() { // Allowing some protocols to get a channel if (!inChildProcess()) {
Services.prefs.setCharPref( "network.gio.supported-protocols", "localtest:,recent:"
);
} else {
do_send_remote_message("gio-allow-test-protocols");
do_await_remote_message("gio-allow-test-protocols-done");
}
}
setup();
registerCleanupFunction(() => { // Resetting the protocols to None if (!inChildProcess()) {
Services.prefs.clearUserPref("network.gio.supported-protocols");
}
});
function new_file_input_stream(file, buffered) { var stream = Cc["@mozilla.org/network/file-input-stream;1"].createInstance(
Ci.nsIFileInputStream
);
stream.init(file, PR_RDONLY, 0, 0); if (!buffered) { return stream;
}
onStartRequest() { if (this._got_onstartrequest) {
do_throw("Got second onStartRequest event!");
} this._got_onstartrequest = true;
},
onDataAvailable(request, stream, offset, count) { if (!this._got_onstartrequest) {
do_throw("onDataAvailable without onStartRequest event!");
} if (this._got_onstoprequest) {
do_throw("onDataAvailable after onStopRequest event!");
} if (!request.isPending()) {
do_throw("request reports itself as not pending from onStartRequest!");
}
onStopRequest(request, status) { if (!this._got_onstartrequest) {
do_throw("onStopRequest without onStartRequest event!");
} if (this._got_onstoprequest) {
do_throw("Got second onStopRequest event!");
} this._got_onstoprequest = true; if (!Components.isSuccessCode(status)) {
do_throw("Failed to load file: " + status.toString(16));
} if (status != request.status) {
do_throw("request.status does not match status arg to onStopRequest!");
} if (request.isPending()) {
do_throw("request reports itself as pending from onStopRequest!");
} if (this._contentLen != -1 && this._buffer.length != this._contentLen) {
do_throw("did not read nsIChannel.contentLength number of bytes!");
}
this._closure(this._buffer);
},
};
function test_read_file() {
dump("*** test_read_file\n"); // Going via parent path, because this is opended from test/unit/ and test/unit_ipc/ var file = do_get_file("../unit/data/test_readline4.txt"); var chan = new_file_channel("localtest://" + file.path);
function on_read_complete(data) {
dump("*** test_read_file.on_read_complete()\n"); /* read completed successfully. now read data directly from file,
and compare the result. */ var stream = new_file_input_stream(file, false); var result = read_stream(stream, stream.available()); if (result != data) {
do_throw("Stream contents do not match with direct read!");
}
run_next_test();
}
function do_test_read_data_dir() {
dump('*** test_read_data_dir("../data/")\n');
var dir = do_get_file("../unit/data/"); var chan = new_file_channel("localtest://" + dir.path);
function on_read_complete(data) {
dump("*** test_read_data_dir.on_read_complete()\n");
// The data-directory should be listed, containing a header-line and the files therein if (
!(
data.includes("200: filename content-length last-modified file-type") &&
data.includes("201: test_readline1.txt") &&
data.includes("201: test_readline2.txt")
)
) {
do_throw( "test_read_data_dir() - Bad data! Does not contain needles! Is <" +
data + ">"
);
}
run_next_test();
}
chan.asyncOpen(new FileStreamListener(on_read_complete));
}
function do_test_read_recent() {
dump('*** test_read_recent("recent://")\n');
var chan = new_file_channel("recent:///");
function on_read_complete(data) {
dump("*** test_read_recent.on_read_complete()\n");
// The data-directory should be listed, containing a header-line and the files therein if (
!data.includes("200: filename content-length last-modified file-type")
) {
do_throw( "do_test_read_recent() - Bad data! Does not contain header! Is <" +
data + ">"
);
}
run_next_test();
}
chan.asyncOpen(new FileStreamListener(on_read_complete));
}
Messung V0.5
¤ Dauer der Verarbeitung: 0.13 Sekunden
(vorverarbeitet)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.