diff options
author | Tomasz Grobelny <tomasz@grobelny.net> | 2018-11-22 22:19:57 +0100 |
---|---|---|
committer | Tomasz Grobelny <tomasz@grobelny.net> | 2018-11-24 23:57:13 +0100 |
commit | 04d326f95feacd640dc5d6fecff1ec0ef0970265 (patch) | |
tree | 3a70b2313d782daf410bf75f4893c1e868af7d8c /apps/files/tests | |
parent | c83c26877b38a83e01f5b94ef975c8be115cb950 (diff) | |
download | nextcloud-server-04d326f95feacd640dc5d6fecff1ec0ef0970265.tar.gz nextcloud-server-04d326f95feacd640dc5d6fecff1ec0ef0970265.zip |
Fix unit tests
Signed-off-by: Tomasz Grobelny <tomasz@grobelny.net>
Diffstat (limited to 'apps/files/tests')
-rw-r--r-- | apps/files/tests/js/fileUploadSpec.js | 5 | ||||
-rw-r--r-- | apps/files/tests/js/filelistSpec.js | 450 |
2 files changed, 279 insertions, 176 deletions
diff --git a/apps/files/tests/js/fileUploadSpec.js b/apps/files/tests/js/fileUploadSpec.js index ca88461fafb..6fe3907c1ec 100644 --- a/apps/files/tests/js/fileUploadSpec.js +++ b/apps/files/tests/js/fileUploadSpec.js @@ -24,6 +24,7 @@ describe('OC.Upload tests', function() { var testFile; var uploader; var failStub; + var progressBarStub; beforeEach(function() { testFile = { @@ -45,7 +46,8 @@ describe('OC.Upload tests', function() { '</div>' ); $dummyUploader = $('#file_upload_start'); - uploader = new OC.Uploader($dummyUploader); + progressBarStub = {on: function(){}}; + uploader = new OC.Uploader($dummyUploader, {progressBar: progressBarStub}); failStub = sinon.stub(); uploader.on('fail', failStub); }); @@ -142,6 +144,7 @@ describe('OC.Upload tests', function() { conflictDialogStub = sinon.stub(OC.dialogs, 'fileexists'); uploader = new OC.Uploader($dummyUploader, { + progressBar: progressBarStub, fileList: fileList }); diff --git a/apps/files/tests/js/filelistSpec.js b/apps/files/tests/js/filelistSpec.js index eae72ff05dc..402cfaa1073 100644 --- a/apps/files/tests/js/filelistSpec.js +++ b/apps/files/tests/js/filelistSpec.js @@ -522,7 +522,7 @@ describe('OCA.Files.FileList tests', function() { beforeEach(function() { deferredDelete = $.Deferred(); - deleteStub = sinon.stub(filesClient, 'remove').returns(deferredDelete.promise()); + deleteStub = sinon.stub(filesClient, 'remove'); }); afterEach(function() { deleteStub.restore(); @@ -530,92 +530,153 @@ describe('OCA.Files.FileList tests', function() { function doDelete() { // note: normally called from FileActions - fileList.do_delete(['One.txt', 'Two.jpg']); + return fileList.do_delete(['One.txt', 'Two.jpg']).then(function(){ - expect(deleteStub.calledTwice).toEqual(true); - expect(deleteStub.getCall(0).args[0]).toEqual('/subdir/One.txt'); - expect(deleteStub.getCall(1).args[0]).toEqual('/subdir/Two.jpg'); + expect(deleteStub.calledTwice).toEqual(true); + expect(deleteStub.getCall(0).args[0]).toEqual('/subdir/One.txt'); + expect(deleteStub.getCall(1).args[0]).toEqual('/subdir/Two.jpg'); + }); } - it('calls delete.php, removes the deleted entries and updates summary', function() { + it('calls delete.php, removes the deleted entries and updates summary', function(done) { var $summary; fileList.setFiles(testFiles); - doDelete(); + deferredDelete1 = $.Deferred(); + deferredDelete2 = $.Deferred(); + deleteStub.onCall(0).callsFake(function(src){ + expect(deleteStub.calledOnce).toEqual(true); + expect(src).toEqual('/subdir/One.txt'); + return deferredDelete1.promise(); + }); + deleteStub.onCall(1).callsFake(function(src){ + expect(deleteStub.calledTwice).toEqual(true); + expect(src).toEqual('/subdir/Two.jpg'); + return deferredDelete2.promise(); + }); - deferredDelete.resolve(200); + var promise = fileList.do_delete(['One.txt', 'Two.jpg']); + deferredDelete1.resolve(200); + deferredDelete2.resolve(200); + return promise.then(function(){ - expect(fileList.findFileEl('One.txt').length).toEqual(0); - expect(fileList.findFileEl('Two.jpg').length).toEqual(0); - expect(fileList.findFileEl('Three.pdf').length).toEqual(1); - expect(fileList.$fileList.find('tr').length).toEqual(2); - - $summary = $('#filestable .summary'); - expect($summary.hasClass('hidden')).toEqual(false); - expect($summary.find('.dirinfo').text()).toEqual('1 folder'); - expect($summary.find('.fileinfo').text()).toEqual('1 file'); - expect($summary.find('.dirinfo').hasClass('hidden')).toEqual(false); - expect($summary.find('.fileinfo').hasClass('hidden')).toEqual(false); - expect($summary.find('.filesize').text()).toEqual('57 KB'); - expect(fileList.isEmpty).toEqual(false); - expect($('#filestable thead th').hasClass('hidden')).toEqual(false); - expect($('#emptycontent').hasClass('hidden')).toEqual(true); + expect(fileList.findFileEl('One.txt').length).toEqual(0); + expect(fileList.findFileEl('Two.jpg').length).toEqual(0); + expect(fileList.findFileEl('Three.pdf').length).toEqual(1); + expect(fileList.$fileList.find('tr').length).toEqual(2); + + $summary = $('#filestable .summary'); + expect($summary.hasClass('hidden')).toEqual(false); + expect($summary.find('.dirinfo').text()).toEqual('1 folder'); + expect($summary.find('.fileinfo').text()).toEqual('1 file'); + expect($summary.find('.dirinfo').hasClass('hidden')).toEqual(false); + expect($summary.find('.fileinfo').hasClass('hidden')).toEqual(false); + expect($summary.find('.filesize').text()).toEqual('57 KB'); + expect(fileList.isEmpty).toEqual(false); + expect($('#filestable thead th').hasClass('hidden')).toEqual(false); + expect($('#emptycontent').hasClass('hidden')).toEqual(true); - expect(notificationStub.notCalled).toEqual(true); + expect(notificationStub.notCalled).toEqual(true); + done(); + }); }); - it('shows busy state on files to be deleted', function() { + it('shows busy state on files to be deleted', function(done) { fileList.setFiles(testFiles); - doDelete(); - - expect(fileList.findFileEl('One.txt').hasClass('busy')).toEqual(true); - expect(fileList.findFileEl('Three.pdf').hasClass('busy')).toEqual(false); + deferredDelete1 = $.Deferred(); + deferredDelete2 = $.Deferred(); + deleteStub.onCall(0).callsFake(function(src){ + expect(fileList.findFileEl('One.txt').hasClass('busy')).toEqual(true); + expect(fileList.findFileEl('Three.pdf').hasClass('busy')).toEqual(false); + + expect(deleteStub.calledOnce).toEqual(true); + expect(src).toEqual('/subdir/One.txt'); + return deferredDelete1.promise(); + }); + deleteStub.onCall(1).callsFake(function(src){ + expect(fileList.findFileEl('Two.jpg').hasClass('busy')).toEqual(true); + expect(fileList.findFileEl('Three.pdf').hasClass('busy')).toEqual(false); + + expect(deleteStub.calledTwice).toEqual(true); + expect(src).toEqual('/subdir/Two.jpg'); + return deferredDelete2.promise(); + }); + var promise = fileList.do_delete(['One.txt', 'Two.jpg']).then(function(){ + expect(deleteStub.calledTwice).toEqual(true); + }); + deferredDelete1.resolve(200); + deferredDelete2.resolve(200); + return promise.then(function(){ + expect(fileList.findFileEl('One.txt').hasClass('busy')).toEqual(false); + expect(fileList.findFileEl('Two.jpg').hasClass('busy')).toEqual(false); + done(); + }); }); - it('shows busy state on all files when deleting all', function() { + it('shows busy state on all files when deleting all', function(done) { fileList.setFiles(testFiles); - - fileList.do_delete(); - - expect(fileList.$fileList.find('tr.busy').length).toEqual(4); + var deferredDeleteArray = []; + var count = 0; + for (var i = 0; i < 4; i++) { + (function(i, fn){ + deferredDeleteArray.push($.Deferred()); + deleteStub.onCall(i).callsFake(function(src){ + expect(fileList.findFileEl(fn).hasClass('busy')).toEqual(true); + count++; + return deferredDeleteArray[i].promise(); + }); + })(i, testFiles[i].name); + } + var promise = fileList.do_delete(); + for (var i = 0; i < 4; i++) { + deferredDeleteArray[i].resolve(200); + } + return promise.then(function(){ + expect(count).toEqual(4); + done(); + }); }); - it('updates summary when deleting last file', function() { + it('updates summary when deleting last file', function(done) { var $summary; fileList.setFiles([testFiles[0], testFiles[1]]); - doDelete(); - + deleteStub.returns(deferredDelete.promise()); deferredDelete.resolve(200); - expect(fileList.$fileList.find('tr').length).toEqual(0); - - $summary = $('#filestable .summary'); - expect($summary.hasClass('hidden')).toEqual(true); - expect(fileList.isEmpty).toEqual(true); - expect(fileList.files.length).toEqual(0); - expect($('#filestable thead th').hasClass('hidden')).toEqual(true); - expect($('#emptycontent').hasClass('hidden')).toEqual(false); + return doDelete().then(function(){ + expect(fileList.$fileList.find('tr').length).toEqual(0); + $summary = $('#filestable .summary'); + expect($summary.hasClass('hidden')).toEqual(true); + expect(fileList.isEmpty).toEqual(true); + expect(fileList.files.length).toEqual(0); + expect($('#filestable thead th').hasClass('hidden')).toEqual(true); + expect($('#emptycontent').hasClass('hidden')).toEqual(false); + done(); + }); }); - it('bring back deleted item when delete call failed', function() { + it('bring back deleted item when delete call failed', function(done) { fileList.setFiles(testFiles); - doDelete(); - + deleteStub.returns(deferredDelete.promise()); + var promise = doDelete(); deferredDelete.reject(403); + return promise.then(function(){ + // files are still in the list + expect(fileList.findFileEl('One.txt').length).toEqual(1); + expect(fileList.findFileEl('Two.jpg').length).toEqual(1); + expect(fileList.$fileList.find('tr').length).toEqual(4); - // files are still in the list - expect(fileList.findFileEl('One.txt').length).toEqual(1); - expect(fileList.findFileEl('Two.jpg').length).toEqual(1); - expect(fileList.$fileList.find('tr').length).toEqual(4); - - expect(notificationStub.calledTwice).toEqual(true); + expect(notificationStub.calledTwice).toEqual(true); + done(); + }); }); - it('remove file from list if delete call returned 404 not found', function() { + it('remove file from list if delete call returned 404 not found', function(done) { fileList.setFiles(testFiles); - doDelete(); - + deleteStub.returns(deferredDelete.promise()); + var promise = doDelete(); deferredDelete.reject(404); + return promise.then(function(){ + expect(fileList.findFileEl('One.txt').length).toEqual(0); + expect(fileList.findFileEl('Two.jpg').length).toEqual(0); + expect(fileList.$fileList.find('tr').length).toEqual(2); - // files are still in the list - expect(fileList.findFileEl('One.txt').length).toEqual(0); - expect(fileList.findFileEl('Two.jpg').length).toEqual(0); - expect(fileList.$fileList.find('tr').length).toEqual(2); - - expect(notificationStub.notCalled).toEqual(true); + expect(notificationStub.notCalled).toEqual(true); + done(); + }); }); }); describe('Renaming files', function() { @@ -831,7 +892,7 @@ describe('OCA.Files.FileList tests', function() { beforeEach(function() { deferredMove = $.Deferred(); - moveStub = sinon.stub(filesClient, 'move').returns(deferredMove.promise()); + moveStub = sinon.stub(filesClient, 'move'); fileList.setFiles(testFiles); }); @@ -840,14 +901,18 @@ describe('OCA.Files.FileList tests', function() { }); it('Moves single file to target folder', function(done) { - return fileList.move('One.txt', '/somedir').then(function(){ + var promise = fileList.move('One.txt', '/somedir'); + moveStub.callsFake(function(src, dst){ expect(moveStub.calledOnce).toEqual(true); - expect(moveStub.getCall(0).args[0]).toEqual('/subdir/One.txt'); - expect(moveStub.getCall(0).args[1]).toEqual('/somedir/One.txt'); + expect(src).toEqual('/subdir/One.txt'); + expect(dst).toEqual('/somedir/One.txt'); + return deferredMove.promise(); + }); - deferredMove.resolve(201); + deferredMove.resolve(201); + return promise.then(function(){ expect(fileList.findFileEl('One.txt').length).toEqual(0); // folder size has increased @@ -861,26 +926,29 @@ describe('OCA.Files.FileList tests', function() { it('Moves list of files to target folder', function(done) { var deferredMove1 = $.Deferred(); var deferredMove2 = $.Deferred(); - moveStub.onCall(0).returns(deferredMove1.promise()); - moveStub.onCall(1).returns(deferredMove2.promise()); - - return fileList.move(['One.txt', 'Two.jpg'], '/somedir').then(function(){ - - expect(moveStub.calledTwice).toEqual(true); - expect(moveStub.getCall(0).args[0]).toEqual('/subdir/One.txt'); - expect(moveStub.getCall(0).args[1]).toEqual('/somedir/One.txt'); - expect(moveStub.getCall(1).args[0]).toEqual('/subdir/Two.jpg'); - expect(moveStub.getCall(1).args[1]).toEqual('/somedir/Two.jpg'); - - deferredMove1.resolve(201); - + moveStub.onCall(0).callsFake(function(src, dst){ + expect(moveStub.calledOnce).toEqual(true); + expect(src).toEqual('/subdir/One.txt'); + expect(dst).toEqual('/somedir/One.txt'); + return deferredMove1.promise(); + }); + moveStub.onCall(1).callsFake(function(src, dst){ expect(fileList.findFileEl('One.txt').length).toEqual(0); // folder size has increased during move expect(fileList.findFileEl('somedir').data('size')).toEqual(262); expect(fileList.findFileEl('somedir').find('.filesize').text()).toEqual('262 B'); - deferredMove2.resolve(201); + expect(src).toEqual('/subdir/Two.jpg'); + expect(dst).toEqual('/somedir/Two.jpg'); + return deferredMove2.promise(); + }); + + var promise = fileList.move(['One.txt', 'Two.jpg'], '/somedir'); + deferredMove1.resolve(201); + deferredMove2.resolve(201); + return promise.then(function(){ + expect(moveStub.calledTwice).toEqual(true); expect(fileList.findFileEl('Two.jpg').length).toEqual(0); @@ -893,34 +961,32 @@ describe('OCA.Files.FileList tests', function() { }); }); it('Shows notification if a file could not be moved', function(done) { - return fileList.move('One.txt', '/somedir').then(function(){ - + moveStub.callsFake(function(){ expect(moveStub.calledOnce).toEqual(true); - - deferredMove.reject(409); - + return deferredMove.promise(); + }); + var promise = fileList.move('One.txt', '/somedir'); + deferredMove.reject(409); + return promise.then(function(){ expect(fileList.findFileEl('One.txt').length).toEqual(1); - expect(notificationStub.calledOnce).toEqual(true); expect(notificationStub.getCall(0).args[0]).toEqual('Could not move "One.txt"'); done(); }); }); it('Restores thumbnail if a file could not be moved', function(done) { - return fileList.move('One.txt', '/somedir').then(function(){ - + moveStub.callsFake(function(){ expect(fileList.findFileEl('One.txt').find('.thumbnail').parent().attr('class')) .toContain('icon-loading-small'); - expect(moveStub.calledOnce).toEqual(true); - - deferredMove.reject(409); - + return deferredMove.promise(); + }); + var promise = fileList.move('One.txt', '/somedir'); + deferredMove.reject(409); + return promise.then(function(){ expect(fileList.findFileEl('One.txt').length).toEqual(1); - expect(notificationStub.calledOnce).toEqual(true); expect(notificationStub.getCall(0).args[0]).toEqual('Could not move "One.txt"'); - expect(OC.TestUtil.getImageUrl(fileList.findFileEl('One.txt').find('.thumbnail'))) .toEqual(OC.imagePath('core', 'filetypes/text.svg')); done(); @@ -934,7 +1000,7 @@ describe('OCA.Files.FileList tests', function() { beforeEach(function() { deferredCopy = $.Deferred(); - copyStub = sinon.stub(filesClient, 'copy').returns(deferredCopy.promise()); + copyStub = sinon.stub(filesClient, 'copy'); fileList.setFiles(testFiles); }); @@ -942,86 +1008,100 @@ describe('OCA.Files.FileList tests', function() { copyStub.restore(); }); - it('Copies single file to target folder', function() { - fileList.copy('One.txt', '/somedir'); + it('Copies single file to target folder', function(done) { + copyStub.callsFake(function(){ + expect(copyStub.calledOnce).toEqual(true); + expect(copyStub.getCall(0).args[0]).toEqual('/subdir/One.txt'); + expect(copyStub.getCall(0).args[1]).toEqual('/somedir/One.txt'); - expect(copyStub.calledOnce).toEqual(true); - expect(copyStub.getCall(0).args[0]).toEqual('/subdir/One.txt'); - expect(copyStub.getCall(0).args[1]).toEqual('/somedir/One.txt'); + return deferredCopy.promise(); + }); + var promise = fileList.copy('One.txt', '/somedir'); deferredCopy.resolve(201); + return promise.then(function(){ + // File is still here + expect(fileList.findFileEl('One.txt').length).toEqual(1); - // File is still here - expect(fileList.findFileEl('One.txt').length).toEqual(1); - - // folder size has increased - expect(fileList.findFileEl('somedir').data('size')).toEqual(262); - expect(fileList.findFileEl('somedir').find('.filesize').text()).toEqual('262 B'); + // folder size has increased + expect(fileList.findFileEl('somedir').data('size')).toEqual(262); + expect(fileList.findFileEl('somedir').find('.filesize').text()).toEqual('262 B'); - // Copying sents a notification to tell that we've successfully copied file - expect(notificationStub.notCalled).toEqual(false); + // Copying sents a notification to tell that we've successfully copied file + expect(notificationStub.notCalled).toEqual(false); + done(); + }); }); - it('Copies list of files to target folder', function() { + it('Copies list of files to target folder', function(done) { var deferredCopy1 = $.Deferred(); var deferredCopy2 = $.Deferred(); - copyStub.onCall(0).returns(deferredCopy1.promise()); - copyStub.onCall(1).returns(deferredCopy2.promise()); - - fileList.copy(['One.txt', 'Two.jpg'], '/somedir'); + copyStub.onCall(0).callsFake(function(src, dst){ + expect(src).toEqual('/subdir/One.txt'); + expect(dst).toEqual('/somedir/One.txt'); + return deferredCopy1.promise(); + }); + copyStub.onCall(1).callsFake(function(src, dst){ + // folder size has increased during copy + expect(fileList.findFileEl('somedir').data('size')).toEqual(262); + expect(fileList.findFileEl('somedir').find('.filesize').text()).toEqual('262 B'); - expect(copyStub.calledTwice).toEqual(true); - expect(copyStub.getCall(0).args[0]).toEqual('/subdir/One.txt'); - expect(copyStub.getCall(0).args[1]).toEqual('/somedir/One.txt'); - expect(copyStub.getCall(1).args[0]).toEqual('/subdir/Two.jpg'); - expect(copyStub.getCall(1).args[1]).toEqual('/somedir/Two.jpg'); + expect(src).toEqual('/subdir/Two.jpg'); + expect(dst).toEqual('/somedir/Two.jpg'); + return deferredCopy2.promise(); + }); + var promise = fileList.copy(['One.txt', 'Two.jpg'], '/somedir'); deferredCopy1.resolve(201); - - expect(fileList.findFileEl('One.txt').length).toEqual(1); - - // folder size has increased during copy - expect(fileList.findFileEl('somedir').data('size')).toEqual(262); - expect(fileList.findFileEl('somedir').find('.filesize').text()).toEqual('262 B'); - deferredCopy2.resolve(201); - expect(fileList.findFileEl('Two.jpg').length).toEqual(1); + return promise.then(function(){ + expect(copyStub.calledTwice).toEqual(true); + expect(fileList.findFileEl('Two.jpg').length).toEqual(1); + expect(fileList.findFileEl('One.txt').length).toEqual(1); - // folder size has increased - expect(fileList.findFileEl('somedir').data('size')).toEqual(12311); - expect(fileList.findFileEl('somedir').find('.filesize').text()).toEqual('12 KB'); + // folder size has increased + expect(fileList.findFileEl('somedir').data('size')).toEqual(12311); + expect(fileList.findFileEl('somedir').find('.filesize').text()).toEqual('12 KB'); - expect(notificationStub.notCalled).toEqual(false); + expect(notificationStub.notCalled).toEqual(false); + done(); + }); }); - it('Shows notification if a file could not be copied', function() { - fileList.copy('One.txt', '/somedir'); - - expect(copyStub.calledOnce).toEqual(true); + it('Shows notification if a file could not be copied', function(done) { + copyStub.callsFake(function(){ + expect(copyStub.calledOnce).toEqual(true); + return deferredCopy.promise(); + }); + var promise = fileList.copy('One.txt', '/somedir'); deferredCopy.reject(409); - - expect(fileList.findFileEl('One.txt').length).toEqual(1); - - expect(notificationStub.calledOnce).toEqual(true); - expect(notificationStub.getCall(0).args[0]).toEqual('Could not copy "One.txt"'); + return promise.then(function(){ + expect(fileList.findFileEl('One.txt').length).toEqual(1); + expect(notificationStub.calledOnce).toEqual(true); + expect(notificationStub.getCall(0).args[0]).toEqual('Could not copy "One.txt"'); + done(); + }); }); - it('Restores thumbnail if a file could not be copied', function() { - fileList.copy('One.txt', '/somedir'); - - expect(fileList.findFileEl('One.txt').find('.thumbnail').parent().attr('class')) - .toContain('icon-loading-small'); - - expect(copyStub.calledOnce).toEqual(true); + it('Restores thumbnail if a file could not be copied', function(done) { + copyStub.callsFake(function(){ + expect(fileList.findFileEl('One.txt').find('.thumbnail').parent().attr('class')) + .toContain('icon-loading-small'); + expect(copyStub.calledOnce).toEqual(true); + return deferredCopy.promise(); + }); + var promise = fileList.copy('One.txt', '/somedir'); deferredCopy.reject(409); + return promise.then(function(){ + expect(fileList.findFileEl('One.txt').length).toEqual(1); - expect(fileList.findFileEl('One.txt').length).toEqual(1); - - expect(notificationStub.calledOnce).toEqual(true); - expect(notificationStub.getCall(0).args[0]).toEqual('Could not copy "One.txt"'); + expect(notificationStub.calledOnce).toEqual(true); + expect(notificationStub.getCall(0).args[0]).toEqual('Could not copy "One.txt"'); - expect(OC.TestUtil.getImageUrl(fileList.findFileEl('One.txt').find('.thumbnail'))) - .toEqual(OC.imagePath('core', 'filetypes/text.svg')); + expect(OC.TestUtil.getImageUrl(fileList.findFileEl('One.txt').find('.thumbnail'))) + .toEqual(OC.imagePath('core', 'filetypes/text.svg')); + done(); + }); }); }); @@ -2283,7 +2363,7 @@ describe('OCA.Files.FileList tests', function() { var deleteStub, deferredDelete; beforeEach(function() { deferredDelete = $.Deferred(); - deleteStub = sinon.stub(filesClient, 'remove').returns(deferredDelete.promise()); + deleteStub = sinon.stub(filesClient, 'remove'); fileList.$el.find('.actions-selected').click(); }); @@ -2292,34 +2372,54 @@ describe('OCA.Files.FileList tests', function() { deleteStub.restore(); }); - it('Deletes selected files when "Delete" clicked', function() { + it('Deletes selected files when "Delete" clicked', function(done) { + var deferred = $.Deferred(); + + deleteStub.returns(deferredDelete.promise()); + deleteStub.onCall(2).callsFake(function(){ + expect(deleteStub.callCount).toEqual(3); + expect(deleteStub.getCall(0).args[0]).toEqual('/subdir/One.txt'); + expect(deleteStub.getCall(1).args[0]).toEqual('/subdir/Three.pdf'); + expect(deleteStub.getCall(2).args[0]).toEqual('/subdir/somedir'); + return deferredDelete.promise(); + }); + + stub = sinon.stub(fileList._operationProgressBar, 'hideProgressBar').callsFake(function(){ + expect(fileList.findFileEl('One.txt').length).toEqual(0); + expect(fileList.findFileEl('Three.pdf').length).toEqual(0); + expect(fileList.findFileEl('somedir').length).toEqual(0); + expect(fileList.findFileEl('Two.jpg').length).toEqual(1); + done(); + deferred.resolve(); + }); $('.selectedActions .filesSelectMenu .delete').click(); - - expect(deleteStub.callCount).toEqual(3); - expect(deleteStub.getCall(0).args[0]).toEqual('/subdir/One.txt'); - expect(deleteStub.getCall(1).args[0]).toEqual('/subdir/Three.pdf'); - expect(deleteStub.getCall(2).args[0]).toEqual('/subdir/somedir'); - deferredDelete.resolve(204); + return deferred.promise(); - expect(fileList.findFileEl('One.txt').length).toEqual(0); - expect(fileList.findFileEl('Three.pdf').length).toEqual(0); - expect(fileList.findFileEl('somedir').length).toEqual(0); - expect(fileList.findFileEl('Two.jpg').length).toEqual(1); }); - it('Deletes all files when all selected when "Delete" clicked', function() { + it('Deletes all files when all selected when "Delete" clicked', function(done) { + var deferred = $.Deferred(); + + deleteStub.returns(deferredDelete.promise()); + deleteStub.onCall(3).callsFake(function(){ + expect(deleteStub.getCall(0).args[0]).toEqual('/subdir/One.txt'); + expect(deleteStub.getCall(1).args[0]).toEqual('/subdir/Two.jpg'); + expect(deleteStub.getCall(2).args[0]).toEqual('/subdir/Three.pdf'); + expect(deleteStub.getCall(3).args[0]).toEqual('/subdir/somedir'); + return deferredDelete.promise(); + }); + + stub = sinon.stub(fileList._operationProgressBar, 'hideProgressBar').callsFake(function(){ + expect(fileList.isEmpty).toEqual(true); + expect(deleteStub.callCount).toEqual(4); + done(); + deferred.resolve(); + }); $('.select-all').click(); $('.selectedActions .filesSelectMenu .delete').click(); - - expect(deleteStub.callCount).toEqual(4); - expect(deleteStub.getCall(0).args[0]).toEqual('/subdir/One.txt'); - expect(deleteStub.getCall(1).args[0]).toEqual('/subdir/Two.jpg'); - expect(deleteStub.getCall(2).args[0]).toEqual('/subdir/Three.pdf'); - expect(deleteStub.getCall(3).args[0]).toEqual('/subdir/somedir'); - deferredDelete.resolve(204); - expect(fileList.isEmpty).toEqual(true); + return deferred.promise(); }); }); }); |