diff options
Diffstat (limited to 'apps/files_versions/tests/js')
-rw-r--r-- | apps/files_versions/tests/js/versioncollectionSpec.js | 141 | ||||
-rw-r--r-- | apps/files_versions/tests/js/versionmodelSpec.js | 59 | ||||
-rw-r--r-- | apps/files_versions/tests/js/versionstabviewSpec.js | 62 |
3 files changed, 38 insertions, 224 deletions
diff --git a/apps/files_versions/tests/js/versioncollectionSpec.js b/apps/files_versions/tests/js/versioncollectionSpec.js index 87065fa1d36..305685b71df 100644 --- a/apps/files_versions/tests/js/versioncollectionSpec.js +++ b/apps/files_versions/tests/js/versioncollectionSpec.js @@ -14,148 +14,21 @@ describe('OCA.Versions.VersionCollection', function() { beforeEach(function() { fileInfoModel = new OCA.Files.FileInfoModel({ path: '/subdir', - name: 'some file.txt' + name: 'some file.txt', + id: 10, }); collection = new VersionCollection(); collection.setFileInfo(fileInfoModel); + collection.setCurrentUser('user'); }); - it('fetches the next page', function() { - collection.fetchNext(); + it('fetches the versions', function() { + collection.fetch(); expect(fakeServer.requests.length).toEqual(1); expect(fakeServer.requests[0].url).toEqual( - OC.generateUrl('apps/files_versions/ajax/getVersions.php') + - '?source=%2Fsubdir%2Fsome%20file.txt&start=0' + OC.linkToRemoteBase('dav') + '/versions/user/versions/10' ); - fakeServer.requests[0].respond( - 200, - { 'Content-Type': 'application/json' }, - JSON.stringify({ - status: 'success', - data: { - endReached: false, - versions: [{ - version: 10000000, - size: 123, - name: 'some file.txt', - fullPath: '/subdir/some file.txt' - },{ - version: 15000000, - size: 150, - name: 'some file.txt', - path: '/subdir/some file.txt' - }] - } - }) - ); - - expect(collection.length).toEqual(2); - expect(collection.hasMoreResults()).toEqual(true); - - collection.fetchNext(); - - expect(fakeServer.requests.length).toEqual(2); - expect(fakeServer.requests[1].url).toEqual( - OC.generateUrl('apps/files_versions/ajax/getVersions.php') + - '?source=%2Fsubdir%2Fsome%20file.txt&start=2' - ); - fakeServer.requests[1].respond( - 200, - { 'Content-Type': 'application/json' }, - JSON.stringify({ - status: 'success', - data: { - endReached: true, - versions: [{ - version: 18000000, - size: 123, - name: 'some file.txt', - path: '/subdir/some file.txt' - }] - } - }) - ); - - expect(collection.length).toEqual(3); - expect(collection.hasMoreResults()).toEqual(false); - - collection.fetchNext(); - - // no further requests - expect(fakeServer.requests.length).toEqual(2); - }); - it('properly parses the results', function() { - collection.fetchNext(); - - expect(fakeServer.requests.length).toEqual(1); - expect(fakeServer.requests[0].url).toEqual( - OC.generateUrl('apps/files_versions/ajax/getVersions.php') + - '?source=%2Fsubdir%2Fsome%20file.txt&start=0' - ); - fakeServer.requests[0].respond( - 200, - { 'Content-Type': 'application/json' }, - JSON.stringify({ - status: 'success', - data: { - endReached: false, - versions: [{ - version: 10000000, - size: 123, - name: 'some file.txt', - path: '/subdir/some file.txt' - },{ - version: 15000000, - size: 150, - name: 'some file.txt', - path: '/subdir/some file.txt' - }] - } - }) - ); - - expect(collection.length).toEqual(2); - - var model = collection.at(0); - expect(model.get('id')).toEqual(10000000); - expect(model.get('timestamp')).toEqual(10000000); - expect(model.get('name')).toEqual('some file.txt'); - expect(model.get('fullPath')).toEqual('/subdir/some file.txt'); - expect(model.get('size')).toEqual(123); - - model = collection.at(1); - expect(model.get('id')).toEqual(15000000); - expect(model.get('timestamp')).toEqual(15000000); - expect(model.get('name')).toEqual('some file.txt'); - expect(model.get('fullPath')).toEqual('/subdir/some file.txt'); - expect(model.get('size')).toEqual(150); - }); - it('resets page counted when setting a new file info model', function() { - collection.fetchNext(); - - expect(fakeServer.requests.length).toEqual(1); - fakeServer.requests[0].respond( - 200, - { 'Content-Type': 'application/json' }, - JSON.stringify({ - status: 'success', - data: { - endReached: true, - versions: [{ - version: 18000000, - size: 123, - name: 'some file.txt', - path: '/subdir/some file.txt' - }] - } - }) - ); - - expect(collection.hasMoreResults()).toEqual(false); - - collection.setFileInfo(fileInfoModel); - - expect(collection.hasMoreResults()).toEqual(true); + fakeServer.requests[0].respond(200); }); }); diff --git a/apps/files_versions/tests/js/versionmodelSpec.js b/apps/files_versions/tests/js/versionmodelSpec.js index 0f1c06581d5..7ee239cd94a 100644 --- a/apps/files_versions/tests/js/versionmodelSpec.js +++ b/apps/files_versions/tests/js/versionmodelSpec.js @@ -10,14 +10,23 @@ describe('OCA.Versions.VersionModel', function() { var VersionModel = OCA.Versions.VersionModel; var model; + var uid = OC.currentUser = 'user'; beforeEach(function() { model = new VersionModel({ id: 10000000, + fileId: 10, timestamp: 10000000, fullPath: '/subdir/some file.txt', name: 'some file.txt', - size: 150 + size: 150, + user: 'user', + client: new OC.Files.Client({ + host: 'localhost', + port: 80, + root: '/remote.php/dav/versions/user', + useHTTPS: OC.getProtocol() === 'https' + }) }); }); @@ -32,8 +41,8 @@ describe('OCA.Versions.VersionModel', function() { }); it('returns the download url', function() { expect(model.getDownloadUrl()) - .toEqual(OC.generateUrl('/apps/files_versions/download.php') + - '?file=%2Fsubdir%2Fsome%20file.txt&revision=10000000' + .toEqual(OC.linkToRemoteBase('dav') + '/versions/' + uid + + '/versions/10/10000000' ); }); describe('reverting', function() { @@ -50,46 +59,40 @@ describe('OCA.Versions.VersionModel', function() { model.on('error', errorStub); }); it('tells the server to revert when calling the revert method', function() { - model.revert({ + var promise = model.revert({ success: successStub }); expect(fakeServer.requests.length).toEqual(1); - expect(fakeServer.requests[0].url) + var request = fakeServer.requests[0]; + expect(request.url) .toEqual( - OC.generateUrl('/apps/files_versions/ajax/rollbackVersion.php') + - '?file=%2Fsubdir%2Fsome+file.txt&revision=10000000' + OC.linkToRemoteBase('dav') + '/versions/user/versions/10/10000000' ); + expect(request.requestHeaders.Destination).toEqual(OC.getRootPath() + '/remote.php/dav/versions/user/restore/target'); + request.respond(201); - fakeServer.requests[0].respond( - 200, - { 'Content-Type': 'application/json' }, - JSON.stringify({ - status: 'success', - }) - ); + promise.then(function() { + expect(revertEventStub.calledOnce).toEqual(true); + expect(successStub.calledOnce).toEqual(true); + expect(errorStub.notCalled).toEqual(true); + }); - expect(revertEventStub.calledOnce).toEqual(true); - expect(successStub.calledOnce).toEqual(true); - expect(errorStub.notCalled).toEqual(true); + return promise; }); it('triggers error event when server returns a failure', function() { - model.revert({ + var promise = model.revert({ success: successStub }); expect(fakeServer.requests.length).toEqual(1); - fakeServer.requests[0].respond( - 200, - { 'Content-Type': 'application/json' }, - JSON.stringify({ - status: 'error', - }) - ); + fakeServer.requests[0].respond(404); - expect(revertEventStub.notCalled).toEqual(true); - expect(successStub.notCalled).toEqual(true); - expect(errorStub.calledOnce).toEqual(true); + promise.then(function() { + expect(revertEventStub.notCalled).toEqual(true); + expect(successStub.notCalled).toEqual(true); + expect(errorStub.calledOnce).toEqual(true); + }); }); }); }); diff --git a/apps/files_versions/tests/js/versionstabviewSpec.js b/apps/files_versions/tests/js/versionstabviewSpec.js index 94ad72d0f77..40fd8879645 100644 --- a/apps/files_versions/tests/js/versionstabviewSpec.js +++ b/apps/files_versions/tests/js/versionstabviewSpec.js @@ -82,14 +82,12 @@ describe('OCA.Versions.VersionsTabView', function() { expect($item.find('.versiondate').text()).toEqual('seconds ago'); expect($item.find('.size').text()).toEqual('< 1 KB'); expect($item.find('.revertVersion').length).toEqual(1); - expect($item.find('.preview').attr('src')).toEqual('http://localhost/core/img/filetypes/text.svg'); $item = $versions.eq(1); expect($item.find('.downloadVersion').attr('href')).toEqual(version2.getDownloadUrl()); expect($item.find('.versiondate').text()).toEqual('2 days ago'); expect($item.find('.size').text()).toEqual('< 1 KB'); expect($item.find('.revertVersion').length).toEqual(1); - expect($item.find('.preview').attr('src')).toEqual('http://localhost/core/img/filetypes/text.svg'); }); it('does not render revert button when no update permissions', function() { @@ -106,71 +104,11 @@ describe('OCA.Versions.VersionsTabView', function() { expect($item.find('.downloadVersion').attr('href')).toEqual(version1.getDownloadUrl()); expect($item.find('.versiondate').text()).toEqual('seconds ago'); expect($item.find('.revertVersion').length).toEqual(0); - expect($item.find('.preview').attr('src')).toEqual('http://localhost/core/img/filetypes/text.svg'); $item = $versions.eq(1); expect($item.find('.downloadVersion').attr('href')).toEqual(version2.getDownloadUrl()); expect($item.find('.versiondate').text()).toEqual('2 days ago'); expect($item.find('.revertVersion').length).toEqual(0); - expect($item.find('.preview').attr('src')).toEqual('http://localhost/core/img/filetypes/text.svg'); - }); - }); - - describe('More versions', function() { - var hasMoreResultsStub; - - beforeEach(function() { - tabView.setFileInfo(fileInfoModel); - fetchStub.reset(); - tabView.collection.set(testVersions); - hasMoreResultsStub = sinon.stub(VersionCollection.prototype, 'hasMoreResults'); - }); - afterEach(function() { - hasMoreResultsStub.restore(); - }); - - it('shows "More versions" button when more versions are available', function() { - hasMoreResultsStub.returns(true); - tabView.collection.trigger('sync'); - - expect(tabView.$el.find('.showMoreVersions').hasClass('hidden')).toEqual(false); - }); - it('does not show "More versions" button when more versions are available', function() { - hasMoreResultsStub.returns(false); - tabView.collection.trigger('sync'); - - expect(tabView.$el.find('.showMoreVersions').hasClass('hidden')).toEqual(true); - }); - it('fetches and appends the next page when clicking the "More" button', function() { - hasMoreResultsStub.returns(true); - - expect(fetchStub.notCalled).toEqual(true); - - tabView.$el.find('.showMoreVersions').click(); - - expect(fetchStub.calledOnce).toEqual(true); - }); - it('appends version to the list when added to collection', function() { - var time3 = Date.UTC(2015, 6, 10, 1, 0, 0, 0) / 1000; - - var version3 = new VersionModel({ - id: time3, - timestamp: time3, - name: 'some file.txt', - size: 54, - fullPath: '/subdir/some file.txt', - mimetype: 'text/plain' - }); - - tabView.collection.add(version3); - - expect(tabView.$el.find('.versions>li').length).toEqual(3); - - var $item = tabView.$el.find('.versions>li').eq(2); - expect($item.find('.downloadVersion').attr('href')).toEqual(version3.getDownloadUrl()); - expect($item.find('.versiondate').text()).toEqual('7 days ago'); - expect($item.find('.revertVersion').length).toEqual(1); - expect($item.find('.preview').attr('src')).toEqual('http://localhost/core/img/filetypes/text.svg'); }); }); |