Merge lp:~zsombi/ubuntu-ui-toolkit/redoSoneTests into lp:ubuntu-ui-toolkit/staging
- redoSoneTests
- Merge into staging
Status: | Merged |
---|---|
Approved by: | Cris Dywan |
Approved revision: | 1844 |
Merged at revision: | 1844 |
Proposed branch: | lp:~zsombi/ubuntu-ui-toolkit/redoSoneTests |
Merge into: | lp:ubuntu-ui-toolkit/staging |
Diff against target: |
724 lines (+132/-187) 6 files modified
src/Ubuntu/Components/plugin/plugin.cpp (+1/-1) src/Ubuntu/Components/plugin/ucabstractbutton.cpp (+2/-2) src/Ubuntu/Components/plugin/uchaptics.cpp (+6/-4) src/Ubuntu/Components/plugin/uchaptics.h (+19/-13) tests/unit_x11/tst_inversemousearea/OverlappedMouseArea.qml (+1/-0) tests/unit_x11/tst_inversemousearea/tst_inversemouseareatest.cpp (+103/-167) |
To merge this branch: | bzr merge lp:~zsombi/ubuntu-ui-toolkit/redoSoneTests |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
ubuntu-sdk-build-bot | continuous-integration | Approve | |
Cris Dywan | Approve | ||
Review via email: mp+285685@code.launchpad.net |
Commit message
Redo InverseMosueArea tests to not to use shared view for all the tests.
Description of the change
Redo InverseMosueArea tests to not to use shared view for all the tests. Reveals a HapticsProxy singleton bug causing crash.
ubuntu-sdk-build-bot (ubuntu-sdk-build-bot) wrote : | # |
ubuntu-sdk-build-bot (ubuntu-sdk-build-bot) wrote : | # |
PASSED: Continuous integration, rev:1844
https:/
Executed test runs:
None: https:/
Click here to trigger a rebuild:
https:/
ubuntu-sdk-build-bot (ubuntu-sdk-build-bot) wrote : | # |
PASSED: Continuous integration, rev:1844
https:/
Executed test runs:
None: https:/
Click here to trigger a rebuild:
https:/
ubuntu-sdk-build-bot (ubuntu-sdk-build-bot) wrote : | # |
PASSED: Continuous integration, rev:1844
https:/
Executed test runs:
None: https:/
Click here to trigger a rebuild:
https:/
ubuntu-sdk-build-bot (ubuntu-sdk-build-bot) wrote : | # |
PASSED: Continuous integration, rev:1844
https:/
Executed test runs:
SUCCESS: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
SUCCESS: https:/
None: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
Click here to trigger a rebuild:
https:/
Cris Dywan (kalikiana) wrote : | # |
Keep them coming!
ubuntu-sdk-build-bot (ubuntu-sdk-build-bot) wrote : | # |
PASSED: Continuous integration, rev:1844
https:/
Executed test runs:
None: https:/
Click here to trigger a rebuild:
https:/
ubuntu-sdk-build-bot (ubuntu-sdk-build-bot) wrote : | # |
PASSED: Continuous integration, rev:1844
https:/
Executed test runs:
None: https:/
Click here to trigger a rebuild:
https:/
ubuntu-sdk-build-bot (ubuntu-sdk-build-bot) wrote : | # |
PASSED: Continuous integration, rev:1844
https:/
Executed test runs:
None: https:/
Click here to trigger a rebuild:
https:/
ubuntu-sdk-build-bot (ubuntu-sdk-build-bot) wrote : | # |
PASSED: Continuous integration, rev:1844
https:/
Executed test runs:
None: https:/
Click here to trigger a rebuild:
https:/
Preview Diff
1 | === modified file 'src/Ubuntu/Components/plugin/plugin.cpp' |
2 | --- src/Ubuntu/Components/plugin/plugin.cpp 2016-02-08 12:47:32 +0000 |
3 | +++ src/Ubuntu/Components/plugin/plugin.cpp 2016-02-11 09:06:09 +0000 |
4 | @@ -306,7 +306,7 @@ |
5 | // allocate all context property objects prior we register them |
6 | initializeContextProperties(engine); |
7 | |
8 | - HapticsProxy::instance().setEngine(engine); |
9 | + HapticsProxy::instance(engine); |
10 | |
11 | engine->addImageProvider(QLatin1String("scaling"), new UCScalingImageProvider); |
12 | |
13 | |
14 | === modified file 'src/Ubuntu/Components/plugin/ucabstractbutton.cpp' |
15 | --- src/Ubuntu/Components/plugin/ucabstractbutton.cpp 2016-01-20 12:55:18 +0000 |
16 | +++ src/Ubuntu/Components/plugin/ucabstractbutton.cpp 2016-02-11 09:06:09 +0000 |
17 | @@ -95,7 +95,7 @@ |
18 | UCActionItem::classBegin(); |
19 | |
20 | // make sure we have the haptics set up! |
21 | - HapticsProxy::instance().initialize(); |
22 | + HapticsProxy::instance()->initialize(); |
23 | |
24 | // set up mouse area |
25 | Q_D(UCAbstractButton); |
26 | @@ -144,7 +144,7 @@ |
27 | return; |
28 | } |
29 | // play haptics |
30 | - HapticsProxy::instance().play(QVariant()); |
31 | + HapticsProxy::instance()->play(QVariant()); |
32 | onClicked(); |
33 | } |
34 | |
35 | |
36 | === modified file 'src/Ubuntu/Components/plugin/uchaptics.cpp' |
37 | --- src/Ubuntu/Components/plugin/uchaptics.cpp 2015-08-21 08:39:21 +0000 |
38 | +++ src/Ubuntu/Components/plugin/uchaptics.cpp 2016-02-11 09:06:09 +0000 |
39 | @@ -84,7 +84,7 @@ |
40 | UCHaptics::UCHaptics(QObject *parent) |
41 | : QObject(parent) |
42 | { |
43 | - connect(&HapticsProxy::instance(), &HapticsProxy::enabledChanged, |
44 | + connect(HapticsProxy::instance(), &HapticsProxy::enabledChanged, |
45 | this, &UCHaptics::enabledChanged); |
46 | } |
47 | |
48 | @@ -95,7 +95,7 @@ |
49 | */ |
50 | bool UCHaptics::enabled() const |
51 | { |
52 | - return HapticsProxy::instance().enabled(); |
53 | + return HapticsProxy::instance()->enabled(); |
54 | } |
55 | |
56 | /*! |
57 | @@ -109,7 +109,7 @@ |
58 | */ |
59 | QObject *UCHaptics::effect() const |
60 | { |
61 | - return HapticsProxy::instance().effect(); |
62 | + return HapticsProxy::instance()->effect(); |
63 | } |
64 | |
65 | /*! |
66 | @@ -130,12 +130,14 @@ |
67 | */ |
68 | void UCHaptics::play(const QVariant &customEffect) |
69 | { |
70 | - HapticsProxy::instance().play(customEffect); |
71 | + HapticsProxy::instance()->play(customEffect); |
72 | } |
73 | |
74 | /********************************************************* |
75 | * Proxy implementation |
76 | */ |
77 | +HapticsProxy *HapticsProxy::m_instance = nullptr; |
78 | + |
79 | bool HapticsProxy::enabled() |
80 | { |
81 | initialize(); |
82 | |
83 | === modified file 'src/Ubuntu/Components/plugin/uchaptics.h' |
84 | --- src/Ubuntu/Components/plugin/uchaptics.h 2015-08-20 08:10:44 +0000 |
85 | +++ src/Ubuntu/Components/plugin/uchaptics.h 2016-02-11 09:06:09 +0000 |
86 | @@ -19,6 +19,7 @@ |
87 | |
88 | #include <QtCore/QObject> |
89 | #include <QtCore/QVariant> |
90 | +#include <QtQml/QQmlEngine> |
91 | |
92 | class UCHaptics : public QObject |
93 | { |
94 | @@ -46,19 +47,23 @@ |
95 | explicit HapticsProxy(QObject *parent = 0) |
96 | : QObject(parent) |
97 | , m_proxyObject(Q_NULLPTR) |
98 | - , m_engine(Q_NULLPTR) |
99 | - { |
100 | - } |
101 | - |
102 | - static HapticsProxy &instance() |
103 | - { |
104 | - static HapticsProxy instance; |
105 | - return instance; |
106 | - } |
107 | - |
108 | - void setEngine(QQmlEngine *engine) |
109 | - { |
110 | - m_engine = engine; |
111 | + , m_engine(static_cast<QQmlEngine*>(parent)) |
112 | + { |
113 | + if (!m_engine) { |
114 | + qFatal("HaptixProxy must be a child of the QML Engine!"); |
115 | + } |
116 | + } |
117 | + ~HapticsProxy() |
118 | + { |
119 | + m_instance = Q_NULLPTR; |
120 | + } |
121 | + |
122 | + static HapticsProxy *instance(QQmlEngine *engine = Q_NULLPTR) |
123 | + { |
124 | + if (!m_instance) { |
125 | + m_instance = new HapticsProxy(engine); |
126 | + } |
127 | + return m_instance; |
128 | } |
129 | |
130 | void initialize(); |
131 | @@ -71,6 +76,7 @@ |
132 | void enabledChanged(); |
133 | |
134 | private: |
135 | + static HapticsProxy *m_instance; |
136 | QObject *m_proxyObject; |
137 | QQmlEngine *m_engine; |
138 | }; |
139 | |
140 | === modified file 'tests/unit_x11/tst_inversemousearea/OverlappedMouseArea.qml' |
141 | --- tests/unit_x11/tst_inversemousearea/OverlappedMouseArea.qml 2015-03-03 13:20:06 +0000 |
142 | +++ tests/unit_x11/tst_inversemousearea/OverlappedMouseArea.qml 2016-02-11 09:06:09 +0000 |
143 | @@ -31,6 +31,7 @@ |
144 | } |
145 | |
146 | InverseMouseArea { |
147 | + objectName: "testObject" |
148 | anchors.fill: nil |
149 | onClicked: { |
150 | color.color = "red" |
151 | |
152 | === modified file 'tests/unit_x11/tst_inversemousearea/tst_inversemouseareatest.cpp' |
153 | --- tests/unit_x11/tst_inversemousearea/tst_inversemouseareatest.cpp 2016-01-30 10:51:22 +0000 |
154 | +++ tests/unit_x11/tst_inversemousearea/tst_inversemouseareatest.cpp 2016-02-11 09:06:09 +0000 |
155 | @@ -23,6 +23,7 @@ |
156 | #include <QtCore/QEvent> |
157 | |
158 | #include "uctestextras.h" |
159 | +#include "uctestcase.h" |
160 | #include "inversemouseareatype.h" |
161 | #include "ucunits.h" |
162 | #include <private/qquickevents_p_p.h> |
163 | @@ -31,48 +32,31 @@ |
164 | |
165 | using QTest::QTouchEventSequence; |
166 | |
167 | +class InverseMouseAreaTest : public UbuntuTestCase |
168 | +{ |
169 | + Q_OBJECT |
170 | +public: |
171 | + InverseMouseAreaTest(const QString& file) |
172 | + : UbuntuTestCase(file) |
173 | + { |
174 | + setGeometry(0, 0, 240, 320); |
175 | + //add modules folder so we have access to the plugin from QML |
176 | + QStringList imports = engine()->importPathList(); |
177 | + imports.prepend(QDir(UBUNTU_QML_IMPORT_PATH).absolutePath()); |
178 | + engine()->setImportPathList(imports); |
179 | + } |
180 | +}; |
181 | + |
182 | class tst_InverseMouseAreaTest : public QObject |
183 | { |
184 | Q_OBJECT |
185 | |
186 | public: |
187 | - tst_InverseMouseAreaTest() : |
188 | - quickView(0), quickEngine(0), device(0) |
189 | - {} |
190 | + tst_InverseMouseAreaTest() {} |
191 | |
192 | private: |
193 | - QQuickView *quickView; |
194 | - QQmlEngine *quickEngine; |
195 | - QTouchDevice *device; |
196 | QObjectCleanupHandler eventCleanup; |
197 | |
198 | - InverseMouseAreaType *testArea(const QString &document, const QString &imaName = QString()) |
199 | - { |
200 | - // delete previous root |
201 | - QObject *rootObject = quickView->rootObject(); |
202 | - if (rootObject) |
203 | - delete rootObject; |
204 | - QTest::waitForEvents(); |
205 | - |
206 | - quickView->setSource(QUrl::fromLocalFile(document)); |
207 | - QCoreApplication::processEvents(); |
208 | - |
209 | - rootObject = quickView->rootObject(); |
210 | - if (!rootObject) |
211 | - return 0; |
212 | - |
213 | - if (!imaName.isEmpty()) { |
214 | - return rootObject->findChild<InverseMouseAreaType*>(imaName); |
215 | - } |
216 | - QList<QQuickItem*> items = rootObject->findChildren<QQuickItem*>(); |
217 | - Q_FOREACH(QQuickItem *item, items) { |
218 | - InverseMouseAreaType *area = qobject_cast<InverseMouseAreaType*>(item); |
219 | - if (area) |
220 | - return area; |
221 | - } |
222 | - return 0; |
223 | - } |
224 | - |
225 | QPoint guPoint(qreal guX, qreal guY) |
226 | { |
227 | return QPointF(UCUnits::instance()->gu(guX), UCUnits::instance()->gu(guY)).toPoint(); |
228 | @@ -92,26 +76,12 @@ |
229 | UCTestExtras::registerTouchDevice(); |
230 | QString modules(UBUNTU_QML_IMPORT_PATH); |
231 | QVERIFY(QDir(modules).exists()); |
232 | - |
233 | - quickView = new QQuickView(0); |
234 | - quickEngine = quickView->engine(); |
235 | - |
236 | - quickView->setGeometry(0,0, 240, 320); |
237 | - //add modules folder so we have access to the plugin from QML |
238 | - QStringList imports = quickEngine->importPathList(); |
239 | - imports << QDir(modules).absolutePath(); |
240 | - quickEngine->setImportPathList(imports); |
241 | - } |
242 | - |
243 | - void cleanupTestCase() |
244 | - { |
245 | - delete quickView; |
246 | } |
247 | |
248 | void testCase_Defaults() |
249 | { |
250 | - InverseMouseAreaType *area = testArea("Defaults.qml"); |
251 | - QVERIFY(area); |
252 | + QScopedPointer<InverseMouseAreaTest> quickView(new InverseMouseAreaTest("Defaults.qml")); |
253 | + InverseMouseAreaType *area = quickView->findItem<InverseMouseAreaType*>("testItem"); |
254 | |
255 | QCOMPARE(area->pressed(), false); |
256 | QCOMPARE(area->acceptedButtons(), Qt::LeftButton); |
257 | @@ -121,11 +91,12 @@ |
258 | void testCase_DoNotPropagateEvents() |
259 | { |
260 | eventCleanup.clear(); |
261 | - InverseMouseAreaType *area = testArea("InverseMouseAreaDoNotPropagateEvents.qml"); |
262 | - QVERIFY(area); |
263 | + QScopedPointer<InverseMouseAreaTest> quickView(new InverseMouseAreaTest("InverseMouseAreaDoNotPropagateEvents.qml")); |
264 | + InverseMouseAreaType *area = quickView->findItem<InverseMouseAreaType*>("testObject"); |
265 | + |
266 | // connect pressed signal to capture mouse object |
267 | QObject::connect(area, SIGNAL(pressed(QQuickMouseEvent*)), this, SLOT(capturePressed(QQuickMouseEvent*))); |
268 | - QTest::mouseClick(quickView, Qt::LeftButton, Qt::NoModifier, QPoint(10, 10)); |
269 | + QTest::mouseClick(quickView.data(), Qt::LeftButton, Qt::NoModifier, QPoint(10, 10)); |
270 | QTest::waitForEvents(); |
271 | QVERIFY(eventCleanup.isEmpty()); |
272 | } |
273 | @@ -133,37 +104,34 @@ |
274 | void testCase_PropagateEvents() |
275 | { |
276 | eventCleanup.clear(); |
277 | - InverseMouseAreaType *area = testArea("InverseMouseAreaPropagateEvents.qml"); |
278 | - QVERIFY(area); |
279 | + QScopedPointer<InverseMouseAreaTest> quickView(new InverseMouseAreaTest("InverseMouseAreaPropagateEvents.qml")); |
280 | + InverseMouseAreaType *area = quickView->findItem<InverseMouseAreaType*>("testObject"); |
281 | + |
282 | // connect pressed signal to capture mouse object |
283 | QObject::connect(area, SIGNAL(pressed(QQuickMouseEvent*)), this, SLOT(capturePressed(QQuickMouseEvent*))); |
284 | - QTest::mouseClick(quickView, Qt::LeftButton, Qt::NoModifier, QPoint(10, 10)); |
285 | + QTest::mouseClick(quickView.data(), Qt::LeftButton, Qt::NoModifier, QPoint(10, 10)); |
286 | QTest::waitForEvents(); |
287 | QVERIFY(eventCleanup.isEmpty()); |
288 | } |
289 | |
290 | void testCase_sensingAreaError() |
291 | { |
292 | - InverseMouseAreaType *area = testArea("SensingAreaError.qml"); |
293 | - QVERIFY(area); |
294 | + QScopedPointer<InverseMouseAreaTest> quickView(new InverseMouseAreaTest("SensingAreaError.qml")); |
295 | |
296 | - QTest::mouseClick(quickView, Qt::LeftButton, 0, QPoint(20, 20)); |
297 | + QTest::mouseClick(quickView.data(), Qt::LeftButton, 0, QPoint(20, 20)); |
298 | QTest::waitForEvents(); |
299 | QCOMPARE(quickView->rootObject()->property("log").toString(), QString("IMA")); |
300 | } |
301 | |
302 | void testCase_InverseMouseAreInWindow() |
303 | { |
304 | - InverseMouseAreaType *area = testArea("InverseMouseAreaInWindow.qml"); |
305 | - QVERIFY(area); |
306 | - quickView->show(); |
307 | - QTest::qWaitForWindowExposed(quickView); |
308 | + QScopedPointer<InverseMouseAreaTest> quickView(new InverseMouseAreaTest("InverseMouseAreaInWindow.qml")); |
309 | |
310 | QList<QQuickWindow *> l = quickView->rootObject()->findChildren<QQuickWindow*>("isawindow"); |
311 | QVERIFY(l.count()); |
312 | |
313 | - QQuickItem *clickArea = quickView->rootObject()->findChild<QQuickItem*>("clickArea"); |
314 | - QVERIFY(clickArea); |
315 | + // make sure we have the clickArea present |
316 | + quickView->findItem<QQuickItem*>("clickArea"); |
317 | |
318 | QTest::mouseClick(l[0], Qt::LeftButton, 0, QPoint(20, 10)); |
319 | QTest::waitForEvents(); |
320 | @@ -172,33 +140,27 @@ |
321 | |
322 | void testCase_OverlappedMouseArea() |
323 | { |
324 | - InverseMouseAreaType *area = testArea("OverlappedMouseArea.qml"); |
325 | - QVERIFY(area); |
326 | - quickView->show(); |
327 | + QScopedPointer<InverseMouseAreaTest> quickView(new InverseMouseAreaTest("OverlappedMouseArea.qml")); |
328 | |
329 | - QTest::mouseClick(quickView, Qt::LeftButton, 0, QPoint(20, 10)); |
330 | + QTest::mouseClick(quickView.data(), Qt::LeftButton, 0, QPoint(20, 10)); |
331 | QTest::waitForEvents(); |
332 | QCOMPARE(quickView->rootObject()->property("log").toString(), QString("MA")); |
333 | } |
334 | |
335 | void testCase_InverseMouseAreaOnTop() |
336 | { |
337 | - InverseMouseAreaType *area = testArea("InverseMouseAreaOnTop.qml"); |
338 | - QVERIFY(area); |
339 | - quickView->show(); |
340 | - QTest::qWaitForWindowExposed(quickView); |
341 | + QScopedPointer<InverseMouseAreaTest> quickView(new InverseMouseAreaTest("InverseMouseAreaOnTop.qml")); |
342 | + InverseMouseAreaType *area = quickView->findItem<InverseMouseAreaType*>("IMA"); |
343 | |
344 | - QQuickItem *ma1 = quickView->rootObject()->findChild<QQuickItem*>("MA1"); |
345 | - QVERIFY(ma1); |
346 | - QQuickItem *ma2 = quickView->rootObject()->findChild<QQuickItem*>("MA2"); |
347 | - QVERIFY(ma2); |
348 | + QQuickItem *ma1 = quickView->findItem<QQuickItem*>("MA1"); |
349 | + QQuickItem *ma2 = quickView->findItem<QQuickItem*>("MA2"); |
350 | |
351 | QSignalSpy imaSpy(area, SIGNAL(pressed(QQuickMouseEvent*))); |
352 | QSignalSpy ma1Spy(ma1, SIGNAL(pressed(QQuickMouseEvent*))); |
353 | QSignalSpy ma2Spy(ma2, SIGNAL(pressed(QQuickMouseEvent*))); |
354 | |
355 | // click in the top rectangle, use 800msec delay to prevent dblclick detection |
356 | - QTest::mouseClick(quickView, Qt::LeftButton, 0, QPoint(10, 10), DOUBLECLICK_TIMEOUT); |
357 | + QTest::mouseClick(quickView.data(), Qt::LeftButton, 0, QPoint(10, 10), DOUBLECLICK_TIMEOUT); |
358 | QTest::waitForEvents(); |
359 | QCOMPARE(ma1Spy.count(), 0); |
360 | QCOMPARE(ma2Spy.count(), 0); |
361 | @@ -206,7 +168,7 @@ |
362 | imaSpy.clear(); |
363 | |
364 | // click in the second rectangle, use 800msec delay to prevent dblclick detection |
365 | - QTest::mouseClick(quickView, Qt::LeftButton, 0, QPoint(10, 65), DOUBLECLICK_TIMEOUT); |
366 | + QTest::mouseClick(quickView.data(), Qt::LeftButton, 0, QPoint(10, 65), DOUBLECLICK_TIMEOUT); |
367 | QTest::waitForEvents(); |
368 | QCOMPARE(ma1Spy.count(), 0); |
369 | QCOMPARE(ma2Spy.count(), 0); |
370 | @@ -214,7 +176,7 @@ |
371 | imaSpy.clear(); |
372 | |
373 | // click in the button, use 800msec delay to prevent dblclick detection |
374 | - QTest::mouseClick(quickView, Qt::LeftButton, 0, QPoint(25, 85), DOUBLECLICK_TIMEOUT); |
375 | + QTest::mouseClick(quickView.data(), Qt::LeftButton, 0, QPoint(25, 85), DOUBLECLICK_TIMEOUT); |
376 | QTest::waitForEvents(); |
377 | QCOMPARE(ma1Spy.count(), 0); |
378 | QCOMPARE(ma2Spy.count(), 1); |
379 | @@ -222,14 +184,14 @@ |
380 | |
381 | // double click in the second rectangle |
382 | QSignalSpy imaDSpy(area, SIGNAL(doubleClicked(QQuickMouseEvent*))); |
383 | - QTest::mouseDClick(quickView, Qt::LeftButton, 0, QPoint(10, 65)); |
384 | + QTest::mouseDClick(quickView.data(), Qt::LeftButton, 0, QPoint(10, 65)); |
385 | QTest::waitForEvents(); |
386 | // FIXME: this is flaky |
387 | QCOMPARE(imaDSpy.count(), 1); |
388 | imaDSpy.clear(); |
389 | |
390 | // double click in the first rectangle |
391 | - QTest::mouseDClick(quickView, Qt::LeftButton, 0, QPoint(10, 10)); |
392 | + QTest::mouseDClick(quickView.data(), Qt::LeftButton, 0, QPoint(10, 10)); |
393 | QTest::waitForEvents(); |
394 | QCOMPARE(imaDSpy.count(), 1); |
395 | imaDSpy.clear(); |
396 | @@ -237,35 +199,31 @@ |
397 | |
398 | void testCase_InverseMouseAreaOnTopNoAccept() |
399 | { |
400 | - InverseMouseAreaType *area = testArea("InverseMouseAreaOnTopNoAccept.qml"); |
401 | - QVERIFY(area); |
402 | - quickView->show(); |
403 | - QTest::qWaitForWindowExposed(quickView); |
404 | + QScopedPointer<InverseMouseAreaTest> quickView(new InverseMouseAreaTest("InverseMouseAreaOnTopNoAccept.qml")); |
405 | + InverseMouseAreaType *area = quickView->findItem<InverseMouseAreaType*>("IMA"); |
406 | |
407 | - QQuickItem *ma1 = quickView->rootObject()->findChild<QQuickItem*>("MA1"); |
408 | - QVERIFY(ma1); |
409 | - QQuickItem *ma2 = quickView->rootObject()->findChild<QQuickItem*>("MA2"); |
410 | - QVERIFY(ma2); |
411 | + QQuickItem *ma1 = quickView->findItem<QQuickItem*>("MA1"); |
412 | + QQuickItem *ma2 = quickView->findItem<QQuickItem*>("MA2"); |
413 | |
414 | QSignalSpy imaSpy(area, SIGNAL(pressed(QQuickMouseEvent*))); |
415 | QSignalSpy ma1Spy(ma1, SIGNAL(pressed(QQuickMouseEvent*))); |
416 | QSignalSpy ma2Spy(ma2, SIGNAL(pressed(QQuickMouseEvent*))); |
417 | |
418 | - QTest::mouseClick(quickView, Qt::LeftButton, 0, QPoint(10, 10), DOUBLECLICK_TIMEOUT); |
419 | + QTest::mouseClick(quickView.data(), Qt::LeftButton, 0, QPoint(10, 10), DOUBLECLICK_TIMEOUT); |
420 | QTest::waitForEvents(); |
421 | QCOMPARE(ma1Spy.count(), 1); |
422 | QCOMPARE(ma2Spy.count(), 0); |
423 | QCOMPARE(imaSpy.count(), 1); |
424 | ma1Spy.clear(); imaSpy.clear(); |
425 | |
426 | - QTest::mouseClick(quickView, Qt::LeftButton, 0, QPoint(10, 65), DOUBLECLICK_TIMEOUT); |
427 | + QTest::mouseClick(quickView.data(), Qt::LeftButton, 0, QPoint(10, 65), DOUBLECLICK_TIMEOUT); |
428 | QTest::waitForEvents(); |
429 | QCOMPARE(ma1Spy.count(), 0); |
430 | QCOMPARE(ma2Spy.count(), 1); |
431 | QCOMPARE(imaSpy.count(), 1); |
432 | ma2Spy.clear(); imaSpy.clear(); |
433 | |
434 | - QTest::mouseClick(quickView, Qt::LeftButton, 0, QPoint(25, 80), DOUBLECLICK_TIMEOUT); |
435 | + QTest::mouseClick(quickView.data(), Qt::LeftButton, 0, QPoint(25, 80), DOUBLECLICK_TIMEOUT); |
436 | QTest::waitForEvents(); |
437 | QCOMPARE(ma1Spy.count(), 0); |
438 | QCOMPARE(ma2Spy.count(), 1); |
439 | @@ -273,67 +231,62 @@ |
440 | |
441 | // double click should not reach inverse mouse area as onPressed did not accept the events |
442 | QSignalSpy imaDSpy(area, SIGNAL(doubleClicked(QQuickMouseEvent*))); |
443 | - QTest::mouseDClick(quickView, Qt::LeftButton, 0, QPoint(10, 65)); |
444 | + QTest::mouseDClick(quickView.data(), Qt::LeftButton, 0, QPoint(10, 65)); |
445 | QCOMPARE(imaDSpy.count(), 0); |
446 | imaDSpy.clear(); |
447 | |
448 | - QTest::mouseDClick(quickView, Qt::LeftButton, 0, QPoint(10, 10)); |
449 | + QTest::mouseDClick(quickView.data(), Qt::LeftButton, 0, QPoint(10, 10)); |
450 | QCOMPARE(imaDSpy.count(), 0); |
451 | imaDSpy.clear(); |
452 | } |
453 | |
454 | void testCase_InverseMouseAreaOnTopTopmost() |
455 | { |
456 | - InverseMouseAreaType *area = testArea("InverseMouseAreaOnTop.qml"); |
457 | - QVERIFY(area); |
458 | - quickView->show(); |
459 | - QTest::qWaitForWindowExposed(quickView); |
460 | + QScopedPointer<InverseMouseAreaTest> quickView(new InverseMouseAreaTest("InverseMouseAreaOnTop.qml")); |
461 | + InverseMouseAreaType *area = quickView->findItem<InverseMouseAreaType*>("IMA"); |
462 | area->setProperty("topmostItem", true); |
463 | |
464 | - QQuickItem *ma2 = quickView->rootObject()->findChild<QQuickItem*>("MA2"); |
465 | - QVERIFY(ma2); |
466 | + QQuickItem *ma2 = quickView->findItem<QQuickItem*>("MA2"); |
467 | |
468 | QSignalSpy imaSpy(area, SIGNAL(pressed(QQuickMouseEvent*))); |
469 | QSignalSpy ma2Spy(ma2, SIGNAL(pressed(QQuickMouseEvent*))); |
470 | |
471 | // click on the topmost rectangle |
472 | - QTest::mouseClick(quickView, Qt::LeftButton, 0, QPoint(10, 10), DOUBLECLICK_TIMEOUT); |
473 | + QTest::mouseClick(quickView.data(), Qt::LeftButton, 0, QPoint(10, 10), DOUBLECLICK_TIMEOUT); |
474 | QTest::waitForEvents(); |
475 | QCOMPARE(ma2Spy.count(), 0); |
476 | QCOMPARE(imaSpy.count(), 1); |
477 | imaSpy.clear(); |
478 | |
479 | // click on the second rectangle |
480 | - QTest::mouseClick(quickView, Qt::LeftButton, 0, QPoint(10, 65), DOUBLECLICK_TIMEOUT); |
481 | + QTest::mouseClick(quickView.data(), Qt::LeftButton, 0, QPoint(10, 65), DOUBLECLICK_TIMEOUT); |
482 | QTest::waitForEvents(); |
483 | QCOMPARE(ma2Spy.count(), 0); |
484 | QCOMPARE(imaSpy.count(), 1); |
485 | imaSpy.clear(); |
486 | |
487 | // click on the button |
488 | - QTest::mouseClick(quickView, Qt::LeftButton, 0, QPoint(25, 85), DOUBLECLICK_TIMEOUT); |
489 | + QTest::mouseClick(quickView.data(), Qt::LeftButton, 0, QPoint(25, 85), DOUBLECLICK_TIMEOUT); |
490 | QTest::waitForEvents(); |
491 | QCOMPARE(ma2Spy.count(), 1); |
492 | QCOMPARE(imaSpy.count(), 0); |
493 | |
494 | // double click on the second rectangle |
495 | QSignalSpy imaDSpy(area, SIGNAL(doubleClicked(QQuickMouseEvent*))); |
496 | - QTest::mouseDClick(quickView, Qt::LeftButton, 0, QPoint(10, 65)); |
497 | + QTest::mouseDClick(quickView.data(), Qt::LeftButton, 0, QPoint(10, 65)); |
498 | QCOMPARE(imaDSpy.count(), 1); |
499 | imaDSpy.clear(); |
500 | |
501 | // double click on the first rectangle |
502 | - QTest::mouseDClick(quickView, Qt::LeftButton, 0, QPoint(10, 10)); |
503 | + QTest::mouseDClick(quickView.data(), Qt::LeftButton, 0, QPoint(10, 10)); |
504 | QCOMPARE(imaDSpy.count(), 1); |
505 | imaDSpy.clear(); |
506 | } |
507 | |
508 | void testCase_InverseMouseAreaSignals() |
509 | { |
510 | - InverseMouseAreaType *area = testArea("InverseMouseAreaSignals.qml"); |
511 | - QVERIFY(area); |
512 | - quickView->show(); |
513 | - QTest::qWaitForWindowExposed(quickView); |
514 | + QScopedPointer<InverseMouseAreaTest> quickView(new InverseMouseAreaTest("InverseMouseAreaSignals.qml")); |
515 | + InverseMouseAreaType *area = quickView->findItem<InverseMouseAreaType*>("IMA"); |
516 | |
517 | QSignalSpy pressSpy(area, SIGNAL(pressed(QQuickMouseEvent*))); |
518 | QSignalSpy releaseSpy(area, SIGNAL(released(QQuickMouseEvent*))); |
519 | @@ -341,7 +294,7 @@ |
520 | QSignalSpy enteredSpy(area, SIGNAL(entered())); |
521 | QSignalSpy exitedSpy(area, SIGNAL(exited())); |
522 | |
523 | - QTest::mouseClick(quickView, Qt::LeftButton, 0, QPoint(5, 5), DOUBLECLICK_TIMEOUT); |
524 | + QTest::mouseClick(quickView.data(), Qt::LeftButton, 0, QPoint(5, 5), DOUBLECLICK_TIMEOUT); |
525 | QCOMPARE(pressSpy.count(), 1); |
526 | QCOMPARE(releaseSpy.count(), 1); |
527 | QCOMPARE(clickSpy.count(), 1); |
528 | @@ -349,137 +302,125 @@ |
529 | QCOMPARE(exitedSpy.count(), 1); |
530 | |
531 | QSignalSpy doubleClickSpy(area, SIGNAL(doubleClicked(QQuickMouseEvent*))); |
532 | - QTest::mouseDClick(quickView, Qt::LeftButton, 0, QPoint(5, 5)); |
533 | + QTest::mouseDClick(quickView.data(), Qt::LeftButton, 0, QPoint(5, 5)); |
534 | QCOMPARE(doubleClickSpy.count(), 1); |
535 | } |
536 | |
537 | void testCase_InverseMouseAreaNormalEventStack() |
538 | { |
539 | - InverseMouseAreaType *ima = testArea("InverseMouseAreaNormalEventStack.qml"); |
540 | - QVERIFY(ima); |
541 | - quickView->show(); |
542 | - QTest::qWaitForWindowExposed(quickView); |
543 | + QScopedPointer<InverseMouseAreaTest> quickView(new InverseMouseAreaTest("InverseMouseAreaNormalEventStack.qml")); |
544 | + InverseMouseAreaType *ima = quickView->findItem<InverseMouseAreaType*>("IMA"); |
545 | |
546 | - QQuickItem *ma = quickView->rootObject()->findChild<QQuickItem*>("MA"); |
547 | - QVERIFY(ma); |
548 | + QQuickItem *ma = quickView->findItem<QQuickItem*>("MA"); |
549 | |
550 | QSignalSpy imaSpy(ima, SIGNAL(pressed(QQuickMouseEvent*))); |
551 | QSignalSpy maSpy(ma, SIGNAL(pressed(QQuickMouseEvent*))); |
552 | |
553 | - QTest::mouseClick(quickView, Qt::LeftButton, Qt::NoModifier, QPoint(15, 15)); |
554 | + QTest::mouseClick(quickView.data(), Qt::LeftButton, Qt::NoModifier, QPoint(15, 15)); |
555 | QCOMPARE(imaSpy.count(), 0); |
556 | QCOMPARE(maSpy.count(), 0); |
557 | |
558 | - QTest::mouseClick(quickView, Qt::LeftButton, Qt::NoModifier, QPoint(115, 15)); |
559 | + QTest::mouseClick(quickView.data(), Qt::LeftButton, Qt::NoModifier, QPoint(115, 15)); |
560 | QCOMPARE(imaSpy.count(), 0); |
561 | QCOMPARE(maSpy.count(), 1); |
562 | maSpy.clear(); |
563 | |
564 | - QTest::mouseClick(quickView, Qt::LeftButton, Qt::NoModifier, QPoint(115, 115)); |
565 | + QTest::mouseClick(quickView.data(), Qt::LeftButton, Qt::NoModifier, QPoint(115, 115)); |
566 | QCOMPARE(imaSpy.count(), 1); |
567 | QCOMPARE(maSpy.count(), 0); |
568 | } |
569 | |
570 | void testCase_InverseMouseAreaTopmost() |
571 | { |
572 | - InverseMouseAreaType *ima = testArea("InverseMouseAreaTopmostItem.qml"); |
573 | - QVERIFY(ima); |
574 | - quickView->show(); |
575 | - QTest::qWaitForWindowExposed(quickView); |
576 | + QScopedPointer<InverseMouseAreaTest> quickView(new InverseMouseAreaTest("InverseMouseAreaTopmostItem.qml")); |
577 | + InverseMouseAreaType *ima = quickView->findItem<InverseMouseAreaType*>("IMA"); |
578 | |
579 | - QQuickItem *ma = quickView->rootObject()->findChild<QQuickItem*>("MA"); |
580 | - QVERIFY(ma); |
581 | + QQuickItem *ma = quickView->findItem<QQuickItem*>("MA"); |
582 | |
583 | QSignalSpy imaSpy(ima, SIGNAL(pressed(QQuickMouseEvent*))); |
584 | QSignalSpy maSpy(ma, SIGNAL(pressed(QQuickMouseEvent*))); |
585 | QSignalSpy imaDblClick(ima, SIGNAL(doubleClicked(QQuickMouseEvent*))); |
586 | |
587 | - QTest::mouseClick(quickView, Qt::LeftButton, Qt::NoModifier, QPoint(15, 15), DOUBLECLICK_TIMEOUT); |
588 | + QTest::mouseClick(quickView.data(), Qt::LeftButton, Qt::NoModifier, QPoint(15, 15), DOUBLECLICK_TIMEOUT); |
589 | QCOMPARE(imaSpy.count(), 0); |
590 | QCOMPARE(maSpy.count(), 0); |
591 | |
592 | - QTest::mouseClick(quickView, Qt::LeftButton, Qt::NoModifier, QPoint(115, 15), DOUBLECLICK_TIMEOUT); |
593 | + QTest::mouseClick(quickView.data(), Qt::LeftButton, Qt::NoModifier, QPoint(115, 15), DOUBLECLICK_TIMEOUT); |
594 | QCOMPARE(imaSpy.count(), 1); |
595 | QCOMPARE(maSpy.count(), 0); |
596 | |
597 | imaSpy.clear(); |
598 | - QTest::mouseClick(quickView, Qt::LeftButton, Qt::NoModifier, QPoint(115, 115), DOUBLECLICK_TIMEOUT); |
599 | + QTest::mouseClick(quickView.data(), Qt::LeftButton, Qt::NoModifier, QPoint(115, 115), DOUBLECLICK_TIMEOUT); |
600 | QCOMPARE(imaSpy.count(), 1); |
601 | QCOMPARE(maSpy.count(), 0); |
602 | |
603 | - QTest::mouseDClick(quickView, Qt::LeftButton, Qt::NoModifier, QPoint(115, 15)); |
604 | + QTest::mouseDClick(quickView.data(), Qt::LeftButton, Qt::NoModifier, QPoint(115, 15)); |
605 | QCOMPARE(imaDblClick.count(), 1); |
606 | } |
607 | |
608 | void testCase_InverseMouseAreaSensingArea() |
609 | { |
610 | - InverseMouseAreaType *ima = testArea("InverseMouseAreaSensingArea.qml"); |
611 | - QVERIFY(ima); |
612 | - quickView->show(); |
613 | - QTest::qWaitForWindowExposed(quickView); |
614 | + QScopedPointer<InverseMouseAreaTest> quickView(new InverseMouseAreaTest("InverseMouseAreaSensingArea.qml")); |
615 | + InverseMouseAreaType *ima = quickView->findItem<InverseMouseAreaType*>("IMA"); |
616 | |
617 | - QQuickItem *ma = quickView->rootObject()->findChild<QQuickItem*>("MA"); |
618 | - QVERIFY(ma); |
619 | + QQuickItem *ma = quickView->findItem<QQuickItem*>("MA"); |
620 | |
621 | QSignalSpy maSpy(ma, SIGNAL(clicked(QQuickMouseEvent*))); |
622 | QSignalSpy imaSpy(ima, SIGNAL(clicked(QQuickMouseEvent*))); |
623 | |
624 | - QTest::mouseClick(quickView, Qt::LeftButton, Qt::NoModifier, QPoint(75, 75)); |
625 | + QTest::mouseClick(quickView.data(), Qt::LeftButton, Qt::NoModifier, QPoint(75, 75)); |
626 | QCOMPARE(maSpy.count(), 0); |
627 | QCOMPARE(imaSpy.count(), 1); |
628 | imaSpy.clear(); |
629 | |
630 | - QTest::mouseClick(quickView, Qt::LeftButton, Qt::NoModifier, QPoint(25, 25)); |
631 | + QTest::mouseClick(quickView.data(), Qt::LeftButton, Qt::NoModifier, QPoint(25, 25)); |
632 | QCOMPARE(maSpy.count(), 1); |
633 | QCOMPARE(imaSpy.count(), 0); |
634 | maSpy.clear(); |
635 | |
636 | - QTest::mouseClick(quickView, Qt::LeftButton, Qt::NoModifier, QPoint(175, 175)); |
637 | + QTest::mouseClick(quickView.data(), Qt::LeftButton, Qt::NoModifier, QPoint(175, 175)); |
638 | QCOMPARE(maSpy.count(), 1); |
639 | QCOMPARE(imaSpy.count(), 0); |
640 | } |
641 | |
642 | void testCase_InverseMouseAreaSensingAreaChange() |
643 | { |
644 | - InverseMouseAreaType *ima = testArea("InverseMouseAreaSensingArea.qml"); |
645 | - QVERIFY(ima); |
646 | - quickView->show(); |
647 | - QTest::qWaitForWindowExposed(quickView); |
648 | + QScopedPointer<InverseMouseAreaTest> quickView(new InverseMouseAreaTest("InverseMouseAreaSensingArea.qml")); |
649 | + InverseMouseAreaType *ima = quickView->findItem<InverseMouseAreaType*>("IMA"); |
650 | |
651 | - QQuickItem *ma = quickView->rootObject()->findChild<QQuickItem*>("MA"); |
652 | - QVERIFY(ma); |
653 | + QQuickItem *ma = quickView->findItem<QQuickItem*>("MA"); |
654 | |
655 | QSignalSpy maSpy(ma, SIGNAL(clicked(QQuickMouseEvent*))); |
656 | QSignalSpy imaSpy(ima, SIGNAL(clicked(QQuickMouseEvent*))); |
657 | |
658 | - QTest::mouseClick(quickView, Qt::LeftButton, Qt::NoModifier, QPoint(75, 75)); |
659 | + QTest::mouseClick(quickView.data(), Qt::LeftButton, Qt::NoModifier, QPoint(75, 75)); |
660 | QCOMPARE(maSpy.count(), 0); |
661 | QCOMPARE(imaSpy.count(), 1); |
662 | imaSpy.clear(); |
663 | |
664 | - QTest::mouseClick(quickView, Qt::LeftButton, Qt::NoModifier, QPoint(25, 25)); |
665 | + QTest::mouseClick(quickView.data(), Qt::LeftButton, Qt::NoModifier, QPoint(25, 25)); |
666 | QCOMPARE(maSpy.count(), 1); |
667 | QCOMPARE(imaSpy.count(), 0); |
668 | maSpy.clear(); |
669 | |
670 | - QTest::mouseClick(quickView, Qt::LeftButton, Qt::NoModifier, QPoint(175, 175)); |
671 | + QTest::mouseClick(quickView.data(), Qt::LeftButton, Qt::NoModifier, QPoint(175, 175)); |
672 | QCOMPARE(maSpy.count(), 1); |
673 | QCOMPARE(imaSpy.count(), 0); |
674 | maSpy.clear(); |
675 | |
676 | ima->setProperty("sensingArea", QVariant()); |
677 | |
678 | - QTest::mouseClick(quickView, Qt::LeftButton, Qt::NoModifier, QPoint(75, 75)); |
679 | - QCOMPARE(maSpy.count(), 0); |
680 | - QCOMPARE(imaSpy.count(), 1); |
681 | - imaSpy.clear(); |
682 | - |
683 | - QTest::mouseClick(quickView, Qt::LeftButton, Qt::NoModifier, QPoint(25, 25)); |
684 | - QCOMPARE(maSpy.count(), 0); |
685 | - QCOMPARE(imaSpy.count(), 1); |
686 | - imaSpy.clear(); |
687 | - |
688 | - QTest::mouseClick(quickView, Qt::LeftButton, Qt::NoModifier, QPoint(175, 175)); |
689 | + QTest::mouseClick(quickView.data(), Qt::LeftButton, Qt::NoModifier, QPoint(75, 75)); |
690 | + QCOMPARE(maSpy.count(), 0); |
691 | + QCOMPARE(imaSpy.count(), 1); |
692 | + imaSpy.clear(); |
693 | + |
694 | + QTest::mouseClick(quickView.data(), Qt::LeftButton, Qt::NoModifier, QPoint(25, 25)); |
695 | + QCOMPARE(maSpy.count(), 0); |
696 | + QCOMPARE(imaSpy.count(), 1); |
697 | + imaSpy.clear(); |
698 | + |
699 | + QTest::mouseClick(quickView.data(), Qt::LeftButton, Qt::NoModifier, QPoint(175, 175)); |
700 | QCOMPARE(maSpy.count(), 1); |
701 | QCOMPARE(imaSpy.count(), 0); |
702 | } |
703 | @@ -498,18 +439,13 @@ |
704 | void test_MouseClicksOnHeaderNotSeen_bug1288876() |
705 | { |
706 | QFETCH(QString, document); |
707 | - testArea(document); |
708 | - InverseMouseAreaType *ima = quickView->rootObject()-> |
709 | - property("ima").value<InverseMouseAreaType*>(); |
710 | - QVERIFY(ima); |
711 | - QCOMPARE(ima->objectName(), QString("Test_IMA")); |
712 | - quickView->show(); |
713 | - QTest::qWaitForWindowExposed(quickView); |
714 | + QScopedPointer<InverseMouseAreaTest> quickView(new InverseMouseAreaTest(document)); |
715 | + InverseMouseAreaType *ima = quickView->rootObject()->property("ima").value<InverseMouseAreaType*>(); |
716 | |
717 | QSignalSpy imaSpy(ima, SIGNAL(clicked(QQuickMouseEvent*))); |
718 | |
719 | // make sure we click on the header |
720 | - QTest::mouseClick(quickView, Qt::LeftButton, Qt::NoModifier, guPoint(20, 5)); |
721 | + QTest::mouseClick(quickView.data(), Qt::LeftButton, Qt::NoModifier, guPoint(20, 5)); |
722 | QCOMPARE(imaSpy.count(), 1); |
723 | |
724 | imaSpy.clear(); |
PASSED: Continuous integration, rev:1844 /jenkins. ubuntu. com/ubuntu- sdk/job/ ubuntu- ui-toolkit- ci-amd64- stable/ 291/ /jenkins. ubuntu. com/ubuntu- sdk/job/ generic- update- mp/777/ console
https:/
Executed test runs:
None: https:/
Click here to trigger a rebuild: /jenkins. ubuntu. com/ubuntu- sdk/job/ ubuntu- ui-toolkit- ci-amd64- stable/ 291/rebuild
https:/