diff options
author | Ritt Konstantin <ritt.ks@gmail.com> | 2010-02-24 19:13:24 (GMT) |
---|---|---|
committer | Thiago Macieira <thiago.macieira@nokia.com> | 2010-03-05 15:58:07 (GMT) |
commit | 58ea5d52b4f30fc1d029db05b09b60fef49a6f2a (patch) | |
tree | 54cb30cb9776fd940f56a778f90943753f99016a /tests/auto/qchar | |
parent | 7706e9ba3807f9f31a9310f39f0c8b3007f7fb10 (diff) | |
download | Qt-58ea5d52b4f30fc1d029db05b09b60fef49a6f2a.zip Qt-58ea5d52b4f30fc1d029db05b09b60fef49a6f2a.tar.gz Qt-58ea5d52b4f30fc1d029db05b09b60fef49a6f2a.tar.bz2 |
Unicode character property 'General_Category=Cn' was erroneously ignored
causing two related bugs in QChar::category() and QChar::isPrint().
As described in tr44, 4.2.8 Default Values
General_Category character property should be setted to Cn
for all codepoints omitted in UCD.
Instead they was mapped to QChar::NoCategory (=0) which have no equivalent
in Unicode specs and as result was ignored in filtering by binary mask.
Merge-request: 480
Reviewed-by: Thiago Macieira <thiago.macieira@nokia.com>
Diffstat (limited to 'tests/auto/qchar')
-rw-r--r-- | tests/auto/qchar/tst_qchar.cpp | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/tests/auto/qchar/tst_qchar.cpp b/tests/auto/qchar/tst_qchar.cpp index 547147c..6227c2e 100644 --- a/tests/auto/qchar/tst_qchar.cpp +++ b/tests/auto/qchar/tst_qchar.cpp @@ -72,6 +72,7 @@ private slots: void toLower(); void toTitle(); void toCaseFolded(); + void isPrint(); void isUpper(); void isLower(); void category(); @@ -218,6 +219,12 @@ void tst_QChar::toCaseFolded() QVERIFY(QChar::toCaseFolded((ushort)0xb5) == 0x3bc); } +void tst_QChar::isPrint() +{ + QVERIFY(QChar('A').isPrint()); + QVERIFY(!QChar(0x1aff).isPrint()); // General_Gategory =Cn +} + void tst_QChar::isUpper() { QVERIFY(QChar('A').isUpper()); @@ -259,6 +266,12 @@ void tst_QChar::category() QVERIFY(QChar::category(0xd900u) == QChar::Other_Surrogate); QVERIFY(QChar::category(0xdc00u) == QChar::Other_Surrogate); QVERIFY(QChar::category(0xdc01u) == QChar::Other_Surrogate); + + QVERIFY(QChar::category((uint)0x10fffdu) == QChar::Other_PrivateUse); + QVERIFY(QChar::category((uint)0x110000u) == QChar::NoCategory); + + QVERIFY(QChar::category((uint)0x1aff) == QChar::Other_NotAssigned); + QVERIFY(QChar::category((uint)0x10ffffu) == QChar::Other_NotAssigned); } void tst_QChar::direction() |