forked from mirrors/gecko-dev
		
	
		
			
				
	
	
		
			81 lines
		
	
	
	
		
			1.9 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			81 lines
		
	
	
	
		
			1.9 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| /* Any copyright is dedicated to the Public Domain.
 | |
|  * http://creativecommons.org/publicdomain/zero/1.0/ */
 | |
| 
 | |
| "use strict";
 | |
| 
 | |
| const FHR_UPLOAD_ENABLED = "datareporting.healthreport.uploadEnabled";
 | |
| 
 | |
| function runPaneTest(fn) {
 | |
|   open_preferences(async win => {
 | |
|     let doc = win.document;
 | |
|     await win.gotoPref("paneAdvanced");
 | |
|     let advancedPrefs = doc.getElementById("advancedPrefs");
 | |
|     let tab = doc.getElementById("dataChoicesTab");
 | |
|     advancedPrefs.selectedTab = tab;
 | |
|     fn(win, doc);
 | |
|   });
 | |
| }
 | |
| 
 | |
| function test() {
 | |
|   waitForExplicitFinish();
 | |
|   resetPreferences();
 | |
|   registerCleanupFunction(resetPreferences);
 | |
|   runPaneTest(testBasic);
 | |
| }
 | |
| 
 | |
| function testBasic(win, doc) {
 | |
|   is(
 | |
|     Services.prefs.getBoolPref(FHR_UPLOAD_ENABLED),
 | |
|     true,
 | |
|     "Health Report upload enabled on app first run."
 | |
|   );
 | |
| 
 | |
|   let checkbox = doc.getElementById("submitHealthReportBox");
 | |
|   ok(checkbox);
 | |
|   is(
 | |
|     checkbox.checked,
 | |
|     true,
 | |
|     "Health Report checkbox is checked on app first run."
 | |
|   );
 | |
| 
 | |
|   checkbox.checked = false;
 | |
|   checkbox.doCommand();
 | |
|   is(
 | |
|     Services.prefs.getBoolPref(FHR_UPLOAD_ENABLED),
 | |
|     false,
 | |
|     "Unchecking checkbox opts out of FHR upload."
 | |
|   );
 | |
| 
 | |
|   checkbox.checked = true;
 | |
|   checkbox.doCommand();
 | |
|   is(
 | |
|     Services.prefs.getBoolPref(FHR_UPLOAD_ENABLED),
 | |
|     true,
 | |
|     "Checking checkbox allows FHR upload."
 | |
|   );
 | |
| 
 | |
|   win.close();
 | |
|   Services.prefs.lockPref(FHR_UPLOAD_ENABLED);
 | |
|   runPaneTest(testUploadDisabled);
 | |
| }
 | |
| 
 | |
| function testUploadDisabled(win, doc) {
 | |
|   ok(
 | |
|     Services.prefs.prefIsLocked(FHR_UPLOAD_ENABLED),
 | |
|     "Upload enabled flag is locked."
 | |
|   );
 | |
|   let checkbox = doc.getElementById("submitHealthReportBox");
 | |
|   is(
 | |
|     checkbox.getAttribute("disabled"),
 | |
|     "true",
 | |
|     "Checkbox is disabled if upload flag is locked."
 | |
|   );
 | |
|   Services.prefs.unlockPref(FHR_UPLOAD_ENABLED);
 | |
| 
 | |
|   win.close();
 | |
|   finish();
 | |
| }
 | |
| 
 | |
| function resetPreferences() {
 | |
|   Services.prefs.clearUserPref(FHR_UPLOAD_ENABLED);
 | |
| }
 | 
