85 lines
2.4 KiB
JavaScript
85 lines
2.4 KiB
JavaScript
/**
|
|
* ownCloud
|
|
*
|
|
* @author Vincent Petry
|
|
* @copyright 2016 Vincent Petry <pvince81@owncloud.com>
|
|
*
|
|
* This library is free software; you can redistribute it and/or
|
|
* modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE
|
|
* License as published by the Free Software Foundation; either
|
|
* version 3 of the License, or any later version.
|
|
*
|
|
* This library is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
* GNU AFFERO GENERAL PUBLIC LICENSE for more details.
|
|
*
|
|
* You should have received a copy of the GNU Affero General Public
|
|
* License along with this library. If not, see <http://www.gnu.org/licenses/>.
|
|
*
|
|
*/
|
|
|
|
describe('OC.SystemTags.SystemTagsCollection tests', function() {
|
|
var collection;
|
|
|
|
beforeEach(function() {
|
|
collection = new OC.SystemTags.SystemTagsCollection();
|
|
});
|
|
it('fetches only once, until reset', function() {
|
|
var syncStub = sinon.stub(collection, 'sync');
|
|
var callback = sinon.stub();
|
|
var callback2 = sinon.stub();
|
|
var callback3 = sinon.stub();
|
|
var eventHandler = sinon.stub();
|
|
|
|
collection.on('sync', eventHandler);
|
|
|
|
collection.fetch({
|
|
success: callback
|
|
});
|
|
|
|
expect(callback.notCalled).toEqual(true);
|
|
expect(syncStub.calledOnce).toEqual(true);
|
|
expect(eventHandler.notCalled).toEqual(true);
|
|
|
|
syncStub.yieldTo('success', collection);
|
|
|
|
expect(callback.calledOnce).toEqual(true);
|
|
expect(callback.firstCall.args[0]).toEqual(collection);
|
|
expect(eventHandler.calledOnce).toEqual(true);
|
|
expect(eventHandler.firstCall.args[0]).toEqual(collection);
|
|
|
|
collection.fetch({
|
|
success: callback2
|
|
});
|
|
|
|
expect(eventHandler.calledTwice).toEqual(true);
|
|
expect(eventHandler.secondCall.args[0]).toEqual(collection);
|
|
|
|
// not re-called
|
|
expect(syncStub.calledOnce).toEqual(true);
|
|
|
|
expect(callback.calledOnce).toEqual(true);
|
|
expect(callback2.calledOnce).toEqual(true);
|
|
expect(callback2.firstCall.args[0]).toEqual(collection);
|
|
|
|
expect(collection.fetched).toEqual(true);
|
|
|
|
collection.reset();
|
|
|
|
expect(collection.fetched).toEqual(false);
|
|
|
|
collection.fetch({
|
|
success: callback3
|
|
});
|
|
|
|
expect(syncStub.calledTwice).toEqual(true);
|
|
|
|
syncStub.yieldTo('success', collection);
|
|
expect(callback3.calledOnce).toEqual(true);
|
|
expect(callback3.firstCall.args[0]).toEqual(collection);
|
|
|
|
syncStub.restore();
|
|
});
|
|
});
|