diff options
Diffstat (limited to 'tests/auto')
-rw-r--r-- | tests/auto/corelib/tools/qtextboundaryfinder/tst_qtextboundaryfinder.cpp | 37 |
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 |