@@ -53,6 +53,21 @@ Rectangle {
5353 widgetId: "previewRatingInput"
5454 }
5555
56+ Loader {
57+ id: previewRatingInputLoader
58+ anchors {
59+ left: parent.left
60+ right: parent.right
61+ top: previewRatingInput.bottom
62+ topMargin: units.gu(2)
63+ }
64+
65+ sourceComponent: PreviewRatingInput {
66+ widgetData: widgetDataBoth
67+ widgetId: "previewRatingInputLoader"
68+ }
69+ }
70+
5671 SignalSpy {
5772 id: spy
5873 signalName: "triggered"
@@ -210,5 +225,22 @@ Rectangle {
210225 compare(args[2]["review"], data.triggeredData["review"]);
211226 verify(args[2]["author"] !== undefined); // Just verifying it exists now
212227 }
228+
229+ function test_singleton() {
230+ var ratingLoader = findChild(previewRatingInputLoader, "rating");
231+ var reviewTextAreaLoader = findChild(previewRatingInputLoader, "reviewTextArea");
232+
233+ ratingLoader.value = 3;
234+ reviewTextAreaLoader.text = "singleton test text";
235+
236+ // Simulate widget being destroyed and recreated
237+ previewRatingInputLoader.active = false;
238+ previewRatingInputLoader.active = true;
239+
240+ ratingLoader = findChild(previewRatingInputLoader, "rating");
241+ reviewTextAreaLoader = findChild(previewRatingInputLoader, "reviewTextArea");
242+ tryCompare(ratingLoader, "value", 3);
243+ tryCompare(reviewTextAreaLoader, "text", "singleton test text");
244+ }
213245 }
214246}