@@ -89,6 +89,12 @@ Item {
89 verify(loader.item == null);
89 verify(loader.item == null);
92+ function loadData(menuData) {
93+ loader.data = menuData;
94+ loader.sourceComponent = factory.load(menuData);
95+ tryVerify(function() { return loader.item; });
92 function test_createTypes_data() {
98 function test_createTypes_data() {
94 { tag: 'volume', type: "unity.widgets.systemsettings.tablet.volumecontrol", objectName: "sliderMenu" },
100 { tag: 'volume', type: "unity.widgets.systemsettings.tablet.volumecontrol", objectName: "sliderMenu" },
@@ -127,9 +133,7 @@ Item {
127 function test_createTypes(data) {
133 function test_createTypes(data) {
128 menuData.type = data.type;
134 menuData.type = data.type;
130− loader.data = menuData;
136+ loadData(menuData);
131− loader.sourceComponent = factory.load(menuData);
132− tryCompareFunction(function() { return loader.item != undefined; }, true);
133 compare(loader.item.objectName, data.objectName, "Created object name does not match intended object (" + loader.item.objectName + " != " + data.objectName + ")");
137 compare(loader.item.objectName, data.objectName, "Created object name does not match intended object (" + loader.item.objectName + " != " + data.objectName + ")");
@@ -137,27 +141,21 @@ Item {
137 var tmpData = menuData;
141 var tmpData = menuData;
138 tmpData.isCheck = true;
142 tmpData.isCheck = true;
140− loader.data = tmpData;
144+ loadData(tmpData);
141− loader.sourceComponent = factory.load(tmpData);
142− tryCompareFunction(function() { return loader.item != undefined; }, true);
143 compare(loader.item.objectName, "checkableMenu", "Should have created a checkable menu");
145 compare(loader.item.objectName, "checkableMenu", "Should have created a checkable menu");
146 function test_create_radio() {
148 function test_create_radio() {
147 menuData.isRadio = true;
149 menuData.isRadio = true;
149− loader.data = menuData;
151+ loadData(menuData);
150− loader.sourceComponent = factory.load(menuData);
151− tryCompareFunction(function() { return loader.item != undefined; }, true);
152 compare(loader.item.objectName, "radioMenu", "Should have created a radio menu");
152 compare(loader.item.objectName, "radioMenu", "Should have created a radio menu");
155 function test_create_separator() {
155 function test_create_separator() {
156 menuData.isSeparator = true;
156 menuData.isSeparator = true;
158− loader.data = menuData;
158+ loadData(menuData);
159− loader.sourceComponent = factory.load(menuData);
160− tryCompareFunction(function() { return loader.item != undefined; }, true);
161 compare(loader.item.objectName, "separatorMenu", "Should have created a separator menu");
159 compare(loader.item.objectName, "separatorMenu", "Should have created a separator menu");
@@ -180,9 +178,7 @@ Item {
181 menuData.actionState = data.value1;
179 menuData.actionState = data.value1;
183− loader.data = menuData;
181+ loadData(menuData);
184− loader.sourceComponent = factory.load(menuData);
185− tryCompareFunction(function() { return loader.item != undefined; }, true);
186 compare(loader.item.objectName, "sliderMenu", "Should have created a slider menu");
182 compare(loader.item.objectName, "sliderMenu", "Should have created a slider menu");
188 compare(loader.item.text, data.tag, "Label does not match data");
184 compare(loader.item.text, data.tag, "Label does not match data");
@@ -217,9 +213,7 @@ Item {
218 menuData.actionState = data.value1;
214 menuData.actionState = data.value1;
220− loader.data = menuData;
216+ loadData(menuData);
221− loader.sourceComponent = factory.load(menuData);
222− tryCompareFunction(function() { return loader.item != undefined; }, true);
223 compare(loader.item.value, data.value1, "Value does not match data");
217 compare(loader.item.value, data.value1, "Value does not match data");
225 var slider = findChild(loader.item, "slider");
219 var slider = findChild(loader.item, "slider");
@@ -247,9 +241,7 @@ Item {
247 menuData.label = data.label;
241 menuData.label = data.label;
248 menuData.sensitive = data.enabled;
242 menuData.sensitive = data.enabled;
250− loader.data = menuData;
244+ loadData(menuData);
251− loader.sourceComponent = factory.load(menuData);
252− tryCompareFunction(function() { return loader.item != undefined; }, true);
253 compare(loader.item.objectName, "buttonMenu", "Should have created a button menu");
245 compare(loader.item.objectName, "buttonMenu", "Should have created a button menu");
255 compare(loader.item.buttonText, data.label, "Label does not match data");
247 compare(loader.item.buttonText, data.label, "Label does not match data");
@@ -267,9 +259,7 @@ Item {
267 menuData.type = "com.canonical.indicator.section"
259 menuData.type = "com.canonical.indicator.section"
268 menuData.label = data.label;
260 menuData.label = data.label;
270− loader.data = menuData;
262+ loadData(menuData);
271− loader.sourceComponent = factory.load(menuData);
272− tryCompareFunction(function() { return loader.item != undefined; }, true);
273 compare(loader.item.objectName, "sectionMenu", "Should have created a section menu");
263 compare(loader.item.objectName, "sectionMenu", "Should have created a section menu");
275 compare(loader.item.text, data.label, "Label does not match data");
265 compare(loader.item.text, data.label, "Label does not match data");
@@ -287,9 +277,7 @@ Item {
287 menuData.label = data.label;
277 menuData.label = data.label;
288 menuData.actionState = data.value;
278 menuData.actionState = data.value;
290− loader.data = menuData;
280+ loadData(menuData);
291− loader.sourceComponent = factory.load(menuData);
292− tryCompareFunction(function() { return loader.item != undefined; }, true);
293 compare(loader.item.objectName, "progressMenu", "Should have created a progress menu");
281 compare(loader.item.objectName, "progressMenu", "Should have created a progress menu");
295 compare(loader.item.text, data.label, "Label does not match data");
283 compare(loader.item.text, data.label, "Label does not match data");
@@ -309,9 +297,7 @@ Item {
309 menuData.sensitive = data.enabled;
297 menuData.sensitive = data.enabled;
310 menuData.icon = data.icon;
298 menuData.icon = data.icon;
312− loader.data = menuData;
300+ loadData(menuData);
313− loader.sourceComponent = factory.load(menuData);
314− tryCompareFunction(function() { return loader.item != undefined; }, true);
315 compare(loader.item.objectName, "standardMenu", "Should have created a standard menu");
301 compare(loader.item.objectName, "standardMenu", "Should have created a standard menu");
317 compare(loader.item.text, data.label, "Label does not match data");
303 compare(loader.item.text, data.label, "Label does not match data");
@@ -333,9 +319,7 @@ Item {
333 menuData.isCheck = true;
319 menuData.isCheck = true;
334 menuData.isToggled = data.checked;
320 menuData.isToggled = data.checked;
336− loader.data = menuData;
322+ loadData(menuData);
337− loader.sourceComponent = factory.load(menuData);
338− tryCompareFunction(function() { return loader.item != undefined; }, true);
339 compare(loader.item.objectName, "checkableMenu", "Should have created a checkable menu");
323 compare(loader.item.objectName, "checkableMenu", "Should have created a checkable menu");
341 compare(loader.item.text, data.label, "Label does not match data");
325 compare(loader.item.text, data.label, "Label does not match data");
@@ -357,9 +341,7 @@ Item {
357 menuData.isRadio = true;
341 menuData.isRadio = true;
358 menuData.isToggled = data.checked;
342 menuData.isToggled = data.checked;
360− loader.data = menuData;
344+ loadData(menuData);
361− loader.sourceComponent = factory.load(menuData);
362− tryCompareFunction(function() { return loader.item != undefined; }, true);
363 compare(loader.item.objectName, "radioMenu", "Should have created a radio menu");
345 compare(loader.item.objectName, "radioMenu", "Should have created a radio menu");
365 compare(loader.item.text, data.label, "Label does not match data");
347 compare(loader.item.text, data.label, "Label does not match data");
@@ -385,9 +367,7 @@ Item {
385 'xCanonicalSubtitleAction': data.subtitleAction,
367 'xCanonicalSubtitleAction': data.subtitleAction,
388− loader.data = menuData;
370+ loadData(menuData);
389− loader.sourceComponent = factory.load(menuData);
390− tryCompareFunction(function() { return loader.item != undefined; }, true);
391 compare(loader.item.objectName, "switchMenu", "Should have created a switch menu");
371 compare(loader.item.objectName, "switchMenu", "Should have created a switch menu");
393 compare(loader.item.text, data.label, "Label does not match data");
373 compare(loader.item.text, data.label, "Label does not match data");
@@ -415,9 +395,7 @@ Item {
415 'xCanonicalTime': data.time.getTime() / 1000 // expected in seconds
395 'xCanonicalTime': data.time.getTime() / 1000 // expected in seconds
418− loader.data = menuData;
398+ loadData(menuData);
419− loader.sourceComponent = factory.load(menuData);
420− tryCompareFunction(function() { return loader.item != undefined; }, true);
421 compare(loader.item.objectName, "alarmMenu", "Should have created a alarm menu");
399 compare(loader.item.objectName, "alarmMenu", "Should have created a alarm menu");
423 compare(loader.item.text, data.label, "Label does not match data");
401 compare(loader.item.text, data.label, "Label does not match data");
@@ -445,9 +423,7 @@ Item {
445 'xCanonicalTime': data.time.getTime() / 1000 // expected in seconds
423 'xCanonicalTime': data.time.getTime() / 1000 // expected in seconds
448− loader.data = menuData;
426+ loadData(menuData);
449− loader.sourceComponent = factory.load(menuData);
450− tryCompareFunction(function() { return loader.item != undefined; }, true);
451 compare(loader.item.objectName, "appointmentMenu", "Should have created a appointment menu");
427 compare(loader.item.objectName, "appointmentMenu", "Should have created a appointment menu");
453 compare(loader.item.text, data.label, "Label does not match data");
429 compare(loader.item.text, data.label, "Label does not match data");
@@ -527,9 +503,7 @@ Item {
527 'xCanonicalUid': data.tag
503 'xCanonicalUid': data.tag
530− loader.data = menuData;
506+ loadData(menuData);
531− loader.sourceComponent = factory.load(menuData);
532− tryCompareFunction(function() { return loader.item != undefined; }, true);
533 compare(loader.item.objectName, "transferMenu", "Should have created a transfer menu");
507 compare(loader.item.objectName, "transferMenu", "Should have created a transfer menu");
535 compare(loader.item.text, data.label, "Label does not match data");
509 compare(loader.item.text, data.label, "Label does not match data");
@@ -556,9 +530,7 @@ Item {
556 'xCanonicalExtraLabel': data.buttonText
530 'xCanonicalExtraLabel': data.buttonText
559− loader.data = menuData;
533+ loadData(menuData);
560− loader.sourceComponent = factory.load(menuData);
561− tryCompareFunction(function() { return loader.item != undefined; }, true);
562 compare(loader.item.objectName, "buttonSectionMenu", "Should have created a transfer menu");
534 compare(loader.item.objectName, "buttonSectionMenu", "Should have created a transfer menu");
564 compare(loader.item.text, data.label, "Label does not match data");
536 compare(loader.item.text, data.label, "Label does not match data");
@@ -580,9 +552,7 @@ Item {
580 menuData.label = data.label;
552 menuData.label = data.label;
581 menuData.ext = { 'xCanonicalBusyAction': data.busy }
553 menuData.ext = { 'xCanonicalBusyAction': data.busy }
583− loader.data = menuData;
555+ loadData(menuData);
584− loader.sourceComponent = factory.load(menuData);
585− tryCompareFunction(function() { return loader.item != undefined; }, true);
586 compare(loader.item.objectName, "wifiSection", "Should have created a wifi section menu");
556 compare(loader.item.objectName, "wifiSection", "Should have created a wifi section menu");
588 compare(loader.item.text, data.label, "Label does not match data");
558 compare(loader.item.text, data.label, "Label does not match data");
@@ -607,9 +577,7 @@ Item {
607 'xCanonicalWifiApIsAdhoc': data.adHoc,
577 'xCanonicalWifiApIsAdhoc': data.adHoc,
610− loader.data = menuData;
580+ loadData(menuData);
611− loader.sourceComponent = factory.load(menuData);
612− tryCompareFunction(function() { return loader.item != undefined; }, true);
613 compare(loader.item.objectName, "accessPoint", "Should have created a access point menu");
581 compare(loader.item.objectName, "accessPoint", "Should have created a access point menu");
615 compare(loader.item.text, data.label, "Label does not match data");
583 compare(loader.item.text, data.label, "Label does not match data");
@@ -647,9 +615,7 @@ Item {
647 'xCanonicalModemLockedAction': data.unlockAction,
615 'xCanonicalModemLockedAction': data.unlockAction,
650− loader.data = menuData;
618+ loadData(menuData);
651− loader.sourceComponent = factory.load(menuData);
652− tryCompareFunction(function() { return loader.item != undefined; }, true);
653 compare(loader.item.objectName, "modemInfoItem", "Should have created a modem info item.");
619 compare(loader.item.objectName, "modemInfoItem", "Should have created a modem info item.");
655 compare(loader.item.statusLabelAction.name, data.statusLabelAction, "StatusLabel action incorrect");
621 compare(loader.item.statusLabelAction.name, data.statusLabelAction, "StatusLabel action incorrect");
@@ -664,9 +630,7 @@ Item {
664 function test_create_messageItem() {
630 function test_create_messageItem() {
665 menuData.type = "com.canonical.indicator.messages.messageitem";
631 menuData.type = "com.canonical.indicator.messages.messageitem";
667− loader.data = menuData;
633+ loadData(menuData);
668− loader.sourceComponent = factory.load(menuData);
669− tryCompareFunction(function() { return loader.item != undefined; }, true);
670 compare(loader.item.objectName, "messageItem", "Should have created a message menu");
634 compare(loader.item.objectName, "messageItem", "Should have created a message menu");
@@ -686,9 +650,7 @@ Item {
686 menuData.actionState = [data.count];
650 menuData.actionState = [data.count];
687 menuData.isToggled = true;
651 menuData.isToggled = true;
689− loader.data = menuData;
653+ loadData(menuData);
690− loader.sourceComponent = factory.load(menuData);
691− tryCompareFunction(function() { return loader.item != undefined; }, true);
692 compare(loader.item.objectName, "groupedMessage", "Should have created a group message menu");
654 compare(loader.item.objectName, "groupedMessage", "Should have created a group message menu");
694 compare(loader.item.text, data.label, "Label does not match data");
656 compare(loader.item.text, data.label, "Label does not match data");
@@ -749,9 +711,7 @@ Item {
749 'state': data.state,
711 'state': data.state,
752− loader.data = menuData;
714+ loadData(menuData);
753− loader.sourceComponent = factory.load(menuData);
754− tryCompareFunction(function() { return loader.item != undefined; }, true);
755 compare(loader.item.objectName, "mediaPayerMenu", "Should have created a media player menu");
715 compare(loader.item.objectName, "mediaPayerMenu", "Should have created a media player menu");
757 compare(loader.item.playerIcon, data.icon, "Album art does not match data");
717 compare(loader.item.playerIcon, data.icon, "Album art does not match data");
@@ -789,9 +749,7 @@ Item {
789 'xCanonicalPreviousAction': data.previousAction
749 'xCanonicalPreviousAction': data.previousAction
792− loader.data = menuData;
752+ loadData(menuData);
793− loader.sourceComponent = factory.load(menuData);
794− tryCompareFunction(function() { return loader.item != undefined; }, true);
795 compare(loader.item.objectName, "playbackItemMenu", "Should have created a playback menu");
753 compare(loader.item.objectName, "playbackItemMenu", "Should have created a playback menu");
797 compare(loader.item.playing, false, "Playing does not match data");
755 compare(loader.item.playing, false, "Playing does not match data");
@@ -809,8 +767,7 @@ Item {
809 menuData.sensitive = true;
767 menuData.sensitive = true;
810 menuData.isToggled = false;
768 menuData.isToggled = false;
812− loader.data = menuData;
770+ loadData(menuData);
813− loader.sourceComponent = factory.load(menuData);
815 compare(loader.item.checked, false, "Loader did not load check state");
772 compare(loader.item.checked, false, "Loader did not load check state");
816 mouseClick(loader.item,
773 mouseClick(loader.item,
@@ -829,8 +786,7 @@ Item {
829 menuData.sensitive = true;
786 menuData.sensitive = true;
830 menuData.isToggled = false;
787 menuData.isToggled = false;
832− loader.data = menuData;
789+ loadData(menuData);
833− loader.sourceComponent = factory.load(menuData);
835 var sync = findInvisibleChild(loader.item, "sync");
791 var sync = findInvisibleChild(loader.item, "sync");
836 verify(sync);
792 verify(sync);
@@ -859,9 +815,7 @@ Item {
859 "appointment-days": data.eventDays
815 "appointment-days": data.eventDays
862− loader.data = menuData;
818+ loadData(menuData);
863− loader.sourceComponent = factory.load(menuData);
864− tryCompareFunction(function() { return loader.item != undefined; }, true);
865 compare(loader.item.objectName, "calendarMenu", "Should have created a calendar menu")
819 compare(loader.item.objectName, "calendarMenu", "Should have created a calendar menu")
867 compare(loader.item.currentDate.getFullYear(), data.calendarDay.getFullYear(), "Calendar year does not match data")
821 compare(loader.item.currentDate.getFullYear(), data.calendarDay.getFullYear(), "Calendar year does not match data")