Various feeds changes

- Change sort order for feed items to natural order
- Remove display of dates in itembox
- Trim html tags from creators in FeedReader parser
This commit is contained in:
Adomas Venčkauskas 2016-02-05 18:29:15 +00:00 committed by Dan Stillman
parent 5e706c31ad
commit e206b0af5e
14 changed files with 118 additions and 192 deletions

View file

@ -206,9 +206,16 @@ describe("Zotero.Feed", function() {
});
describe('#updateFeed()', function() {
var feed;
var feedUrl = getTestDataItemUrl("feed.rss");
var modifiedFeedUrl = getTestDataItemUrl("feedModified.rss");
beforeEach(function* (){
feed = yield createFeed();
feed._feedUrl = feedUrl;
yield feed.updateFeed();
});
afterEach(function* () {
yield clearFeeds();
});
@ -225,15 +232,11 @@ describe("Zotero.Feed", function() {
});
it('should add new feed items', function* () {
let feed = yield createFeed();
feed._feedUrl = feedUrl;
yield feed.updateFeed();
let feedItems = yield Zotero.FeedItems.getAll(feed.id);
assert.equal(feedItems.length, 4);
assert.equal(feedItems.length, 3);
});
it('should set lastCheck and lastUpdated values', function* () {
it('should set lastCheck, lastUpdated and lastGUID values', function* () {
let feed = yield createFeed();
feed._feedUrl = feedUrl;
@ -244,61 +247,36 @@ describe("Zotero.Feed", function() {
assert.ok(feed.lastCheck >= Zotero.Date.dateToSQL(new Date(Date.now() - 1000*60), true));
assert.ok(feed.lastUpdate >= Zotero.Date.dateToSQL(new Date(Date.now() - 1000*60), true));
assert.equal(feed.lastGUID, 'http://liftoff.msfc.nasa.gov/2003/06/03.html#item573:'+feed.id);
});
it('should update modified items and set unread', function* () {
let feed = yield createFeed();
feed._feedUrl = feedUrl;
yield feed.updateFeed();
let feedItem = yield Zotero.FeedItems.getAsyncByGUID("http://liftoff.msfc.nasa.gov/2003/06/03.html#item573:"+feed.id);
feedItem.isRead = true;
yield feedItem.forceSaveTx();
feedItem = yield Zotero.FeedItems.getAsyncByGUID("http://liftoff.msfc.nasa.gov/2003/06/03.html#item573:"+feed.id);
assert.isTrue(feedItem.isRead);
let oldDateModified = feedItem.dateModified;
let oldDateModified = feedItem.getField('date');
feed._feedUrl = modifiedFeedUrl;
yield feed.updateFeed();
feedItem = yield Zotero.FeedItems.getAsyncByGUID("http://liftoff.msfc.nasa.gov/2003/06/03.html#item573:"+feed.id);
assert.notEqual(oldDateModified, feedItem.dateModified);
assert.notEqual(oldDateModified, feedItem.getField('date'));
assert.isFalse(feedItem.isRead)
});
it('should skip items that are not modified', function* () {
let feed = yield createFeed();
feed._feedUrl = feedUrl;
yield feed.updateFeed();
let feedItems = yield Zotero.FeedItems.getAll(feed.id);
let datesAdded = [], datesModified = [];
for(let feedItem of feedItems) {
datesAdded.push(feedItem.dateAdded);
datesModified.push(feedItem.dateModified);
}
let save = sinon.spy(Zotero.FeedItem.prototype, 'save');
feed._feedUrl = modifiedFeedUrl;
yield feed.updateFeed();
feedItems = yield Zotero.FeedItems.getAll(feed.id);
let changedCount = 0;
for (let i = 0; i < feedItems.length; i++) {
assert.equal(feedItems[i].dateAdded, datesAdded[i]);
if (feedItems[i].dateModified != datesModified[i]) {
changedCount++;
}
}
assert.equal(changedCount, 1);
assert.equal(save.thisValues[0].guid, "http://liftoff.msfc.nasa.gov/2003/06/03.html#item573:"+feed.id);
save.restore();
});
it('should update unread count', function* () {
let feed = yield createFeed();
feed._feedUrl = feedUrl;
yield feed.updateFeed();
assert.equal(feed.unreadCount, 4);
assert.equal(feed.unreadCount, 3);
let feedItems = yield Zotero.FeedItems.getAll(feed.id);
for (let feedItem of feedItems) {
@ -309,7 +287,22 @@ describe("Zotero.Feed", function() {
feed._feedUrl = modifiedFeedUrl;
yield feed.updateFeed();
assert.equal(feed.unreadCount, 1);
assert.equal(feed.unreadCount, 2);
});
it('should not re-add deleted items, but add new ones', function* () {
let feedItems = yield Zotero.FeedItems.getAll(feed.id);
yield feedItems[1].forceEraseTx();
feedItems = yield Zotero.FeedItems.getAll(feed.id);
for (let feedItem of feedItems) {
feedItem.isRead = true;
yield feedItem.forceSaveTx();
}
feed._feedUrl = modifiedFeedUrl;
yield feed.updateFeed();
assert.equal(feed.unreadCount, 2);
});
});