on xenial help sign in
Refactor tst_SingleGreeter
6f67c3fDaniel d'Andrada
tests/qmltests/Greeter/tst_SingleGreeter.qml+40−26
@@ -27,41 +27,45 @@ Item {
27 width: units.gu(60)
27 width: units.gu(60)
28 height: units.gu(80)
28 height: units.gu(80)
29
29
30− Greeter {
30+ Loader {
31− id: greeter
31+ id: greeterLoader
32− width: parent.width
32+ anchors.fill: parent
33− height: parent.height
34− x: 0; y: 0
35
33
36− property int minX: 0
34+ property bool itemDestroyed: false
37
35
36+ sourceComponent: Component {
37+ Greeter {
38+ anchors.fill: greeterLoader
39+
40+ property int minX: 0
41+
38− onXChanged: {
42+ onXChanged: {
39− if (x < minX) {
43+ if (x < minX) {
40− minX = x;
44+ minX = x;
41− }
42− }
45+ }
43− }
46+ }
44
47
45− Component {
48+ Component.onDestruction: {
46− id: greeterComponent
49+ greeterLoader.itemDestroyed = true;
47− Greeter {
50+ }
48− SignalSpy {
51+ SignalSpy {
49− objectName: "selectedSpy"
52+ objectName: "selectedSpy"
50− target: parent
53+ target: parent
51− signalName: "selected"
54+ signalName: "selected"
55+ }
52 }
56 }
53 }
57 }
54 }
58 }
55
59
56 SignalSpy {
60 SignalSpy {
57 id: unlockSpy
61 id: unlockSpy
58− target: greeter
62+ target: greeterLoader.item
59 signalName: "unlocked"
63 signalName: "unlocked"
60 }
64 }
61
65
62 SignalSpy {
66 SignalSpy {
63 id: teaseSpy
67 id: teaseSpy
64− target: greeter
68+ target: greeterLoader.item
65 signalName: "tease"
69 signalName: "tease"
66 }
70 }
67
71
@@ -69,8 +73,20 @@ Item {
69 name: "SingleGreeter"
73 name: "SingleGreeter"
70 when: windowShown
74 when: windowShown
71
75
76+ property Greeter greeter: greeterLoader.item
77+
72 function cleanup() {
78 function cleanup() {
73 AccountsService.statsWelcomeScreen = true
79 AccountsService.statsWelcomeScreen = true
80+
81+ // force a reload so that we get a fresh Greeter for the next test
82+ greeterLoader.itemDestroyed = false;
83+ greeterLoader.active = false;
84+ tryCompare(greeterLoader, "itemDestroyed", true);
85+
86+ unlockSpy.clear();
87+ teaseSpy.clear();
88+
89+ greeterLoader.active = true;
74 }
90 }
75
91
76 function test_properties() {
92 function test_properties() {
@@ -103,11 +119,9 @@ Item {
103 }
119 }
104
120
105 function test_initial_selected_signal() {
121 function test_initial_selected_signal() {
106− var greeterObj = greeterComponent.createObject(this)
107− var spy = findChild(greeterObj, "selectedSpy")
122+ var selectedSpy = findChild(greeter, "selectedSpy");
108− spy.wait()
123+ selectedSpy.wait();
109− tryCompare(spy, "count", 1)
124+ tryCompare(selectedSpy, "count", 1);
110− greeterObj.destroy()
111 }
125 }
112 }
126 }
113}
127}