@@ -84,11 +84,13 @@ Item {
84 { tag: 'switch1', type: "unity.widgets.systemsettings.tablet.switch", objectName: "switchMenu" },
84 { tag: 'switch1', type: "unity.widgets.systemsettings.tablet.switch", objectName: "switchMenu" },
86 { tag: 'button', type: "com.canonical.indicator.button", objectName: "buttonMenu" },
86 { tag: 'button', type: "com.canonical.indicator.button", objectName: "buttonMenu" },
87− { tag: 'separator', type: "com.canonical.indicator.div", objectName: "divMenu" },
87+ { tag: 'separator', type: "com.canonical.indicator.div", objectName: "separatorMenu" },
88 { tag: 'section', type: "com.canonical.indicator.section", objectName: "sectionMenu" },
88 { tag: 'section', type: "com.canonical.indicator.section", objectName: "sectionMenu" },
89 { tag: 'progress', type: "com.canonical.indicator.progress", objectName: "progressMenu" },
89 { tag: 'progress', type: "com.canonical.indicator.progress", objectName: "progressMenu" },
90 { tag: 'slider1', type: "com.canonical.indicator.slider", objectName: "sliderMenu" },
90 { tag: 'slider1', type: "com.canonical.indicator.slider", objectName: "sliderMenu" },
91 { tag: 'switch2', type: "com.canonical.indicator.switch", objectName: "switchMenu" },
91 { tag: 'switch2', type: "com.canonical.indicator.switch", objectName: "switchMenu" },
92+ { tag: 'alarm', type: "com.canonical.indicator.alarm", objectName: "alarmMenu" },
93+ { tag: 'appointment', type: "com.canonical.indicator.appointment", objectName: "appointmentMenu" },
93 { tag: 'messageItem', type: "com.canonical.indicator.messages.messageitem", objectName: "messageItem" },
95 { tag: 'messageItem', type: "com.canonical.indicator.messages.messageitem", objectName: "messageItem" },
94 { tag: 'sourceItem', type: "com.canonical.indicator.messages.sourceitem", objectName: "groupedMessage" },
96 { tag: 'sourceItem', type: "com.canonical.indicator.messages.sourceitem", objectName: "groupedMessage" },
@@ -96,8 +98,8 @@ Item {
96 { tag: 'slider2', type: "com.canonical.unity.slider", objectName: "sliderMenu" },
98 { tag: 'slider2', type: "com.canonical.unity.slider", objectName: "sliderMenu" },
97 { tag: 'switch3', type: "com.canonical.unity.switch", objectName: "switchMenu" },
99 { tag: 'switch3', type: "com.canonical.unity.switch", objectName: "switchMenu" },
99− { tag: 'mediaplayer', type: "com.canonical.unity.media-player", objectName: "standardMenu" },
101+ { tag: 'mediaplayer', type: "com.canonical.unity.media-player", objectName: "mediaPayerMenu" },
100− { tag: 'playbackitem', type: "com.canonical.unity.playback-item", objectName: "standardMenu" },
102+ { tag: 'playbackitem', type: "com.canonical.unity.playback-item", objectName: "playbackItemMenu" },
102 { tag: 'wifisection', type: "unity.widgets.systemsettings.tablet.wifisection", objectName: "wifiSection" },
104 { tag: 'wifisection', type: "unity.widgets.systemsettings.tablet.wifisection", objectName: "wifiSection" },
103 { tag: 'accesspoint', type: "unity.widgets.systemsettings.tablet.accesspoint", objectName: "accessPoint" },
105 { tag: 'accesspoint', type: "unity.widgets.systemsettings.tablet.accesspoint", objectName: "accessPoint" },
@@ -115,6 +117,16 @@ Item {
115 compare(loader.item.objectName, data.objectName, "Created object name does not match intended object (" + loader.item.objectName + " != " + data.objectName + ")");
117 compare(loader.item.objectName, data.objectName, "Created object name does not match intended object (" + loader.item.objectName + " != " + data.objectName + ")");
120+ function test_create_checkable() {
121+ var tmpData = menuData;
122+ tmpData.isCheck = true;
124+ loader.data = tmpData;
125+ loader.sourceComponent = factory.load(tmpData);
126+ tryCompareFunction(function() { return loader.item != undefined; }, true);
127+ compare(loader.item.objectName, "checkableMenu", "Should have created a checkable menu");
118 function test_create_radio() {
130 function test_create_radio() {
119 skip("No radio component");
131 skip("No radio component");
120 menuData.isRadio = true;
132 menuData.isRadio = true;
@@ -131,7 +143,7 @@ Item {
131 loader.data = menuData;
143 loader.data = menuData;
132 loader.sourceComponent = factory.load(menuData);
144 loader.sourceComponent = factory.load(menuData);
133 tryCompareFunction(function() { return loader.item != undefined; }, true);
145 tryCompareFunction(function() { return loader.item != undefined; }, true);
134− compare(loader.item.objectName, "divMenu", "Should have created a separator menu");
146+ compare(loader.item.objectName, "separatorMenu", "Should have created a separator menu");
137 function test_create_sliderMenu_data() {
149 function test_create_sliderMenu_data() {
@@ -145,13 +157,13 @@ Item {
145 menuData.type = "com.canonical.indicator.slider"
157 menuData.type = "com.canonical.indicator.slider"
146 menuData.label = data.label;
158 menuData.label = data.label;
147 menuData.sensitive = data.enabled;
159 menuData.sensitive = data.enabled;
148− menuData.actionState = data.value;
149 menuData.ext = {
160 menuData.ext = {
150 'minIcon': "file:///testMinIcon",
161 'minIcon': "file:///testMinIcon",
151 'maxIcon': "file:///testMaxIcon",
162 'maxIcon': "file:///testMaxIcon",
152 'minValue': data.minValue,
163 'minValue': data.minValue,
153 'maxValue': data.maxValue
164 'maxValue': data.maxValue
166+ menuData.actionState = data.value;
156 loader.data = menuData;
168 loader.data = menuData;
157 loader.sourceComponent = factory.load(menuData);
169 loader.sourceComponent = factory.load(menuData);
@@ -163,7 +175,7 @@ Item {
163 compare(loader.item.maxIcon, "file:///testMaxIcon", "MaxIcon does not match data");
175 compare(loader.item.maxIcon, "file:///testMaxIcon", "MaxIcon does not match data");
164 compare(loader.item.minimumValue, data.minValue, "MinValue does not match data");
176 compare(loader.item.minimumValue, data.minValue, "MinValue does not match data");
165 compare(loader.item.maximumValue, data.maxValue, "MaxValue does not match data");
177 compare(loader.item.maximumValue, data.maxValue, "MaxValue does not match data");
166− compare(loader.item.value, data.value, "Calue does not match data");
178+ compare(loader.item.value, data.value, "Value does not match data");
167 compare(loader.item.enabled, data.enabled, "Enabled does not match data");
179 compare(loader.item.enabled, data.enabled, "Enabled does not match data");
@@ -232,7 +244,7 @@ Item {
233 function test_create_standardMenu_data() {
245 function test_create_standardMenu_data() {
235− {label: "testLabel1", enabled: true, icon: "file:///testIcon" },
247+ {label: "testLabel1", enabled: true, icon: "file:///testIcon1" },
236 {label: "testLabel2", enabled: false, icon: "file:///testIcon2"},
248 {label: "testLabel2", enabled: false, icon: "file:///testIcon2"},
@@ -253,31 +265,101 @@ Item {
253 compare(loader.item.enabled, data.enabled, "Enabled does not match data");
265 compare(loader.item.enabled, data.enabled, "Enabled does not match data");
256− function test_create_switchMenu_data() {
268+ function test_create_checkableMenu_data() {
258 {label: "testLabel1", enabled: true, checked: false },
270 {label: "testLabel1", enabled: true, checked: false },
259 {label: "testLabel2", enabled: false, checked: true },
271 {label: "testLabel2", enabled: false, checked: true },
275+ function test_create_checkableMenu(data) {
277+ menuData.label = data.label;
278+ menuData.sensitive = data.enabled;
279+ menuData.isCheck = true;
280+ menuData.isToggled = data.checked;
282+ loader.data = menuData;
283+ loader.sourceComponent = factory.load(menuData);
284+ tryCompareFunction(function() { return loader.item != undefined; }, true);
285+ compare(loader.item.objectName, "checkableMenu", "Should have created a checkable menu");
287+ compare(loader.item.text, data.label, "Label does not match data");
288+ compare(loader.item.checked, data.checked, "Checked does not match data");
289+ compare(loader.item.enabled, data.enabled, "Enabled does not match data");
292+ function test_create_switchMenu_data() {
294+ {label: "testLabel1", enabled: true, checked: false, icon: "file:///testIcon1" },
295+ {label: "testLabel2", enabled: false, checked: true, icon: "file:///testIcon2" },
263 function test_create_switchMenu(data) {
299 function test_create_switchMenu(data) {
264 menuData.type = "com.canonical.indicator.switch";
300 menuData.type = "com.canonical.indicator.switch";
265 menuData.label = data.label;
301 menuData.label = data.label;
266 menuData.sensitive = data.enabled;
302 menuData.sensitive = data.enabled;
267− menuData.icon = "file:///testIcon";
303+ menuData.icon = data.icon;
268 menuData.isToggled = data.checked;
304 menuData.isToggled = data.checked;
270 loader.data = menuData;
306 loader.data = menuData;
271 loader.sourceComponent = factory.load(menuData);
307 loader.sourceComponent = factory.load(menuData);
272 tryCompareFunction(function() { return loader.item != undefined; }, true);
308 tryCompareFunction(function() { return loader.item != undefined; }, true);
273− compare(loader.item.objectName, "switchMenu", "Should have created a standard menu");
309+ compare(loader.item.objectName, "switchMenu", "Should have created a switch menu");
275 compare(loader.item.text, data.label, "Label does not match data");
311 compare(loader.item.text, data.label, "Label does not match data");
276− compare(loader.item.icon, "file:///testIcon", "MaxIcon does not match data");
312+ compare(loader.item.iconSource, data.icon, "Icon does not match data");
277 compare(loader.item.checked, data.checked, "Checked does not match data");
313 compare(loader.item.checked, data.checked, "Checked does not match data");
278 compare(loader.item.enabled, data.enabled, "Enabled does not match data");
314 compare(loader.item.enabled, data.enabled, "Enabled does not match data");
317+ function test_create_alarmMenu_data() {
319+ {label: "testLabel1", enabled: true, icon: "file:///testIcon1" },
320+ {label: "testLabel2", enabled: false, icon: "file:///testIcon2" },
324+ function test_create_alarmMenu(data) {
325+ menuData.type = "com.canonical.indicator.alarm";
326+ menuData.label = data.label;
327+ menuData.sensitive = data.enabled;
328+ menuData.icon = data.icon;
330+ loader.data = menuData;
331+ loader.sourceComponent = factory.load(menuData);
332+ tryCompareFunction(function() { return loader.item != undefined; }, true);
333+ compare(loader.item.objectName, "alarmMenu", "Should have created a alarm menu");
335+ compare(loader.item.text, data.label, "Label does not match data");
336+ compare(loader.item.iconSource, data.icon, "Icon does not match data");
337+ compare(loader.item.enabled, data.enabled, "Enabled does not match data");
340+ function test_create_appointmentMenu_data() {
342+ {label: "testLabel1", enabled: true, icon: "file:///testIcon1" },
343+ {label: "testLabel2", enabled: false, icon: "file:///testIcon2" },
347+ function test_create_appointmentMenu(data) {
348+ menuData.type = "com.canonical.indicator.appointment";
349+ menuData.label = data.label;
350+ menuData.sensitive = data.enabled;
351+ menuData.icon = data.icon;
353+ loader.data = menuData;
354+ loader.sourceComponent = factory.load(menuData);
355+ tryCompareFunction(function() { return loader.item != undefined; }, true);
356+ compare(loader.item.objectName, "appointmentMenu", "Should have created a appointment menu");
358+ compare(loader.item.text, data.label, "Label does not match data");
359+ compare(loader.item.iconSource, data.icon, "Icon does not match data");
360+ compare(loader.item.enabled, data.enabled, "Enabled does not match data");
281 function test_create_wifiSection_data() {
363 function test_create_wifiSection_data() {
283 {label: "testLabel1", busy: false },
365 {label: "testLabel1", busy: false },
@@ -322,7 +404,7 @@ Item {
322 tryCompareFunction(function() { return loader.item != undefined; }, true);
404 tryCompareFunction(function() { return loader.item != undefined; }, true);
323 compare(loader.item.objectName, "accessPoint", "Should have created a access point menu");
405 compare(loader.item.objectName, "accessPoint", "Should have created a access point menu");
325− compare(loader.item.label, data.label, "Label does not match data");
407+ compare(loader.item.text, data.label, "Label does not match data");
326 compare(loader.item.strengthAction.name, "action::strength", "Strength action incorrect");
408 compare(loader.item.strengthAction.name, "action::strength", "Strength action incorrect");
327 compare(loader.item.secure, data.secure, "Secure does not match data");
409 compare(loader.item.secure, data.secure, "Secure does not match data");
328 compare(loader.item.adHoc, data.adHoc, "AdHoc does not match data");
410 compare(loader.item.adHoc, data.adHoc, "AdHoc does not match data");
@@ -341,8 +423,8 @@ Item {
342 function test_create_groupedMessage_data() {
424 function test_create_groupedMessage_data() {
344− {label: "testLabel1", enabled: true, count: "5", appIcon: "file:///testIcon" },
426+ {label: "testLabel1", enabled: true, count: "5", icon: "file:///testIcon" },
345− {label: "testLabel2", enabled: false, count: "10", appIcon: "file:///testIcon2" },
427+ {label: "testLabel2", enabled: false, count: "10", icon: "file:///testIcon2" },
@@ -350,8 +432,8 @@ Item {
350 menuData.type = "com.canonical.indicator.messages.sourceitem";
432 menuData.type = "com.canonical.indicator.messages.sourceitem";
351 menuData.label = data.label;
433 menuData.label = data.label;
352 menuData.sensitive = data.enabled;
434 menuData.sensitive = data.enabled;
353− menuData.icon = data.appIcon;
435+ menuData.icon = data.icon;
354− menuData.ext = { 'icon': data.appIcon };
436+ menuData.ext = { 'icon': data.icon };
355 menuData.actionState = [data.count];
437 menuData.actionState = [data.count];
356 menuData.isToggled = true;
438 menuData.isToggled = true;
@@ -360,9 +442,103 @@ Item {
360 tryCompareFunction(function() { return loader.item != undefined; }, true);
442 tryCompareFunction(function() { return loader.item != undefined; }, true);
361 compare(loader.item.objectName, "groupedMessage", "Should have created a group message menu");
443 compare(loader.item.objectName, "groupedMessage", "Should have created a group message menu");
363− compare(loader.item.title, data.label, "Label does not match data");
445+ compare(loader.item.text, data.label, "Label does not match data");
364 compare(loader.item.count, data.count, "Count does not match data");
446 compare(loader.item.count, data.count, "Count does not match data");
365− compare(loader.item.appIcon, data.appIcon, "App Icon does not match data");
447+ compare(loader.item.iconSource, data.icon, "Icon does not match data");
448+ compare(loader.item.enabled, data.enabled, "Enabled does not match data");
451+ function test_create_mediaPayerMenu_data() {
454+ icon: "file:://icon1",
455+ albumArt: "file:://art1",
464+ icon: "file:://icon2",
465+ albumArt: "file:://art2",
476+ function test_create_mediaPayerMenu(data) {
477+ menuData.type = "com.canonical.unity.media-player";
478+ menuData.label = data.label;
479+ menuData.sensitive = data.enabled;
480+ menuData.icon = data.icon;
481+ menuData.actionState = {
482+ 'art-url': data.albumArt,
484+ 'artist': data.artist,
485+ 'album': data.album,
486+ 'running': data.running,
487+ 'state': data.state,
490+ loader.data = menuData;
491+ loader.sourceComponent = factory.load(menuData);
492+ tryCompareFunction(function() { return loader.item != undefined; }, true);
493+ compare(loader.item.objectName, "mediaPayerMenu", "Should have created a media player menu");
495+ compare(loader.item.playerIcon, data.icon, "Album art does not match data");
496+ compare(loader.item.playerName, data.label, "Album art does not match data");
497+ compare(loader.item.albumArt, data.albumArt, "Album art does not match data");
498+ compare(loader.item.song, data.song, "Song does not match data");
499+ compare(loader.item.artist, data.artist, "Artist does not match data");
500+ compare(loader.item.album, data.album, "Album does not match data");
501+ compare(loader.item.running, data.running, "Running does not match data");
502+ compare(loader.item.state, data.state, "State does not match data");
503+ compare(loader.item.enabled, data.enabled, "Enabled does not match data");
506+ function test_create_playbackItemMenu_data() {
508+ playAction: "action::play",
509+ nextAction: "action::next",
510+ previousAction: "action::previous",
513+ playAction: "action::play2",
514+ nextAction: "action::next2",
515+ previousAction: "action::previous2",
521+ function test_create_playbackItemMenu(data) {
522+ menuData.type = "com.canonical.unity.playback-item";
523+ menuData.sensitive = data.enabled;
525+ 'xCanonicalPlayAction': data.playAction,
526+ 'xCanonicalNextAction': data.nextAction,
527+ 'xCanonicalPreviousAction': data.previousAction
530+ loader.data = menuData;
531+ loader.sourceComponent = factory.load(menuData);
532+ tryCompareFunction(function() { return loader.item != undefined; }, true);
533+ compare(loader.item.objectName, "playbackItemMenu", "Should have created a playback menu");
535+ compare(loader.item.playing, false, "Playing does not match data");
536+ compare(loader.item.playAction.name, data.playAction, "Play action incorrect");
537+ compare(loader.item.nextAction.name, data.nextAction, "Next action incorrect");
538+ compare(loader.item.previousAction.name, data.previousAction, "Previous action incorrect");
539+ compare(loader.item.canPlay, false, "CanPlay should be false");
540+ compare(loader.item.canGoNext, false, "CanGoNext should be false");
541+ compare(loader.item.canGoPrevious, false, "CanGoPrevious should be false");
366 compare(loader.item.enabled, data.enabled, "Enabled does not match data");
542 compare(loader.item.enabled, data.enabled, "Enabled does not match data");