@@ -266,56 +266,57 @@ Item {
266266 verify(carouselLV.tileWidth / carouselLV.tileHeight == cardTool.components["art"]["aspect-ratio"]);
267267 }
268268
269− function test_navigations() {
269+ function test_mainNavigation() {
270270 var dashContentList = findChild(dashContent, "dashContentList");
271271 tryCompareFunction(function() { return findChild(dashContentList.currentItem, "dashNavigation") != null; }, true);
272272 var dashNavigation = findChild(dashContentList.currentItem, "dashNavigation");
273273 tryCompare(dashNavigation, "visible", true);
274− compare(dashNavigation.showList, false);
275− waitForRendering(dashNavigation);
276− mouseClick(dashNavigation, 0, 0);
277− compare(dashNavigation.showList, true);
274+ var dashNavigationButton = findChild(dashContentList.currentItem, "navigationButton");
275+ compare(dashNavigationButton.showList, false);
276+ waitForRendering(dashNavigationButton);
277+ mouseClick(dashNavigationButton, 0, 0);
278+ compare(dashNavigationButton.showList, true);
278279
279− var navigationListView = findChild(dashNavigation, "navigationListView");
280+ var navigationListView = findChild(dashNavigationButton, "navigationListView");
280281 compare(navigationListView.count, 1);
281282 tryCompare(navigationListView.currentItem.navigation, "loaded", true);
282283
283284 waitForRendering(navigationListView);
284285 waitForRendering(navigationListView.currentItem);
285286
286− var allButton = findChild(dashNavigation, "allButton");
287+ var allButton = findChild(dashNavigationButton, "allButton");
287288 compare(allButton.visible, false);
288289
289− var navigation = findChild(dashNavigation, "navigation0child3");
290+ var navigation = findChild(dashNavigationButton, "navigation0child3");
290291 mouseClick(navigation, 0, 0);
291− compare(dashNavigation.showList, false);
292− tryCompare(dashNavigation.currentNavigation, "navigationId", "middle3");
292+ compare(dashNavigationButton.showList, false);
293+ tryCompare(dashNavigationButton.currentNavigation, "navigationId", "middle3");
293294 tryCompare(navigationListView.currentItem.navigation, "navigationId", "root");
294295
295− mouseClick(dashNavigation, 0, 0);
296− compare(dashNavigation.showList, true);
296+ mouseClick(dashNavigationButton, 0, 0);
297+ compare(dashNavigationButton.showList, true);
297298 waitForRendering(navigationListView);
298299 waitForRendering(navigationListView.currentItem);
299300 compare(allButton.visible, true);
300301
301302 mouseClick(allButton, 0, 0);
302− compare(dashNavigation.showList, false);
303− tryCompare(dashNavigation.currentNavigation, "navigationId", "root");
303+ compare(dashNavigationButton.showList, false);
304+ tryCompare(dashNavigationButton.currentNavigation, "navigationId", "root");
304305 tryCompare(navigationListView.currentItem.navigation, "navigationId", "root");
305306
306− mouseClick(dashNavigation, 0, 0);
307− compare(dashNavigation.showList, true);
307+ mouseClick(dashNavigationButton, 0, 0);
308+ compare(dashNavigationButton.showList, true);
308309 waitForRendering(navigationListView);
309310 waitForRendering(navigationListView.currentItem);
310311 compare(allButton.visible, false);
311312
312− navigation = findChild(dashNavigation, "navigation0child2");
313+ navigation = findChild(dashNavigationButton, "navigation0child2");
313314 mouseClick(navigation, 0, 0);
314− compare(dashNavigation.showList, true);
315− tryCompare(dashNavigation.currentNavigation, "navigationId", "middle2");
315+ compare(dashNavigationButton.showList, true);
316+ tryCompare(dashNavigationButton.currentNavigation, "navigationId", "middle2");
316317 tryCompare(navigationListView.currentItem.navigation, "navigationId", "middle2");
317318
318− var navigationList1 = findChild(dashNavigation, "navigation1");
319+ var navigationList1 = findChild(dashNavigationButton, "navigation1");
319320 allButton = findChild(navigationList1, "allButton");
320321 var backButton = findChild(findChild(navigationList1, "navigation1"), "backButton");
321322 compare(allButton.visible, true);
@@ -324,61 +325,160 @@ Item {
324325 tryCompare(navigationListView, "contentX", navigationList1.x);
325326 waitForRendering(navigationListView);
326327 mouseClick(allButton, 0, 0);
327− compare(dashNavigation.showList, false);
328− tryCompare(dashNavigation.currentNavigation, "navigationId", "middle2");
328+ compare(dashNavigationButton.showList, false);
329+ tryCompare(dashNavigationButton.currentNavigation, "navigationId", "middle2");
329330 tryCompare(navigationListView.currentItem.navigation, "navigationId", "middle2");
330331
331− mouseClick(dashNavigation, 0, 0);
332− compare(dashNavigation.showList, true);
332+ mouseClick(dashNavigationButton, 0, 0);
333+ compare(dashNavigationButton.showList, true);
333334 waitForRendering(navigationListView);
334335 waitForRendering(navigationListView.currentItem);
335336 compare(allButton.visible, true);
336337 compare(backButton.visible, true);
337338
338339 tryCompare(navigationList1.navigation, "loaded", true);
339− navigation = findChild(dashNavigation, "navigation1child2");
340+ navigation = findChild(dashNavigationButton, "navigation1child2");
340341 mouseClick(navigation, 0, 0);
341− compare(dashNavigation.showList, false);
342− tryCompare(dashNavigation.currentNavigation, "navigationId", "childmiddle22");
342+ compare(dashNavigationButton.showList, false);
343+ tryCompare(dashNavigationButton.currentNavigation, "navigationId", "childmiddle22");
343344 tryCompare(navigationListView.currentItem.navigation, "navigationId", "middle2");
344345
345− mouseClick(dashNavigation, 0, 0);
346− compare(dashNavigation.showList, true);
346+ mouseClick(dashNavigationButton, 0, 0);
347+ compare(dashNavigationButton.showList, true);
347348 waitForRendering(navigationListView);
348349 waitForRendering(navigationListView.currentItem);
349350
350351 tryCompare(navigationList1.navigation, "loaded", true);
351− navigation = findChild(dashNavigation, "navigation1child3");
352+ navigation = findChild(dashNavigationButton, "navigation1child3");
352353 mouseClick(navigation, 0, 0);
353− compare(dashNavigation.showList, false);
354− tryCompare(dashNavigation.currentNavigation, "navigationId", "childmiddle23");
354+ compare(dashNavigationButton.showList, false);
355+ tryCompare(dashNavigationButton.currentNavigation, "navigationId", "childmiddle23");
355356 tryCompare(navigationListView.currentItem.navigation, "navigationId", "middle2");
356357
357− mouseClick(dashNavigation, 0, 0);
358− compare(dashNavigation.showList, true);
358+ mouseClick(dashNavigationButton, 0, 0);
359+ compare(dashNavigationButton.showList, true);
359360 waitForRendering(navigationListView);
360361 waitForRendering(navigationListView.currentItem);
361362 mouseClick(backButton, 0, 0);
362363
363− tryCompare(dashNavigation.currentNavigation, "navigationId", "root");
364+ tryCompare(dashNavigationButton.currentNavigation, "navigationId", "root");
364365 tryCompare(navigationListView.currentItem.navigation, "navigationId", "root");
365− compare(dashNavigation.showList, true);
366− mouseClick(dashNavigation, 0, 0);
367− compare(dashNavigation.showList, false);
366+ compare(dashNavigationButton.showList, true);
367+ mouseClick(dashNavigationButton, 0, 0);
368+ compare(dashNavigationButton.showList, false);
368369
369− mouseClick(dashNavigation, 0, 0);
370− compare(dashNavigation.showList, true);
370+ mouseClick(dashNavigationButton, 0, 0);
371+ compare(dashNavigationButton.showList, true);
371372 tryCompare(navigationListView.currentItem.navigation, "loaded", true);
372− navigation = findChild(dashNavigation, "navigation0child2");
373+ navigation = findChild(dashNavigationButton, "navigation0child2");
373374 mouseClick(navigation, 0, 0);
374− compare(dashNavigation.showList, true);
375− navigationList1 = findChild(dashNavigation, "navigation1");
375+ compare(dashNavigationButton.showList, true);
376+ navigationList1 = findChild(dashNavigationButton, "navigation1");
376377 compare(navigationList1.navigation.loaded, false);
377− tryCompare(dashNavigation.currentNavigation, "navigationId", "middle2");
378+ tryCompare(dashNavigationButton.currentNavigation, "navigationId", "middle2");
378379 allButton = findChild(navigationList1, "allButton");
379− tryCompare(dashNavigation.currentNavigation, "navigationId", "middle2");
380+ tryCompare(dashNavigationButton.currentNavigation, "navigationId", "middle2");
380381 mouseClick(allButton, 0, 0);
381− tryCompare(dashNavigation.currentNavigation, "navigationId", "middle2");
382+ tryCompare(dashNavigationButton.currentNavigation, "navigationId", "middle2");
383+ }
384+
385+ function test_altNavigation() {
386+ var dashContentList = findChild(dashContent, "dashContentList");
387+ tryCompareFunction(function() { return findChild(dashContentList.currentItem, "dashNavigation") != null; }, true);
388+ var dashNavigation = findChild(dashContentList.currentItem, "dashNavigation");
389+ tryCompare(dashNavigation, "visible", true);
390+ var dashNavigationButton = findChild(dashContentList.currentItem, "altNavigationButton");
391+ verify(dashNavigationButton, "Can't find navigation button");
392+
393+ compare(dashNavigationButton.showList, false);
394+ waitForRendering(dashNavigationButton);
395+ mouseClick(dashNavigationButton, 0, 0);
396+ compare(dashNavigationButton.showList, true);
397+
398+ var navigationListView = findChild(dashNavigationButton, "navigationListView");
399+ compare(navigationListView.count, 1);
400+ tryCompare(navigationListView.currentItem.navigation, "loaded", true);
401+
402+ waitForRendering(navigationListView);
403+ waitForRendering(navigationListView.currentItem);
404+
405+ tryCompare(dashNavigationButton.currentNavigation, "navigationId", "altrootChild1");
406+ tryCompare(navigationListView.currentItem.navigation, "navigationId", "altroot");
407+
408+ var allButton = findChild(dashNavigationButton, "allButton");
409+ compare(allButton.visible, false);
410+ var backButton = findChild(navigationListView, "backButton");
411+ compare(backButton.visible, false);
412+
413+ var navigation = findChild(dashNavigationButton, "navigation0child3");
414+ mouseClick(navigation, 0, 0);
415+ compare(dashNavigationButton.showList, false);
416+ tryCompare(dashNavigationButton.currentNavigation, "navigationId", "altrootChild3");
417+ tryCompare(navigationListView.currentItem.navigation, "navigationId", "altroot");
418+
419+ mouseClick(dashNavigationButton, 0, 0);
420+ compare(dashNavigationButton.showList, true);
421+ waitForRendering(navigationListView);
422+ waitForRendering(navigationListView.currentItem);
423+ compare(allButton.visible, false);
424+
425+ navigation = findChild(dashNavigationButton, "navigation0child2");
426+ mouseClick(navigation, 0, 0);
427+ compare(dashNavigationButton.showList, false);
428+ tryCompare(dashNavigationButton.currentNavigation, "navigationId", "altrootChild2");
429+ tryCompare(navigationListView.currentItem.navigation, "navigationId", "altroot");
430+
431+ mouseClick(dashNavigationButton, 0, 0);
432+ compare(dashNavigationButton.showList, true);
433+ waitForRendering(navigationListView);
434+ waitForRendering(navigationListView.currentItem);
435+ verify(!backButton.visible, "Back button should not be visible");
436+
437+ compare(navigationListView.count, 1, "There should be no second-level navigation");
438+
439+ mouseClick(dashNavigationButton, 0, 0);
440+ compare(dashNavigationButton.showList, false);
441+ }
442+
443+ function test_navigationsClosing() {
444+ var dashContentList = findChild(dashContent, "dashContentList");
445+ tryCompareFunction(function() { return findChild(dashContentList.currentItem, "dashNavigation") != null; }, true);
446+ var dashNavigation = findChild(dashContentList.currentItem, "dashNavigation");
447+ tryCompare(dashNavigation, "visible", true);
448+ var dashNavigationButton = findChild(dashContentList.currentItem, "navigationButton");
449+ verify(dashNavigationButton, "Can't find navigation button");
450+ var dashAltNavigationButton = findChild(dashContentList.currentItem, "altNavigationButton");
451+ verify(dashAltNavigationButton, "Can't find alternative navigation button");
452+
453+ waitForRendering(dashNavigationButton);
454+ waitForRendering(dashAltNavigationButton);
455+
456+ compare(dashNavigationButton.showList, false);
457+ compare(dashAltNavigationButton.showList, false);
458+
459+ mouseClick(dashNavigation, 0, 0);
460+ compare(dashNavigationButton.showList, false);
461+ compare(dashAltNavigationButton.showList, true);
462+
463+ var navigationListView = findChild(dashAltNavigationButton, "navigationListView");
464+ tryCompare(navigationListView.currentItem.navigation, "loaded", true);
465+
466+ mouseClick(dashNavigation, dashNavigationButton.x, 0);
467+ compare(dashNavigationButton.showList, false);
468+ compare(dashAltNavigationButton.showList, false);
469+
470+ tryCompare(navigationListView, "visible", false);
471+
472+ mouseClick(dashNavigation, dashNavigationButton.x, 0);
473+ compare(dashNavigationButton.showList, true);
474+ compare(dashAltNavigationButton.showList, false);
475+
476+ navigationListView = findChild(dashNavigationButton, "navigationListView");
477+ tryCompare(navigationListView.currentItem.navigation, "loaded", true);
478+
479+ mouseClick(dashNavigation, 0, 0);
480+ compare(dashNavigationButton.showList, false);
481+ compare(dashAltNavigationButton.showList, false);
382482 }
383483
384484 function test_searchHint() {