1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/services/common/tests/unit/test_utils_dateprefs.js Wed Dec 31 06:09:35 2014 +0100 1.3 @@ -0,0 +1,85 @@ 1.4 +/* Any copyright is dedicated to the Public Domain. 1.5 + * http://creativecommons.org/publicdomain/zero/1.0/ */ 1.6 + 1.7 +"use strict"; 1.8 + 1.9 +Cu.import("resource://gre/modules/Preferences.jsm"); 1.10 +Cu.import("resource://services-common/utils.js"); 1.11 + 1.12 + 1.13 +let prefs = new Preferences("servicescommon.tests."); 1.14 + 1.15 +function DummyLogger() { 1.16 + this.messages = []; 1.17 +} 1.18 +DummyLogger.prototype.warn = function warn(message) { 1.19 + this.messages.push(message); 1.20 +}; 1.21 + 1.22 +function run_test() { 1.23 + run_next_test(); 1.24 +} 1.25 + 1.26 +add_test(function test_set_basic() { 1.27 + let now = new Date(); 1.28 + 1.29 + CommonUtils.setDatePref(prefs, "test00", now); 1.30 + let value = prefs.get("test00"); 1.31 + do_check_eq(value, "" + now.getTime()); 1.32 + 1.33 + let now2 = CommonUtils.getDatePref(prefs, "test00"); 1.34 + 1.35 + do_check_eq(now.getTime(), now2.getTime()); 1.36 + 1.37 + run_next_test(); 1.38 +}); 1.39 + 1.40 +add_test(function test_set_bounds_checking() { 1.41 + let d = new Date(2342354); 1.42 + 1.43 + let failed = false; 1.44 + try { 1.45 + CommonUtils.setDatePref(prefs, "test01", d); 1.46 + } catch (ex) { 1.47 + do_check_true(ex.message.startsWith("Trying to set")); 1.48 + failed = true; 1.49 + } 1.50 + 1.51 + do_check_true(failed); 1.52 + run_next_test(); 1.53 +}); 1.54 + 1.55 +add_test(function test_get_bounds_checking() { 1.56 + prefs.set("test_bounds_checking", "13241431"); 1.57 + 1.58 + let log = new DummyLogger(); 1.59 + let d = CommonUtils.getDatePref(prefs, "test_bounds_checking", 0, log); 1.60 + do_check_eq(d.getTime(), 0); 1.61 + do_check_eq(log.messages.length, 1); 1.62 + 1.63 + run_next_test(); 1.64 +}); 1.65 + 1.66 +add_test(function test_get_bad_default() { 1.67 + let failed = false; 1.68 + try { 1.69 + CommonUtils.getDatePref(prefs, "get_bad_default", new Date()); 1.70 + } catch (ex) { 1.71 + do_check_true(ex.message.startsWith("Default value is not a number")); 1.72 + failed = true; 1.73 + } 1.74 + 1.75 + do_check_true(failed); 1.76 + run_next_test(); 1.77 +}); 1.78 + 1.79 +add_test(function test_get_invalid_number() { 1.80 + prefs.set("get_invalid_number", "hello world"); 1.81 + 1.82 + let log = new DummyLogger(); 1.83 + let d = CommonUtils.getDatePref(prefs, "get_invalid_number", 42, log); 1.84 + do_check_eq(d.getTime(), 42); 1.85 + do_check_eq(log.messages.length, 1); 1.86 + 1.87 + run_next_test(); 1.88 +});