on xenial help sign in
Add test that ensures correct widget mapping.
55dc2ddMichał Sawicz
qml/Dash/Previews/PreviewWidgetFactory.qml+5−1
@@ -37,7 +37,10 @@ Loader {
37 //! Triggered signal forwarded from the widgets.
37 //! Triggered signal forwarded from the widgets.
38 signal triggered(string widgetId, string actionId, var data)
38 signal triggered(string widgetId, string actionId, var data)
39
39
40− source: {
40+ source: widgetSource
41+
42+ //! \cond private
43+ property url widgetSource: {
41 switch (widgetType) {
44 switch (widgetType) {
42 case "audio": return "PreviewAudioPlayback.qml";
45 case "audio": return "PreviewAudioPlayback.qml";
43 case "text": return "PreviewTextSummary.qml";
46 case "text": return "PreviewTextSummary.qml";
@@ -46,6 +49,7 @@ Loader {
46 default: return "";
49 default: return "";
47 }
50 }
48 }
51 }
52+ //! \endcond
49
53
50 onLoaded: {
54 onLoaded: {
51 item.widgetId = Qt.binding(function() { return root.widgetId } )
55 item.widgetId = Qt.binding(function() { return root.widgetId } )
tests/qmltests/Dash/Previews/tst_PreviewWidgetFactory.qml+26−8
@@ -31,12 +31,6 @@ Rectangle {
31 left: parent.left
31 left: parent.left
32 right: parent.right
32 right: parent.right
33 }
33 }
34−
35− source: Qt.resolvedUrl("MockPreviewWidget.qml")
36−
37− widgetData: {
38− "type": "mock"
39− }
40 }
34 }
41
35
42 SignalSpy {
36 SignalSpy {
@@ -51,15 +45,23 @@ Rectangle {
51
45
52 property Item mockWidget: findChild(factory, "mockPreviewWidget")
46 property Item mockWidget: findChild(factory, "mockPreviewWidget")
53
47
54− function init() {
48+ function cleanup() {
55− verify(typeof mockWidget === "object", "Could not find the mock preview widget.");
49+ factory.source = Qt.binding(function() { return factory.widgetSource });
56 }
50 }
57
51
58 function test_previewData() {
52 function test_previewData() {
53+ factory.source = Qt.resolvedUrl("MockPreviewWidget.qml");
54+
55+ verify(typeof mockWidget === "object", "Could not find the mock preview widget.");
56+
59 tryCompare(mockWidget, "widgetData", factory.widgetData);
57 tryCompare(mockWidget, "widgetData", factory.widgetData);
60 }
58 }
61
59
62 function test_triggered() {
60 function test_triggered() {
61+ factory.source = Qt.resolvedUrl("MockPreviewWidget.qml");
62+
63+ verify(typeof mockWidget === "object", "Could not find the mock preview widget.");
64+
63 mockWidget.trigger();
65 mockWidget.trigger();
64
66
65 triggeredSpy.wait();
67 triggeredSpy.wait();
@@ -70,5 +72,21 @@ Rectangle {
70 compare(args[1], "mockAction", "Action id not passed correctly.");
72 compare(args[1], "mockAction", "Action id not passed correctly.");
71 compare(args[2]["mock"], "data", "Data not passed correctly.");
73 compare(args[2]["mock"], "data", "Data not passed correctly.");
72 }
74 }
75+
76+ function test_mapping_data() {
77+ return [
78+ { tag: "Audio", type: "audio", source: "PreviewAudioPlayback.qml" },
79+ { tag: "Text", type: "text", source: "PreviewTextSummary.qml" },
80+ { tag: "Gallery", type: "gallery", source: "PreviewImageGallery.qml" },
81+ { tag: "Actions", type: "actions", source: "PreviewActions.qml" },
82+ ];
83+ }
84+
85+ function test_mapping(data) {
86+ factory.widgetData = { type: data.type };
87+ factory.widgetType = data.type;
88+
89+ verify(("" + factory.source).indexOf(data.source) != -1);
90+ }
73 }
91 }
74}
92}