Merge pull request #13645 from owncloud/fix-breadcrumb-backslash
Parse backslash as directory separator in breadcrumb
This commit is contained in:
commit
7cb25149c8
4 changed files with 32 additions and 1 deletions
|
@ -67,6 +67,7 @@
|
|||
* @param dir path to be displayed as breadcrumb
|
||||
*/
|
||||
setDirectory: function(dir) {
|
||||
dir = dir.replace(/\\/g, '/');
|
||||
dir = dir || '/';
|
||||
if (dir !== this.dir) {
|
||||
this.dir = dir;
|
||||
|
|
|
@ -1009,6 +1009,7 @@
|
|||
* @param changeUrl true to also update the URL, false otherwise (default)
|
||||
*/
|
||||
_setCurrentDir: function(targetDir, changeUrl) {
|
||||
targetDir = targetDir.replace(/\\/g, '/');
|
||||
var previousDir = this.getCurrentDirectory(),
|
||||
baseDir = OC.basename(targetDir);
|
||||
|
||||
|
|
|
@ -93,6 +93,31 @@ describe('OCA.Files.BreadCrumb tests', function() {
|
|||
expect($crumbs.eq(3).find('img').length).toEqual(0);
|
||||
expect($crumbs.eq(3).attr('data-dir')).toEqual('/somedir/with space/abc');
|
||||
});
|
||||
it('Renders backslashes as regular directory separator', function() {
|
||||
var $crumbs;
|
||||
bc.setDirectory('/somedir\\with/mixed\\separators');
|
||||
$crumbs = bc.$el.find('.crumb');
|
||||
expect($crumbs.length).toEqual(5);
|
||||
expect($crumbs.eq(0).find('a').attr('href')).toEqual('/#0');
|
||||
expect($crumbs.eq(0).find('img').length).toEqual(1);
|
||||
expect($crumbs.eq(0).attr('data-dir')).toEqual('/');
|
||||
|
||||
expect($crumbs.eq(1).find('a').attr('href')).toEqual('/somedir#1');
|
||||
expect($crumbs.eq(1).find('img').length).toEqual(0);
|
||||
expect($crumbs.eq(1).attr('data-dir')).toEqual('/somedir');
|
||||
|
||||
expect($crumbs.eq(2).find('a').attr('href')).toEqual('/somedir/with#2');
|
||||
expect($crumbs.eq(2).find('img').length).toEqual(0);
|
||||
expect($crumbs.eq(2).attr('data-dir')).toEqual('/somedir/with');
|
||||
|
||||
expect($crumbs.eq(3).find('a').attr('href')).toEqual('/somedir/with/mixed#3');
|
||||
expect($crumbs.eq(3).find('img').length).toEqual(0);
|
||||
expect($crumbs.eq(3).attr('data-dir')).toEqual('/somedir/with/mixed');
|
||||
|
||||
expect($crumbs.eq(4).find('a').attr('href')).toEqual('/somedir/with/mixed/separators#4');
|
||||
expect($crumbs.eq(4).find('img').length).toEqual(0);
|
||||
expect($crumbs.eq(4).attr('data-dir')).toEqual('/somedir/with/mixed/separators');
|
||||
});
|
||||
});
|
||||
describe('Events', function() {
|
||||
it('Calls onClick handler when clicking on a crumb', function() {
|
||||
|
|
|
@ -1221,7 +1221,7 @@ describe('OCA.Files.FileList tests', function() {
|
|||
"Content-Type": "application/json"
|
||||
},
|
||||
JSON.stringify(data)
|
||||
]);
|
||||
]);
|
||||
});
|
||||
it('fetches file list from server and renders it when reload() is called', function() {
|
||||
fileList.reload();
|
||||
|
@ -1242,6 +1242,10 @@ describe('OCA.Files.FileList tests', function() {
|
|||
expect(OC.parseQueryString(query)).toEqual({'dir': '/anothersubdir', sort: 'name', sortdirection: 'asc'});
|
||||
fakeServer.respond();
|
||||
});
|
||||
it('converts backslashes to slashes when calling changeDirectory()', function() {
|
||||
fileList.changeDirectory('/another\\subdir');
|
||||
expect(fileList.getCurrentDirectory()).toEqual('/another/subdir');
|
||||
});
|
||||
it('switches to root dir when current directory does not exist', function() {
|
||||
fakeServer.respondWith(/\/index\.php\/apps\/files\/ajax\/list.php\?dir=%2funexist/, [
|
||||
404, {
|
||||
|
|
Loading…
Reference in a new issue