summaryrefslogtreecommitdiffstats
path: root/tests/auto/gui/text/qfont/tst_qfont.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tests/auto/gui/text/qfont/tst_qfont.cpp')
-rw-r--r--tests/auto/gui/text/qfont/tst_qfont.cpp219
1 files changed, 19 insertions, 200 deletions
diff --git a/tests/auto/gui/text/qfont/tst_qfont.cpp b/tests/auto/gui/text/qfont/tst_qfont.cpp
index 93e308b96a..d8a6afb804 100644
--- a/tests/auto/gui/text/qfont/tst_qfont.cpp
+++ b/tests/auto/gui/text/qfont/tst_qfont.cpp
@@ -1,31 +1,26 @@
/****************************************************************************
**
-** Copyright (C) 2015 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
+** Copyright (C) 2016 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
**
** This file is part of the test suite of the Qt Toolkit.
**
-** $QT_BEGIN_LICENSE:LGPL21$
+** $QT_BEGIN_LICENSE:GPL-EXCEPT$
** Commercial License Usage
** Licensees holding valid commercial Qt licenses may use this file in
** accordance with the commercial license agreement provided with the
** Software or, alternatively, in accordance with the terms contained in
** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 or version 3 as published by the Free
-** Software Foundation and appearing in the file LICENSE.LGPLv21 and
-** LICENSE.LGPLv3 included in the packaging of this file. Please review the
-** following information to ensure the GNU Lesser General Public License
-** requirements will be met: https://www.gnu.org/licenses/lgpl.html and
-** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** As a special exception, The Qt Company gives you certain additional
-** rights. These rights are described in The Qt Company LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3 as published by the Free Software
+** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-3.0.html.
**
** $QT_END_LICENSE$
**
@@ -50,13 +45,6 @@ class tst_QFont : public QObject
{
Q_OBJECT
-public:
- tst_QFont();
- virtual ~tst_QFont();
-
-public slots:
- void init();
- void cleanup();
private slots:
void getSetCheck();
void exactMatch();
@@ -115,27 +103,6 @@ void tst_QFont::getSetCheck()
QCOMPARE(QFont::StyleStrategy(QFont::OpenGLCompatible), obj1.styleStrategy());
}
-tst_QFont::tst_QFont()
-{
-}
-
-tst_QFont::~tst_QFont()
-{
-
-}
-
-void tst_QFont::init()
-{
-// TODO: Add initialization code here.
-// This will be executed immediately before each test is run.
-}
-
-void tst_QFont::cleanup()
-{
-// TODO: Add cleanup code here.
-// This will be executed immediately after each test is run.
-}
-
void tst_QFont::exactMatch()
{
QFont font;
@@ -143,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()
@@ -504,7 +323,7 @@ void tst_QFont::isCopyOf()
void tst_QFont::insertAndRemoveSubstitutions()
{
- QFont::removeSubstitution("BogusFontFamily");
+ QFont::removeSubstitutions("BogusFontFamily");
// make sure it is empty before we start
QVERIFY(QFont::substitutes("BogusFontFamily").isEmpty());
QVERIFY(QFont::substitutes("bogusfontfamily").isEmpty());
@@ -521,7 +340,7 @@ void tst_QFont::insertAndRemoveSubstitutions()
QCOMPARE(QFont::substitutes("BogusFontFamily").count(), 3);
QCOMPARE(QFont::substitutes("bogusfontfamily").count(), 3);
- QFont::removeSubstitution("BogusFontFamily");
+ QFont::removeSubstitutions("BogusFontFamily");
// make sure it is empty again
QVERIFY(QFont::substitutes("BogusFontFamily").isEmpty());
QVERIFY(QFont::substitutes("bogusfontfamily").isEmpty());
@@ -679,7 +498,7 @@ static inline QByteArray msgNotAcceptableFont(const QString &defaultFamily, cons
{
QString res = QString::fromLatin1("Font family '%1' is not one of the following acceptable results: ").arg(defaultFamily);
Q_FOREACH (const QString &family, acceptableFamilies)
- res += QString::fromLatin1("\n %1").arg(family);
+ res += QLatin1String("\n ") + family;
return res.toLocal8Bit();
}