commit 27899c85b5f2e8d5363927626ab5466cc9eb7b65
parent 1558ed8a27b60c8b9fec52f558ac9e20cb3e9d23
Author: Dan Stillman <dstillman@zotero.org>
Date: Tue, 12 May 2015 19:55:14 -0400
Add setter and tests for dateAdded
Setting dateAdded is necessary for syncing
Diffstat:
2 files changed, 27 insertions(+), 7 deletions(-)
diff --git a/chrome/content/zotero/xpcom/data/item.js b/chrome/content/zotero/xpcom/data/item.js
@@ -126,7 +126,8 @@ Zotero.defineProperty(Zotero.Item.prototype, 'itemTypeID', {
get: function() this._itemTypeID
});
Zotero.defineProperty(Zotero.Item.prototype, 'dateAdded', {
- get: function() this._dateAdded
+ get: function() this._dateAdded,
+ set: function(val) this.setField('dateAdded', val)
});
Zotero.defineProperty(Zotero.Item.prototype, 'dateModified', {
get: function() this._dateModified,
diff --git a/test/tests/itemTest.js b/test/tests/itemTest.js
@@ -84,8 +84,27 @@ describe("Zotero.Item", function () {
});
})
+ describe("#dateAdded", function () {
+ it("should use current time if value was not given for a new item", function* () {
+ var item = new Zotero.Item('book');
+ var id = yield item.saveTx();
+ item = yield Zotero.Items.getAsync(id);
+
+ assert.closeTo(Zotero.Date.sqlToDate(item.dateAdded, true).getTime(), Date.now(), 1000);
+ })
+
+ it("should use given value for a new item", function* () {
+ var dateAdded = "2015-05-05 17:18:12";
+ var item = new Zotero.Item('book');
+ item.dateAdded = dateAdded;
+ var id = yield item.saveTx();
+ item = yield Zotero.Items.getAsync(id);
+ assert.equal(item.dateAdded, dateAdded);
+ })
+ })
+
describe("#dateModified", function () {
- it("should use given Date Modified for a new item", function* () {
+ it("should use given value for a new item", function* () {
var dateModified = "2015-05-05 17:18:12";
var item = new Zotero.Item('book');
item.dateModified = dateModified;
@@ -94,7 +113,7 @@ describe("Zotero.Item", function () {
assert.equal(item.dateModified, dateModified);
})
- it("should use given Date Modified when skipDateModifiedUpdate is set for a new item", function* () {
+ it("should use given value when skipDateModifiedUpdate is set for a new item", function* () {
var dateModified = "2015-05-05 17:18:12";
var item = new Zotero.Item('book');
item.dateModified = dateModified;
@@ -105,7 +124,7 @@ describe("Zotero.Item", function () {
assert.equal(item.dateModified, dateModified);
})
- it("should use current time if Date Modified was not given for an existing item", function* () {
+ it("should use current time if value was not given for an existing item", function* () {
var dateModified = "2015-05-05 17:18:12";
var item = new Zotero.Item('book');
item.dateModified = dateModified;
@@ -120,7 +139,7 @@ describe("Zotero.Item", function () {
assert.closeTo(Zotero.Date.sqlToDate(item.dateModified, true).getTime(), Date.now(), 1000);
})
- it("should use current time if the existing Date Modified value was given for an existing item", function* () {
+ it("should use current time if the existing value was given for an existing item", function* () {
var dateModified = "2015-05-05 17:18:12";
var item = new Zotero.Item('book');
item.dateModified = dateModified;
@@ -135,7 +154,7 @@ describe("Zotero.Item", function () {
assert.closeTo(Zotero.Date.sqlToDate(item.dateModified, true).getTime(), Date.now(), 1000);
})
- it("should use current time if Date Modified is not given when skipDateModifiedUpdate is set for a new item", function* () {
+ it("should use current time if value is not given when skipDateModifiedUpdate is set for a new item", function* () {
var item = new Zotero.Item('book');
var id = yield item.saveTx({
skipDateModifiedUpdate: true
@@ -144,7 +163,7 @@ describe("Zotero.Item", function () {
assert.closeTo(Zotero.Date.sqlToDate(item.dateModified, true).getTime(), Date.now(), 1000);
})
- it("should keep original Date Modified when skipDateModifiedUpdate is set for an existing item", function* () {
+ it("should keep original value when skipDateModifiedUpdate is set for an existing item", function* () {
var dateModified = "2015-05-05 17:18:12";
var item = new Zotero.Item('book');
item.dateModified = dateModified;