fune/browser/components/preferences/in-content/tests/browser_performance.js
Evan Tseng e98fff578d Bug 1360846 - Make the prefs restore to default value before run the tests. r=jaws
MozReview-Commit-ID: 8a8gwTE5F9D

--HG--
extra : transplant_source : %04b%7B%B0%A0%E5%C7%EB%9Ep%8C.%D9%D3%CF%E5%16R%1E%B2
2017-05-08 10:28:32 -04:00

124 lines
6 KiB
JavaScript

const DEFAULT_HW_ACCEL_PREF = Services.prefs.getDefaultBranch(null).getBoolPref("layers.acceleration.disabled");
const DEFAULT_PROCESS_COUNT = Services.prefs.getDefaultBranch(null).getIntPref("dom.ipc.processCount");
add_task(function*() {
yield SpecialPowers.pushPrefEnv({set: [
["layers.acceleration.disabled", DEFAULT_HW_ACCEL_PREF],
["dom.ipc.processCount", DEFAULT_PROCESS_COUNT],
["browser.preferences.defaultPerformanceSettings.enabled", true],
]});
});
add_task(function*() {
let prefs = yield openPreferencesViaOpenPreferencesAPI("paneGeneral", {leaveOpen: true});
is(prefs.selectedPane, "paneGeneral", "General pane was selected");
let doc = gBrowser.contentDocument;
let useRecommendedPerformanceSettings = doc.querySelector("#useRecommendedPerformanceSettings");
is(Services.prefs.getBoolPref("browser.preferences.defaultPerformanceSettings.enabled"), true,
"pref value should be true before clicking on checkbox");
ok(useRecommendedPerformanceSettings.checked, "checkbox should be checked before clicking on checkbox");
useRecommendedPerformanceSettings.click();
let performanceSettings = doc.querySelector("#performanceSettings");
is(performanceSettings.hidden, false, "performance settings section is shown");
is(Services.prefs.getBoolPref("browser.preferences.defaultPerformanceSettings.enabled"), false,
"pref value should be false after clicking on checkbox");
ok(!useRecommendedPerformanceSettings.checked, "checkbox should not be checked after clicking on checkbox");
let allowHWAccel = doc.querySelector("#allowHWAccel");
let allowHWAccelPref = Services.prefs.getBoolPref("layers.acceleration.disabled");
is(allowHWAccelPref, DEFAULT_HW_ACCEL_PREF,
"pref value should be the default value before clicking on checkbox");
is(allowHWAccel.checked, !DEFAULT_HW_ACCEL_PREF, "checkbox should show the invert of the default value");
let contentProcessCount = doc.querySelector("#contentProcessCount");
is(Services.prefs.getIntPref("dom.ipc.processCount"), DEFAULT_PROCESS_COUNT, "default pref value should be default value");
is(contentProcessCount.selectedItem.value, DEFAULT_PROCESS_COUNT, "selected item should be the default one");
allowHWAccel.click();
allowHWAccelPref = Services.prefs.getBoolPref("layers.acceleration.disabled");
is(allowHWAccelPref, !DEFAULT_HW_ACCEL_PREF,
"pref value should be opposite of the default value after clicking on checkbox");
is(allowHWAccel.checked, !allowHWAccelPref, "checkbox should show the invert of the current value");
contentProcessCount.value = 7;
contentProcessCount.doCommand();
is(Services.prefs.getIntPref("dom.ipc.processCount"), 7, "pref value should be 7");
is(contentProcessCount.selectedItem.value, 7, "selected item should be 7");
allowHWAccel.click();
allowHWAccelPref = Services.prefs.getBoolPref("layers.acceleration.disabled");
is(allowHWAccelPref, DEFAULT_HW_ACCEL_PREF,
"pref value should be the default value after clicking on checkbox");
is(allowHWAccel.checked, !allowHWAccelPref, "checkbox should show the invert of the current value");
contentProcessCount.value = DEFAULT_PROCESS_COUNT;
contentProcessCount.doCommand();
is(Services.prefs.getIntPref("dom.ipc.processCount"), DEFAULT_PROCESS_COUNT, "pref value should be default value");
is(contentProcessCount.selectedItem.value, DEFAULT_PROCESS_COUNT, "selected item should be default one");
is(performanceSettings.hidden, false, "performance settings section should be still shown");
Services.prefs.setBoolPref("browser.preferences.defaultPerformanceSettings.enabled", true);
yield BrowserTestUtils.removeTab(gBrowser.selectedTab);
});
add_task(function*() {
let prefs = yield openPreferencesViaOpenPreferencesAPI("paneGeneral", {leaveOpen: true});
is(prefs.selectedPane, "paneGeneral", "General pane was selected");
let doc = gBrowser.contentDocument;
let performanceSettings = doc.querySelector("#performanceSettings");
is(performanceSettings.hidden, true, "performance settings section should not be shown");
Services.prefs.setBoolPref("browser.preferences.defaultPerformanceSettings.enabled", false);
is(performanceSettings.hidden, false, "performance settings section should be shown");
Services.prefs.setBoolPref("browser.preferences.defaultPerformanceSettings.enabled", true);
yield BrowserTestUtils.removeTab(gBrowser.selectedTab);
});
add_task(function*() {
Services.prefs.setIntPref("dom.ipc.processCount", 7);
let prefs = yield openPreferencesViaOpenPreferencesAPI("paneGeneral", {leaveOpen: true});
is(prefs.selectedPane, "paneGeneral", "General pane was selected");
let doc = gBrowser.contentDocument;
let performanceSettings = doc.querySelector("#performanceSettings");
is(performanceSettings.hidden, false, "performance settings section should be shown");
let contentProcessCount = doc.querySelector("#contentProcessCount");
is(Services.prefs.getIntPref("dom.ipc.processCount"), 7, "pref value should be 7");
is(contentProcessCount.selectedItem.value, 7, "selected item should be 7");
Services.prefs.setBoolPref("browser.preferences.defaultPerformanceSettings.enabled", true);
yield BrowserTestUtils.removeTab(gBrowser.selectedTab);
});
add_task(function*() {
Services.prefs.setBoolPref("layers.acceleration.disabled", true);
let prefs = yield openPreferencesViaOpenPreferencesAPI("paneGeneral", {leaveOpen: true});
is(prefs.selectedPane, "paneGeneral", "General pane was selected");
let doc = gBrowser.contentDocument;
let performanceSettings = doc.querySelector("#performanceSettings");
is(performanceSettings.hidden, false, "performance settings section should be shown");
let allowHWAccel = doc.querySelector("#allowHWAccel");
is(Services.prefs.getBoolPref("layers.acceleration.disabled"), true,
"pref value is false");
ok(!allowHWAccel.checked, "checkbox should not be checked");
Services.prefs.setBoolPref("browser.preferences.defaultPerformanceSettings.enabled", true);
yield BrowserTestUtils.removeTab(gBrowser.selectedTab);
});