bug 1181376 - convert test_bug480619.html to an xpcshell test r=mgoodwin

This commit is contained in:
David Keeler 2015-07-07 16:09:56 -07:00
parent 89eb454666
commit 2c108fdd54
4 changed files with 63 additions and 66 deletions

View File

@ -4,5 +4,4 @@ skip-if = buildapp == 'b2g'
[test_bug413909.html]
skip-if = buildapp == 'mulet'
[test_bug480619.html]
[test_certificate_overrides.html]

View File

@ -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>

View 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();
}

View File

@ -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]