97 lines
2.4 KiB
JavaScript
97 lines
2.4 KiB
JavaScript
|
/*
|
||
|
* Copyright (c) 2015
|
||
|
*
|
||
|
* This file is licensed under the Affero General Public License version 3
|
||
|
* or later.
|
||
|
*
|
||
|
* See the COPYING-README file.
|
||
|
*
|
||
|
*/
|
||
|
describe('OCA.Versions.VersionModel', function() {
|
||
|
var VersionModel = OCA.Versions.VersionModel;
|
||
|
var model;
|
||
|
|
||
|
beforeEach(function() {
|
||
|
model = new VersionModel({
|
||
|
id: 10000000,
|
||
|
timestamp: 10000000,
|
||
|
fullPath: '/subdir/some file.txt',
|
||
|
name: 'some file.txt',
|
||
|
size: 150
|
||
|
});
|
||
|
});
|
||
|
|
||
|
it('returns the full path', function() {
|
||
|
expect(model.getFullPath()).toEqual('/subdir/some file.txt');
|
||
|
});
|
||
|
it('returns the preview url', function() {
|
||
|
expect(model.getPreviewUrl())
|
||
|
.toEqual(OC.generateUrl('/apps/files_versions/preview') +
|
||
|
'?file=%2Fsubdir%2Fsome%20file.txt&version=10000000'
|
||
|
);
|
||
|
});
|
||
|
it('returns the download url', function() {
|
||
|
expect(model.getDownloadUrl())
|
||
|
.toEqual(OC.generateUrl('/apps/files_versions/download.php') +
|
||
|
'?file=%2Fsubdir%2Fsome%20file.txt&revision=10000000'
|
||
|
);
|
||
|
});
|
||
|
describe('reverting', function() {
|
||
|
var revertEventStub;
|
||
|
var successStub;
|
||
|
var errorStub;
|
||
|
|
||
|
beforeEach(function() {
|
||
|
revertEventStub = sinon.stub();
|
||
|
errorStub = sinon.stub();
|
||
|
successStub = sinon.stub();
|
||
|
|
||
|
model.on('revert', revertEventStub);
|
||
|
model.on('error', errorStub);
|
||
|
});
|
||
|
it('tells the server to revert when calling the revert method', function() {
|
||
|
model.revert({
|
||
|
success: successStub
|
||
|
});
|
||
|
|
||
|
expect(fakeServer.requests.length).toEqual(1);
|
||
|
expect(fakeServer.requests[0].url)
|
||
|
.toEqual(
|
||
|
OC.generateUrl('/apps/files_versions/ajax/rollbackVersion.php') +
|
||
|
'?file=%2Fsubdir%2Fsome+file.txt&revision=10000000'
|
||
|
);
|
||
|
|
||
|
fakeServer.requests[0].respond(
|
||
|
200,
|
||
|
{ 'Content-Type': 'application/json' },
|
||
|
JSON.stringify({
|
||
|
status: 'success',
|
||
|
})
|
||
|
);
|
||
|
|
||
|
expect(revertEventStub.calledOnce).toEqual(true);
|
||
|
expect(successStub.calledOnce).toEqual(true);
|
||
|
expect(errorStub.notCalled).toEqual(true);
|
||
|
});
|
||
|
it('triggers error event when server returns a failure', function() {
|
||
|
model.revert({
|
||
|
success: successStub
|
||
|
});
|
||
|
|
||
|
expect(fakeServer.requests.length).toEqual(1);
|
||
|
fakeServer.requests[0].respond(
|
||
|
200,
|
||
|
{ 'Content-Type': 'application/json' },
|
||
|
JSON.stringify({
|
||
|
status: 'error',
|
||
|
})
|
||
|
);
|
||
|
|
||
|
expect(revertEventStub.notCalled).toEqual(true);
|
||
|
expect(successStub.notCalled).toEqual(true);
|
||
|
expect(errorStub.calledOnce).toEqual(true);
|
||
|
});
|
||
|
});
|
||
|
});
|
||
|
|