summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/auto/gui/text/qglyphrun/test.ttfbin3712 -> 2008 bytes
-rw-r--r--tests/auto/gui/text/qglyphrun/tst_qglyphrun.cpp20
-rw-r--r--tests/auto/gui/text/qtextscriptengine/tst_qtextscriptengine.cpp22
3 files changed, 34 insertions, 8 deletions
diff --git a/tests/auto/gui/text/qglyphrun/test.ttf b/tests/auto/gui/text/qglyphrun/test.ttf
index 9043a576ef..382b2547b0 100644
--- a/tests/auto/gui/text/qglyphrun/test.ttf
+++ b/tests/auto/gui/text/qglyphrun/test.ttf
Binary files differ
diff --git a/tests/auto/gui/text/qglyphrun/tst_qglyphrun.cpp b/tests/auto/gui/text/qglyphrun/tst_qglyphrun.cpp
index f576627745..8d1ec51c26 100644
--- a/tests/auto/gui/text/qglyphrun/tst_qglyphrun.cpp
+++ b/tests/auto/gui/text/qglyphrun/tst_qglyphrun.cpp
@@ -77,6 +77,7 @@ private slots:
void setRawData();
void setRawDataAndGetAsVector();
void boundingRect();
+ void mixedScripts();
private:
int m_testFontId;
@@ -399,7 +400,7 @@ void tst_QGlyphRun::setRawDataAndGetAsVector()
void tst_QGlyphRun::drawNonExistentGlyphs()
{
QVector<quint32> glyphIndexes;
- glyphIndexes.append(3);
+ glyphIndexes.append(4);
QVector<QPointF> glyphPositions;
glyphPositions.append(QPointF(0, 0));
@@ -725,6 +726,23 @@ void tst_QGlyphRun::boundingRect()
QCOMPARE(glyphs.boundingRect(), boundingRect);
}
+void tst_QGlyphRun::mixedScripts()
+{
+ QString s;
+ s += QChar(0x31); // The character '1'
+ s += QChar(0xbc14); // Hangul character
+
+ QTextLayout layout;
+ layout.setFont(m_testFont);
+ layout.setText(s);
+ layout.beginLayout();
+ layout.createLine();
+ layout.endLayout();
+
+ QList<QGlyphRun> glyphRuns = layout.glyphRuns();
+ QCOMPARE(glyphRuns.size(), 2);
+}
+
#endif // QT_NO_RAWFONT
QTEST_MAIN(tst_QGlyphRun)
diff --git a/tests/auto/gui/text/qtextscriptengine/tst_qtextscriptengine.cpp b/tests/auto/gui/text/qtextscriptengine/tst_qtextscriptengine.cpp
index 74eb58670b..5dfb025510 100644
--- a/tests/auto/gui/text/qtextscriptengine/tst_qtextscriptengine.cpp
+++ b/tests/auto/gui/text/qtextscriptengine/tst_qtextscriptengine.cpp
@@ -1258,21 +1258,29 @@ void tst_QTextScriptEngine::thaiWithZWJ()
QTextLayout layout(s, font);
QTextEngine *e = layout.engine();
e->itemize();
- QCOMPARE(e->layoutData->items.size(), 3);
+ QCOMPARE(e->layoutData->items.size(), 11);
for (int item = 0; item < e->layoutData->items.size(); ++item)
e->shape(item);
- QCOMPARE(e->layoutData->items[0].num_glyphs, ushort(15)); // Thai: The ZWJ and ZWNJ characters are inherited, so should be part of the thai script
- QCOMPARE(e->layoutData->items[1].num_glyphs, ushort(1)); // Han: Kanji for tree
- QCOMPARE(e->layoutData->items[2].num_glyphs, ushort(2)); // Thai: Thai character followed by superscript "a" which is of inherited type
+ QCOMPARE(e->layoutData->items[0].num_glyphs, ushort(7)); // Thai: The ZWJ and ZWNJ characters are inherited, so should be part of the thai script
+ QCOMPARE(e->layoutData->items[1].num_glyphs, ushort(1)); // Common: The smart quotes cannot be handled by thai, so should be a separate item
+ QCOMPARE(e->layoutData->items[2].num_glyphs, ushort(1)); // Thai: Thai character
+ QCOMPARE(e->layoutData->items[3].num_glyphs, ushort(1)); // Common: Ellipsis
+ QCOMPARE(e->layoutData->items[4].num_glyphs, ushort(1)); // Thai: Thai character
+ QCOMPARE(e->layoutData->items[5].num_glyphs, ushort(1)); // Common: Smart quote
+ QCOMPARE(e->layoutData->items[6].num_glyphs, ushort(1)); // Thai: Thai character
+ QCOMPARE(e->layoutData->items[7].num_glyphs, ushort(1)); // Common: \xA0 = non-breaking space. Could be useful to have in thai, but not currently implemented
+ QCOMPARE(e->layoutData->items[8].num_glyphs, ushort(1)); // Thai: Thai character
+ QCOMPARE(e->layoutData->items[9].num_glyphs, ushort(1)); // Japanese: Kanji for tree
+ QCOMPARE(e->layoutData->items[10].num_glyphs, ushort(2)); // Thai: Thai character followed by superscript "a" which is of inherited type
//A quick sanity check - check all the characters are individual clusters
unsigned short *logClusters = e->layoutData->logClustersPtr;
- for (int i = 0; i <= 14; i++)
+ for (int i = 0; i < 7; i++)
QCOMPARE(logClusters[i], ushort(i));
- QCOMPARE(logClusters[15], ushort(0));
- QCOMPARE(logClusters[16], ushort(0));
+ for (int i = 0; i < 10; i++)
+ QCOMPARE(logClusters[i+7], ushort(0));
#ifndef Q_OS_MAC
// ### Result differs for HarfBuzz-NG
QCOMPARE(logClusters[17], ushort(1));