summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/auto/corelib/tools/qtextboundaryfinder/tst_qtextboundaryfinder.cpp37
1 files changed, 37 insertions, 0 deletions
diff --git a/tests/auto/corelib/tools/qtextboundaryfinder/tst_qtextboundaryfinder.cpp b/tests/auto/corelib/tools/qtextboundaryfinder/tst_qtextboundaryfinder.cpp
index 22d3465823..a0aab340a3 100644
--- a/tests/auto/corelib/tools/qtextboundaryfinder/tst_qtextboundaryfinder.cpp
+++ b/tests/auto/corelib/tools/qtextboundaryfinder/tst_qtextboundaryfinder.cpp
@@ -76,6 +76,8 @@ private slots:
void wordBoundaries_qtbug6498();
void isAtSoftHyphen_data();
void isAtSoftHyphen();
+ void isAtMandatoryBreak_data();
+ void isAtMandatoryBreak();
void thaiLineBreak();
};
@@ -659,6 +661,41 @@ void tst_QTextBoundaryFinder::isAtSoftHyphen()
}
}
+void tst_QTextBoundaryFinder::isAtMandatoryBreak_data()
+{
+ QTest::addColumn<QString>("testString");
+ QTest::addColumn<QList<int> >("expectedBreakPositions");
+
+ {
+ QChar s[] = { 0x000D, 0x0308, 0x000A, 0x000A };
+ QString testString(s, sizeof(s)/sizeof(s[0]));
+ QList<int> expectedBreakPositions;
+ expectedBreakPositions << 0 << 1 << 3 << 4;
+
+ QTest::newRow("+CR+FExLF+LF+") << testString << expectedBreakPositions;
+ }
+ {
+ QString testString(QString::fromUtf8("Aaa bbb ccc.\r\nDdd eee fff."));
+ QList<int> expectedBreakPositions;
+ expectedBreakPositions << 0 << 14 << 26;
+
+ QTest::newRow("data1") << testString << expectedBreakPositions;
+ }
+}
+
+void tst_QTextBoundaryFinder::isAtMandatoryBreak()
+{
+ QFETCH(QString, testString);
+ QFETCH(QList<int>, expectedBreakPositions);
+
+ QTextBoundaryFinder boundaryFinder(QTextBoundaryFinder::Line, testString);
+ for (int i = 0; i <= testString.size(); ++i) {
+ boundaryFinder.setPosition(i);
+ if (boundaryFinder.boundaryReasons() & QTextBoundaryFinder::MandatoryBreak)
+ QVERIFY(expectedBreakPositions.contains(i));
+ }
+}
+
#include <qlibrary.h>
#define LIBTHAI_MAJOR 0