describe("Zotero.Feeds", function () { let createFeed = Zotero.Promise.coroutine(function* (props = {}) { let feed = new Zotero.Feed({ name: props.name || 'Test ' + Zotero.randomString(), url: props.url || 'http://www.' + Zotero.randomString() + '.com', refreshInterval: props.refreshInterval, cleanupAfter: props.cleanupAfter }); yield feed.saveTx(); return feed; }); let clearFeeds = Zotero.Promise.coroutine(function* () { let feeds = Zotero.Feeds.getAll(); yield Zotero.DB.executeTransaction(function* () { for (let i=0; i<feeds.length; i++) { yield feeds[i].erase(); } }); }); describe("#haveFeeds()", function() { it("should return false for a DB without feeds", function* () { yield clearFeeds(); assert.isFalse(Zotero.Feeds.haveFeeds(), 'no feeds in empty DB'); let group = yield createGroup(); assert.isFalse(Zotero.Feeds.haveFeeds(), 'no feeds in DB with groups'); }); it("should return true for a DB containing feeds", function* () { let feed = yield createFeed(); assert.isTrue(Zotero.Feeds.haveFeeds()); }); }); describe("#getAll()", function() { it("should return an empty array for a DB without feeds", function* () { yield clearFeeds(); let feeds = Zotero.Feeds.getAll(); assert.lengthOf(feeds, 0, 'no feeds in an empty DB'); let group = yield createGroup(); feeds = Zotero.Feeds.getAll(); assert.lengthOf(feeds, 0, 'no feeds in DB with group libraries'); }); it("should return an array of feeds", function* () { yield clearFeeds(); let feed1 = yield createFeed(); let feed2 = yield createFeed(); let feeds = Zotero.Feeds.getAll(); assert.lengthOf(feeds, 2); assert.sameMembers(feeds, [feed1, feed2]); }); }); })