summaryrefslogtreecommitdiffstats
path: root/tests/auto/gui/text/qtextlayout/tst_qtextlayout.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tests/auto/gui/text/qtextlayout/tst_qtextlayout.cpp')
-rw-r--r--tests/auto/gui/text/qtextlayout/tst_qtextlayout.cpp24
1 files changed, 24 insertions, 0 deletions
diff --git a/tests/auto/gui/text/qtextlayout/tst_qtextlayout.cpp b/tests/auto/gui/text/qtextlayout/tst_qtextlayout.cpp
index 26eaec0470..ec698e5db4 100644
--- a/tests/auto/gui/text/qtextlayout/tst_qtextlayout.cpp
+++ b/tests/auto/gui/text/qtextlayout/tst_qtextlayout.cpp
@@ -139,6 +139,7 @@ private slots:
void cursorInLigatureWithMultipleLines();
void xToCursorForLigatures();
void cursorInNonStopChars();
+ void nbsp();
private:
QFont testFont;
@@ -2011,5 +2012,28 @@ void tst_QTextLayout::justifyTrailingSpaces()
QVERIFY(qFuzzyIsNull(layout.lineAt(0).cursorToX(0)));
}
+void tst_QTextLayout::nbsp()
+{
+ QString s = QString() + QChar(' ') + QChar('a') + QString(10, QChar::Nbsp) + QChar('a') + QChar(' ') + QChar('A');
+ QString text = s + s + s + s + s + s + s + s + s + s + s + s + s + s;
+ QTextLayout layout(text);
+ layout.setCacheEnabled(true);
+ layout.beginLayout();
+ layout.createLine();
+ layout.endLayout();
+
+ int naturalWidth = qCeil(layout.lineAt(0).naturalTextWidth());
+ int lineWidth = naturalWidth;
+
+ layout.beginLayout();
+ QTextLine line = layout.createLine();
+ while (lineWidth-- > naturalWidth / 2) {
+ line.setLineWidth(lineWidth);
+ QVERIFY(text.at(line.textLength()-1).unicode() != QChar::Nbsp);
+ }
+
+ layout.endLayout();
+}
+
QTEST_MAIN(tst_QTextLayout)
#include "tst_qtextlayout.moc"