summaryrefslogtreecommitdiffstats
path: root/devtools/shared/webconsole/test/unit/test_security-info-parser.js
diff options
context:
space:
mode:
Diffstat (limited to 'devtools/shared/webconsole/test/unit/test_security-info-parser.js')
-rw-r--r--devtools/shared/webconsole/test/unit/test_security-info-parser.js64
1 files changed, 64 insertions, 0 deletions
diff --git a/devtools/shared/webconsole/test/unit/test_security-info-parser.js b/devtools/shared/webconsole/test/unit/test_security-info-parser.js
new file mode 100644
index 000000000..a5682e209
--- /dev/null
+++ b/devtools/shared/webconsole/test/unit/test_security-info-parser.js
@@ -0,0 +1,64 @@
+/* vim: set ft=javascript ts=2 et sw=2 tw=80: */
+/* Any copyright is dedicated to the Public Domain.
+ http://creativecommons.org/publicdomain/zero/1.0/ */
+"use strict";
+
+// Test that NetworkHelper.parseSecurityInfo returns correctly formatted object.
+
+const { require } = Components.utils.import("resource://devtools/shared/Loader.jsm", {});
+Components.utils.import("resource://gre/modules/XPCOMUtils.jsm");
+
+Object.defineProperty(this, "NetworkHelper", {
+ get: function () {
+ return require("devtools/shared/webconsole/network-helper");
+ },
+ configurable: true,
+ writeable: false,
+ enumerable: true
+});
+
+var Ci = Components.interfaces;
+const wpl = Ci.nsIWebProgressListener;
+const MockCertificate = {
+ commonName: "cn",
+ organization: "o",
+ organizationalUnit: "ou",
+ issuerCommonName: "issuerCN",
+ issuerOrganization: "issuerO",
+ issuerOrganizationUnit: "issuerOU",
+ sha256Fingerprint: "qwertyuiopoiuytrewq",
+ sha1Fingerprint: "qwertyuiop",
+ validity: {
+ notBeforeLocalDay: "yesterday",
+ notAfterLocalDay: "tomorrow",
+ }
+};
+
+const MockSecurityInfo = {
+ QueryInterface: XPCOMUtils.generateQI([Ci.nsITransportSecurityInfo,
+ Ci.nsISSLStatusProvider]),
+ securityState: wpl.STATE_IS_SECURE,
+ errorCode: 0,
+ SSLStatus: {
+ cipherSuite: "TLS_ECDH_ECDSA_WITH_AES_128_GCM_SHA256",
+ protocolVersion: 3, // TLS_VERSION_1_2
+ serverCert: MockCertificate,
+ }
+};
+
+function run_test() {
+ let result = NetworkHelper.parseSecurityInfo(MockSecurityInfo, {});
+
+ equal(result.state, "secure", "State is correct.");
+
+ equal(result.cipherSuite, MockSecurityInfo.cipherSuite,
+ "Cipher suite is correct.");
+
+ equal(result.protocolVersion, "TLSv1.2", "Protocol version is correct.");
+
+ deepEqual(result.cert, NetworkHelper.parseCertificateInfo(MockCertificate),
+ "Certificate information is correct.");
+
+ equal(result.hpkp, false, "HPKP is false when URI is not available.");
+ equal(result.hsts, false, "HSTS is false when URI is not available.");
+}