From 2c108fdd548ed96ae080670ae9415ef97269ec0b Mon Sep 17 00:00:00 2001 From: David Keeler Date: Tue, 7 Jul 2015 16:09:56 -0700 Subject: [PATCH] bug 1181376 - convert test_bug480619.html to an xpcshell test r=mgoodwin --- .../ssl/tests/mochitest/bugs/chrome.ini | 1 - .../tests/mochitest/bugs/test_bug480619.html | 65 ------------------- .../ssl/tests/unit/test_logoutAndTeardown.js | 61 +++++++++++++++++ security/manager/ssl/tests/unit/xpcshell.ini | 2 + 4 files changed, 63 insertions(+), 66 deletions(-) delete mode 100644 security/manager/ssl/tests/mochitest/bugs/test_bug480619.html create mode 100644 security/manager/ssl/tests/unit/test_logoutAndTeardown.js diff --git a/security/manager/ssl/tests/mochitest/bugs/chrome.ini b/security/manager/ssl/tests/mochitest/bugs/chrome.ini index df3585ae630..488afecb11c 100644 --- a/security/manager/ssl/tests/mochitest/bugs/chrome.ini +++ b/security/manager/ssl/tests/mochitest/bugs/chrome.ini @@ -4,5 +4,4 @@ skip-if = buildapp == 'b2g' [test_bug413909.html] skip-if = buildapp == 'mulet' -[test_bug480619.html] [test_certificate_overrides.html] diff --git a/security/manager/ssl/tests/mochitest/bugs/test_bug480619.html b/security/manager/ssl/tests/mochitest/bugs/test_bug480619.html deleted file mode 100644 index b692940f35d..00000000000 --- a/security/manager/ssl/tests/mochitest/bugs/test_bug480619.html +++ /dev/null @@ -1,65 +0,0 @@ - - - - Test bug 480619 - - - - - - - - diff --git a/security/manager/ssl/tests/unit/test_logoutAndTeardown.js b/security/manager/ssl/tests/unit/test_logoutAndTeardown.js new file mode 100644 index 00000000000..86fbbd1d1a4 --- /dev/null +++ b/security/manager/ssl/tests/unit/test_logoutAndTeardown.js @@ -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(); +} diff --git a/security/manager/ssl/tests/unit/xpcshell.ini b/security/manager/ssl/tests/unit/xpcshell.ini index d32ab5609eb..cab95be41db 100644 --- a/security/manager/ssl/tests/unit/xpcshell.ini +++ b/security/manager/ssl/tests/unit/xpcshell.ini @@ -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]