Fix setup to test the breadcrumbs menu

The "Shows only items not in the breadcrumb" test was failing when run
on Firefox, but not on PhantomJS. This was caused by the differences in
the starting width between both browsers and an incorrect setup of the
test (the width set for the crumbs was overriden when the breadcrumbs
were rendered again, and the breadcrumb was resized to 300 from an
indeterminate initial width).

Now the crumbs are rendered and then its width, padding and margin are
set to a known value. Then it is resized to 1000px, which ensures that
there will be enough room for all the crumbs and thus the menu will be
hidden, and finally it is resized to 300, which causes the middle crumb
to be hidden and the menu to be shown.

Note, however, that the test now always fails, no matter if it is run on
PhantomJS or on Firefox; if the menu crumb is hidden when "_updateMenu"
is called it will show it, but it will also wrongly try to add the menu
itself to the menu. As the "crumb-id" of the menu crumb is "-1" this
causes the last regular crumb to be added to the menu. This will be
fixed with other related issues in the next commit.

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
This commit is contained in:
Daniel Calviño Sánchez 2018-02-28 13:53:00 +01:00
parent 83b50690a8
commit e33a9693f7
1 changed files with 14 additions and 7 deletions

View File

@ -175,10 +175,6 @@ describe('OCA.Files.BreadCrumb tests', function() {
beforeEach(function() {
dummyDir = '/one/two/three/four/five'
$('div.crumb').each(function(index){
$(this).css('width', 50);
});
bc = new BreadCrumb();
// append dummy navigation and controls
// as they are currently used for measurements
@ -187,11 +183,22 @@ describe('OCA.Files.BreadCrumb tests', function() {
);
$('#controls').append(bc.$el);
bc.setDirectory(dummyDir);
$('div.crumb').each(function(index){
$(this).css('width', 50);
$(this).css('padding', 0);
$(this).css('margin', 0);
});
$('div.crumbhome').css('width', 51);
$('div.crumbmenu').css('width', 51);
$('#controls').width(1000);
bc._resize();
// Shrink to show popovermenu
$('#controls').width(300);
// triggers resize implicitly
bc.setDirectory(dummyDir);
bc._resize();
$crumbmenuLink = bc.$el.find('.crumbmenu > a');
$popovermenu = $crumbmenuLink.next('.popovermenu');