zotero/test/tests/dateTest.js

49 lines
1.7 KiB
JavaScript

describe("Zotero.Date", function() {
describe("#sqlToDate()", function () {
it("should convert an SQL local date into a JS Date object", function* () {
var d1 = new Date();
var sqlDate = d1.getFullYear()
+ '-'
+ Zotero.Utilities.lpad(d1.getMonth() + 1, '0', 2)
+ '-'
+ Zotero.Utilities.lpad(d1.getDate(), '0', 2)
+ ' '
+ Zotero.Utilities.lpad(d1.getHours(), '0', 2)
+ ':'
+ Zotero.Utilities.lpad(d1.getMinutes(), '0', 2)
+ ':'
+ Zotero.Utilities.lpad(d1.getSeconds(), '0', 2);
var offset = d1.getTimezoneOffset() * 60 * 1000;
var d2 = Zotero.Date.sqlToDate(sqlDate);
assert.equal(
Zotero.Date.sqlToDate(sqlDate).getTime(),
Math.floor(new Date().getTime() / 1000) * 1000
);
})
it("should convert an SQL UTC date into a JS Date object", function* () {
var date = "2016-02-27 22:00:00";
date = Zotero.Date.sqlToDate(date, true);
assert.equal(date.getTime(), 1456610400000);
})
})
describe("#isISODate()", function () {
it("should determine whether a date is an ISO 8601 date", function () {
assert.ok(Zotero.Date.isISODate("2015"));
assert.ok(Zotero.Date.isISODate("2015-04"));
assert.ok(Zotero.Date.isISODate("2015-04-29"));
assert.ok(Zotero.Date.isISODate("2015-04-29T17:28Z"));
assert.isFalse(Zotero.Date.isISODate("2015-04-29 17:28"));
})
})
describe("#isHTTPDate()", function() {
it("should determine whether a date is an RFC 2822 compliant date", function() {
assert.ok(Zotero.Date.isHTTPDate("Mon, 13 Jun 2016 02:09:08 +4000"));
assert.ok(Zotero.Date.isHTTPDate("13 Jun 2016 02:09:08 +4000"));
assert.ok(Zotero.Date.isHTTPDate("13 Jun 2016 02:09 +4000"));
assert.ok(Zotero.Date.isHTTPDate("13 Jun 2016 02:09 EDT"));
})
})
})