on xenial help sign in
Add tests
a4cff5bDaniel d'Andrada
tests/mocks/Unity/Application/MirSurfaceItem.cpp+6
@@ -47,6 +47,12 @@ MirSurfaceItem::MirSurfaceItem(const QString& name,
47{
47{
48 qDebug() << "MirSurfaceItem::MirSurfaceItem() " << this->name();
48 qDebug() << "MirSurfaceItem::MirSurfaceItem() " << this->name();
49
49
50+ setAcceptedMouseButtons(Qt::LeftButton | Qt::MiddleButton | Qt::RightButton |
51+ Qt::ExtraButton1 | Qt::ExtraButton2 | Qt::ExtraButton3 | Qt::ExtraButton4 |
52+ Qt::ExtraButton5 | Qt::ExtraButton6 | Qt::ExtraButton7 | Qt::ExtraButton8 |
53+ Qt::ExtraButton9 | Qt::ExtraButton10 | Qt::ExtraButton11 |
54+ Qt::ExtraButton12 | Qt::ExtraButton13);
55+
50 QQmlEngine::setObjectOwnership(this, QQmlEngine::CppOwnership);
56 QQmlEngine::setObjectOwnership(this, QQmlEngine::CppOwnership);
51
57
52 connect(this, &QQuickItem::focusChanged,
58 connect(this, &QQuickItem::focusChanged,
tests/mocks/Unity/Application/MirSurfaceItem.h+5
@@ -104,6 +104,11 @@ Q_SIGNALS:
104protected:
104protected:
105 void touchEvent(QTouchEvent * event) override;
105 void touchEvent(QTouchEvent * event) override;
106
106
107+ // becaue the default implementation ignores the events
108+ void mousePressEvent(QMouseEvent *) override {}
109+ void mouseMoveEvent(QMouseEvent *) override {}
110+ void mouseReleaseEvent(QMouseEvent *) override {}
111+
107private Q_SLOTS:
112private Q_SLOTS:
108 void onFocusChanged();
113 void onFocusChanged();
109 void onComponentStatusChanged(QQmlComponent::Status status);
114 void onComponentStatusChanged(QQmlComponent::Status status);
tests/qmltests/Stages/tst_SurfaceContainer.qml+19
@@ -92,6 +92,7 @@ Rectangle {
92 CheckBox {id: interactiveCheckbox; checked: true; }
92 CheckBox {id: interactiveCheckbox; checked: true; }
93 Label { text: "interactive" }
93 Label { text: "interactive" }
94 }
94 }
95+ MouseTouchEmulationCheckbox {}
95 }
96 }
96 }
97 }
97
98
@@ -168,5 +169,23 @@ Rectangle {
168 compare(surfaceContainer.surface.touchPressCount, 1)
169 compare(surfaceContainer.surface.touchPressCount, 1)
169 compare(surfaceContainer.surface.touchReleaseCount, 1);
170 compare(surfaceContainer.surface.touchReleaseCount, 1);
170 }
171 }
172+
173+ function test_surfaceGetsActiveFocusOnMousePress() {
174+ surfaceCheckbox.checked = true;
175+ verify(surfaceContainer.surface !== null);
176+
177+ compare(surfaceContainer.surface.activeFocus, false);
178+ mouseClick(surfaceContainer);
179+ compare(surfaceContainer.surface.activeFocus, true);
180+ }
181+
182+ function test_surfaceGetsActiveFocusOnTap() {
183+ surfaceCheckbox.checked = true;
184+ verify(surfaceContainer.surface !== null);
185+
186+ compare(surfaceContainer.surface.activeFocus, false);
187+ tap(surfaceContainer);
188+ compare(surfaceContainer.surface.activeFocus, true);
189+ }
171 }
190 }
172}
191}