49 lines
1.7 KiB
JavaScript
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"));
|
|
})
|
|
})
|
|
})
|