diff options
author | Liang Qi <liang.qi@qt.io> | 2016-05-20 13:46:21 +0200 |
---|---|---|
committer | Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com> | 2016-05-23 21:09:46 +0200 |
commit | 56d6e000f7487c59172330ebd23a718268c508f1 (patch) | |
tree | 1494432583b1569816075091a8075b31d795f77c /tests/auto/gui/text/qfont/tst_qfont.cpp | |
parent | 9fd407fc6a29c94b4568dd042a05c208255179e0 (diff) | |
parent | c276aa51303b7c6f8e4cd854aadf8344a906e50f (diff) |
Merge remote-tracking branch 'origin/5.7' into dev
Conflicts:
mkspecs/wince80colibri-armv7-msvc2012/qmake.conf
qmake/generators/win32/msvc_vcproj.cpp
src/corelib/global/qnamespace.h
src/corelib/global/qnamespace.qdoc
src/corelib/io/qfsfileengine_win.cpp
src/corelib/tools/tools.pri
src/network/ssl/qsslconfiguration_p.h
src/plugins/platforms/linuxfb/qlinuxfbscreen.cpp
src/plugins/platforms/windows/windows.pri
src/src.pro
src/tools/bootstrap/bootstrap.pro
src/tools/uic/cpp/cppwriteinitialization.cpp
src/widgets/dialogs/qfilesystemmodel.cpp
tests/auto/testlib/selftests/expected_cmptest.teamcity
tests/auto/testlib/selftests/expected_cmptest.txt
Change-Id: I4d2ac78f0dcc97f008186bbbc769c6fe588ab0e5
Diffstat (limited to 'tests/auto/gui/text/qfont/tst_qfont.cpp')
-rw-r--r-- | tests/auto/gui/text/qfont/tst_qfont.cpp | 156 |
1 files changed, 4 insertions, 152 deletions
diff --git a/tests/auto/gui/text/qfont/tst_qfont.cpp b/tests/auto/gui/text/qfont/tst_qfont.cpp index 188c35c14c..894b197968 100644 --- a/tests/auto/gui/text/qfont/tst_qfont.cpp +++ b/tests/auto/gui/text/qfont/tst_qfont.cpp @@ -110,158 +110,10 @@ void tst_QFont::exactMatch() // Check if a non-existing font hasn't an exact match font = QFont( "BogusFont", 33 ); QVERIFY( !font.exactMatch() ); - -#ifdef Q_OS_WIN - QSKIP("Exact matching on windows misses a lot because of the sample chars"); -#endif - - - if (!QGuiApplication::platformName().compare("xcb", Qt::CaseInsensitive)) { - QVERIFY(QFont("sans").exactMatch()); - QVERIFY(QFont("sans-serif").exactMatch()); - QVERIFY(QFont("serif").exactMatch()); - QVERIFY(QFont("monospace").exactMatch()); - } - - QSKIP("This test is bogus on Unix with support for font aliases in fontconfig"); - - QFontDatabase fdb; - - QList<QFontDatabase::WritingSystem> systems = fdb.writingSystems(); - for (int system = 0; system < systems.count(); ++system) { - QStringList families = fdb.families(systems[system]); - if (families.isEmpty()) - return; - - QStringList::ConstIterator f_it, f_end = families.end(); - for (f_it = families.begin(); f_it != f_end; ++f_it) { - const QString &family = *f_it; - if (family.contains('[')) - continue; - - QStringList styles = fdb.styles(family); - QVERIFY(!styles.isEmpty()); - QStringList::ConstIterator s_it, s_end = styles.end(); - for (s_it = styles.begin(); s_it != s_end; ++s_it) { - const QString &style = *s_it; - - if (fdb.isSmoothlyScalable(family, style)) { - // smoothly scalable font... don't need to load every pointsize - font = fdb.font(family, style, 12); - QFontInfo fontinfo(font); - - if (! fontinfo.exactMatch()) { - // Unfortunately, this can fail, since - // QFontDatabase does not fill in all font - // properties. Check to make sure that the - // test didn't fail for obvious reasons - - if (fontinfo.family().isEmpty() - && fontinfo.pointSize() == 0) { - // this is a box rendering engine... this can happen from - // time to time, especially on X11 with iso10646-1 or - // unknown font encodings - continue; - } - -#ifdef Q_OS_WIN - if (font.family().startsWith("MS ") || fontinfo.family().startsWith("MS ")) { - /* qDebug("Family matching skipped for MS-Alias font: %s, fontinfo: %s", - font.family().latin1(), fontinfo.family().latin1()); - */ - } else -#endif - { - if (!(font.family() == fontinfo.family() - || fontinfo.family().contains(font.family()) - || fontinfo.family().isEmpty())) { - qDebug("Test about to fail for font: %s, fontinfo: %s", - font.family().toLatin1().constData(), - fontinfo.family().toLatin1().constData()); - } - QVERIFY(font.family() == fontinfo.family() - || fontinfo.family().contains(font.family()) - || fontinfo.family().isEmpty()); - } - if (font.pointSize() != -1) { - QCOMPARE(font.pointSize(), fontinfo.pointSize()); - } else { - QCOMPARE(font.pixelSize(), fontinfo.pixelSize()); - } - QCOMPARE(font.italic(), fontinfo.italic()); - if (font.weight() != fontinfo.weight()) { - qDebug("font is %s", font.toString().toLatin1().constData()); - } - QCOMPARE(font.weight(), fontinfo.weight()); - } else { - font.setFixedPitch(!fontinfo.fixedPitch()); - QFontInfo fontinfo1(font); - QVERIFY( !fontinfo1.exactMatch() ); - - font.setFixedPitch(fontinfo.fixedPitch()); - QFontInfo fontinfo2(font); - QVERIFY( fontinfo2.exactMatch() ); - } - } -#if 0 - // ############## can only work if we have float point sizes in QFD - else { - QList<int> sizes = fdb.pointSizes(family, style); - QVERIFY(!sizes.isEmpty()); - QList<int>::ConstIterator z_it, z_end = sizes.end(); - for (z_it = sizes.begin(); z_it != z_end; ++z_it) { - const int size = *z_it; - - // Initialize the font, and check if it is an exact match - font = fdb.font(family, style, size); - QFontInfo fontinfo(font, (QFont::Script) script); - - if (! fontinfo.exactMatch()) { - // Unfortunately, this can fail, since - // QFontDatabase does not fill in all font - // properties. Check to make sure that the - // test didn't fail for obvious reasons - - if (fontinfo.family().isEmpty() - && fontinfo.pointSize() == 0) { - // this is a box rendering engine... this can happen from - // time to time, especially on X11 with iso10646-1 or - // unknown font encodings - continue; - } - - // no need to skip MS-fonts here it seems - if (!(font.family() == fontinfo.family() - || fontinfo.family().contains(font.family()) - || fontinfo.family().isEmpty())) { - qDebug("Test about to fail for font: %s, fontinfo: %s", - font.family().latin1(), fontinfo.family().latin1()); - } - QVERIFY(font.family() == fontinfo.family() - || fontinfo.family().contains(font.family()) - || fontinfo.family().isEmpty()); - if (font.pointSize() != -1) { - QCOMPARE(font.pointSize(), fontinfo.pointSize()); - } else { - QCOMPARE(font.pixelSize(), fontinfo.pixelSize()); - } - QCOMPARE(font.italic(), fontinfo.italic()); - QCOMPARE(font.weight(), fontinfo.weight()); - } else { - font.setFixedPitch(!fontinfo.fixedPitch()); - QFontInfo fontinfo1(font, (QFont::Script) script); - QVERIFY( !fontinfo1.exactMatch() ); - - font.setFixedPitch(fontinfo.fixedPitch()); - QFontInfo fontinfo2(font, (QFont::Script) script); - QVERIFY( fontinfo2.exactMatch() ); - } - } - } -#endif - } - } - } + QVERIFY(!QFont("sans").exactMatch()); + QVERIFY(!QFont("sans-serif").exactMatch()); + QVERIFY(!QFont("serif").exactMatch()); + QVERIFY(!QFont("monospace").exactMatch()); } void tst_QFont::italicOblique() |