summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--apps/files/js/breadcrumb.js10
-rw-r--r--apps/files/tests/js/breadcrumbSpec.js54
2 files changed, 59 insertions, 5 deletions
diff --git a/apps/files/js/breadcrumb.js b/apps/files/js/breadcrumb.js
index 16762f386be..4a61188e93a 100644
--- a/apps/files/js/breadcrumb.js
+++ b/apps/files/js/breadcrumb.js
@@ -316,7 +316,15 @@
return;
}
- var availableWidth = this.$el.parent().width() - this.$el.parent().find('.actions.creatable').outerWidth(true);
+ var siblingsWidth = 0;
+ this.$el.prevAll(':visible').each(function () {
+ siblingsWidth += $(this).outerWidth(true);
+ });
+ this.$el.nextAll(':visible').each(function () {
+ siblingsWidth += $(this).outerWidth(true);
+ });
+
+ var availableWidth = this.$el.parent().width() - siblingsWidth;
// If container is smaller than content
// AND if there are crumbs left to hide
diff --git a/apps/files/tests/js/breadcrumbSpec.js b/apps/files/tests/js/breadcrumbSpec.js
index dcb9391f6ed..bae8370cd1d 100644
--- a/apps/files/tests/js/breadcrumbSpec.js
+++ b/apps/files/tests/js/breadcrumbSpec.js
@@ -322,13 +322,35 @@ describe('OCA.Files.BreadCrumb tests', function() {
expect($crumbs.eq(6).hasClass('hidden')).toEqual(false);
expect($crumbs.eq(7).hasClass('hidden')).toEqual(false);
+ // Visible sibling widths add up to 200px
+ var $previousSibling = $('<div class="otherSibling"></div>');
+ // Set both the width and the min-width to even differences in width
+ // handling in the browsers used to run the tests.
+ $previousSibling.css('width', '50px');
+ $previousSibling.css('min-width', '50px');
+ $('#controls').prepend($previousSibling);
+
var $creatableActions = $('<div class="actions creatable"></div>');
// Set both the width and the min-width to even differences in width
// handling in the browsers used to run the tests.
- $creatableActions.css('width', '200px');
- $creatableActions.css('min-width', '200px');
+ $creatableActions.css('width', '100px');
+ $creatableActions.css('min-width', '100px');
$('#controls').append($creatableActions);
+ var $nextHiddenSibling = $('<div class="otherSibling hidden"></div>');
+ // Set both the width and the min-width to even differences in width
+ // handling in the browsers used to run the tests.
+ $nextHiddenSibling.css('width', '200px');
+ $nextHiddenSibling.css('min-width', '200px');
+ $('#controls').append($nextHiddenSibling);
+
+ var $nextSibling = $('<div class="otherSibling"></div>');
+ // Set both the width and the min-width to even differences in width
+ // handling in the browsers used to run the tests.
+ $nextSibling.css('width', '50px');
+ $nextSibling.css('min-width', '50px');
+ $('#controls').append($nextSibling);
+
bc._resize();
// Second, third, fourth and fifth crumb are hidden and everything
@@ -362,15 +384,39 @@ describe('OCA.Files.BreadCrumb tests', function() {
expect($crumbs.eq(6).hasClass('hidden')).toEqual(false);
expect($crumbs.eq(7).hasClass('hidden')).toEqual(false);
+ // Visible sibling widths add up to 200px
+ var $previousSibling = $('<div class="otherSibling"></div>');
+ // Set both the width and the min-width to even differences in width
+ // handling in the browsers used to run the tests.
+ $previousSibling.css('width', '10px');
+ $previousSibling.css('min-width', '10px');
+ $previousSibling.css('margin', '20px');
+ $('#controls').prepend($previousSibling);
+
var $creatableActions = $('<div class="actions creatable"></div>');
// Set both the width and the min-width to even differences in width
// handling in the browsers used to run the tests.
$creatableActions.css('width', '20px');
$creatableActions.css('min-width', '20px');
- $creatableActions.css('margin-left', '90px');
- $creatableActions.css('padding-right', '90px');
+ $creatableActions.css('margin-left', '40px');
+ $creatableActions.css('padding-right', '40px');
$('#controls').append($creatableActions);
+ var $nextHiddenSibling = $('<div class="otherSibling hidden"></div>');
+ // Set both the width and the min-width to even differences in width
+ // handling in the browsers used to run the tests.
+ $nextHiddenSibling.css('width', '200px');
+ $nextHiddenSibling.css('min-width', '200px');
+ $('#controls').append($nextHiddenSibling);
+
+ var $nextSibling = $('<div class="otherSibling"></div>');
+ // Set both the width and the min-width to even differences in width
+ // handling in the browsers used to run the tests.
+ $nextSibling.css('width', '10px');
+ $nextSibling.css('min-width', '10px');
+ $nextSibling.css('padding', '20px');
+ $('#controls').append($nextSibling);
+
bc._resize();
// Second, third, fourth and fifth crumb are hidden and everything