This commit is contained in:
parent
1535839eb7
commit
c157e01208
|
@ -290,6 +290,9 @@ Zotero.Feed.prototype._saveData = Zotero.Promise.coroutine(function* (env) {
|
||||||
});
|
});
|
||||||
|
|
||||||
Zotero.Feed.prototype._finalizeSave = Zotero.Promise.coroutine(function* (env) {
|
Zotero.Feed.prototype._finalizeSave = Zotero.Promise.coroutine(function* (env) {
|
||||||
|
let syncedDataChanged =
|
||||||
|
['_feedName', '_feedCleanupAfter', '_feedRefreshInterval'].some((val) => this._changed[val]);
|
||||||
|
|
||||||
yield Zotero.Feed._super.prototype._finalizeSave.apply(this, arguments);
|
yield Zotero.Feed._super.prototype._finalizeSave.apply(this, arguments);
|
||||||
|
|
||||||
if (!env.isNew && this._previousURL) {
|
if (!env.isNew && this._previousURL) {
|
||||||
|
@ -300,10 +303,12 @@ Zotero.Feed.prototype._finalizeSave = Zotero.Promise.coroutine(function* (env) {
|
||||||
delete syncedFeeds[this._previousURL];
|
delete syncedFeeds[this._previousURL];
|
||||||
yield Zotero.SyncedSettings.set(Zotero.Libraries.userLibraryID, 'feeds', syncedFeeds);
|
yield Zotero.SyncedSettings.set(Zotero.Libraries.userLibraryID, 'feeds', syncedFeeds);
|
||||||
}
|
}
|
||||||
|
if (syncedDataChanged || env.isNew || this._previousURL) {
|
||||||
|
yield this.storeSyncedSettings();
|
||||||
if (env.isNew || this._previousURL) {
|
if (env.isNew || this._previousURL) {
|
||||||
Zotero.Feeds.register(this);
|
Zotero.Feeds.register(this);
|
||||||
}
|
}
|
||||||
yield this.storeSyncedSettings();
|
}
|
||||||
this._previousURL = null;
|
this._previousURL = null;
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
|
@ -159,6 +159,24 @@ describe("Zotero.Feed", function() {
|
||||||
assert.notOk(syncedFeeds[oldUrl]);
|
assert.notOk(syncedFeeds[oldUrl]);
|
||||||
assert.ok(syncedFeeds[feed.url]);
|
assert.ok(syncedFeeds[feed.url]);
|
||||||
});
|
});
|
||||||
|
it('should update syncedSettings if `name`, `url`, `refreshInterval` or `cleanupAfter` was modified', function* () {
|
||||||
|
let feed = yield createFeed();
|
||||||
|
let syncedSetting = Zotero.SyncedSettings.get(Zotero.Libraries.userLibraryID, 'feeds');
|
||||||
|
yield Zotero.SyncedSettings.set(Zotero.Libraries.userLibraryID, 'feeds', syncedSetting, 0, true);
|
||||||
|
|
||||||
|
feed.name = "New name";
|
||||||
|
yield feed.saveTx();
|
||||||
|
assert.isFalse(Zotero.SyncedSettings.getMetadata(Zotero.Libraries.userLibraryID, 'feeds').synced)
|
||||||
|
});
|
||||||
|
it('should not update syncedSettings if `name`, `url`, `refreshInterval` or `cleanupAfter` were not modified', function* () {
|
||||||
|
let feed = yield createFeed();
|
||||||
|
let syncedSetting = Zotero.SyncedSettings.get(Zotero.Libraries.userLibraryID, 'feeds');
|
||||||
|
yield Zotero.SyncedSettings.set(Zotero.Libraries.userLibraryID, 'feeds', syncedSetting, 0, true);
|
||||||
|
|
||||||
|
feed._set('_feedLastCheck', Zotero.Date.dateToSQL(new Date(), true));
|
||||||
|
yield feed.saveTx();
|
||||||
|
assert.isTrue(Zotero.SyncedSettings.getMetadata(Zotero.Libraries.userLibraryID, 'feeds').synced)
|
||||||
|
});
|
||||||
});
|
});
|
||||||
describe("#erase()", function() {
|
describe("#erase()", function() {
|
||||||
it("should erase a saved feed", function* () {
|
it("should erase a saved feed", function* () {
|
||||||
|
@ -271,11 +289,19 @@ describe("Zotero.Feed", function() {
|
||||||
});
|
});
|
||||||
|
|
||||||
describe('#updateFeed()', function() {
|
describe('#updateFeed()', function() {
|
||||||
var feed;
|
var feed, scheduleNextFeedCheck;
|
||||||
var feedUrl = getTestDataUrl("feed.rss");
|
var feedUrl = getTestDataUrl("feed.rss");
|
||||||
var modifiedFeedUrl = getTestDataUrl("feedModified.rss");
|
var modifiedFeedUrl = getTestDataUrl("feedModified.rss");
|
||||||
|
|
||||||
|
before(function() {
|
||||||
|
scheduleNextFeedCheck = sinon.stub(Zotero.Feeds, 'scheduleNextFeedCheck');
|
||||||
|
});
|
||||||
|
after(function() {
|
||||||
|
scheduleNextFeedCheck.restore();
|
||||||
|
});
|
||||||
|
|
||||||
beforeEach(function* (){
|
beforeEach(function* (){
|
||||||
|
scheduleNextFeedCheck.reset();
|
||||||
feed = yield createFeed();
|
feed = yield createFeed();
|
||||||
feed._feedUrl = feedUrl;
|
feed._feedUrl = feedUrl;
|
||||||
yield feed.updateFeed();
|
yield feed.updateFeed();
|
||||||
|
@ -286,14 +312,12 @@ describe("Zotero.Feed", function() {
|
||||||
});
|
});
|
||||||
|
|
||||||
it('should schedule next feed check', function* () {
|
it('should schedule next feed check', function* () {
|
||||||
let scheduleNextFeedCheck = sinon.stub(Zotero.Feeds, 'scheduleNextFeedCheck');
|
|
||||||
|
|
||||||
let feed = yield createFeed();
|
let feed = yield createFeed();
|
||||||
feed._feedUrl = feedUrl;
|
feed._feedUrl = feedUrl;
|
||||||
yield feed.updateFeed();
|
yield feed.updateFeed();
|
||||||
assert.equal(scheduleNextFeedCheck.called, true);
|
assert.equal(scheduleNextFeedCheck.called, true);
|
||||||
|
|
||||||
scheduleNextFeedCheck.restore();
|
|
||||||
});
|
});
|
||||||
|
|
||||||
it('should add new feed items', function* () {
|
it('should add new feed items', function* () {
|
||||||
|
|
Loading…
Reference in New Issue
Block a user