Parse backslash as directory separator in breadcrumb
This will parse backslashes as directory separators in breadcrumbs. Thus when accessing something like `/index.php/apps/files?dir=foo\foo` the breadcrumb will properly resolve this instead of showing `foo\foo` Fixes https://github.com/owncloud/core/issues/13643
This commit is contained in:
parent
30a5758a95
commit
b848062d88
2 changed files with 26 additions and 0 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;
|
||||
|
|
|
@ -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() {
|
||||
|
|
Loading…
Reference in a new issue