1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/toolkit/crashreporter/test/browser/browser_bug471404.js Wed Dec 31 06:09:35 2014 +0100 1.3 @@ -0,0 +1,67 @@ 1.4 +function check_clear_visible(tab, aVisible) { 1.5 + let doc = gBrowser.getBrowserForTab(tab).contentDocument; 1.6 + let visible = false; 1.7 + let button = doc.getElementById("clear-reports"); 1.8 + if (button) { 1.9 + let style = doc.defaultView.getComputedStyle(button, ""); 1.10 + if (style.display != "none" && 1.11 + style.visibility == "visible") 1.12 + visible = true; 1.13 + } 1.14 + is(visible, aVisible, 1.15 + "clear reports button is " + (aVisible ? "visible" : "hidden")); 1.16 +} 1.17 + 1.18 +// each test here has a setup (run before loading about:crashes) and onload (run after about:crashes loads) 1.19 +let _tests = [{setup: null, onload: function(tab) { check_clear_visible(tab, false); }}, 1.20 + {setup: function(crD) { add_fake_crashes(crD, 1); }, 1.21 + onload: function(tab) { check_clear_visible(tab, true); }} 1.22 + ]; 1.23 +let _current_test = 0; 1.24 + 1.25 +function run_test_setup(crD) { 1.26 + if (_tests[_current_test].setup) { 1.27 + _tests[_current_test].setup(crD); 1.28 + } 1.29 +} 1.30 + 1.31 +function run_test_onload(tab) { 1.32 + if (_tests[_current_test].onload) { 1.33 + _tests[_current_test].onload(tab); 1.34 + } 1.35 + _current_test++; 1.36 + 1.37 + if (_current_test == _tests.length) { 1.38 + cleanup_fake_appdir(); 1.39 + gBrowser.removeTab(tab); 1.40 + finish(); 1.41 + return false; 1.42 + } 1.43 + return true; 1.44 +} 1.45 + 1.46 +function test() { 1.47 + waitForExplicitFinish(); 1.48 + let appD = make_fake_appdir(); 1.49 + let crD = appD.clone(); 1.50 + crD.append("Crash Reports"); 1.51 + 1.52 + let tab = gBrowser.selectedTab = gBrowser.addTab("about:blank"); 1.53 + let browser = gBrowser.getBrowserForTab(tab); 1.54 + let onLoad = function () { 1.55 + executeSoon(function() { 1.56 + if (run_test_onload(tab)) { 1.57 + // prep and run the next test 1.58 + run_test_setup(crD); 1.59 + executeSoon(function() { browser.loadURI("about:crashes", null, null); }); 1.60 + } 1.61 + }); 1.62 + }; 1.63 + browser.addEventListener("load", onLoad, true); 1.64 + registerCleanupFunction(function () { 1.65 + browser.removeEventListener("load", onLoad, true); 1.66 + }); 1.67 + // kick things off 1.68 + run_test_setup(crD); 1.69 + browser.loadURI("about:crashes", null, null); 1.70 +}