on xenial help sign in
Fix qmluitests
commit710f89213f4ee9a4f86b91cc76faedc45073ab65 authorMichael Terry <michael.terry@canonical.com> dateFri 21 Mar 2014, 13:49 (13 years ago) parent45cab7a
6 files changed+104−114
qml/Greeter/Greeter.qml+52−53 qml/Greeter/GreeterContent.qml+1−1 qml/Greeter/Infographics.qml+3 qml/Shell.qml+2−2 tests/qmltests/Greeter/tst_Phone.qml+10−50 tests/qmltests/Greeter/tst_Tablet.qml+36−8
qml/Greeter/Greeter.qml+52−53
@@ -60,6 +60,58 @@ Showable {
6060 onRunningChanged: if (!__rightHideAnimation.running) greeter.hideAnimation = __leftHideAnimation
6161 }
6262
63+ // Bi-directional revealer
64+ DraggingArea {
65+ id: dragHandle
66+ anchors.fill: parent
67+ enabled: greeter.narrowMode || !greeter.locked
68+ orientation: Qt.Horizontal
69+ propagateComposedEvents: true
70+
71+ Component.onCompleted: {
72+ // set evaluators to baseline of dragValue == 0
73+ leftEvaluator.reset()
74+ rightEvaluator.reset()
75+ }
76+
77+ function maybeTease() {
78+ if (!greeter.locked || greeter.narrowMode)
79+ greeter.tease();
80+ }
81+
82+ onClicked: maybeTease()
83+ onDragStart: maybeTease()
84+ onPressAndHold: {} // eat event, but no need to tease, as drag will cover it
85+
86+ onDragEnd: {
87+ if (rightEvaluator.shouldAutoComplete())
88+ greeter.hideRight()
89+ else if (leftEvaluator.shouldAutoComplete())
90+ greeter.hide();
91+ else
92+ greeter.show(); // undo drag
93+ }
94+
95+ onDragValueChanged: {
96+ // dragValue is kept as a "step" value since we do this x adjusting on the fly
97+ greeter.x += dragValue
98+ }
99+
100+ EdgeDragEvaluator {
101+ id: rightEvaluator
102+ trackedPosition: dragHandle.dragValue + greeter.x
103+ maxDragDistance: parent.width
104+ direction: Direction.Rightwards
105+ }
106+
107+ EdgeDragEvaluator {
108+ id: leftEvaluator
109+ trackedPosition: dragHandle.dragValue + greeter.x
110+ maxDragDistance: parent.width
111+ direction: Direction.Leftwards
112+ }
113+ }
114+
63115 Loader {
64116 id: greeterContentLoader
65117 objectName: "greeterContentLoader"
@@ -117,59 +169,6 @@ Showable {
117169 duration: UbuntuAnimation.SleepyDuration
118170 }
119171 }
120−
121− }
122−
123− // Bi-directional revealer
124− DraggingArea {
125− id: dragHandle
126− anchors.fill: greeterContentLoader
127− enabled: greeter.narrowMode || !greeter.locked
128− orientation: Qt.Horizontal
129− propagateComposedEvents: true
130−
131− Component.onCompleted: {
132− // set evaluators to baseline of dragValue == 0
133− leftEvaluator.reset()
134− rightEvaluator.reset()
135− }
136−
137− function maybeTease() {
138− if (!greeter.locked || greeter.narrowMode)
139− greeter.tease();
140− }
141−
142− onClicked: maybeTease()
143− onDragStart: maybeTease()
144− onPressAndHold: {} // eat event, but no need to tease, as drag will cover it
145−
146− onDragEnd: {
147− if (rightEvaluator.shouldAutoComplete())
148− greeter.hideRight()
149− else if (leftEvaluator.shouldAutoComplete())
150− greeter.hide();
151− else
152− greeter.show(); // undo drag
153− }
154−
155− onDragValueChanged: {
156− // dragValue is kept as a "step" value since we do this x adjusting on the fly
157− greeter.x += dragValue
158− }
159−
160− EdgeDragEvaluator {
161− id: rightEvaluator
162− trackedPosition: dragHandle.dragValue + greeter.x
163− maxDragDistance: parent.width
164− direction: Direction.Rightwards
165− }
166−
167− EdgeDragEvaluator {
168− id: leftEvaluator
169− trackedPosition: dragHandle.dragValue + greeter.x
170− maxDragDistance: parent.width
171− direction: Direction.Leftwards
172− }
173172 }
174173
175174 // right side shadow
qml/Greeter/GreeterContent.qml+1−1
@@ -20,7 +20,7 @@ import Ubuntu.Components 0.1
2020import LightDM 0.1 as LightDM
2121import "../Components"
2222
23−MouseArea {
23+Item {
2424 id: root
2525 anchors.fill: parent
2626
qml/Greeter/Infographics.qml+3
@@ -457,5 +457,8 @@ Item {
457457 !circleGrowAnimTimer.running)
458458 infographic.model.nextDataSource()
459459 }
460+
461+ onClicked: mouse.accepted = false
462+ onPressed: mouse.accepted = false
460463 }
461464}
qml/Shell.qml+2−2
@@ -195,8 +195,8 @@ FocusScope {
195195
196196 available: !greeter.shown && !lockscreen.shown
197197 hides: [stages, launcher, panel.indicators]
198− shown: disappearingAnimationProgress !== 1.0
199− enabled: disappearingAnimationProgress === 0.0 && edgeDemo.dashEnabled
198+ shown: disappearingAnimationProgress !== 1.0 && greeter.showProgress !== 1.0
199+ enabled: disappearingAnimationProgress === 0.0 && greeter.showProgress === 0.0 && edgeDemo.dashEnabled
200200 // FIXME: unfocus all applications when going back to the dash
201201 onEnabledChanged: {
202202 if (enabled) {
tests/qmltests/Greeter/tst_Phone.qml+10−50
@@ -61,6 +61,12 @@ Item {
6161 signalName: "unlocked"
6262 }
6363
64+ SignalSpy {
65+ id: teaseSpy
66+ target: greeter
67+ signalName: "tease"
68+ }
69+
6470 UT.UnityTestCase {
6571 name: "Greeter"
6672 when: windowShown
@@ -82,56 +88,10 @@ Item {
8288 }
8389
8490 function test_teasingArea(data) {
85− tryCompare(greeter, "leftTeaserPressed", false)
86− tryCompare(greeter, "rightTeaserPressed", false)
87− mousePress(greeter, data.posX, greeter.height - units.gu(1))
88− tryCompare(greeter, "leftTeaserPressed", data.leftPressed)
89− tryCompare(greeter, "rightTeaserPressed", data.rightPressed)
90− mouseRelease(greeter, data.posX, greeter.height - units.gu(1))
91− tryCompare(greeter, "leftTeaserPressed", false)
92− tryCompare(greeter, "rightTeaserPressed", false)
93− }
94−
95− function test_teaseLockedUnlocked_data() {
96− return [
97− {tag: "unlocked", locked: false, moved: false},
98− {tag: "locked", locked: true, moved: false},
99− {tag: "moved", locked: false, moved: true}
100− ];
101− }
102−
103− function test_teaseLockedUnlocked(data) {
104− tryCompare(greeter, "rightTeaserPressed", false);
105− tryCompare(greeter, "x", 0);
106− greeter.locked = data.locked;
107−
108− // simulate greeter being in the middle of a swipe
109− if (data.moved) {
110− greeter.x = -units.gu(4);
111− tryCompare(greeter, "x", -units.gu(4));
112− }
113−
114− mouseClick(greeter, greeter.width - units.gu(5), greeter.height - units.gu(1));
115− greeter.minX = 0; // This is needed because the transition actually makes x jump once before animating
116−
117− if (!data.moved) {
118− // Check if it has been moved over by 2 GUs. Give it a 2 pixel grace area
119− // because animation duration and teaseTimer are the same duration and
120− // might cause slight offsets
121− tryCompareFunction(function() { return greeter.minX <= -units.gu(2) + 2}, true);
122− } else {
123− // waiting 100ms to make sure nothing moves
124− wait(100);
125− compare(greeter.minX, 0, "Greeter teasing not disabled even though it's locked or moving.");
126− }
127−
128− // Restore position in case we moved it for the test
129− if (data.moved) {
130− greeter.x = 0;
131− }
132−
133− // Wait until we're back to 0
134− tryCompareFunction(function() { return greeter.x;}, 0);
91+ teaseSpy.clear()
92+ mouseClick(greeter, data.posX, greeter.height - units.gu(1))
93+ teaseSpy.wait()
94+ tryCompare(teaseSpy, "count", 1)
13595 }
13696
13797 function test_statsWelcomeScreen() {
tests/qmltests/Greeter/tst_Tablet.qml+36−8
@@ -54,6 +54,12 @@ Item {
5454 signalName: "selected"
5555 }
5656
57+ SignalSpy {
58+ id: teaseSpy
59+ target: greeter
60+ signalName: "tease"
61+ }
62+
5763 UT.UnityTestCase {
5864 name: "Greeter"
5965 when: windowShown
@@ -325,14 +331,36 @@ Item {
325331 }
326332
327333 function test_teasingArea(data) {
328− tryCompare(greeter, "leftTeaserPressed", false)
329− tryCompare(greeter, "rightTeaserPressed", false)
330− mousePress(greeter, data.posX, greeter.height - units.gu(1))
331− tryCompare(greeter, "leftTeaserPressed", data.leftPressed)
332− tryCompare(greeter, "rightTeaserPressed", data.rightPressed)
333− mouseRelease(greeter, data.posX, greeter.height - units.gu(1))
334− tryCompare(greeter, "leftTeaserPressed", false)
335− tryCompare(greeter, "rightTeaserPressed", false)
334+ teaseSpy.clear()
335+ mouseClick(greeter, data.posX, greeter.height - units.gu(1))
336+ teaseSpy.wait()
337+ tryCompare(teaseSpy, "count", 1)
338+ }
339+
340+ function test_teaseLockedUnlocked_data() {
341+ return [
342+ {tag: "unlocked", locked: false, narrow: false},
343+ {tag: "locked", locked: true, narrow: false},
344+ ];
345+ }
346+
347+ function test_teaseLockedUnlocked(data) {
348+ teaseSpy.clear()
349+ greeter.locked = data.locked;
350+
351+ mouseClick(greeter, greeter.width - units.gu(5), greeter.height - units.gu(1));
352+
353+ if (!data.locked || data.narrow) {
354+ teaseSpy.wait()
355+ tryCompare(teaseSpy, "count", 1);
356+ } else {
357+ // waiting 100ms to make sure nothing happens
358+ wait(100);
359+ compare(teaseSpy.count, 0, "Greeter teasing not disabled even though it's locked.");
360+ }
361+
362+ // Reset value
363+ greeter.locked = false;
336364 }
337365
338366 function test_dbus_set_active_entry() {