From 7940521fd9d985b9565193a5bb8d13fc92ac1042 Mon Sep 17 00:00:00 2001 From: Kurt Korbatits Date: Fri, 13 Jan 2012 13:05:50 +1000 Subject: Changed qrawfont unittest to work from installation directory. - uses QFINDTESTDATA instead of SRCDIR - Added check to test if fonts are present and generate one skip instead of 1200+ on platforms were no fonts are available for testing. - fail if unittest fonts not found. Change-Id: I9c051cf8cef6cd355f16647c614c86771dcf6150 Reviewed-by: Kurt Korbatits Reviewed-by: Rohan McGovern Reviewed-by: Jason McDonald --- tests/auto/gui/text/qrawfont/qrawfont.pro | 6 +-- tests/auto/gui/text/qrawfont/tst_qrawfont.cpp | 73 ++++++++++++++++----------- 2 files changed, 44 insertions(+), 35 deletions(-) (limited to 'tests/auto') diff --git a/tests/auto/gui/text/qrawfont/qrawfont.pro b/tests/auto/gui/text/qrawfont/qrawfont.pro index 3b5e2b1046..149ad6442e 100644 --- a/tests/auto/gui/text/qrawfont/qrawfont.pro +++ b/tests/auto/gui/text/qrawfont/qrawfont.pro @@ -8,8 +8,4 @@ SOURCES += \ INCLUDEPATH += $$QT_SOURCE_TREE/src/3rdparty/harfbuzz/src -wince* { - DEFINES += SRCDIR=\\\"\\\" -} else { - DEFINES += SRCDIR=\\\"$$PWD/\\\" -} +TESTDATA += testfont_bold_italic.ttf testfont.ttf diff --git a/tests/auto/gui/text/qrawfont/tst_qrawfont.cpp b/tests/auto/gui/text/qrawfont/tst_qrawfont.cpp index 1bb18176f5..a0cda39c27 100644 --- a/tests/auto/gui/text/qrawfont/tst_qrawfont.cpp +++ b/tests/auto/gui/text/qrawfont/tst_qrawfont.cpp @@ -40,6 +40,7 @@ ****************************************************************************/ #include +#include #include #include @@ -50,6 +51,7 @@ class tst_QRawFont: public QObject #if !defined(QT_NO_RAWFONT) private slots: void init(); + void initTestCase(); void invalidRawFont(); @@ -99,7 +101,9 @@ private slots: #if defined(Q_WS_X11) || defined(Q_WS_MAC) void multipleRawFontsFromData(); #endif - +private: + QString testFont; + QString testFontBoldItalic; #endif // QT_NO_RAWFONT }; @@ -113,6 +117,18 @@ void tst_QRawFont::init() { } +void tst_QRawFont::initTestCase() +{ + testFont = QFINDTESTDATA("testfont.ttf"); + testFontBoldItalic = QFINDTESTDATA("testfont_bold_italic.ttf"); + if (testFont.isEmpty() || testFontBoldItalic.isEmpty()) + QFAIL("qrawfont unittest font files not found!"); + + QFontDatabase database; + if (database.families().count() == 0) + QSKIP("No fonts available!!!"); +} + void tst_QRawFont::invalidRawFont() { QRawFont font; @@ -140,7 +156,7 @@ void tst_QRawFont::explicitRawFontNotLoadedInDatabase() { QFETCH(QFont::HintingPreference, hintingPreference); - QRawFont font(QLatin1String(SRCDIR "testfont.ttf"), 10, hintingPreference); + QRawFont font(testFont, 10, hintingPreference); QVERIFY(font.isValid()); QVERIFY(!QFontDatabase().families().contains(font.familyName())); @@ -160,7 +176,7 @@ void tst_QRawFont::explicitRawFontNotAvailableInSystem() { QFETCH(QFont::HintingPreference, hintingPreference); - QRawFont rawfont(QLatin1String(SRCDIR "testfont.ttf"), 10, hintingPreference); + QRawFont rawfont(testFont, 10, hintingPreference); { QFont font(rawfont.familyName(), 10); @@ -190,7 +206,7 @@ void tst_QRawFont::correctFontData_data() int *hintingPreference = hintingPreferences; while (*hintingPreference >= 0) { - QString fileName = QLatin1String(SRCDIR "testfont.ttf"); + QString fileName = testFont; QString title = fileName + QLatin1String(": hintingPreference=") + QString::number(*hintingPreference); @@ -204,7 +220,7 @@ void tst_QRawFont::correctFontData_data() << 1000.0 << 10.0; - fileName = QLatin1String(SRCDIR "testfont_bold_italic.ttf"); + fileName = testFontBoldItalic; title = fileName + QLatin1String(": hintingPreference=") + QString::number(*hintingPreference); @@ -245,7 +261,7 @@ void tst_QRawFont::correctFontData() void tst_QRawFont::glyphIndices() { - QRawFont font(QLatin1String(SRCDIR "testfont.ttf"), 10); + QRawFont font(testFont, 10); QVERIFY(font.isValid()); QVector glyphIndices = font.glyphIndexesForString(QLatin1String("Foobar")); @@ -269,7 +285,7 @@ void tst_QRawFont::advances() { QFETCH(QFont::HintingPreference, hintingPreference); - QRawFont font(QLatin1String(SRCDIR "testfont.ttf"), 10, hintingPreference); + QRawFont font(testFont, 10, hintingPreference); QVERIFY(font.isValid()); QRawFontPrivate *font_d = QRawFontPrivate::get(font); @@ -292,7 +308,7 @@ void tst_QRawFont::advances() void tst_QRawFont::textLayout() { QFontDatabase fontDatabase; - int id = fontDatabase.addApplicationFont(SRCDIR "testfont.ttf"); + int id = fontDatabase.addApplicationFont(testFont); QVERIFY(id >= 0); QString familyName = QString::fromLatin1("QtBidiTestFont"); @@ -371,7 +387,7 @@ void tst_QRawFont::fontTable() QFETCH(int, offset); QFETCH(quint32, expectedValue); - QRawFont font(QString::fromLatin1(SRCDIR "testfont.ttf"), 10, hintingPreference); + QRawFont font(testFont, 10, hintingPreference); QVERIFY(font.isValid()); QByteArray table = font.fontTable(tagName); @@ -396,7 +412,7 @@ void tst_QRawFont::supportedWritingSystems_data() QTest::newRow(qPrintable(QString::fromLatin1("testfont.ttf, hintingPreference=%1") .arg(hintingPreference))) - << QString::fromLatin1(SRCDIR "testfont.ttf") + << testFont << (QList() << QFontDatabase::Latin << QFontDatabase::Hebrew @@ -405,7 +421,7 @@ void tst_QRawFont::supportedWritingSystems_data() QTest::newRow(qPrintable(QString::fromLatin1("testfont_bold_italic.ttf, hintingPreference=%1") .arg(hintingPreference))) - << QString::fromLatin1(SRCDIR "testfont_bold_italic.ttf") + << testFontBoldItalic << (QList() << QFontDatabase::Latin << QFontDatabase::Hebrew @@ -439,8 +455,8 @@ void tst_QRawFont::supportsCharacter_data() QTest::addColumn("shouldBeSupported"); const char *fileNames[2] = { - SRCDIR "testfont.ttf", - SRCDIR "testfont_bold_italic.ttf" + "testfont.ttf", + "testfont_bold_italic.ttf" }; for (int hintingPreference=QFont::PreferDefaultHinting; @@ -448,7 +464,7 @@ void tst_QRawFont::supportsCharacter_data() ++hintingPreference) { for (int i=0; i<2; ++i) { - QString fileName = QLatin1String(fileNames[i]); + QString fileName = QFINDTESTDATA(fileNames[i]); // Latin text for (char ch='!'; ch<='~'; ++ch) { @@ -510,7 +526,7 @@ void tst_QRawFont::supportsUcs4Character_data() ++hintingPreference) { for (quint32 ch=0x10330; ch<=0x1034A; ++ch) { { - QString fileName = QString::fromLatin1(SRCDIR "testfont.ttf"); + QString fileName = testFont; QString title = QString::fromLatin1("%1, character=0x%2, hintingPreference=%3") .arg(fileName).arg(QString::number(ch, 16)).arg(hintingPreference); @@ -522,7 +538,7 @@ void tst_QRawFont::supportsUcs4Character_data() } { - QString fileName = QString::fromLatin1(SRCDIR "testfont_bold_italic.ttf"); + QString fileName = testFontBoldItalic; QString title = QString::fromLatin1("%1, character=0x%2, hintingPreference=%3") .arg(fileName).arg(QString::number(ch, 16)).arg(hintingPreference); @@ -560,7 +576,7 @@ void tst_QRawFont::fromFont_data() QString titleBase = QString::fromLatin1("%2, hintingPreference=%1, writingSystem=%3") .arg(i); { - QString fileName = QString::fromLatin1(SRCDIR "testfont.ttf"); + QString fileName = testFont; QFontDatabase::WritingSystem writingSystem = QFontDatabase::Any; QString title = titleBase.arg(fileName).arg(writingSystem); @@ -572,7 +588,7 @@ void tst_QRawFont::fromFont_data() } { - QString fileName = QString::fromLatin1(SRCDIR "testfont.ttf"); + QString fileName = testFont; QFontDatabase::WritingSystem writingSystem = QFontDatabase::Hebrew; QString title = titleBase.arg(fileName).arg(writingSystem); @@ -584,7 +600,7 @@ void tst_QRawFont::fromFont_data() } { - QString fileName = QString::fromLatin1(SRCDIR "testfont.ttf"); + QString fileName = testFont; QFontDatabase::WritingSystem writingSystem = QFontDatabase::Latin; QString title = titleBase.arg(fileName).arg(writingSystem); @@ -644,7 +660,7 @@ void tst_QRawFont::copyConstructor() QRawFont outerRawFont; { - QRawFont rawFont(QString::fromLatin1(SRCDIR "testfont.ttf"), 11, hintingPreference); + QRawFont rawFont(testFont, 11, hintingPreference); QVERIFY(rawFont.isValid()); rawFontFamilyName = rawFont.familyName(); @@ -712,7 +728,7 @@ void tst_QRawFont::detach() QRawFont outerRawFont; { - QRawFont rawFont(QString::fromLatin1(SRCDIR "testfont.ttf"), 11, hintingPreference); + QRawFont rawFont(testFont, 11, hintingPreference); QVERIFY(rawFont.isValid()); rawFontFamilyName = rawFont.familyName(); @@ -725,8 +741,7 @@ void tst_QRawFont::detach() { QRawFont otherRawFont(rawFont); - otherRawFont.loadFromFile(QLatin1String(SRCDIR "testfont.ttf"), - rawFontPixelSize, hintingPreference); + otherRawFont.loadFromFile(testFont, rawFontPixelSize, hintingPreference); QVERIFY(otherRawFont.isValid()); QCOMPARE(otherRawFont.pixelSize(), rawFontPixelSize); @@ -740,8 +755,7 @@ void tst_QRawFont::detach() { QRawFont otherRawFont = rawFont; - otherRawFont.loadFromFile(QLatin1String(SRCDIR "testfont.ttf"), - rawFontPixelSize, hintingPreference); + otherRawFont.loadFromFile(testFont, rawFontPixelSize, hintingPreference); QVERIFY(otherRawFont.isValid()); QCOMPARE(otherRawFont.pixelSize(), rawFontPixelSize); @@ -754,8 +768,7 @@ void tst_QRawFont::detach() outerRawFont = rawFont; - rawFont.loadFromFile(QLatin1String(SRCDIR "testfont.ttf"), rawFontPixelSize, - hintingPreference); + rawFont.loadFromFile(testFont, rawFontPixelSize, hintingPreference); } QVERIFY(outerRawFont.isValid()); @@ -783,7 +796,7 @@ void tst_QRawFont::unsupportedWritingSystem() QFETCH(QFont::HintingPreference, hintingPreference); QFontDatabase fontDatabase; - int id = fontDatabase.addApplicationFont(QLatin1String(SRCDIR "testfont.ttf")); + int id = fontDatabase.addApplicationFont(testFont); QFont font("QtBidiTestFont"); font.setHintingPreference(hintingPreference); @@ -857,13 +870,13 @@ void tst_QRawFont::rawFontSetPixelSize() #if defined(Q_WS_X11) || defined(Q_WS_MAC) void tst_QRawFont::multipleRawFontsFromData() { - QFile file(QString::fromLatin1(SRCDIR "testfont.ttf")); + QFile file(testFont); QRawFont testFont; if (file.open(QIODevice::ReadOnly)) { testFont.loadFromData(file.readAll(), 11, QFont::PreferDefaultHinting); file.close(); } - file.setFileName(QLatin1String(SRCDIR "testfont_bold_italic.ttf")); + file.setFileName(testFontBoldItalic); QRawFont testFontBoldItalic; if (file.open(QIODevice::ReadOnly)) testFontBoldItalic.loadFromData(file.readAll(), 11, QFont::PreferDefaultHinting); -- cgit v1.2.3