diff options
Diffstat (limited to 'tests/auto/gui/text/qtextlayout/tst_qtextlayout.cpp')
-rw-r--r-- | tests/auto/gui/text/qtextlayout/tst_qtextlayout.cpp | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/tests/auto/gui/text/qtextlayout/tst_qtextlayout.cpp b/tests/auto/gui/text/qtextlayout/tst_qtextlayout.cpp index def7c88593..25906ebf32 100644 --- a/tests/auto/gui/text/qtextlayout/tst_qtextlayout.cpp +++ b/tests/auto/gui/text/qtextlayout/tst_qtextlayout.cpp @@ -125,6 +125,7 @@ private slots: void softHyphens_data(); void softHyphens(); void min_maximumWidth(); + void min_maximumWidthWithLineSeparator(); private: QFont testFont; @@ -2683,5 +2684,32 @@ void tst_QTextLayout::min_maximumWidth() } } +void tst_QTextLayout::min_maximumWidthWithLineSeparator() +{ + QTextLayout referenceLayout("text", testFont); + + QString multilineText("text\ntext\ntext"); + multilineText.replace('\n', QChar::LineSeparator); + QTextLayout layout(multilineText, testFont); + + for (int wrapMode = QTextOption::NoWrap; wrapMode <= QTextOption::WrapAtWordBoundaryOrAnywhere; ++wrapMode) { + QTextOption opt; + opt.setWrapMode((QTextOption::WrapMode)wrapMode); + + referenceLayout.setTextOption(opt); + referenceLayout.beginLayout(); + while (referenceLayout.createLine().isValid()) { } + referenceLayout.endLayout(); + + layout.setTextOption(opt); + layout.beginLayout(); + while (layout.createLine().isValid()) { } + layout.endLayout(); + + QCOMPARE(layout.minimumWidth(), referenceLayout.minimumWidth()); + QCOMPARE(layout.maximumWidth(), referenceLayout.maximumWidth()); + } +} + QTEST_MAIN(tst_QTextLayout) #include "tst_qtextlayout.moc" |