mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
4582b429c0
This version adds checks to make sure child doesn't try to send any IPDL msgs to parent after IPDL has been shut down.
56 lines
1.6 KiB
JavaScript
56 lines
1.6 KiB
JavaScript
do_load_httpd_js();
|
|
|
|
var httpserver = new nsHttpServer();
|
|
var testpath = "/simple";
|
|
var httpbody = "0123456789";
|
|
|
|
var live_channels = [];
|
|
|
|
function run_test() {
|
|
httpserver.registerPathHandler(testpath, serverHandler);
|
|
httpserver.start(4444);
|
|
|
|
var local_channel;
|
|
|
|
// Opened channel that has no remaining references on shutdown
|
|
local_channel = setupChannel(testpath);
|
|
local_channel.asyncOpen(
|
|
new ChannelListener(checkRequest, local_channel), null);
|
|
|
|
// Opened channel that has no remaining references after being opened
|
|
setupChannel(testpath).asyncOpen(
|
|
new ChannelListener(function() {}, null), null);
|
|
|
|
// Unopened channel that has remaining references on shutdown
|
|
live_channels.push(setupChannel(testpath));
|
|
|
|
// Opened channel that has remaining references on shutdown
|
|
live_channels.push(setupChannel(testpath));
|
|
live_channels[1].asyncOpen(
|
|
new ChannelListener(checkRequestFinish, live_channels[1]), null);
|
|
|
|
do_test_pending();
|
|
}
|
|
|
|
function setupChannel(path) {
|
|
var ios = Cc["@mozilla.org/network/io-service;1"].getService(Ci.nsIIOService);
|
|
var chan = ios.newChannel("http://localhost:4444" + path, "", null);
|
|
chan.QueryInterface(Ci.nsIHttpChannel);
|
|
chan.requestMethod = "GET";
|
|
return chan;
|
|
}
|
|
|
|
function serverHandler(metadata, response) {
|
|
response.setHeader("Content-Type", "text/plain", false);
|
|
response.bodyOutputStream.write(httpbody, httpbody.length);
|
|
}
|
|
|
|
function checkRequest(request, data, context) {
|
|
do_check_eq(data, httpbody);
|
|
}
|
|
|
|
function checkRequestFinish(request, data, context) {
|
|
checkRequest(request, data, context);
|
|
httpserver.stop(do_test_finished);
|
|
}
|