toolkit/mozapps/update/tests/chrome/test_0122_check_allowNonBuiltinCert_validCertAttrs.xul

Sat, 03 Jan 2015 20:18:00 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Sat, 03 Jan 2015 20:18:00 +0100
branch
TOR_BUG_3246
changeset 7
129ffea94266
permissions
-rw-r--r--

Conditionally enable double key logic according to:
private browsing mode or privacy.thirdparty.isolate preference and
implement in GetCookieStringCommon and FindCookie where it counts...
With some reservations of how to convince FindCookie users to test
condition and pass a nullptr when disabling double key logic.

michael@0 1 <?xml version="1.0"?>
michael@0 2 <!--
michael@0 3 /* Any copyright is dedicated to the Public Domain.
michael@0 4 * http://creativecommons.org/publicdomain/zero/1.0/
michael@0 5 */
michael@0 6 -->
michael@0 7
michael@0 8 <?xml-stylesheet href="chrome://global/skin" type="text/css"?>
michael@0 9 <?xml-stylesheet href="chrome://mochikit/content/tests/SimpleTest/test.css" type="text/css"?>
michael@0 10
michael@0 11 <window title="Test update check without requiring a certificate that is built-in and valid certificate attribute names and values"
michael@0 12 xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
michael@0 13 onload="runTestDefault();">
michael@0 14 <script type="application/javascript"
michael@0 15 src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"/>
michael@0 16 <script type="application/javascript"
michael@0 17 src="utils.js"/>
michael@0 18
michael@0 19 <script type="application/javascript">
michael@0 20 <![CDATA[
michael@0 21
michael@0 22 const TESTS = [ {
michael@0 23 pageid: PAGEID_CHECKING
michael@0 24 }, {
michael@0 25 pageid: PAGEID_FOUND_BASIC,
michael@0 26 buttonClick: "extra1"
michael@0 27 } ];
michael@0 28
michael@0 29 Components.utils.import("resource://gre/modules/CertUtils.jsm");
michael@0 30
michael@0 31 const CERT_ATTRS = ["nickname", "emailAddress", "subjectName", "commonName",
michael@0 32 "organization", "organizationalUnit", "sha1Fingerprint",
michael@0 33 "md5Fingerprint", "tokenName", "issuerName", "serialNumber",
michael@0 34 "issuerCommonName", "issuerOrganization",
michael@0 35 "issuerOrganizationUnit", "dbKey", "windowTitle"];
michael@0 36
michael@0 37 var gRequest;
michael@0 38
michael@0 39 function runTest() {
michael@0 40 debugDump("entering");
michael@0 41
michael@0 42 gRequest = AUS_Cc["@mozilla.org/xmlextras/xmlhttprequest;1"].
michael@0 43 createInstance(AUS_Ci.nsIXMLHttpRequest);
michael@0 44 gRequest.open("GET", "https://example.com/", true);
michael@0 45 gRequest.channel.notificationCallbacks = new BadCertHandler(true);
michael@0 46 gRequest.onload = function(event) { testXHRLoad(event); };
michael@0 47 gRequest.onerror = function(event) { testXHRError(event); };
michael@0 48 gRequest.send(null);
michael@0 49 }
michael@0 50
michael@0 51 function testXHRError(aEvent) {
michael@0 52 debugDump("entering");
michael@0 53
michael@0 54 ok(true, "Entering testXHRError - something went wrong");
michael@0 55
michael@0 56 var request = aEvent.target;
michael@0 57 var status = 0;
michael@0 58 try {
michael@0 59 status = request.status;
michael@0 60 }
michael@0 61 catch (e) {
michael@0 62 }
michael@0 63
michael@0 64 if (status == 0)
michael@0 65 status = request.channel.QueryInterface(AUS_Ci.nsIRequest).status;
michael@0 66
michael@0 67 ok(false, "XHR onerror called: " + status);
michael@0 68
michael@0 69 gRequest = null;
michael@0 70 finishTestDefault();
michael@0 71 }
michael@0 72
michael@0 73 function testXHRLoad(aEvent) {
michael@0 74 debugDump("entering");
michael@0 75
michael@0 76 var channel = aEvent.target.channel;
michael@0 77 var cert = channel.securityInfo.QueryInterface(AUS_Ci.nsISSLStatusProvider).
michael@0 78 SSLStatus.QueryInterface(AUS_Ci.nsISSLStatus).serverCert;
michael@0 79 CERT_ATTRS.forEach(function(aCertAttrName) {
michael@0 80 Services.prefs.setCharPref(PREF_APP_UPDATE_CERTS_BRANCH + "1." +
michael@0 81 aCertAttrName, cert[aCertAttrName]);
michael@0 82 });
michael@0 83
michael@0 84 Services.prefs.setBoolPref(PREF_APP_UPDATE_CERT_REQUIREBUILTIN, false);
michael@0 85 Services.prefs.setBoolPref(PREF_APP_UPDATE_CERT_CHECKATTRS, true);
michael@0 86
michael@0 87 let url = URL_HTTPS_UPDATE_XML + "?showDetails=1" + getVersionParams();
michael@0 88 gAppUpdateURLDefault = gDefaultPrefBranch.getCharPref(PREF_APP_UPDATE_URL);
michael@0 89 debugDump("setting default pref " + PREF_APP_UPDATE_URL + " to " + url);
michael@0 90 gDefaultPrefBranch.setCharPref(PREF_APP_UPDATE_URL, url);
michael@0 91
michael@0 92 gRequest = null;
michael@0 93 gUP.checkForUpdates();
michael@0 94 }
michael@0 95
michael@0 96 function finishTest() {
michael@0 97 if (gRequest) {
michael@0 98 gRequest.abort();
michael@0 99 gRequest = null;
michael@0 100 }
michael@0 101 finishTestDefault();
michael@0 102 }
michael@0 103
michael@0 104 ]]>
michael@0 105 </script>
michael@0 106
michael@0 107 <body xmlns="http://www.w3.org/1999/xhtml">
michael@0 108 <p id="display"></p>
michael@0 109 <div id="content" style="display: none"></div>
michael@0 110 <pre id="test"></pre>
michael@0 111 </body>
michael@0 112 </window>

mercurial