d5397d813c
- When all files are selected, do not send the whole file list - Download will trigger download for the parent folder, also works with root - Delete will send "allfiles" to the server that will find the file list or the passed directory by itself
72 lines
3.3 KiB
JavaScript
72 lines
3.3 KiB
JavaScript
/**
|
|
* ownCloud
|
|
*
|
|
* @author Vincent Petry
|
|
* @copyright 2014 Vincent Petry <pvince81@owncloud.com>
|
|
*
|
|
* This library is free software; you can redistribute it and/or
|
|
* modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE
|
|
* License as published by the Free Software Foundation; either
|
|
* version 3 of the License, or any later version.
|
|
*
|
|
* This library is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
* GNU AFFERO GENERAL PUBLIC LICENSE for more details.
|
|
*
|
|
* You should have received a copy of the GNU Affero General Public
|
|
* License along with this library. If not, see <http://www.gnu.org/licenses/>.
|
|
*
|
|
*/
|
|
|
|
/* global OC, FileList */
|
|
describe('FileList tests', function() {
|
|
beforeEach(function() {
|
|
// init horrible parameters
|
|
var $body = $('body');
|
|
$body.append('<input type="hidden" id="dir" value="/subdir"></input>');
|
|
$body.append('<input type="hidden" id="permissions" value="31"></input>');
|
|
// dummy files table
|
|
$body.append('<table id="filestable"></table>');
|
|
});
|
|
afterEach(function() {
|
|
$('#dir, #permissions, #filestable').remove();
|
|
});
|
|
it('generates file element with correct attributes when calling addFile', function() {
|
|
var lastMod = new Date(10000);
|
|
// note: download_url is actually the link target, not the actual download URL...
|
|
var $tr = FileList.addFile('testName.txt', 1234, lastMod, false, false, {download_url: 'test/download/url'});
|
|
|
|
expect($tr).toBeDefined();
|
|
expect($tr[0].tagName.toLowerCase()).toEqual('tr');
|
|
expect($tr.find('a:first').attr('href')).toEqual('test/download/url');
|
|
expect($tr.attr('data-type')).toEqual('file');
|
|
expect($tr.attr('data-file')).toEqual('testName.txt');
|
|
expect($tr.attr('data-size')).toEqual('1234');
|
|
expect($tr.attr('data-permissions')).toEqual('31');
|
|
//expect($tr.attr('data-mime')).toEqual('plain/text');
|
|
});
|
|
it('generates dir element with correct attributes when calling addDir', function() {
|
|
var lastMod = new Date(10000);
|
|
var $tr = FileList.addDir('testFolder', 1234, lastMod, false);
|
|
|
|
expect($tr).toBeDefined();
|
|
expect($tr[0].tagName.toLowerCase()).toEqual('tr');
|
|
expect($tr.attr('data-type')).toEqual('dir');
|
|
expect($tr.attr('data-file')).toEqual('testFolder');
|
|
expect($tr.attr('data-size')).toEqual('1234');
|
|
expect($tr.attr('data-permissions')).toEqual('31');
|
|
//expect($tr.attr('data-mime')).toEqual('httpd/unix-directory');
|
|
});
|
|
describe('Download Url', function() {
|
|
it('returns correct download URL for single files', function() {
|
|
expect(FileList.getDownloadUrl('some file.txt')).toEqual(OC.webroot + '/index.php/apps/files/ajax/download.php?dir=%2Fsubdir&files=some%20file.txt');
|
|
expect(FileList.getDownloadUrl('some file.txt', '/anotherpath/abc')).toEqual(OC.webroot + '/index.php/apps/files/ajax/download.php?dir=%2Fanotherpath%2Fabc&files=some%20file.txt');
|
|
$('#dir').val('/');
|
|
expect(FileList.getDownloadUrl('some file.txt')).toEqual(OC.webroot + '/index.php/apps/files/ajax/download.php?dir=%2F&files=some%20file.txt');
|
|
});
|
|
it('returns correct download URL for multiple files', function() {
|
|
expect(FileList.getDownloadUrl(['a b c.txt', 'd e f.txt'])).toEqual(OC.webroot + '/index.php/apps/files/ajax/download.php?dir=%2Fsubdir&files=%5B%22a%20b%20c.txt%22%2C%22d%20e%20f.txt%22%5D');
|
|
});
|
|
});
|
|
});
|