test_utils_dateprefs.js 1.9 KB

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