@@ -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)
30− Greeter {
30+ Loader {
31− id: greeter
31+ id: greeterLoader
32− width: parent.width
32+ anchors.fill: parent
33− height: parent.height
36− property int minX: 0
34+ property bool itemDestroyed: false
36+ sourceComponent: Component {
38+ anchors.fill: greeterLoader
38− onXChanged: {
42+ onXChanged: {
39− if (x < minX) {
43+ if (x < minX) {
40− minX = x;
44+ minX = x;
45− Component {
48+ Component.onDestruction: {
46− id: greeterComponent
49+ greeterLoader.itemDestroyed = true;
48− SignalSpy {
51+ SignalSpy {
49− objectName: "selectedSpy"
52+ objectName: "selectedSpy"
50− target: parent
53+ target: parent
51− signalName: "selected"
54+ signalName: "selected"
56 SignalSpy {
60 SignalSpy {
57 id: unlockSpy
61 id: unlockSpy
58− target: greeter
62+ target: greeterLoader.item
59 signalName: "unlocked"
63 signalName: "unlocked"
62 SignalSpy {
66 SignalSpy {
63 id: teaseSpy
67 id: teaseSpy
64− target: greeter
68+ target: greeterLoader.item
65 signalName: "tease"
69 signalName: "tease"
@@ -69,8 +73,20 @@ Item {
69 name: "SingleGreeter"
73 name: "SingleGreeter"
70 when: windowShown
74 when: windowShown
76+ property Greeter greeter: greeterLoader.item
72 function cleanup() {
78 function cleanup() {
73 AccountsService.statsWelcomeScreen = true
79 AccountsService.statsWelcomeScreen = true
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);
89+ greeterLoader.active = true;
76 function test_properties() {
92 function test_properties() {
@@ -103,11 +119,9 @@ Item {
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()