@@ -89,6 +89,12 @@ Item {
8989 verify(loader.item == null);
9090 }
9191
92+ function loadData(menuData) {
93+ loader.data = menuData;
94+ loader.sourceComponent = factory.load(menuData);
95+ tryVerify(function() { return loader.item; });
96+ }
97+
9298 function test_createTypes_data() {
9399 return [
94100 { tag: 'volume', type: "unity.widgets.systemsettings.tablet.volumecontrol", objectName: "sliderMenu" },
@@ -127,9 +133,7 @@ Item {
127133 function test_createTypes(data) {
128134 menuData.type = data.type;
129135
130− loader.data = menuData;
131− loader.sourceComponent = factory.load(menuData);
132− tryCompareFunction(function() { return loader.item != undefined; }, true);
136+ loadData(menuData);
133137 compare(loader.item.objectName, data.objectName, "Created object name does not match intended object (" + loader.item.objectName + " != " + data.objectName + ")");
134138 }
135139
@@ -137,27 +141,21 @@ Item {
137141 var tmpData = menuData;
138142 tmpData.isCheck = true;
139143
140− loader.data = tmpData;
141− loader.sourceComponent = factory.load(tmpData);
142− tryCompareFunction(function() { return loader.item != undefined; }, true);
144+ loadData(tmpData);
143145 compare(loader.item.objectName, "checkableMenu", "Should have created a checkable menu");
144146 }
145147
146148 function test_create_radio() {
147149 menuData.isRadio = true;
148150
149− loader.data = menuData;
150− loader.sourceComponent = factory.load(menuData);
151− tryCompareFunction(function() { return loader.item != undefined; }, true);
151+ loadData(menuData);
152152 compare(loader.item.objectName, "radioMenu", "Should have created a radio menu");
153153 }
154154
155155 function test_create_separator() {
156156 menuData.isSeparator = true;
157157
158− loader.data = menuData;
159− loader.sourceComponent = factory.load(menuData);
160− tryCompareFunction(function() { return loader.item != undefined; }, true);
158+ loadData(menuData);
161159 compare(loader.item.objectName, "separatorMenu", "Should have created a separator menu");
162160 }
163161
@@ -180,9 +178,7 @@ Item {
180178 };
181179 menuData.actionState = data.value1;
182180
183− loader.data = menuData;
184− loader.sourceComponent = factory.load(menuData);
185− tryCompareFunction(function() { return loader.item != undefined; }, true);
181+ loadData(menuData);
186182 compare(loader.item.objectName, "sliderMenu", "Should have created a slider menu");
187183
188184 compare(loader.item.text, data.tag, "Label does not match data");
@@ -217,9 +213,7 @@ Item {
217213 };
218214 menuData.actionState = data.value1;
219215
220− loader.data = menuData;
221− loader.sourceComponent = factory.load(menuData);
222− tryCompareFunction(function() { return loader.item != undefined; }, true);
216+ loadData(menuData);
223217 compare(loader.item.value, data.value1, "Value does not match data");
224218
225219 var slider = findChild(loader.item, "slider");
@@ -247,9 +241,7 @@ Item {
247241 menuData.label = data.label;
248242 menuData.sensitive = data.enabled;
249243
250− loader.data = menuData;
251− loader.sourceComponent = factory.load(menuData);
252− tryCompareFunction(function() { return loader.item != undefined; }, true);
244+ loadData(menuData);
253245 compare(loader.item.objectName, "buttonMenu", "Should have created a button menu");
254246
255247 compare(loader.item.buttonText, data.label, "Label does not match data");
@@ -267,9 +259,7 @@ Item {
267259 menuData.type = "com.canonical.indicator.section"
268260 menuData.label = data.label;
269261
270− loader.data = menuData;
271− loader.sourceComponent = factory.load(menuData);
272− tryCompareFunction(function() { return loader.item != undefined; }, true);
262+ loadData(menuData);
273263 compare(loader.item.objectName, "sectionMenu", "Should have created a section menu");
274264
275265 compare(loader.item.text, data.label, "Label does not match data");
@@ -287,9 +277,7 @@ Item {
287277 menuData.label = data.label;
288278 menuData.actionState = data.value;
289279
290− loader.data = menuData;
291− loader.sourceComponent = factory.load(menuData);
292− tryCompareFunction(function() { return loader.item != undefined; }, true);
280+ loadData(menuData);
293281 compare(loader.item.objectName, "progressMenu", "Should have created a progress menu");
294282
295283 compare(loader.item.text, data.label, "Label does not match data");
@@ -309,9 +297,7 @@ Item {
309297 menuData.sensitive = data.enabled;
310298 menuData.icon = data.icon;
311299
312− loader.data = menuData;
313− loader.sourceComponent = factory.load(menuData);
314− tryCompareFunction(function() { return loader.item != undefined; }, true);
300+ loadData(menuData);
315301 compare(loader.item.objectName, "standardMenu", "Should have created a standard menu");
316302
317303 compare(loader.item.text, data.label, "Label does not match data");
@@ -333,9 +319,7 @@ Item {
333319 menuData.isCheck = true;
334320 menuData.isToggled = data.checked;
335321
336− loader.data = menuData;
337− loader.sourceComponent = factory.load(menuData);
338− tryCompareFunction(function() { return loader.item != undefined; }, true);
322+ loadData(menuData);
339323 compare(loader.item.objectName, "checkableMenu", "Should have created a checkable menu");
340324
341325 compare(loader.item.text, data.label, "Label does not match data");
@@ -357,9 +341,7 @@ Item {
357341 menuData.isRadio = true;
358342 menuData.isToggled = data.checked;
359343
360− loader.data = menuData;
361− loader.sourceComponent = factory.load(menuData);
362− tryCompareFunction(function() { return loader.item != undefined; }, true);
344+ loadData(menuData);
363345 compare(loader.item.objectName, "radioMenu", "Should have created a radio menu");
364346
365347 compare(loader.item.text, data.label, "Label does not match data");
@@ -385,9 +367,7 @@ Item {
385367 'xCanonicalSubtitleAction': data.subtitleAction,
386368 };
387369
388− loader.data = menuData;
389− loader.sourceComponent = factory.load(menuData);
390− tryCompareFunction(function() { return loader.item != undefined; }, true);
370+ loadData(menuData);
391371 compare(loader.item.objectName, "switchMenu", "Should have created a switch menu");
392372
393373 compare(loader.item.text, data.label, "Label does not match data");
@@ -415,9 +395,7 @@ Item {
415395 'xCanonicalTime': data.time.getTime() / 1000 // expected in seconds
416396 };
417397
418− loader.data = menuData;
419− loader.sourceComponent = factory.load(menuData);
420− tryCompareFunction(function() { return loader.item != undefined; }, true);
398+ loadData(menuData);
421399 compare(loader.item.objectName, "alarmMenu", "Should have created a alarm menu");
422400
423401 compare(loader.item.text, data.label, "Label does not match data");
@@ -445,9 +423,7 @@ Item {
445423 'xCanonicalTime': data.time.getTime() / 1000 // expected in seconds
446424 };
447425
448− loader.data = menuData;
449− loader.sourceComponent = factory.load(menuData);
450− tryCompareFunction(function() { return loader.item != undefined; }, true);
426+ loadData(menuData);
451427 compare(loader.item.objectName, "appointmentMenu", "Should have created a appointment menu");
452428
453429 compare(loader.item.text, data.label, "Label does not match data");
@@ -527,9 +503,7 @@ Item {
527503 'xCanonicalUid': data.tag
528504 };
529505
530− loader.data = menuData;
531− loader.sourceComponent = factory.load(menuData);
532− tryCompareFunction(function() { return loader.item != undefined; }, true);
506+ loadData(menuData);
533507 compare(loader.item.objectName, "transferMenu", "Should have created a transfer menu");
534508
535509 compare(loader.item.text, data.label, "Label does not match data");
@@ -556,9 +530,7 @@ Item {
556530 'xCanonicalExtraLabel': data.buttonText
557531 };
558532
559− loader.data = menuData;
560− loader.sourceComponent = factory.load(menuData);
561− tryCompareFunction(function() { return loader.item != undefined; }, true);
533+ loadData(menuData);
562534 compare(loader.item.objectName, "buttonSectionMenu", "Should have created a transfer menu");
563535
564536 compare(loader.item.text, data.label, "Label does not match data");
@@ -580,9 +552,7 @@ Item {
580552 menuData.label = data.label;
581553 menuData.ext = { 'xCanonicalBusyAction': data.busy }
582554
583− loader.data = menuData;
584− loader.sourceComponent = factory.load(menuData);
585− tryCompareFunction(function() { return loader.item != undefined; }, true);
555+ loadData(menuData);
586556 compare(loader.item.objectName, "wifiSection", "Should have created a wifi section menu");
587557
588558 compare(loader.item.text, data.label, "Label does not match data");
@@ -607,9 +577,7 @@ Item {
607577 'xCanonicalWifiApIsAdhoc': data.adHoc,
608578 };
609579
610− loader.data = menuData;
611− loader.sourceComponent = factory.load(menuData);
612− tryCompareFunction(function() { return loader.item != undefined; }, true);
580+ loadData(menuData);
613581 compare(loader.item.objectName, "accessPoint", "Should have created a access point menu");
614582
615583 compare(loader.item.text, data.label, "Label does not match data");
@@ -647,9 +615,7 @@ Item {
647615 'xCanonicalModemLockedAction': data.unlockAction,
648616 };
649617
650− loader.data = menuData;
651− loader.sourceComponent = factory.load(menuData);
652− tryCompareFunction(function() { return loader.item != undefined; }, true);
618+ loadData(menuData);
653619 compare(loader.item.objectName, "modemInfoItem", "Should have created a modem info item.");
654620
655621 compare(loader.item.statusLabelAction.name, data.statusLabelAction, "StatusLabel action incorrect");
@@ -664,9 +630,7 @@ Item {
664630 function test_create_messageItem() {
665631 menuData.type = "com.canonical.indicator.messages.messageitem";
666632
667− loader.data = menuData;
668− loader.sourceComponent = factory.load(menuData);
669− tryCompareFunction(function() { return loader.item != undefined; }, true);
633+ loadData(menuData);
670634 compare(loader.item.objectName, "messageItem", "Should have created a message menu");
671635 }
672636
@@ -686,9 +650,7 @@ Item {
686650 menuData.actionState = [data.count];
687651 menuData.isToggled = true;
688652
689− loader.data = menuData;
690− loader.sourceComponent = factory.load(menuData);
691− tryCompareFunction(function() { return loader.item != undefined; }, true);
653+ loadData(menuData);
692654 compare(loader.item.objectName, "groupedMessage", "Should have created a group message menu");
693655
694656 compare(loader.item.text, data.label, "Label does not match data");
@@ -749,9 +711,7 @@ Item {
749711 'state': data.state,
750712 };
751713
752− loader.data = menuData;
753− loader.sourceComponent = factory.load(menuData);
754− tryCompareFunction(function() { return loader.item != undefined; }, true);
714+ loadData(menuData);
755715 compare(loader.item.objectName, "mediaPayerMenu", "Should have created a media player menu");
756716
757717 compare(loader.item.playerIcon, data.icon, "Album art does not match data");
@@ -789,9 +749,7 @@ Item {
789749 'xCanonicalPreviousAction': data.previousAction
790750 };
791751
792− loader.data = menuData;
793− loader.sourceComponent = factory.load(menuData);
794− tryCompareFunction(function() { return loader.item != undefined; }, true);
752+ loadData(menuData);
795753 compare(loader.item.objectName, "playbackItemMenu", "Should have created a playback menu");
796754
797755 compare(loader.item.playing, false, "Playing does not match data");
@@ -809,8 +767,7 @@ Item {
809767 menuData.sensitive = true;
810768 menuData.isToggled = false;
811769
812− loader.data = menuData;
813− loader.sourceComponent = factory.load(menuData);
770+ loadData(menuData);
814771
815772 compare(loader.item.checked, false, "Loader did not load check state");
816773 mouseClick(loader.item,
@@ -829,8 +786,7 @@ Item {
829786 menuData.sensitive = true;
830787 menuData.isToggled = false;
831788
832− loader.data = menuData;
833− loader.sourceComponent = factory.load(menuData);
789+ loadData(menuData);
834790
835791 var sync = findInvisibleChild(loader.item, "sync");
836792 verify(sync);
@@ -859,9 +815,7 @@ Item {
859815 "appointment-days": data.eventDays
860816 }
861817
862− loader.data = menuData;
863− loader.sourceComponent = factory.load(menuData);
864− tryCompareFunction(function() { return loader.item != undefined; }, true);
818+ loadData(menuData);
865819 compare(loader.item.objectName, "calendarMenu", "Should have created a calendar menu")
866820
867821 compare(loader.item.currentDate.getFullYear(), data.calendarDay.getFullYear(), "Calendar year does not match data")