www

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | Submodules | README | LICENSE

syncEventListenersTest.js (1472B)


      1 "use strict";
      2 
      3 describe("Zotero.Sync.EventListeners", function () {
      4 	describe("AutoSyncListener", function () {
      5 		var originalTimeout;
      6 		
      7 		before(function () {
      8 			originalTimeout = Zotero.Sync.EventListeners.AutoSyncListener._editTimeout;
      9 			assert.ok(originalTimeout);
     10 			// Set timeout to 1ms
     11 			Zotero.Sync.EventListeners.AutoSyncListener._editTimeout = 0.001;
     12 			Zotero.Prefs.set('sync.autoSync', true);
     13 		});
     14 		
     15 		
     16 		after(function () {
     17 			Zotero.Sync.EventListeners.AutoSyncListener._editTimeout = originalTimeout;
     18 			Zotero.Prefs.set('sync.autoSync', false);
     19 			Zotero.Prefs.clear('sync.librariesToSkip');
     20 		});
     21 		
     22 		
     23 		it("should sync only changed library", function* () {
     24 			var mock = sinon.mock(Zotero.Sync.Runner);
     25 			var expectation = mock.expects("setSyncTimeout").once();
     26 			
     27 			var group = yield createGroup();
     28 			yield createDataObject('item', { libraryID: group.libraryID });
     29 			
     30 			yield Zotero.Promise.delay(10);
     31 			mock.verify();
     32 			assert.sameMembers(expectation.getCall(0).args[2].libraries, [group.libraryID]);
     33 		});
     34 		
     35 		
     36 		it("shouldn't sync skipped library", function* () {
     37 			var mock = sinon.mock(Zotero.Sync.Runner);
     38 			var expectation = mock.expects("setSyncTimeout").never();
     39 			
     40 			var group = yield createGroup();
     41 			Zotero.Prefs.set('sync.librariesToSkip', JSON.stringify(["G" + group.groupID]));
     42 			yield createDataObject('item', { libraryID: group.libraryID });
     43 			
     44 			yield Zotero.Promise.delay(10);
     45 			mock.verify();
     46 		});
     47 	});
     48 });