mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
66 lines
2.0 KiB
HTML
66 lines
2.0 KiB
HTML
<!DOCTYPE HTML>
|
|
<html>
|
|
<head>
|
|
<title>Test bug 480619</title>
|
|
<script type="text/javascript" src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"></script>
|
|
<link rel="stylesheet" type="text/css" href="chrome://mochikit/content/tests/SimpleTest/test.css" />
|
|
</head>
|
|
<body>
|
|
|
|
<script class="testbody" type="text/javascript">
|
|
|
|
const Cc = Components.classes;
|
|
const Ci = Components.interfaces;
|
|
|
|
SimpleTest.waitForExplicitFinish();
|
|
|
|
var currentThread = Cc["@mozilla.org/thread-manager;1"].
|
|
getService(Ci.nsIThreadManager).
|
|
currentThread;
|
|
var socketTransportService = Cc["@mozilla.org/network/socket-transport-service;1"].
|
|
getService(Ci.nsISocketTransportService);
|
|
|
|
var tearDown = false;
|
|
|
|
var reader = {
|
|
onInputStreamReady: function(stream) {
|
|
try {
|
|
stream.available();
|
|
SimpleTest.ok(false, "Stream should be in an error state");
|
|
}
|
|
catch (e) {
|
|
SimpleTest.is(e.result, Components.results.NS_ERROR_FAILURE,
|
|
"The stream should be inside an error state");
|
|
SimpleTest.ok(tearDown, "The stream should be closed after a teardown of secure decoder ring");
|
|
}
|
|
SimpleTest.finish();
|
|
}
|
|
};
|
|
|
|
var sink = {
|
|
onTransportStatus: function(transport, status, progress, progressmax) {
|
|
if (status == Ci.nsISocketTransport.STATUS_CONNECTED_TO) {
|
|
// Try to logout and tear down the secure decoder ring.
|
|
// This should close and stream and notify the reader.
|
|
// The test will time out if this fails.
|
|
tearDown = true;
|
|
Cc["@mozilla.org/security/sdr;1"].
|
|
getService(Ci.nsISecretDecoderRing).
|
|
logoutAndTeardown();
|
|
}
|
|
}
|
|
};
|
|
|
|
var transport = socketTransportService.createTransport(["ssl"], 1, "127.0.0.1", 4443, null);
|
|
|
|
transport.setEventSink(sink, currentThread);
|
|
|
|
var inStream = transport.openInputStream(0, 0, 0)
|
|
.QueryInterface(Ci.nsIAsyncInputStream);
|
|
|
|
inStream.asyncWait(reader, Ci.nsIAsyncInputStream.WAIT_CLOSURE_ONLY, 0, currentThread);
|
|
|
|
</script>
|
|
</body>
|
|
</html>
|