security/manager/ssl/tests/mochitest/bugs/test_bug480619.html

branch
TOR_BUG_3246
changeset 5
4ab42b5ab56c
equal deleted inserted replaced
-1:000000000000 0:64cb476f1b0f
1 <!DOCTYPE HTML>
2 <html>
3 <head>
4 <title>Test bug 480619</title>
5 <script type="text/javascript" src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"></script>
6 <link rel="stylesheet" type="text/css" href="chrome://mochikit/content/tests/SimpleTest/test.css" />
7 </head>
8 <body>
9
10 <script class="testbody" type="text/javascript">
11
12 const Cc = Components.classes;
13 const Ci = Components.interfaces;
14
15 SimpleTest.waitForExplicitFinish();
16
17 var currentThread = Cc["@mozilla.org/thread-manager;1"].
18 getService(Ci.nsIThreadManager).
19 currentThread;
20 var socketTransportService = Cc["@mozilla.org/network/socket-transport-service;1"].
21 getService(Ci.nsISocketTransportService);
22
23 var tearDown = false;
24
25 var reader = {
26 onInputStreamReady: function(stream) {
27 try {
28 stream.available();
29 SimpleTest.ok(false, "Stream should be in an error state");
30 }
31 catch (e) {
32 SimpleTest.is(e.result, Components.results.NS_ERROR_FAILURE,
33 "The stream should be inside an error state");
34 SimpleTest.ok(tearDown, "The stream should be closed after a teardown of secure decoder ring");
35 }
36 SimpleTest.finish();
37 }
38 };
39
40 var sink = {
41 onTransportStatus: function(transport, status, progress, progressmax) {
42 if (status == Ci.nsISocketTransport.STATUS_CONNECTED_TO) {
43 // Try to logout and tear down the secure decoder ring.
44 // This should close and stream and notify the reader.
45 // The test will time out if this fails.
46 tearDown = true;
47 Cc["@mozilla.org/security/sdr;1"].
48 getService(Ci.nsISecretDecoderRing).
49 logoutAndTeardown();
50 }
51 }
52 };
53
54 var transport = socketTransportService.createTransport(["ssl"], 1, "127.0.0.1", 4443, null);
55
56 transport.setEventSink(sink, currentThread);
57
58 var inStream = transport.openInputStream(0, 0, 0)
59 .QueryInterface(Ci.nsIAsyncInputStream);
60
61 inStream.asyncWait(reader, Ci.nsIAsyncInputStream.WAIT_CLOSURE_ONLY, 0, currentThread);
62
63 </script>
64 </body>
65 </html>

mercurial