test_utils_dateprefs.js (1865B)
1 /* Any copyright is dedicated to the Public Domain. 2 * http://creativecommons.org/publicdomain/zero/1.0/ */ 3 4 "use strict"; 5 6 var prefs = Services.prefs.getBranch("servicescommon.tests."); 7 8 function DummyLogger() { 9 this.messages = []; 10 } 11 DummyLogger.prototype.warn = function warn(message) { 12 this.messages.push(message); 13 }; 14 15 add_test(function test_set_basic() { 16 let now = new Date(); 17 18 CommonUtils.setDatePref(prefs, "test00", now); 19 let value = prefs.getStringPref("test00"); 20 Assert.equal(value, "" + now.getTime()); 21 22 let now2 = CommonUtils.getDatePref(prefs, "test00"); 23 24 Assert.equal(now.getTime(), now2.getTime()); 25 26 run_next_test(); 27 }); 28 29 add_test(function test_set_bounds_checking() { 30 let d = new Date(2342354); 31 32 let failed = false; 33 try { 34 CommonUtils.setDatePref(prefs, "test01", d); 35 } catch (ex) { 36 Assert.ok(ex.message.startsWith("Trying to set")); 37 failed = true; 38 } 39 40 Assert.ok(failed); 41 run_next_test(); 42 }); 43 44 add_test(function test_get_bounds_checking() { 45 prefs.setStringPref("test_bounds_checking", "13241431"); 46 47 let log = new DummyLogger(); 48 let d = CommonUtils.getDatePref(prefs, "test_bounds_checking", 0, log); 49 Assert.equal(d.getTime(), 0); 50 Assert.equal(log.messages.length, 1); 51 52 run_next_test(); 53 }); 54 55 add_test(function test_get_bad_default() { 56 let failed = false; 57 try { 58 CommonUtils.getDatePref(prefs, "get_bad_default", new Date()); 59 } catch (ex) { 60 Assert.ok(ex.message.startsWith("Default value is not a number")); 61 failed = true; 62 } 63 64 Assert.ok(failed); 65 run_next_test(); 66 }); 67 68 add_test(function test_get_invalid_number() { 69 prefs.setStringPref("get_invalid_number", "hello world"); 70 71 let log = new DummyLogger(); 72 let d = CommonUtils.getDatePref(prefs, "get_invalid_number", 42, log); 73 Assert.equal(d.getTime(), 42); 74 Assert.equal(log.messages.length, 1); 75 76 run_next_test(); 77 });