summaryrefslogtreecommitdiffstats
path: root/tests/auto/qtextscriptengine/tst_qtextscriptengine.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tests/auto/qtextscriptengine/tst_qtextscriptengine.cpp')
-rw-r--r--tests/auto/qtextscriptengine/tst_qtextscriptengine.cpp101
1 files changed, 81 insertions, 20 deletions
diff --git a/tests/auto/qtextscriptengine/tst_qtextscriptengine.cpp b/tests/auto/qtextscriptengine/tst_qtextscriptengine.cpp
index 6cbff362bc..cbed675cb7 100644
--- a/tests/auto/qtextscriptengine/tst_qtextscriptengine.cpp
+++ b/tests/auto/qtextscriptengine/tst_qtextscriptengine.cpp
@@ -76,9 +76,6 @@
//TESTED_CLASS=
//TESTED_FILES= gui/text/qscriptengine.cpp
-// This test depends on the fonts in the following package being installed:
-// http://people.freedesktop.org/~hausmann/harfbuzz-test-fonts-0.1.tar.bz2
-
class tst_QTextScriptEngine : public QObject
{
Q_OBJECT
@@ -89,6 +86,7 @@ public:
public slots:
+ void initTestCase();
void init();
void cleanup();
private slots:
@@ -111,9 +109,13 @@ private slots:
void mirroredChars_data();
void mirroredChars();
+
+private:
+ bool haveTestFonts;
};
tst_QTextScriptEngine::tst_QTextScriptEngine()
+ : haveTestFonts(qgetenv("QT_HAVE_TEST_FONTS") == QByteArray("1"))
{
}
@@ -121,6 +123,21 @@ tst_QTextScriptEngine::~tst_QTextScriptEngine()
{
}
+void tst_QTextScriptEngine::initTestCase()
+{
+#if defined(Q_WS_X11)
+ if (!haveTestFonts) {
+ qWarning(
+ "Some of these tests depend on the internals of some test fonts which are not freely "
+ "distributable.\n"
+ "These tests will be skipped.\n"
+ "If you have the fonts available, set QT_HAVE_TEST_FONTS=1 in your environment and "
+ "run the test again."
+ );
+ }
+#endif
+}
+
void tst_QTextScriptEngine::init()
{
}
@@ -184,6 +201,10 @@ static bool shaping( const QFont &f, const ShapeTable *s)
void tst_QTextScriptEngine::devanagari()
{
#if defined(Q_WS_X11)
+ if (!haveTestFonts) {
+ QSKIP("Test fonts are not available", SkipAll);
+ }
+
{
if (QFontDatabase().families(QFontDatabase::Devanagari).contains("Raghindi")) {
QFont f("Raghindi");
@@ -233,7 +254,7 @@ void tst_QTextScriptEngine::devanagari()
++s;
}
} else {
- QSKIP("couln't find Raghindi", SkipAll);
+ QSKIP("couldn't find Raghindi", SkipAll);
}
}
@@ -296,6 +317,10 @@ void tst_QTextScriptEngine::devanagari()
void tst_QTextScriptEngine::bengali()
{
#if defined(Q_WS_X11)
+ if (!haveTestFonts) {
+ QSKIP("Test fonts are not available", SkipAll);
+ }
+
{
if (QFontDatabase().families(QFontDatabase::Bengali).contains("Akaash")) {
QFont f("Akaash");
@@ -403,7 +428,7 @@ void tst_QTextScriptEngine::bengali()
++s;
}
} else {
- QSKIP("couln't find Akaash", SkipAll);
+ QSKIP("couldn't find Akaash", SkipAll);
}
}
{
@@ -508,7 +533,7 @@ void tst_QTextScriptEngine::bengali()
++s;
}
} else {
- QSKIP("couln't find Mukti", SkipAll);
+ QSKIP("couldn't find Mukti", SkipAll);
}
}
{
@@ -536,7 +561,7 @@ void tst_QTextScriptEngine::bengali()
++s;
}
} else {
- QSKIP("couln't find Likhan", SkipAll);
+ QSKIP("couldn't find Likhan", SkipAll);
}
}
#else
@@ -547,6 +572,10 @@ void tst_QTextScriptEngine::bengali()
void tst_QTextScriptEngine::gurmukhi()
{
#if defined(Q_WS_X11)
+ if (!haveTestFonts) {
+ QSKIP("Test fonts are not available", SkipAll);
+ }
+
{
if (QFontDatabase().families(QFontDatabase::Gurmukhi).contains("Lohit Punjabi")) {
QFont f("Lohit Punjabi");
@@ -563,7 +592,7 @@ void tst_QTextScriptEngine::gurmukhi()
++s;
}
} else {
- QSKIP("couln't find Lohit Punjabi", SkipAll);
+ QSKIP("couldn't find Lohit Punjabi", SkipAll);
}
}
#endif
@@ -572,6 +601,10 @@ void tst_QTextScriptEngine::gurmukhi()
void tst_QTextScriptEngine::oriya()
{
#if defined(Q_WS_X11)
+ if (!haveTestFonts) {
+ QSKIP("Test fonts are not available", SkipAll);
+ }
+
{
if (QFontDatabase().families(QFontDatabase::Oriya).contains("utkal")) {
QFont f("utkal");
@@ -600,7 +633,7 @@ void tst_QTextScriptEngine::oriya()
++s;
}
} else {
- QSKIP("couln't find utkal", SkipAll);
+ QSKIP("couldn't find utkal", SkipAll);
}
}
#else
@@ -612,6 +645,10 @@ void tst_QTextScriptEngine::oriya()
void tst_QTextScriptEngine::tamil()
{
#if defined(Q_WS_X11)
+ if (!haveTestFonts) {
+ QSKIP("Test fonts are not available", SkipAll);
+ }
+
{
if (QFontDatabase().families(QFontDatabase::Tamil).contains("AkrutiTml1")) {
QFont f("AkrutiTml1");
@@ -677,7 +714,7 @@ void tst_QTextScriptEngine::tamil()
++s;
}
} else {
- QSKIP("couln't find AkrutiTml1", SkipAll);
+ QSKIP("couldn't find AkrutiTml1", SkipAll);
}
}
#else
@@ -689,6 +726,10 @@ void tst_QTextScriptEngine::tamil()
void tst_QTextScriptEngine::telugu()
{
#if defined(Q_WS_X11)
+ if (!haveTestFonts) {
+ QSKIP("Test fonts are not available", SkipAll);
+ }
+
{
if (QFontDatabase().families(QFontDatabase::Telugu).contains("Pothana2000")) {
QFont f("Pothana2000");
@@ -725,7 +766,7 @@ void tst_QTextScriptEngine::telugu()
++s;
}
} else {
- QSKIP("couln't find Pothana2000", SkipAll);
+ QSKIP("couldn't find Pothana2000", SkipAll);
}
}
#else
@@ -772,7 +813,7 @@ void tst_QTextScriptEngine::kannada()
++s;
}
} else {
- QSKIP("couln't find Sampige", SkipAll);
+ QSKIP("couldn't find Sampige", SkipAll);
}
}
{
@@ -803,7 +844,7 @@ void tst_QTextScriptEngine::kannada()
++s;
}
} else {
- QSKIP("couln't find Tunga", SkipAll);
+ QSKIP("couldn't find Tunga", SkipAll);
}
}
#else
@@ -816,6 +857,10 @@ void tst_QTextScriptEngine::kannada()
void tst_QTextScriptEngine::malayalam()
{
#if defined(Q_WS_X11)
+ if (!haveTestFonts) {
+ QSKIP("Test fonts are not available", SkipAll);
+ }
+
{
if (QFontDatabase().families(QFontDatabase::Malayalam).contains("AkrutiMal2")) {
QFont f("AkrutiMal2");
@@ -864,7 +909,7 @@ void tst_QTextScriptEngine::malayalam()
++s;
}
} else {
- QSKIP("couln't find AkrutiMal2", SkipAll);
+ QSKIP("couldn't find AkrutiMal2", SkipAll);
}
}
{
@@ -892,7 +937,7 @@ void tst_QTextScriptEngine::malayalam()
++s;
}
} else {
- QSKIP("couln't find Rachana", SkipAll);
+ QSKIP("couldn't find Rachana", SkipAll);
}
}
@@ -904,6 +949,10 @@ void tst_QTextScriptEngine::malayalam()
void tst_QTextScriptEngine::sinhala()
{
#if defined(Q_WS_X11)
+ if (!haveTestFonts) {
+ QSKIP("Test fonts are not available", SkipAll);
+ }
+
{
if (QFontDatabase().families(QFontDatabase::Sinhala).contains("Malithi Web")) {
QFont f("Malithi Web");
@@ -930,7 +979,7 @@ void tst_QTextScriptEngine::sinhala()
++s;
}
} else {
- QSKIP("couln't find Malithi Web", SkipAll);
+ QSKIP("couldn't find Malithi Web", SkipAll);
}
}
#else
@@ -942,6 +991,10 @@ void tst_QTextScriptEngine::sinhala()
void tst_QTextScriptEngine::khmer()
{
#if defined(Q_WS_X11)
+ if (!haveTestFonts) {
+ QSKIP("Test fonts are not available", SkipAll);
+ }
+
{
if (QFontDatabase().families(QFontDatabase::Khmer).contains("Khmer OS")) {
QFont f("Khmer OS");
@@ -974,7 +1027,7 @@ void tst_QTextScriptEngine::khmer()
++s;
}
} else {
- QSKIP("couln't find Khmer OS", SkipAll);
+ QSKIP("couldn't find Khmer OS", SkipAll);
}
}
#else
@@ -985,6 +1038,10 @@ void tst_QTextScriptEngine::khmer()
void tst_QTextScriptEngine::linearB()
{
#if defined(Q_WS_X11)
+ if (!haveTestFonts) {
+ QSKIP("Test fonts are not available", SkipAll);
+ }
+
{
if (QFontDatabase().families(QFontDatabase::Any).contains("Penuturesu")) {
QFont f("Penuturesu");
@@ -1001,7 +1058,7 @@ void tst_QTextScriptEngine::linearB()
++s;
}
} else {
- QSKIP("couln't find Penuturesu", SkipAll);
+ QSKIP("couldn't find Penuturesu", SkipAll);
}
}
#else
@@ -1060,6 +1117,10 @@ static bool decomposedShaping( const QFont &f, const QChar &ch)
void tst_QTextScriptEngine::greek()
{
#if defined(Q_WS_X11)
+ if (!haveTestFonts) {
+ QSKIP("Test fonts are not available", SkipAll);
+ }
+
{
if (QFontDatabase().families(QFontDatabase::Any).contains("DejaVu Sans")) {
QFont f("DejaVu Sans");
@@ -1075,7 +1136,7 @@ void tst_QTextScriptEngine::greek()
QVERIFY( decomposedShaping(f, QChar(uc)) );
}
} else {
- QSKIP("couln't find DejaVu Sans", SkipAll);
+ QSKIP("couldn't find DejaVu Sans", SkipAll);
}
}
@@ -1111,7 +1172,7 @@ void tst_QTextScriptEngine::greek()
++s;
}
} else {
- QSKIP("couln't find SBL_grk", SkipAll);
+ QSKIP("couldn't find SBL_grk", SkipAll);
}
}
#else