From 2bf2bb3daf32935e3642447d40732998df819556 Mon Sep 17 00:00:00 2001 From: Konstantin Ritt Date: Thu, 6 Oct 2011 14:56:24 +0200 Subject: fix QChar::isSpace() to handle codepoint U+0085 according to the Unicode specs, code point U+0085 should be treated like a white space character (an exceptional Cc one) Change-Id: Ib17ae0c4d3cdafe667cafa38b645138ef24c238c Merge-request: 32 Reviewed-by: Jiang Jiang Reviewed-on: http://codereview.qt-project.org/6158 Reviewed-by: Qt Sanity Bot --- tests/auto/corelib/tools/qchar/tst_qchar.cpp | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) (limited to 'tests/auto/corelib/tools') diff --git a/tests/auto/corelib/tools/qchar/tst_qchar.cpp b/tests/auto/corelib/tools/qchar/tst_qchar.cpp index 195abcd578..7f5747120c 100644 --- a/tests/auto/corelib/tools/qchar/tst_qchar.cpp +++ b/tests/auto/corelib/tools/qchar/tst_qchar.cpp @@ -84,6 +84,7 @@ private slots: void isLower(); void isSpace_data(); void isSpace(); + void isSpaceSpecial(); void isTitle(); void category(); void direction(); @@ -343,7 +344,7 @@ void tst_QChar::isSpace_data() QTest::addColumn("expected"); for (ushort ucs = 0; ucs < 256; ++ucs) { - bool isSpace = (ucs <= 0x0D && ucs >= 0x09) || ucs == 0x20 || ucs == 0xA0; + bool isSpace = (ucs <= 0x0D && ucs >= 0x09) || ucs == 0x20 || ucs == 0xA0 || ucs == 0x85; QString tag = QString::fromLatin1("0x%0").arg(QString::number(ucs, 16)); QTest::newRow(tag.toLatin1()) << ucs << isSpace; } @@ -356,6 +357,15 @@ void tst_QChar::isSpace() QCOMPARE(QChar(ucs).isSpace(), expected); } +void tst_QChar::isSpaceSpecial() +{ + QVERIFY(!QChar(QChar::Null).isSpace()); + QVERIFY(QChar(QChar::Nbsp).isSpace()); + QVERIFY(QChar(QChar::ParagraphSeparator).isSpace()); + QVERIFY(QChar(QChar::LineSeparator).isSpace()); + QVERIFY(QChar(0x1680).isSpace()); +} + void tst_QChar::isTitle() { for (uint codepoint = 0; codepoint <= UNICODE_LAST_CODEPOINT; ++codepoint) { -- cgit v1.2.3