mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
bug 1181376 - convert test_bug480619.html to an xpcshell test r=mgoodwin
This commit is contained in:
parent
89eb454666
commit
2c108fdd54
@ -4,5 +4,4 @@ skip-if = buildapp == 'b2g'
|
||||
|
||||
[test_bug413909.html]
|
||||
skip-if = buildapp == 'mulet'
|
||||
[test_bug480619.html]
|
||||
[test_certificate_overrides.html]
|
||||
|
@ -1,65 +0,0 @@
|
||||
<!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>
|
61
security/manager/ssl/tests/unit/test_logoutAndTeardown.js
Normal file
61
security/manager/ssl/tests/unit/test_logoutAndTeardown.js
Normal file
@ -0,0 +1,61 @@
|
||||
/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
|
||||
/* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||
|
||||
"use strict";
|
||||
|
||||
do_get_profile();
|
||||
|
||||
function connect_and_teardown() {
|
||||
let socketTransportService =
|
||||
Cc["@mozilla.org/network/socket-transport-service;1"]
|
||||
.getService(Ci.nsISocketTransportService);
|
||||
|
||||
let tearDown = false;
|
||||
|
||||
let reader = {
|
||||
onInputStreamReady: function(stream) {
|
||||
try {
|
||||
stream.available();
|
||||
Assert.ok(false, "stream.available() should have thrown");
|
||||
}
|
||||
catch (e) {
|
||||
Assert.equal(e.result, Components.results.NS_ERROR_FAILURE,
|
||||
"stream should be in an error state");
|
||||
Assert.ok(tearDown, "this should be as a result of logoutAndTeardown");
|
||||
run_next_test();
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
let 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();
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
Services.prefs.setCharPref("network.dns.localDomains",
|
||||
"ocsp-stapling-none.example.com");
|
||||
let transport = socketTransportService.createTransport(
|
||||
["ssl"], 1, "ocsp-stapling-none.example.com", 8443, null);
|
||||
transport.setEventSink(sink, Services.tm.currentThread);
|
||||
|
||||
let inStream = transport.openInputStream(0, 0, 0)
|
||||
.QueryInterface(Ci.nsIAsyncInputStream);
|
||||
inStream.asyncWait(reader, Ci.nsIAsyncInputStream.WAIT_CLOSURE_ONLY, 0,
|
||||
Services.tm.currentThread);
|
||||
}
|
||||
|
||||
function run_test() {
|
||||
add_tls_server_setup("OCSPStaplingServer");
|
||||
add_test(connect_and_teardown);
|
||||
run_next_test();
|
||||
}
|
@ -47,6 +47,8 @@ skip-if = toolkit == 'android' || toolkit == 'gonk'
|
||||
[test_pinning_header_parsing.js]
|
||||
|
||||
[test_cert_keyUsage.js]
|
||||
[test_logoutAndTeardown.js]
|
||||
run-sequentially = hardcoded ports
|
||||
[test_ocsp_stapling.js]
|
||||
run-sequentially = hardcoded ports
|
||||
[test_cert_blocklist.js]
|
||||
|
Loading…
Reference in New Issue
Block a user