@@ -53,6 +53,21 @@ Rectangle {
53 widgetId: "previewRatingInput"
53 widgetId: "previewRatingInput"
57+ id: previewRatingInputLoader
61+ top: previewRatingInput.bottom
62+ topMargin: units.gu(2)
65+ sourceComponent: PreviewRatingInput {
66+ widgetData: widgetDataBoth
67+ widgetId: "previewRatingInputLoader"
56 SignalSpy {
71 SignalSpy {
58 signalName: "triggered"
73 signalName: "triggered"
@@ -210,5 +225,22 @@ Rectangle {
210 compare(args[2]["review"], data.triggeredData["review"]);
225 compare(args[2]["review"], data.triggeredData["review"]);
211 verify(args[2]["author"] !== undefined); // Just verifying it exists now
226 verify(args[2]["author"] !== undefined); // Just verifying it exists now
229+ function test_singleton() {
230+ var ratingLoader = findChild(previewRatingInputLoader, "rating");
231+ var reviewTextAreaLoader = findChild(previewRatingInputLoader, "reviewTextArea");
233+ ratingLoader.value = 3;
234+ reviewTextAreaLoader.text = "singleton test text";
236+ // Simulate widget being destroyed and recreated
237+ previewRatingInputLoader.active = false;
238+ previewRatingInputLoader.active = true;
240+ ratingLoader = findChild(previewRatingInputLoader, "rating");
241+ reviewTextAreaLoader = findChild(previewRatingInputLoader, "reviewTextArea");
242+ tryCompare(ratingLoader, "value", 3);
243+ tryCompare(reviewTextAreaLoader, "text", "singleton test text");