summaryrefslogtreecommitdiffstats
path: root/comm/calendar/test/unit/test_datetime_before_1970.js
diff options
context:
space:
mode:
Diffstat (limited to 'comm/calendar/test/unit/test_datetime_before_1970.js')
-rw-r--r--comm/calendar/test/unit/test_datetime_before_1970.js31
1 files changed, 31 insertions, 0 deletions
diff --git a/comm/calendar/test/unit/test_datetime_before_1970.js b/comm/calendar/test/unit/test_datetime_before_1970.js
new file mode 100644
index 0000000000..a5e5dd0054
--- /dev/null
+++ b/comm/calendar/test/unit/test_datetime_before_1970.js
@@ -0,0 +1,31 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+function run_test() {
+ // Bug 769938 - dates before 1970 are not handled correctly
+ // due to signed vs. unsigned mismatch in PRTime in xpconnect
+
+ let dateTime1950 = cal.createDateTime();
+ dateTime1950.year = 1950;
+ equal(dateTime1950.year, 1950);
+
+ let dateTime1955 = cal.dtz.jsDateToDateTime(new Date(Date.UTC(1955, 6, 15)));
+ equal(dateTime1955.year, 1955);
+
+ let dateTime1965 = cal.createDateTime();
+ dateTime1965.nativeTime = -150000000000000;
+ equal(dateTime1965.year, 1965);
+ equal(dateTime1965.nativeTime, -150000000000000);
+
+ let dateTime1990 = cal.createDateTime();
+ dateTime1990.year = 1990;
+
+ let dateTime2050 = cal.createDateTime();
+ dateTime2050.year = 2050;
+
+ ok(dateTime1950.nativeTime < dateTime1955.nativeTime);
+ ok(dateTime1955.nativeTime < dateTime1965.nativeTime);
+ ok(dateTime1965.nativeTime < dateTime1990.nativeTime);
+ ok(dateTime1990.nativeTime < dateTime2050.nativeTime);
+}