summaryrefslogtreecommitdiffstats
path: root/apps/files_versions/tests/js/versionmodelSpec.js
diff options
context:
space:
mode:
Diffstat (limited to 'apps/files_versions/tests/js/versionmodelSpec.js')
-rw-r--r--apps/files_versions/tests/js/versionmodelSpec.js96
1 files changed, 96 insertions, 0 deletions
diff --git a/apps/files_versions/tests/js/versionmodelSpec.js b/apps/files_versions/tests/js/versionmodelSpec.js
new file mode 100644
index 00000000000..0f1c06581d5
--- /dev/null
+++ b/apps/files_versions/tests/js/versionmodelSpec.js
@@ -0,0 +1,96 @@
+/*
+ * 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);
+ });
+ });
+});
+