summaryrefslogtreecommitdiffstats
path: root/browser/base/content/test/general/browser_mcb_redirect.js
diff options
context:
space:
mode:
Diffstat (limited to 'browser/base/content/test/general/browser_mcb_redirect.js')
-rw-r--r--browser/base/content/test/general/browser_mcb_redirect.js314
1 files changed, 0 insertions, 314 deletions
diff --git a/browser/base/content/test/general/browser_mcb_redirect.js b/browser/base/content/test/general/browser_mcb_redirect.js
deleted file mode 100644
index 41b4e9468..000000000
--- a/browser/base/content/test/general/browser_mcb_redirect.js
+++ /dev/null
@@ -1,314 +0,0 @@
-/*
- * Description of the Tests for
- * - Bug 418354 - Call Mixed content blocking on redirects
- *
- * Single redirect script tests
- * 1. Load a script over https inside an https page
- * - the server responds with a 302 redirect to a >> HTTP << script
- * - the doorhanger should appear!
- *
- * 2. Load a script over https inside an http page
- * - the server responds with a 302 redirect to a >> HTTP << script
- * - the doorhanger should not appear!
- *
- * Single redirect image tests
- * 3. Load an image over https inside an https page
- * - the server responds with a 302 redirect to a >> HTTP << image
- * - the image should not load
- *
- * 4. Load an image over https inside an http page
- * - the server responds with a 302 redirect to a >> HTTP << image
- * - the image should load and get cached
- *
- * Single redirect cached image tests
- * 5. Using offline mode to ensure we hit the cache, load a cached image over
- * https inside an http page
- * - the server would have responded with a 302 redirect to a >> HTTP <<
- * image, but instead we try to use the cached image.
- * - the image should load
- *
- * 6. Using offline mode to ensure we hit the cache, load a cached image over
- * https inside an https page
- * - the server would have responded with a 302 redirect to a >> HTTP <<
- * image, but instead we try to use the cached image.
- * - the image should not load
- *
- * Double redirect image test
- * 7. Load an image over https inside an http page
- * - the server responds with a 302 redirect to a >> HTTP << server
- * - the HTTP server responds with a 302 redirect to a >> HTTPS << image
- * - the image should load and get cached
- *
- * Double redirect cached image tests
- * 8. Using offline mode to ensure we hit the cache, load a cached image over
- * https inside an http page
- * - the image would have gone through two redirects: HTTPS->HTTP->HTTPS,
- * but instead we try to use the cached image.
- * - the image should load
- *
- * 9. Using offline mode to ensure we hit the cache, load a cached image over
- * https inside an https page
- * - the image would have gone through two redirects: HTTPS->HTTP->HTTPS,
- * but instead we try to use the cached image.
- * - the image should not load
- */
-
-const PREF_ACTIVE = "security.mixed_content.block_active_content";
-const PREF_DISPLAY = "security.mixed_content.block_display_content";
-const gHttpsTestRoot = "https://example.com/browser/browser/base/content/test/general/";
-const gHttpTestRoot = "http://example.com/browser/browser/base/content/test/general/";
-
-var origBlockActive;
-var origBlockDisplay;
-var gTestBrowser = null;
-
-// ------------------------ Helper Functions ---------------------
-
-registerCleanupFunction(function() {
- // Set preferences back to their original values
- Services.prefs.setBoolPref(PREF_ACTIVE, origBlockActive);
- Services.prefs.setBoolPref(PREF_DISPLAY, origBlockDisplay);
-
- // Make sure we are online again
- Services.io.offline = false;
-});
-
-function cleanUpAfterTests() {
- gBrowser.removeCurrentTab();
- window.focus();
- finish();
-}
-
-function waitForCondition(condition, nextTest, errorMsg, okMsg) {
- var tries = 0;
- var interval = setInterval(function() {
- if (tries >= 30) {
- ok(false, errorMsg);
- moveOn();
- }
- if (condition()) {
- ok(true, okMsg)
- moveOn();
- }
- tries++;
- }, 500);
- var moveOn = function() {
- clearInterval(interval); nextTest();
- };
-}
-
-// ------------------------ Test 1 ------------------------------
-
-function test1() {
- gTestBrowser.addEventListener("load", checkUIForTest1, true);
- var url = gHttpsTestRoot + "test_mcb_redirect.html"
- gTestBrowser.contentWindow.location = url;
-}
-
-function checkUIForTest1() {
- gTestBrowser.removeEventListener("load", checkUIForTest1, true);
-
- assertMixedContentBlockingState(gTestBrowser, {activeLoaded: false, activeBlocked: true, passiveLoaded: false});
-
- var expected = "script blocked";
- waitForCondition(
- () => content.document.getElementById('mctestdiv').innerHTML == expected,
- test2, "Error: Waited too long for status in Test 1!",
- "OK: Expected result in innerHTML for Test1!");
-}
-
-// ------------------------ Test 2 ------------------------------
-
-function test2() {
- gTestBrowser.addEventListener("load", checkUIForTest2, true);
- var url = gHttpTestRoot + "test_mcb_redirect.html"
- gTestBrowser.contentWindow.location = url;
-}
-
-function checkUIForTest2() {
- gTestBrowser.removeEventListener("load", checkUIForTest2, true);
-
- assertMixedContentBlockingState(gTestBrowser, {activeLoaded: false, activeBlocked: false, passiveLoaded: false});
-
- var expected = "script executed";
- waitForCondition(
- () => content.document.getElementById('mctestdiv').innerHTML == expected,
- test3, "Error: Waited too long for status in Test 2!",
- "OK: Expected result in innerHTML for Test2!");
-}
-
-// ------------------------ Test 3 ------------------------------
-// HTTPS page loading insecure image
-function test3() {
- gTestBrowser.addEventListener("load", checkLoadEventForTest3, true);
- var url = gHttpsTestRoot + "test_mcb_redirect_image.html"
- gTestBrowser.contentWindow.location = url;
-}
-
-function checkLoadEventForTest3() {
- gTestBrowser.removeEventListener("load", checkLoadEventForTest3, true);
-
- var expected = "image blocked"
- waitForCondition(
- () => content.document.getElementById('mctestdiv').innerHTML == expected,
- test4, "Error: Waited too long for status in Test 3!",
- "OK: Expected result in innerHTML for Test3!");
-}
-
-// ------------------------ Test 4 ------------------------------
-// HTTP page loading insecure image
-function test4() {
- gTestBrowser.addEventListener("load", checkLoadEventForTest4, true);
- var url = gHttpTestRoot + "test_mcb_redirect_image.html"
- gTestBrowser.contentWindow.location = url;
-}
-
-function checkLoadEventForTest4() {
- gTestBrowser.removeEventListener("load", checkLoadEventForTest4, true);
-
- var expected = "image loaded"
- waitForCondition(
- () => content.document.getElementById('mctestdiv').innerHTML == expected,
- test5, "Error: Waited too long for status in Test 4!",
- "OK: Expected result in innerHTML for Test4!");
-}
-
-// ------------------------ Test 5 ------------------------------
-// HTTP page laoding insecure cached image
-// Assuming test 4 succeeded, the image has already been loaded once
-// and hence should be cached per the sjs cache-control header
-// Going into offline mode to ensure we are loading from the cache.
-function test5() {
- gTestBrowser.addEventListener("load", checkLoadEventForTest5, true);
- // Go into offline mode
- Services.io.offline = true;
- var url = gHttpTestRoot + "test_mcb_redirect_image.html"
- gTestBrowser.contentWindow.location = url;
-}
-
-function checkLoadEventForTest5() {
- gTestBrowser.removeEventListener("load", checkLoadEventForTest5, true);
-
- var expected = "image loaded"
- waitForCondition(
- () => content.document.getElementById('mctestdiv').innerHTML == expected,
- test6, "Error: Waited too long for status in Test 5!",
- "OK: Expected result in innerHTML for Test5!");
- // Go back online
- Services.io.offline = false;
-}
-
-// ------------------------ Test 6 ------------------------------
-// HTTPS page loading insecure cached image
-// Assuming test 4 succeeded, the image has already been loaded once
-// and hence should be cached per the sjs cache-control header
-// Going into offline mode to ensure we are loading from the cache.
-function test6() {
- gTestBrowser.addEventListener("load", checkLoadEventForTest6, true);
- // Go into offline mode
- Services.io.offline = true;
- var url = gHttpsTestRoot + "test_mcb_redirect_image.html"
- gTestBrowser.contentWindow.location = url;
-}
-
-function checkLoadEventForTest6() {
- gTestBrowser.removeEventListener("load", checkLoadEventForTest6, true);
-
- var expected = "image blocked"
- waitForCondition(
- () => content.document.getElementById('mctestdiv').innerHTML == expected,
- test7, "Error: Waited too long for status in Test 6!",
- "OK: Expected result in innerHTML for Test6!");
- // Go back online
- Services.io.offline = false;
-}
-
-// ------------------------ Test 7 ------------------------------
-// HTTP page loading insecure image that went through a double redirect
-function test7() {
- gTestBrowser.addEventListener("load", checkLoadEventForTest7, true);
- var url = gHttpTestRoot + "test_mcb_double_redirect_image.html"
- gTestBrowser.contentWindow.location = url;
-}
-
-function checkLoadEventForTest7() {
- gTestBrowser.removeEventListener("load", checkLoadEventForTest7, true);
-
- var expected = "image loaded"
- waitForCondition(
- () => content.document.getElementById('mctestdiv').innerHTML == expected,
- test8, "Error: Waited too long for status in Test 7!",
- "OK: Expected result in innerHTML for Test7!");
-}
-
-// ------------------------ Test 8 ------------------------------
-// HTTP page loading insecure cached image that went through a double redirect
-// Assuming test 7 succeeded, the image has already been loaded once
-// and hence should be cached per the sjs cache-control header
-// Going into offline mode to ensure we are loading from the cache.
-function test8() {
- gTestBrowser.addEventListener("load", checkLoadEventForTest8, true);
- // Go into offline mode
- Services.io.offline = true;
- var url = gHttpTestRoot + "test_mcb_double_redirect_image.html"
- gTestBrowser.contentWindow.location = url;
-}
-
-function checkLoadEventForTest8() {
- gTestBrowser.removeEventListener("load", checkLoadEventForTest8, true);
-
- var expected = "image loaded"
- waitForCondition(
- () => content.document.getElementById('mctestdiv').innerHTML == expected,
- test9, "Error: Waited too long for status in Test 8!",
- "OK: Expected result in innerHTML for Test8!");
- // Go back online
- Services.io.offline = false;
-}
-
-// ------------------------ Test 9 ------------------------------
-// HTTPS page loading insecure cached image that went through a double redirect
-// Assuming test 7 succeeded, the image has already been loaded once
-// and hence should be cached per the sjs cache-control header
-// Going into offline mode to ensure we are loading from the cache.
-function test9() {
- gTestBrowser.addEventListener("load", checkLoadEventForTest9, true);
- // Go into offline mode
- Services.io.offline = true;
- var url = gHttpsTestRoot + "test_mcb_double_redirect_image.html"
- gTestBrowser.contentWindow.location = url;
-}
-
-function checkLoadEventForTest9() {
- gTestBrowser.removeEventListener("load", checkLoadEventForTest9, true);
-
- var expected = "image blocked"
- waitForCondition(
- () => content.document.getElementById('mctestdiv').innerHTML == expected,
- cleanUpAfterTests, "Error: Waited too long for status in Test 9!",
- "OK: Expected result in innerHTML for Test9!");
- // Go back online
- Services.io.offline = false;
-}
-
-// ------------------------ SETUP ------------------------------
-
-function test() {
- // Performing async calls, e.g. 'onload', we have to wait till all of them finished
- waitForExplicitFinish();
-
- // Store original preferences so we can restore settings after testing
- origBlockActive = Services.prefs.getBoolPref(PREF_ACTIVE);
- origBlockDisplay = Services.prefs.getBoolPref(PREF_DISPLAY);
- Services.prefs.setBoolPref(PREF_ACTIVE, true);
- Services.prefs.setBoolPref(PREF_DISPLAY, true);
-
- pushPrefs(["dom.ipc.processCount", 1]).then(() => {
- var newTab = gBrowser.addTab();
- gBrowser.selectedTab = newTab;
- gTestBrowser = gBrowser.selectedBrowser;
- newTab.linkedBrowser.stop();
-
- executeSoon(test1);
- });
-}