test_security-info-parser.js (2799B)
1 /* Any copyright is dedicated to the Public Domain. 2 http://creativecommons.org/publicdomain/zero/1.0/ */ 3 "use strict"; 4 5 // Test that NetworkHelper.parseSecurityInfo returns correctly formatted object. 6 7 const wpl = Ci.nsIWebProgressListener; 8 const MockCertificate = { 9 getBase64DERString() { 10 // This is the same test certificate as in 11 // test_security-info-certificate.js for consistency. 12 return "MIIDrDCCApSgAwIBAgIQCssoukZe5TkIdnRw883GEjANBgkqhkiG9w0BAQwFADBhMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSAwHgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBDQTAeFw0xMzAzMDgxMjAwMDBaFw0yMzAzMDgxMjAwMDBaMEwxCzAJBgNVBAYTAlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxJjAkBgNVBAMTHURpZ2lDZXJ0IEVDQyBTZWN1cmUgU2VydmVyIENBMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAE4ghC6nfYJN6gLGSkE85AnCNyqQIKDjc/ITa4jVMU9tWRlUvzlgKNcR7E2Munn17voOZ/WpIRllNv68DLP679Wz9HJOeaBy6Wvqgvu1cYr3GkvXg6HuhbPGtkESvMNCuMo4IBITCCAR0wEgYDVR0TAQH/BAgwBgEB/wIBADAOBgNVHQ8BAf8EBAMCAYYwNAYIKwYBBQUHAQEEKDAmMCQGCCsGAQUFBzABhhhodHRwOi8vb2NzcC5kaWdpY2VydC5jb20wQgYDVR0fBDswOTA3oDWgM4YxaHR0cDovL2NybDMuZGlnaWNlcnQuY29tL0RpZ2lDZXJ0R2xvYmFsUm9vdENBLmNybDA9BgNVHSAENjA0MDIGBFUdIAAwKjAoBggrBgEFBQcCARYcaHR0cHM6Ly93d3cuZGlnaWNlcnQuY29tL0NQUzAdBgNVHQ4EFgQUo53mH/naOU/AbuiRy5Wl2jHiCp8wHwYDVR0jBBgwFoAUA95QNVbRTLtm8KPiGxvDl7I90VUwDQYJKoZIhvcNAQEMBQADggEBAMeKoENL7HTJxavVHzA1Nm6YVntIrAVjrnuaVyRXzG/63qttnMe2uuzO58pzZNvfBDcKAEmzP58mrZGMIOgfiA4q+2Y3yDDo0sIkp0VILeoBUEoxlBPfjV/aKrtJPGHzecicZpIalir0ezZYoyxBEHQa0+1IttK7igZFcTMQMHp6mCHdJLnsnLWSB62DxsRq+HfmNb4TDydkskO/g+l3VtsIh5RHFPVfKK+jaEyDj2D3loB5hWp2Jp2VDCADjT7ueihlZGak2YPqmXTNbk19HOuNssWvFhtOyPNV6og4ETQdEa8/B6hPatJ0ES8q/HO3X8IVQwVs1n3aAr0im0/T+Xc="; 13 }, 14 }; 15 16 // This *cannot* be used as an nsITransportSecurityInfo (since that interface is 17 // builtinclass) but the methods being tested aren't defined by XPCOM and aren't 18 // calling QueryInterface, so this usage is fine. 19 const MockSecurityInfo = { 20 securityState: wpl.STATE_IS_SECURE, 21 errorCode: 0, 22 cipherName: "TLS_ECDH_ECDSA_WITH_AES_128_GCM_SHA256", 23 // TLS_VERSION_1_2 24 protocolVersion: 3, 25 serverCert: MockCertificate, 26 }; 27 28 add_task(async function run_test() { 29 const result = await NetworkHelper.parseSecurityInfo( 30 MockSecurityInfo, 31 {}, 32 {}, 33 new Map() 34 ); 35 36 equal(result.state, "secure", "State is correct."); 37 38 equal( 39 result.cipherSuite, 40 MockSecurityInfo.cipherName, 41 "Cipher suite is correct." 42 ); 43 44 equal(result.protocolVersion, "TLSv1.2", "Protocol version is correct."); 45 46 deepEqual( 47 result.cert, 48 await NetworkHelper.parseCertificateInfo(MockCertificate, new Map()), 49 "Certificate information is correct." 50 ); 51 52 equal(result.hpkp, false, "HPKP is false when URI is not available."); 53 equal(result.hsts, false, "HSTS is false when URI is not available."); 54 });