aboutsummaryrefslogtreecommitdiffstats
path: root/tests/auto/quick/qquicktext/tst_qquicktext.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tests/auto/quick/qquicktext/tst_qquicktext.cpp')
-rw-r--r--tests/auto/quick/qquicktext/tst_qquicktext.cpp37
1 files changed, 37 insertions, 0 deletions
diff --git a/tests/auto/quick/qquicktext/tst_qquicktext.cpp b/tests/auto/quick/qquicktext/tst_qquicktext.cpp
index 28eed57a95..7d24de6ccd 100644
--- a/tests/auto/quick/qquicktext/tst_qquicktext.cpp
+++ b/tests/auto/quick/qquicktext/tst_qquicktext.cpp
@@ -117,6 +117,7 @@ private slots:
void boundingRect();
void clipRect();
void lineLaidOut();
+ void lineLaidOutRelayout();
void imgTagsBaseUrl_data();
void imgTagsBaseUrl();
@@ -1898,6 +1899,42 @@ void tst_qquicktext::lineLaidOut()
delete canvas;
}
+void tst_qquicktext::lineLaidOutRelayout()
+{
+ QQuickView *canvas = createView(testFile("lineLayoutRelayout.qml"));
+
+ canvas->show();
+ canvas->requestActivateWindow();
+ QTest::qWaitForWindowShown(canvas);
+
+ QQuickText *myText = canvas->rootObject()->findChild<QQuickText*>("myText");
+ QVERIFY(myText != 0);
+
+ QQuickTextPrivate *textPrivate = QQuickTextPrivate::get(myText);
+ QVERIFY(textPrivate != 0);
+
+ QVERIFY(!textPrivate->extra.isAllocated());
+
+#if defined(Q_OS_MAC)
+ QVERIFY(myText->lineCount() == textPrivate->linesRects.count());
+#endif
+
+ qreal maxH = 0;
+ for (int i = 0; i < textPrivate->layout.lineCount(); ++i) {
+ QRectF r = textPrivate->layout.lineAt(i).rect();
+
+ if (r.x() == 0) {
+ QCOMPARE(r.y(), i * r.height());
+ maxH = qMax(maxH, r.y() + r.height());
+ } else {
+ QCOMPARE(r.x(), myText->width() / 2);
+ QCOMPARE(r.y(), (i * r.height()) - maxH);
+ }
+ }
+
+ delete canvas;
+}
+
void tst_qquicktext::imgTagsBaseUrl_data()
{
QTest::addColumn<QUrl>("src");