mirror of
https://github.com/nextcloud/server.git
synced 2026-04-15 22:11:17 -04:00
Fix unit tests
Signed-off-by: Tomasz Grobelny <tomasz@grobelny.net>
This commit is contained in:
parent
c83c26877b
commit
04d326f95f
3 changed files with 284 additions and 178 deletions
|
|
@ -2132,6 +2132,9 @@
|
|||
options = options || {};
|
||||
var fileEl = this.findFileEl(name);
|
||||
var fileData = _.findWhere(this.files, {name: name});
|
||||
if (!fileData) {
|
||||
return;
|
||||
}
|
||||
var fileId = fileData.id;
|
||||
if (this._selectedFiles[fileId]) {
|
||||
// remove from selection first
|
||||
|
|
@ -2227,7 +2230,7 @@
|
|||
return self.filesClient.move(dir + fileName, targetPath + fileName)
|
||||
.done(function() {
|
||||
// if still viewing the same directory
|
||||
if (OC.joinPaths(self.getCurrentDirectory(), '/') === dir) {
|
||||
if (OC.joinPaths(self.getCurrentDirectory(), '/') === OC.joinPaths(dir, '/')) {
|
||||
// recalculate folder size
|
||||
var oldFile = self.findFileEl(target);
|
||||
var newFile = self.findFileEl(fileName);
|
||||
|
|
@ -2367,7 +2370,7 @@
|
|||
filesToNotify.push(fileName);
|
||||
|
||||
// if still viewing the same directory
|
||||
if (OC.joinPaths(self.getCurrentDirectory(), '/') === dir) {
|
||||
if (OC.joinPaths(self.getCurrentDirectory(), '/') === OC.joinPaths(dir, '/')) {
|
||||
// recalculate folder size
|
||||
var oldFile = self.findFileEl(target);
|
||||
var newFile = self.findFileEl(fileName);
|
||||
|
|
@ -2869,14 +2872,14 @@
|
|||
self.showFileBusyState($tr, true);
|
||||
return self.filesClient.remove(dir + '/' + fileName)
|
||||
.done(function() {
|
||||
if (OC.joinPaths(self.getCurrentDirectory(), '/') === dir) {
|
||||
if (OC.joinPaths(self.getCurrentDirectory(), '/') === OC.joinPaths(dir, '/')) {
|
||||
self.remove(fileName);
|
||||
}
|
||||
})
|
||||
.fail(function(status) {
|
||||
if (status === 404) {
|
||||
// the file already did not exist, remove it from the list
|
||||
if (OC.joinPaths(self.getCurrentDirectory(), '/') === dir) {
|
||||
if (OC.joinPaths(self.getCurrentDirectory(), '/') === OC.joinPaths(dir, '/')) {
|
||||
self.remove(fileName);
|
||||
}
|
||||
} else {
|
||||
|
|
|
|||
|
|
@ -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
|
||||
});
|
||||
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
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);
|
||||
$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();
|
||||
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(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());
|
||||
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');
|
||||
|
||||
fileList.copy(['One.txt', 'Two.jpg'], '/somedir');
|
||||
|
||||
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();
|
||||
});
|
||||
});
|
||||
});
|
||||
|
|
|
|||
Loading…
Reference in a new issue