forked from mirrors/gecko-dev
		
	
		
			
				
	
	
		
			62 lines
		
	
	
	
		
			1.8 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			62 lines
		
	
	
	
		
			1.8 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((win) => {
 | |
|     let doc = win.document;
 | |
|     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);
 | |
| }
 | |
| 
 | 
