summaryrefslogtreecommitdiffstats
path: root/tests/auto/qgraphicsview/tst_qgraphicsview.cpp
diff options
context:
space:
mode:
authorOlivier Goffart <ogoffart@trolltech.com>2009-09-25 09:29:44 (GMT)
committerOlivier Goffart <ogoffart@trolltech.com>2009-09-25 09:44:17 (GMT)
commit03abf8a298193c3e77896b99bac047b542424bbd (patch)
tree9f8b4439e32b705110e9816e22676bfdd854bc5b /tests/auto/qgraphicsview/tst_qgraphicsview.cpp
parent67e729c03db7c2f4e1e3e12a859bb9d2c0db2b5a (diff)
downloadQt-03abf8a298193c3e77896b99bac047b542424bbd.zip
Qt-03abf8a298193c3e77896b99bac047b542424bbd.tar.gz
Qt-03abf8a298193c3e77896b99bac047b542424bbd.tar.bz2
Stabilize GraphicsView and QFocusEvent test
Diffstat (limited to 'tests/auto/qgraphicsview/tst_qgraphicsview.cpp')
-rw-r--r--tests/auto/qgraphicsview/tst_qgraphicsview.cpp79
1 files changed, 46 insertions, 33 deletions
diff --git a/tests/auto/qgraphicsview/tst_qgraphicsview.cpp b/tests/auto/qgraphicsview/tst_qgraphicsview.cpp
index 9d23096..1aa515c 100644
--- a/tests/auto/qgraphicsview/tst_qgraphicsview.cpp
+++ b/tests/auto/qgraphicsview/tst_qgraphicsview.cpp
@@ -311,15 +311,13 @@ void tst_QGraphicsView::renderHints()
view.show();
QTest::qWaitForWindowShown(&view);
view.repaint();
- QTest::qWait(125);
- QCOMPARE(item->hints, view.renderHints());
+ QTRY_COMPARE(item->hints, view.renderHints());
view.setRenderHints(QPainter::Antialiasing | QPainter::NonCosmeticDefaultPen);
QCOMPARE(view.renderHints(), QPainter::Antialiasing | QPainter::NonCosmeticDefaultPen);
view.repaint();
- QTest::qWait(125);
- QCOMPARE(item->hints, view.renderHints());
+ QTRY_COMPARE(item->hints, view.renderHints());
}
void tst_QGraphicsView::alignment()
@@ -384,7 +382,7 @@ void tst_QGraphicsView::interactive()
view.show();
QTest::qWaitForWindowShown(&view);
- QTestEventLoop::instance().enterLoop(1);
+ QApplication::processEvents();
QTRY_COMPARE(item->events.size(), 1); // activate
QPoint itemPoint = view.mapFromScene(item->scenePos());
@@ -935,11 +933,13 @@ void tst_QGraphicsView::foregroundBrush()
view.setSceneRect(-1000, -1000, 2000, 2000);
for (int i = -500; i < 500; i += 10) {
view.centerOn(i, 0);
- QTest::qWait(10);
+ QApplication::processEvents();
+ QApplication::processEvents();
}
for (int i = -500; i < 500; i += 10) {
view.centerOn(0, i);
- QTest::qWait(10);
+ QApplication::processEvents();
+ QApplication::processEvents();
}
}
@@ -965,7 +965,8 @@ void tst_QGraphicsView::matrix()
gradient2.setColorAt(1, Qt::transparent);
gradient2.setSpread(QGradient::RepeatSpread);
scene.setBackgroundBrush(gradient2);
- QTest::qWait(10);
+ QApplication::processEvents();
+ QApplication::processEvents();
}
}
@@ -978,7 +979,8 @@ void tst_QGraphicsView::matrix()
view.show();
for (int i = 0; i < 160; ++i) {
view.rotate(18);
- QTest::qWait(5);
+ QApplication::processEvents();
+ QApplication::processEvents();
}
/*
// These cause a crash
@@ -993,11 +995,13 @@ void tst_QGraphicsView::matrix()
*/
for (int i = 0; i < 20; ++i) {
view.scale(1.2, 1.2);
- QTest::qWait(20);
+ QApplication::processEvents();
+ QApplication::processEvents();
}
for (int i = 0; i < 20; ++i) {
view.scale(0.6, 0.6);
- QTest::qWait(20);
+ QApplication::processEvents();
+ QApplication::processEvents();
}
}
}
@@ -1093,10 +1097,12 @@ void tst_QGraphicsView::centerOnItem()
QGraphicsView view(&scene);
view.setSceneRect(-1000, -1000, 2000, 2000);
view.show();
+ QTest::qWaitForWindowShown(&view);
int tolerance = 7;
for (int x = 0; x < 3; ++x) {
for (int i = 0; i < 4; ++i) {
+ QApplication::processEvents();
view.centerOn(items[i]);
QPoint viewCenter = view.mapToScene(view.viewport()->rect().center()).toPoint();
@@ -1111,7 +1117,7 @@ void tst_QGraphicsView::centerOnItem()
QFAIL(qPrintable(error));
}
- QTest::qWait(250);
+ QApplication::processEvents();
}
view.rotate(13);
@@ -1141,6 +1147,7 @@ void tst_QGraphicsView::ensureVisibleRect()
view.setSceneRect(-500, -500, 1000, 1000);
view.setFixedSize(250, 250);
view.show();
+ QTest::qWaitForWindowShown(&view);
for (int y = -100; y < 100; y += 25) {
for (int x = -100; x < 100; x += 13) {
@@ -1177,7 +1184,7 @@ void tst_QGraphicsView::ensureVisibleRect()
QVERIFY(qAbs(viewPoint.y() - viewRect.top()) >= margin -1);
QVERIFY(qAbs(viewPoint.y() - viewRect.bottom()) >= margin -1);
- QTest::qWait(10);
+ QApplication::processEvents();
}
}
view.rotate(5);
@@ -1381,10 +1388,8 @@ void tst_QGraphicsView::itemsInRect_cosmeticAdjust()
view.setFrameStyle(0);
view.resize(300, 300);
view.show();
-#ifdef Q_WS_X11
- qt_x11_wait_for_window_manager(&view);
-#endif
- QTest::qWait(125);
+ QTest::qWaitForWindowShown(&view) ;
+ QTRY_VERIFY(rect->numPaints > 0);
rect->numPaints = 0;
if (updateRect.isNull())
@@ -1521,8 +1526,8 @@ void tst_QGraphicsView::itemAt2()
view.setTransformationAnchor(QGraphicsView::NoAnchor);
view.setRenderHint(QPainter::Antialiasing);
view.show();
-
- QTestEventLoop::instance().enterLoop(1);
+ QTest::qWaitForWindowShown(&view);
+ QApplication::processEvents();
QPoint itemViewPoint = view.mapFromScene(item->scenePos());
@@ -2135,17 +2140,17 @@ void tst_QGraphicsView::resizeAnchor()
for (int size = 200; size <= 400; size += 25) {
view.resize(size, size);
if (i == 0) {
- QCOMPARE(view.mapToScene(50, 50), f);
- QVERIFY(view.mapToScene(view.viewport()->rect().center()) != center);
+ QTRY_COMPARE(view.mapToScene(50, 50), f);
+ QTRY_VERIFY(view.mapToScene(view.viewport()->rect().center()) != center);
} else {
- QVERIFY(view.mapToScene(50, 50) != f);
+ QTRY_VERIFY(view.mapToScene(50, 50) != f);
QPointF newCenter = view.mapToScene(view.viewport()->rect().center());
int slack = 3;
QVERIFY(qAbs(newCenter.x() - center.x()) < slack);
QVERIFY(qAbs(newCenter.y() - center.y()) < slack);
}
- QTest::qWait(250);
+ QTest::qWait(20);
}
}
}
@@ -2154,12 +2159,15 @@ class CustomView : public QGraphicsView
{
Q_OBJECT
public:
+ CustomView(QGraphicsScene *s = 0) : QGraphicsView(s) {}
QList<QRegion> lastUpdateRegions;
+ bool painted;
protected:
void paintEvent(QPaintEvent *event)
{
lastUpdateRegions << event->region();
+ painted = true;
QGraphicsView::paintEvent(event);
}
};
@@ -2247,6 +2255,7 @@ void tst_QGraphicsView::viewportUpdateMode2()
// Create a view with viewport rect equal to QRect(0, 0, 200, 200).
QGraphicsScene dummyScene;
CustomView view;
+ view.painted = false;
view.setViewportUpdateMode(QGraphicsView::BoundingRectViewportUpdate);
view.setScene(&dummyScene);
int left, top, right, bottom;
@@ -2255,6 +2264,7 @@ void tst_QGraphicsView::viewportUpdateMode2()
view.show();
QTest::qWaitForWindowShown(&view);
QTest::qWait(50);
+ QTRY_VERIFY(view.painted);
const QRect viewportRect = view.viewport()->rect();
QCOMPARE(viewportRect, QRect(0, 0, 200, 200));
@@ -2921,10 +2931,10 @@ void tst_QGraphicsView::task239729_noViewUpdate()
EventSpy spy(view->viewport(), QEvent::Paint);
QCOMPARE(spy.count(), 0);
- QTest::qWait(150);
+ QTest::qWait(100);
QCOMPARE(spy.count(), 0);
scene.update();
- QTest::qWait(150);
+ QApplication::processEvents();
QTRY_COMPARE(spy.count(), 1);
delete view;
@@ -3159,7 +3169,6 @@ void tst_QGraphicsView::moveItemWhileScrolling()
int a = adjustForAntialiasing ? 2 : 1;
expectedRegion += QRect(40, 50, 10, 10).adjusted(-a, -a, a, a);
expectedRegion += QRect(40, 60, 10, 10).adjusted(-a, -a, a, a);
-
QCOMPARE(view.lastPaintedRegion, expectedRegion);
}
@@ -3343,11 +3352,13 @@ void tst_QGraphicsView::render()
{
// ### This test can be much more thorough - see QGraphicsScene::render.
QGraphicsScene scene;
- QGraphicsView view(&scene);
+ CustomView view(&scene);
view.setFrameStyle(0);
view.resize(200, 200);
+ view.painted = false;
view.show();
QTest::qWaitForWindowShown(&view);
+ QTRY_VERIFY(view.painted > 0);
RenderTester *r1 = new RenderTester(QRectF(0, 0, 50, 50));
RenderTester *r2 = new RenderTester(QRectF(50, 50, 50, 50));
@@ -3383,10 +3394,12 @@ void tst_QGraphicsView::exposeRegion()
QGraphicsScene scene;
scene.addItem(item);
+ item->paints = 0;
CustomView view;
view.setScene(&scene);
view.show();
QTest::qWaitForWindowShown(&view);
+ QTRY_VERIFY(item->paints > 0);
item->paints = 0;
view.lastUpdateRegions.clear();
@@ -3449,7 +3462,7 @@ void tst_QGraphicsView::update()
QTest::qWaitForWindowShown(&view);
QApplication::setActiveWindow(&view);
- QTest::qWait(50);
+ QApplication::processEvents();
QTRY_COMPARE(QApplication::activeWindow(), static_cast<QWidget *>(&view));
const QRect viewportRect = view.viewport()->rect();
@@ -3465,15 +3478,15 @@ void tst_QGraphicsView::update()
viewPrivate->processPendingUpdates();
QVERIFY(viewPrivate->dirtyRegion.isEmpty());
QVERIFY(viewPrivate->dirtyBoundingRect.isEmpty());
- QTest::qWait(150);
+ QApplication::processEvents();
if (!intersects) {
- QVERIFY(view.lastUpdateRegions.isEmpty());
+ QTRY_VERIFY(view.lastUpdateRegions.isEmpty());
} else {
- QCOMPARE(view.lastUpdateRegions.size(), 1);
+ QTRY_COMPARE(view.lastUpdateRegions.size(), 1);
// Note that we adjust by 2 for antialiasing.
- QCOMPARE(view.lastUpdateRegions.at(0), QRegion(updateRect.adjusted(-2, -2, 2, 2) & viewportRect));
+ QTRY_COMPARE(view.lastUpdateRegions.at(0), QRegion(updateRect.adjusted(-2, -2, 2, 2) & viewportRect));
}
- QVERIFY(!viewPrivate->fullUpdatePending);
+ QTRY_VERIFY(!viewPrivate->fullUpdatePending);
#endif
}