on xenial help sign in
Add more tests and fix review comments.
8fa3cc4Michał Sawicz
qml/Dash/Previews/Preview.qml+4
@@ -72,6 +72,8 @@ Item {
72
72
73 model: previewModel
73 model: previewModel
74
74
75+ Behavior on contentY { UbuntuNumberAnimation { } }
76+
75 delegate: PreviewWidgetFactory {
77 delegate: PreviewWidgetFactory {
76 widgetId: model.widgetId
78 widgetId: model.widgetId
77 widgetType: model.type
79 widgetType: model.type
@@ -85,6 +87,8 @@ Item {
85 }
87 }
86
88
87 onFocusChanged: if (focus) column.positionViewAtIndex(index, ListView.Contain)
89 onFocusChanged: if (focus) column.positionViewAtIndex(index, ListView.Contain)
90+
91+ onHeightChanged: if (focus) column.positionViewAtIndex(index, ListView.Contain)
88 }
92 }
89 }
93 }
90 }
94 }
qml/Dash/Previews/PreviewWidgetFactory.qml+1−3
@@ -16,8 +16,6 @@
16 */
16 */
17
17
18import QtQuick 2.0
18import QtQuick 2.0
19−import Ubuntu.Components 0.1
20−import Unity 0.1
21
19
22//! \brief This component loads the widgets based on widgetData["type"].
20//! \brief This component loads the widgets based on widgetData["type"].
23
21
@@ -40,7 +38,7 @@ Loader {
40 signal triggered(string widgetId, string actionId, var data)
38 signal triggered(string widgetId, string actionId, var data)
41
39
42 source: {
40 source: {
43− switch (type) {
41+ switch (widgetType) {
44 case "audio": return "PreviewAudioPlayback.qml";
42 case "audio": return "PreviewAudioPlayback.qml";
45 case "text": return "PreviewTextSummary.qml";
43 case "text": return "PreviewTextSummary.qml";
46 case "gallery": return "PreviewImageGallery.qml";
44 case "gallery": return "PreviewImageGallery.qml";
tests/mocks/Unity/scopes-ng/fake_preview_model.cpp+5−6
@@ -51,17 +51,16 @@ void PreviewModel::populateWidgets()
51{
51{
52 beginResetModel();
52 beginResetModel();
53 m_previewWidgets.clear();
53 m_previewWidgets.clear();
54− endResetModel();
55− beginInsertRows(QModelIndex(), 0, 4);
56− for (int i = 0; i <= 5; ++i) {
54+ for (int i = 0; i <= 20; i++) {
57 // FIXME: the API will expose nicer getters soon, use those!
55 // FIXME: the API will expose nicer getters soon, use those!
58 QVariantMap attributes;
56 QVariantMap attributes;
59− attributes["text"] = QVariant::fromValue(QString("Text"));
57+ attributes["text"] = QVariant::fromValue(QString("Widget %1").arg(i));
60− attributes["title"] = QVariant::fromValue(QString("Title"));
58+ attributes["title"] = QVariant::fromValue(QString("Title %1").arg(i));
61 PreviewData* preview_data = new PreviewData(QString("widget-%1").arg(i), QString("text"), attributes);
59 PreviewData* preview_data = new PreviewData(QString("widget-%1").arg(i), QString("text"), attributes);
62 m_previewWidgets.append(QSharedPointer<PreviewData>(preview_data));
60 m_previewWidgets.append(QSharedPointer<PreviewData>(preview_data));
63 }
61 }
64− endInsertRows();
62+ endResetModel();
63+
65}
64}
66
65
67void PreviewModel::triggered(QString widgetId, QString actionId, QVariantMap data)
66void PreviewModel::triggered(QString widgetId, QString actionId, QVariantMap data)
tests/qmltests/Dash/Previews/tst_Preview.qml+26
@@ -57,6 +57,7 @@ Rectangle {
57 when: windowShown
57 when: windowShown
58
58
59 function test_triggered() {
59 function test_triggered() {
60+ waitForRendering(preview);
60 var widget = findChild(preview, "widget-3");
61 var widget = findChild(preview, "widget-3");
61
62
62 compare(typeof widget, "object", "Could not find the widget object.");
63 compare(typeof widget, "object", "Could not find the widget object.");
@@ -73,6 +74,7 @@ Rectangle {
73 }
74 }
74
75
75 function test_showProcessing() {
76 function test_showProcessing() {
77+ waitForRendering(preview);
76 var widget = findChild(preview, "widget-3");
78 var widget = findChild(preview, "widget-3");
77 widget.triggered(widget.widgetId, "mockAction", {"mock": "data"});
79 widget.triggered(widget.widgetId, "mockAction", {"mock": "data"});
78
80
@@ -84,5 +86,29 @@ Rectangle {
84
86
85 tryCompare(processing, "enabled", false);
87 tryCompare(processing, "enabled", false);
86 }
88 }
89+
90+ function test_containOnFocus() {
91+ waitForRendering(preview);
92+ var widget = findChild(preview, "widget-13");
93+
94+ widget.forceActiveFocus();
95+
96+ var bottomLeft = preview.mapFromItem(widget, 0, widget.height);
97+
98+ tryCompareFunction(function () { return bottomLeft.y <= preview.height }, true);
99+ }
100+
101+ function test_containOnGrow() {
102+ waitForRendering(preview);
103+ var widget = findChild(preview, "widget-13");
104+
105+ widget.forceActiveFocus();
106+ widget.height += 200;
107+
108+ tryCompareFunction(function () {
109+ var bottomLeft = preview.mapFromItem(widget, 0, widget.height);
110+ return bottomLeft.y <= preview.height
111+ }, true);
112+ }
87 }
113 }
88}
114}