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