@@ -93,6 +93,57 @@ Item {
9393 onClicked: launcherLoader.item.inverted = !launcherLoader.item.inverted
9494 Layout.fillWidth: true
9595 }
96+
97+ Row {
98+ spacing: units.gu(1)
99+
100+ Button {
101+ text: "35% bar"
102+ onClicked: LauncherModel.setProgress(LauncherModel.get(parseInt(appIdEntryBar.displayText)).appId, 35)
103+ Layout.fillWidth: true
104+ }
105+
106+ TextArea {
107+ id: appIdEntryBar
108+ anchors.verticalCenter: parent.verticalCenter
109+ width: units.gu(4)
110+ height: units.gu(4)
111+ autoSize: true
112+ text: "2"
113+ maximumLineCount: 1
114+ }
115+
116+ Button {
117+ text: "no bar"
118+ onClicked: LauncherModel.setProgress(LauncherModel.get(parseInt(appIdEntryBar.displayText)).appId, -1)
119+ Layout.fillWidth: true
120+ }
121+ }
122+
123+ Row {
124+ spacing: units.gu(1)
125+
126+ Button {
127+ text: "set alert"
128+ onClicked: LauncherModel.setAlerting(LauncherModel.get(parseInt(appIdEntryAlert.displayText)).appId, true)
129+ }
130+
131+ TextArea {
132+ id: appIdEntryAlert
133+ anchors.verticalCenter: parent.verticalCenter
134+ width: units.gu(5)
135+ height: units.gu(4)
136+ autoSize: true
137+ text: "2"
138+ maximumLineCount: 1
139+ Layout.fillWidth: true
140+ }
141+
142+ Button {
143+ text: "unset alert"
144+ onClicked: LauncherModel.setAlerting(LauncherModel.get(parseInt(appIdEntryAlert.displayText)).appId, false)
145+ }
146+ }
96147 }
97148
98149 SignalSpy {
@@ -169,6 +220,16 @@ Item {
169220 tryCompare(panel, "x", -panel.width, 1000);
170221 }
171222
223+ function waitForWiggleToStart(appIcon) {
224+ verify(appIcon != undefined)
225+ tryCompare(appIcon, "wiggling", true, 1000, "wiggle-anim should not be in stopped state")
226+ }
227+
228+ function waitForWiggleToStop(appIcon) {
229+ verify(appIcon != undefined)
230+ tryCompare(appIcon, "wiggling", false, 1000, "wiggle-anim should not be in running state")
231+ }
232+
172233 function positionLauncherListAtBeginning() {
173234 var listView = testCase.findChild(launcherLoader.item, "launcherListView");
174235 listView.contentY = -listView.topMargin;
@@ -658,5 +719,125 @@ Item {
658719 tryCompare(launcher, "state", "", 1000, "Launcher didn't hide after moving mouse away from it");
659720 waitUntilLauncherDisappears();
660721 }
722+
723+ function test_progressChangeViaModel() {
724+ dragLauncherIntoView();
725+ var item = findChild(launcher, "launcherDelegate0")
726+ verify(item != undefined)
727+ LauncherModel.setProgress(LauncherModel.get(0).appId, -1)
728+ compare(findChild(item, "progressOverlay").visible, false)
729+ LauncherModel.setProgress(LauncherModel.get(0).appId, 20)
730+ compare(findChild(item, "progressOverlay").visible, true)
731+ LauncherModel.setProgress(LauncherModel.get(0).appId, 0)
732+ }
733+
734+ function test_alertPeekingIcon() {
735+ var listView = findChild(launcher, "launcherListView")
736+ verify(listView != undefined)
737+ LauncherModel.setAlerting(LauncherModel.get(5).appId, true)
738+ tryCompare(listView, "peekingIndex", 5, 1000, "Wrong appId set as peeking-index")
739+ LauncherModel.setAlerting(LauncherModel.get(5).appId, false)
740+ tryCompare(listView, "peekingIndex", -1, 1000, "peeking-index should be -1")
741+ }
742+
743+ function test_alertHidingIcon() {
744+ var listView = findChild(launcher, "launcherListView")
745+ verify(listView != undefined)
746+ var appIcon6 = findChild(launcher, "launcherDelegate6")
747+ verify(appIcon6 != undefined)
748+ LauncherModel.setAlerting(LauncherModel.get(6).appId, true)
749+ waitForWiggleToStart(appIcon6)
750+ LauncherModel.setAlerting(LauncherModel.get(6).appId, false)
751+ waitForWiggleToStop(appIcon6)
752+ tryCompare(appIcon6, "x", 0, 1000, "x-value of appId #6 should not be non-zero")
753+ waitForRendering(listView)
754+ }
755+
756+ function test_alertIgnoreFocusedApp() {
757+ LauncherModel.setAlerting(LauncherModel.get(0).appId, true)
758+ compare(LauncherModel.get(0).alerting, false, "Focused app should not have the alert-state set")
759+ }
760+
761+ function test_alertOnlyOnePeekingIcon() {
762+ var listView = findChild(launcher, "launcherListView")
763+ verify(listView != undefined)
764+ LauncherModel.setAlerting(LauncherModel.get(3).appId, true)
765+ LauncherModel.setAlerting(LauncherModel.get(1).appId, true)
766+ LauncherModel.setAlerting(LauncherModel.get(5).appId, true)
767+ tryCompare(listView, "peekingIndex", 3, 1000, "Wrong appId set as peeking-index")
768+ LauncherModel.setAlerting(LauncherModel.get(1).appId, false)
769+ LauncherModel.setAlerting(LauncherModel.get(3).appId, false)
770+ LauncherModel.setAlerting(LauncherModel.get(5).appId, false)
771+ tryCompare(listView, "peekingIndex", -1, 1000, "peeking-index should be -1")
772+ waitForRendering(listView)
773+ }
774+
775+ function test_alertMultipleApps() {
776+ LauncherModel.setAlerting(LauncherModel.get(1).appId, true)
777+ LauncherModel.setAlerting(LauncherModel.get(3).appId, true)
778+ LauncherModel.setAlerting(LauncherModel.get(5).appId, true)
779+ LauncherModel.setAlerting(LauncherModel.get(7).appId, true)
780+ compare(LauncherModel.get(1).alerting, true, "Alert-state of appId #1 should not be false")
781+ compare(LauncherModel.get(3).alerting, true, "Alert-state of appId #3 should not be false")
782+ compare(LauncherModel.get(5).alerting, true, "Alert-state of appId #5 should not be false")
783+ compare(LauncherModel.get(7).alerting, true, "Alert-state of appId #7 should not be false")
784+ LauncherModel.setAlerting(LauncherModel.get(1).appId, false)
785+ LauncherModel.setAlerting(LauncherModel.get(3).appId, false)
786+ LauncherModel.setAlerting(LauncherModel.get(5).appId, false)
787+ LauncherModel.setAlerting(LauncherModel.get(7).appId, false)
788+ compare(LauncherModel.get(1).alerting, false, "Alert-state of appId #1 should not be true")
789+ compare(LauncherModel.get(3).alerting, false, "Alert-state of appId #1 should not be true")
790+ compare(LauncherModel.get(5).alerting, false, "Alert-state of appId #1 should not be true")
791+ compare(LauncherModel.get(7).alerting, false, "Alert-state of appId #1 should not be true")
792+ }
793+
794+ function test_alertMoveIconIntoView() {
795+ dragLauncherIntoView();
796+ var appIcon1 = findChild(launcher, "launcherDelegate1");
797+ var appIcon7 = findChild(launcher, "launcherDelegate7");
798+ LauncherModel.setAlerting(LauncherModel.get(1).appId, true)
799+ tryCompare(appIcon1, "angle", 0, 1000, "angle of appId #1 should not be non-zero")
800+ waitForWiggleToStart(appIcon1)
801+ LauncherModel.setAlerting(LauncherModel.get(7).appId, true)
802+ tryCompare(appIcon7, "angle", 0, 1000, "angle of appId #7 should not be non-zero")
803+ waitForWiggleToStart(appIcon7)
804+ LauncherModel.setAlerting(LauncherModel.get(1).appId, false)
805+ waitForWiggleToStop(appIcon1)
806+ LauncherModel.setAlerting(LauncherModel.get(7).appId, false)
807+ waitForWiggleToStop(appIcon7)
808+ }
809+
810+ function test_alertWigglePeekDrag() {
811+ var appIcon5 = findChild(launcher, "launcherDelegate5");
812+ var listView = findChild(launcher, "launcherListView")
813+ verify(listView != undefined)
814+ LauncherModel.setAlerting(LauncherModel.get(5).appId, true)
815+ tryCompare(listView, "peekingIndex", 5, 1000, "Wrong appId set as peeking-index")
816+ waitForWiggleToStart(appIcon5)
817+ tryCompare(appIcon5, "wiggling", true, 1000, "appId #6 should not be still")
818+ dragLauncherIntoView();
819+ tryCompare(listView, "peekingIndex", -1, 1000, "peeking-index should be -1")
820+ LauncherModel.setAlerting(LauncherModel.get(5).appId, false)
821+ waitForWiggleToStop(appIcon5)
822+ tryCompare(appIcon5, "wiggling", false, 1000, "appId #1 should not be wiggling")
823+ }
824+
825+ function test_alertViaCountAndCountVisible() {
826+ dragLauncherIntoView();
827+ var appIcon1 = findChild(launcher, "launcherDelegate1")
828+ var oldCount = LauncherModel.get(1).count
829+ LauncherModel.setCount(LauncherModel.get(1).appId, 42)
830+ tryCompare(appIcon1, "wiggling", false, 1000, "appId #1 should be still")
831+ LauncherModel.setCountVisible(LauncherModel.get(1).appId, 1)
832+ tryCompare(appIcon1, "wiggling", true, 1000, "appId #1 should not be still")
833+ LauncherModel.setAlerting(LauncherModel.get(1).appId, false)
834+ waitForWiggleToStop(appIcon1)
835+ LauncherModel.setCount(LauncherModel.get(1).appId, 4711)
836+ tryCompare(appIcon1, "wiggling", true, 1000, "appId #1 should not be still")
837+ LauncherModel.setAlerting(LauncherModel.get(1).appId, false)
838+ waitForWiggleToStop(appIcon1)
839+ LauncherModel.setCountVisible(LauncherModel.get(1).appId, 0)
840+ LauncherModel.setCount(LauncherModel.get(1).appId, oldCount)
841+ }
661842 }
662843}