Merge lp:~zsombi/ubuntu-ui-toolkit/redoSoneTests into lp:ubuntu-ui-toolkit/staging

Proposed by Zsombor Egri
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
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.

To post a comment you must log in.
Revision history for this message
ubuntu-sdk-build-bot (ubuntu-sdk-build-bot) wrote :
review: Approve (continuous-integration)
Revision history for this message
ubuntu-sdk-build-bot (ubuntu-sdk-build-bot) wrote :
review: Approve (continuous-integration)
Revision history for this message
ubuntu-sdk-build-bot (ubuntu-sdk-build-bot) wrote :
review: Approve (continuous-integration)
Revision history for this message
ubuntu-sdk-build-bot (ubuntu-sdk-build-bot) wrote :
review: Approve (continuous-integration)
Revision history for this message
ubuntu-sdk-build-bot (ubuntu-sdk-build-bot) wrote :
review: Approve (continuous-integration)
Revision history for this message
Cris Dywan (kalikiana) wrote :

Keep them coming!

review: Approve
Revision history for this message
ubuntu-sdk-build-bot (ubuntu-sdk-build-bot) wrote :
review: Approve (continuous-integration)
Revision history for this message
ubuntu-sdk-build-bot (ubuntu-sdk-build-bot) wrote :
review: Approve (continuous-integration)
Revision history for this message
ubuntu-sdk-build-bot (ubuntu-sdk-build-bot) wrote :
review: Approve (continuous-integration)
Revision history for this message
ubuntu-sdk-build-bot (ubuntu-sdk-build-bot) wrote :
review: Approve (continuous-integration)

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
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();

Subscribers

People subscribed via source and target branches