summaryrefslogtreecommitdiffstats
path: root/dom/browser-element/mochitest/browserElement_ErrorSecurity.js
diff options
context:
space:
mode:
Diffstat (limited to 'dom/browser-element/mochitest/browserElement_ErrorSecurity.js')
-rw-r--r--dom/browser-element/mochitest/browserElement_ErrorSecurity.js58
1 files changed, 58 insertions, 0 deletions
diff --git a/dom/browser-element/mochitest/browserElement_ErrorSecurity.js b/dom/browser-element/mochitest/browserElement_ErrorSecurity.js
new file mode 100644
index 000000000..c13a37140
--- /dev/null
+++ b/dom/browser-element/mochitest/browserElement_ErrorSecurity.js
@@ -0,0 +1,58 @@
+/* Any copyright is dedicated to the public domain.
+ http://creativecommons.org/publicdomain/zero/1.0/ */
+
+// Bug 764718 - Test that mozbrowsererror works for a security error.
+
+"use strict";
+
+SimpleTest.waitForExplicitFinish();
+browserElementTestHelpers.setEnabledPref(true);
+browserElementTestHelpers.addPermission();
+
+var iframe = null;
+function runTest() {
+ iframe = document.createElement('iframe');
+ iframe.setAttribute('mozbrowser', 'true');
+ document.body.appendChild(iframe);
+
+ checkForDnsError();
+}
+
+function checkForDnsError() {
+ iframe.addEventListener("mozbrowsererror", function onDnsError(e) {
+ iframe.removeEventListener(e.type, onDnsError);
+ ok(true, "Got mozbrowsererror event.");
+ ok(e.detail.type == "dnsNotFound", "Event's detail has a |type| param with the value '" + e.detail.type + "'.");
+
+ checkForExpiredCertificateError();
+ });
+
+ iframe.src = "http://this_is_not_a_domain.example.com";
+}
+
+function checkForExpiredCertificateError() {
+ iframe.addEventListener("mozbrowsererror", function onCertError(e) {
+ iframe.removeEventListener(e.type, onCertError);
+ ok(true, "Got mozbrowsererror event.");
+ ok(e.detail.type == "certerror", "Event's detail has a |type| param with the value '" + e.detail.type + "'.");
+
+ checkForNoCertificateError();
+ });
+
+ iframe.src = "https://expired.example.com";
+}
+
+
+function checkForNoCertificateError() {
+ iframe.addEventListener("mozbrowsererror", function onCertError(e) {
+ iframe.removeEventListener(e.type, onCertError);
+ ok(true, "Got mozbrowsererror event.");
+ ok(e.detail.type == "certerror", "Event's detail has a |type| param with the value '" + e.detail.type + "'.");
+
+ SimpleTest.finish();
+ });
+
+ iframe.src = "https://nocert.example.com";
+}
+
+addEventListener('testready', runTest);