on xenial help sign in
Add test that ensures correct widget mapping.
commit55dc2dd12661108741b48466e9789436e46daf44 authorMichał Sawicz <michal.sawicz@canonical.com> dateFri 7 Feb 2014, 10:58 (13 years ago) parentae18247
2 files changed+31−9
qml/Dash/Previews/PreviewWidgetFactory.qml+5−1 tests/qmltests/Dash/Previews/tst_PreviewWidgetFactory.qml+26−8
qml/Dash/Previews/PreviewWidgetFactory.qml+5−1
@@ -37,7 +37,10 @@ Loader {
3737 //! Triggered signal forwarded from the widgets.
3838 signal triggered(string widgetId, string actionId, var data)
3939
40− source: {
40+ source: widgetSource
41+
42+ //! \cond private
43+ property url widgetSource: {
4144 switch (widgetType) {
4245 case "audio": return "PreviewAudioPlayback.qml";
4346 case "text": return "PreviewTextSummary.qml";
@@ -46,6 +49,7 @@ Loader {
4649 default: return "";
4750 }
4851 }
52+ //! \endcond
4953
5054 onLoaded: {
5155 item.widgetId = Qt.binding(function() { return root.widgetId } )
tests/qmltests/Dash/Previews/tst_PreviewWidgetFactory.qml+26−8
@@ -31,12 +31,6 @@ Rectangle {
3131 left: parent.left
3232 right: parent.right
3333 }
34−
35− source: Qt.resolvedUrl("MockPreviewWidget.qml")
36−
37− widgetData: {
38− "type": "mock"
39− }
4034 }
4135
4236 SignalSpy {
@@ -51,15 +45,23 @@ Rectangle {
5145
5246 property Item mockWidget: findChild(factory, "mockPreviewWidget")
5347
54− function init() {
55− verify(typeof mockWidget === "object", "Could not find the mock preview widget.");
48+ function cleanup() {
49+ factory.source = Qt.binding(function() { return factory.widgetSource });
5650 }
5751
5852 function test_previewData() {
53+ factory.source = Qt.resolvedUrl("MockPreviewWidget.qml");
54+
55+ verify(typeof mockWidget === "object", "Could not find the mock preview widget.");
56+
5957 tryCompare(mockWidget, "widgetData", factory.widgetData);
6058 }
6159
6260 function test_triggered() {
61+ factory.source = Qt.resolvedUrl("MockPreviewWidget.qml");
62+
63+ verify(typeof mockWidget === "object", "Could not find the mock preview widget.");
64+
6365 mockWidget.trigger();
6466
6567 triggeredSpy.wait();
@@ -70,5 +72,21 @@ Rectangle {
7072 compare(args[1], "mockAction", "Action id not passed correctly.");
7173 compare(args[2]["mock"], "data", "Data not passed correctly.");
7274 }
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+ }
7391 }
7492}