diff options
Diffstat (limited to 'tests/auto/quick/qquicktext/tst_qquicktext.cpp')
-rw-r--r-- | tests/auto/quick/qquicktext/tst_qquicktext.cpp | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/tests/auto/quick/qquicktext/tst_qquicktext.cpp b/tests/auto/quick/qquicktext/tst_qquicktext.cpp index 7db9078a7b..bdff985027 100644 --- a/tests/auto/quick/qquicktext/tst_qquicktext.cpp +++ b/tests/auto/quick/qquicktext/tst_qquicktext.cpp @@ -151,6 +151,9 @@ private slots: void padding(); + void hAlignWidthDependsOnImplicitWidth_data(); + void hAlignWidthDependsOnImplicitWidth(); + private: QStringList standard; QStringList richText; @@ -4170,6 +4173,51 @@ void tst_qquicktext::padding() delete root; } +void tst_qquicktext::hAlignWidthDependsOnImplicitWidth_data() +{ + QTest::addColumn<QQuickText::HAlignment>("horizontalAlignment"); + QTest::addColumn<QQuickText::TextElideMode>("elide"); + QTest::addColumn<int>("extraWidth"); + + QTest::newRow("AlignHCenter, ElideNone, 0 extraWidth") << QQuickText::AlignHCenter << QQuickText::ElideNone << 0; + QTest::newRow("AlignRight, ElideNone, 0 extraWidth") << QQuickText::AlignRight << QQuickText::ElideNone << 0; + QTest::newRow("AlignHCenter, ElideRight, 0 extraWidth") << QQuickText::AlignHCenter << QQuickText::ElideRight << 0; + QTest::newRow("AlignRight, ElideRight, 0 extraWidth") << QQuickText::AlignRight << QQuickText::ElideRight << 0; + QTest::newRow("AlignHCenter, ElideNone, 20 extraWidth") << QQuickText::AlignHCenter << QQuickText::ElideNone << 20; + QTest::newRow("AlignRight, ElideNone, 20 extraWidth") << QQuickText::AlignRight << QQuickText::ElideNone << 20; + QTest::newRow("AlignHCenter, ElideRight, 20 extraWidth") << QQuickText::AlignHCenter << QQuickText::ElideRight << 20; + QTest::newRow("AlignRight, ElideRight, 20 extraWidth") << QQuickText::AlignRight << QQuickText::ElideRight << 20; +} + +void tst_qquicktext::hAlignWidthDependsOnImplicitWidth() +{ + QFETCH(QQuickText::HAlignment, horizontalAlignment); + QFETCH(QQuickText::TextElideMode, elide); + QFETCH(int, extraWidth); + + QScopedPointer<QQuickView> window(new QQuickView); + window->setSource(testFileUrl("hAlignWidthDependsOnImplicitWidth.qml")); + QTRY_COMPARE(window->status(), QQuickView::Ready); + + window->show(); + QVERIFY(QTest::qWaitForWindowExposed(window.data())); + + QQuickItem *rect = window->rootObject(); + QVERIFY(rect); + + QVERIFY(rect->setProperty("horizontalAlignment", horizontalAlignment)); + QVERIFY(rect->setProperty("elide", elide)); + QVERIFY(rect->setProperty("extraWidth", extraWidth)); + + QImage image = window->grabWindow(); + const int rectX = 100 * window->screen()->devicePixelRatio(); + QCOMPARE(numberOfNonWhitePixels(0, rectX - 1, image), 0); + + QVERIFY(rect->setProperty("text", "this is mis-aligned")); + image = window->grabWindow(); + QCOMPARE(numberOfNonWhitePixels(0, rectX - 1, image), 0); +} + QTEST_MAIN(tst_qquicktext) #include "tst_qquicktext.moc" |