@@ -83,6 +83,8 @@ Item {
83 when: windowShown
83 when: windowShown
85 function init() {
85 function init() {
86+ indicators.initialise();
86 indicators.hide();
88 indicators.hide();
87 tryCompare(indicators.hideAnimation, "running", false);
89 tryCompare(indicators.hideAnimation, "running", false);
88 tryCompare(indicators, "state", "initial");
90 tryCompare(indicators, "state", "initial");
@@ -161,21 +163,71 @@ Item {
161 compare(indicators.fullyOpened, true);
163 compare(indicators.fullyOpened, true);
166+ function init_invisible_indicator(identifier) {
167+ tryCompareFunction(function() { return findChild(indicators, identifier+"-widget") !== undefined }, true);
168+ var item = findChild(indicators, identifier+"-widget");
170+ item.enabled = false;
164 function test_row_visible_menuContent_visible_data() { return [
173 function test_row_visible_menuContent_visible_data() { return [
165− {tag: "visible", index: 0, name: "indicator-fake1", visible: true },
174+ {tag: "first", visible: [false, true, true, true, true] },
166− {tag: "invisible", index: 1, name: "indicator-fake2", visible: false }]
175+ {tag: "adjacent", visible: [true, false, false, true, true] },
176+ {tag: "bounds", visible: [false, true, true, true, false] },
177+ {tag: "disjoint", visible: [true, false, true, false, true] },
178+ {tag: "last", visible: [true, true, true, true, false] }];
169 function test_row_visible_menuContent_visible(data) {
181 function test_row_visible_menuContent_visible(data) {
185+ var indicatorTabs = findChild(indicators, "tabs");
186+ var rowRepeater = findChild(indicators, "rowRepeater")
189+ for (var i = 0; i< data.visible.length; i++) {
190+ if (data.visible[i] === false)
191+ init_invisible_indicator("indicator-fake" + (i + 1));
194+ for (i = 0; i < data.visible.length; i++) {
195+ var shouldBeVisible = data.visible[i];
197+ // check item visibility
198+ var indicatorItem = rowRepeater.itemAt(i);
199+ tryCompare(indicatorItem, "visible", shouldBeVisible);
200+ // check tab visibility
201+ tryCompareFunction(function() { return findChild(indicatorTabs, "indicator-fake" + (i + 1)) !== undefined }, shouldBeVisible);
205+ function test_indicator_visible_correct_tabs_data() { return [
206+ {tag: "current-first", currentIndex: 0, visible: [false, true, true, true, true], expected: 1 },
207+ {tag: "current-last", currentIndex: 4, visible: [true, true, true, true, false], expected: 3 },
208+ {tag: "after", currentIndex: 0, visible: [true, false, true, true, true], expected: 0 },
209+ {tag: "before", currentIndex: 1, visible: [false, true, true, true, true], expected: 1 }];
212+ function test_indicator_visible_correct_tabs(data) {
170 var indicatorTabs = findChild(indicators, "tabs");
214 var indicatorTabs = findChild(indicators, "tabs");
171− var rowRepeater = findChild(indicators, "rowRepeater");
215+ var indicatorRow = findChild(indicators, "indicatorRow");
218+ indicatorRow.setCurrentItem(data.currentIndex);
219+ tryCompare(indicators, "fullyOpened", true);
221+ for (var i = 0; i< data.visible.length; i++) {
222+ if (data.visible[i] === false)
223+ init_invisible_indicator("indicator-fake" + (i + 1));
173− var indicatorItem = rowRepeater.itemAt(data.index);
226+ // check for current selected item
227+ tryCompare(indicatorRow, "currentItemIndex", data.expected);
228+ // check for current selected tab
174− tryCompareFunction(function() { return indicatorItem.width > 0}, true);
229+ tryCompareFunction(function() { return findChild(indicatorTabs, "indicator-fake" + (data.expected + 1)) === indicatorTabs.selectedTab }, true);
175− tryCompare(indicatorItem, "visible", data.visible);
177− var indicatorTab = findChild(indicatorTabs, data.name)
178− tryCompareFunction(function() { return indicatorTab !== undefined }, data.visible);