summaryrefslogtreecommitdiffstats
path: root/tests/auto/gui/text
diff options
context:
space:
mode:
Diffstat (limited to 'tests/auto/gui/text')
-rw-r--r--tests/auto/gui/text/qcssparser/tst_qcssparser.cpp4
-rw-r--r--tests/auto/gui/text/qfont/BLACKLIST4
-rw-r--r--tests/auto/gui/text/qfontdatabase/tst_qfontdatabase.cpp10
-rw-r--r--tests/auto/gui/text/qfontmetrics/tst_qfontmetrics.cpp10
-rw-r--r--tests/auto/gui/text/qrawfont/BLACKLIST4
-rw-r--r--tests/auto/gui/text/qrawfont/tst_qrawfont.cpp39
-rw-r--r--tests/auto/gui/text/qstatictext/tst_qstatictext.cpp59
-rw-r--r--tests/auto/gui/text/qtextdocument/tst_qtextdocument.cpp2
-rw-r--r--tests/auto/gui/text/qtextformat/tst_qtextformat.cpp9
-rw-r--r--tests/auto/gui/text/qtextlayout/tst_qtextlayout.cpp2
-rw-r--r--tests/auto/gui/text/qtextscriptengine/BLACKLIST2
11 files changed, 110 insertions, 35 deletions
diff --git a/tests/auto/gui/text/qcssparser/tst_qcssparser.cpp b/tests/auto/gui/text/qcssparser/tst_qcssparser.cpp
index dbe5bf7cc6..2a53f5d633 100644
--- a/tests/auto/gui/text/qcssparser/tst_qcssparser.cpp
+++ b/tests/auto/gui/text/qcssparser/tst_qcssparser.cpp
@@ -87,10 +87,8 @@ void tst_QCssParser::scanner_data()
#if defined(Q_OS_ANDROID) || defined(Q_OS_WINRT)
QDir d(":/");
-#elif !defined(Q_OS_IRIX)
- QDir d(SRCDIR);
#else
- QDir d(QDir::current());
+ QDir d(SRCDIR);
#endif
d.cd("testdata");
d.cd("scanner");
diff --git a/tests/auto/gui/text/qfont/BLACKLIST b/tests/auto/gui/text/qfont/BLACKLIST
index 295c61ff12..42cb8408f4 100644
--- a/tests/auto/gui/text/qfont/BLACKLIST
+++ b/tests/auto/gui/text/qfont/BLACKLIST
@@ -1,6 +1,2 @@
-[exactMatch]
-# QTBUG-46054
-opensuse-13.1
-opensuse-42.1
[defaultFamily]
b2qt
diff --git a/tests/auto/gui/text/qfontdatabase/tst_qfontdatabase.cpp b/tests/auto/gui/text/qfontdatabase/tst_qfontdatabase.cpp
index e52cb63384..ebe9d3b992 100644
--- a/tests/auto/gui/text/qfontdatabase/tst_qfontdatabase.cpp
+++ b/tests/auto/gui/text/qfontdatabase/tst_qfontdatabase.cpp
@@ -312,7 +312,7 @@ void tst_QFontDatabase::condensedFontWidth()
QFont testFontCondensed("QtBidiTestFontCondensed");
QFontMetrics fmTF(testFont);
QFontMetrics fmTFC(testFontCondensed);
- QVERIFY(fmTF.width(testString()) > fmTFC.width(testString()));
+ QVERIFY(fmTF.horizontalAdvance(testString()) > fmTFC.horizontalAdvance(testString()));
}
@@ -335,15 +335,15 @@ void tst_QFontDatabase::condensedFontMatching()
QEXPECT_FAIL("","No matching of sub-family by stretch on Windows", Continue);
#endif
- QCOMPARE(QFontMetrics(tfcByStretch).width(testString()),
- QFontMetrics(tfcByStyleName).width(testString()));
+ QCOMPARE(QFontMetrics(tfcByStretch).horizontalAdvance(testString()),
+ QFontMetrics(tfcByStyleName).horizontalAdvance(testString()));
if (!db.hasFamily("QtBidiTestFontCondensed"))
QSKIP("This platform doesn't support font sub-family names (QTBUG-55625)");
QFont tfcBySubfamilyName("QtBidiTestFontCondensed");
- QCOMPARE(QFontMetrics(tfcByStyleName).width(testString()),
- QFontMetrics(tfcBySubfamilyName).width(testString()));
+ QCOMPARE(QFontMetrics(tfcByStyleName).horizontalAdvance(testString()),
+ QFontMetrics(tfcBySubfamilyName).horizontalAdvance(testString()));
}
void tst_QFontDatabase::rasterFonts()
diff --git a/tests/auto/gui/text/qfontmetrics/tst_qfontmetrics.cpp b/tests/auto/gui/text/qfontmetrics/tst_qfontmetrics.cpp
index 0a422fca17..9e705b4a00 100644
--- a/tests/auto/gui/text/qfontmetrics/tst_qfontmetrics.cpp
+++ b/tests/auto/gui/text/qfontmetrics/tst_qfontmetrics.cpp
@@ -48,7 +48,7 @@ private slots:
void veryNarrowElidedText();
void averageCharWidth();
-#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0)
+#if QT_DEPRECATED_SINCE(5, 11) && QT_VERSION < QT_VERSION_CHECK(6, 0, 0)
void bypassShaping();
#endif
@@ -167,7 +167,7 @@ void tst_QFontMetrics::elidedText()
QFETCH(QFont, font);
QFETCH(QString, text);
QFontMetrics fm(font);
- int w = fm.width(text);
+ int w = fm.horizontalAdvance(text);
QString newtext = fm.elidedText(text,Qt::ElideRight,w+1, 0);
QCOMPARE(text,newtext); // should not elide
newtext = fm.elidedText(text,Qt::ElideRight,w-1, 0);
@@ -191,7 +191,7 @@ void tst_QFontMetrics::averageCharWidth()
QVERIFY(fmf.averageCharWidth() != 0);
}
-#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0)
+#if QT_DEPRECATED_SINCE(5, 11) && QT_VERSION < QT_VERSION_CHECK(6, 0, 0)
void tst_QFontMetrics::bypassShaping()
{
QFont f;
@@ -202,7 +202,7 @@ void tst_QFontMetrics::bypassShaping()
QVERIFY(textWidth != 0);
int charsWidth = 0;
for (int i = 0; i < text.size(); ++i)
- charsWidth += fm.width(text[i]);
+ charsWidth += fm.horizontalAdvance(text[i]);
// This assertion is needed in Qt WebKit's WebCore::Font::offsetForPositionForSimpleText
QCOMPARE(textWidth, charsWidth);
}
@@ -226,7 +226,7 @@ template<class FontMetrics, typename PrimitiveType> void elidedMultiLength_helpe
// Not even wide enough for "small" - should use ellipsis
QChar ellipsisChar(0x2026);
QString text1_el = QString::fromLatin1("s") + ellipsisChar;
- PrimitiveType width_small = fm.width(text1_el);
+ PrimitiveType width_small = fm.horizontalAdvance(text1_el);
QCOMPARE(fm.elidedText(text1,Qt::ElideRight, width_small + 1), text1_el);
}
diff --git a/tests/auto/gui/text/qrawfont/BLACKLIST b/tests/auto/gui/text/qrawfont/BLACKLIST
deleted file mode 100644
index a614595689..0000000000
--- a/tests/auto/gui/text/qrawfont/BLACKLIST
+++ /dev/null
@@ -1,4 +0,0 @@
-[correctFontData]
-osx-10.8
-[unsupportedWritingSystem]
-osx-10.8
diff --git a/tests/auto/gui/text/qrawfont/tst_qrawfont.cpp b/tests/auto/gui/text/qrawfont/tst_qrawfont.cpp
index 37f94d0278..373ad7fef9 100644
--- a/tests/auto/gui/text/qrawfont/tst_qrawfont.cpp
+++ b/tests/auto/gui/text/qrawfont/tst_qrawfont.cpp
@@ -93,6 +93,9 @@ private slots:
void fallbackFontsOrder();
+ void qtbug65923_partal_clone_data();
+ void qtbug65923_partal_clone();
+
private:
QString testFont;
QString testFontBoldItalic;
@@ -1044,6 +1047,42 @@ void tst_QRawFont::fallbackFontsOrder()
fontDatabase.removeApplicationFont(id);
}
+void tst_QRawFont::qtbug65923_partal_clone_data()
+{
+ QTest::addColumn<bool>("shouldClone");
+
+ QTest::newRow("Without cloning font engine") << false;
+ QTest::newRow("Cloning font engine") << true;
+}
+
+void tst_QRawFont::qtbug65923_partal_clone()
+{
+ QFile file(testFont);
+ file.open(QIODevice::ReadOnly);
+ QByteArray fontData = file.readAll();
+
+ QRawFont outerFont;
+
+ {
+ QRawFont innerFont(fontData, 16, QFont::PreferDefaultHinting);
+
+ QFETCH(bool, shouldClone);
+ if (shouldClone) {
+ // This will trigger QFontEngine::cloneWithSize
+ innerFont.setPixelSize(innerFont.pixelSize() + 1);
+ }
+
+ outerFont = innerFont;
+ }
+
+ // This will detach if data is shared with the raw font. If the raw font has
+ // a naked reference to the data, without informing Qt of it via the ref count
+ // of the byte array, this will result in clearing 'live' data.
+ fontData.fill('\0');
+
+ QVERIFY(!outerFont.boundingRect(42).isEmpty());
+}
+
#endif // QT_NO_RAWFONT
QTEST_MAIN(tst_QRawFont)
diff --git a/tests/auto/gui/text/qstatictext/tst_qstatictext.cpp b/tests/auto/gui/text/qstatictext/tst_qstatictext.cpp
index f4e3356ad0..45cc94afad 100644
--- a/tests/auto/gui/text/qstatictext/tst_qstatictext.cpp
+++ b/tests/auto/gui/text/qstatictext/tst_qstatictext.cpp
@@ -98,6 +98,8 @@ private slots:
void multiLine();
+ void size_qtbug65836();
+
private:
bool supportsTransformations() const;
@@ -639,7 +641,7 @@ void tst_QStaticText::setPenPlainText()
font.setStyleStrategy(QFont::NoAntialias);
QFontMetricsF fm(font);
- QImage image(qCeil(fm.width("XXXXX")), qCeil(fm.height()), format);
+ QImage image(qCeil(fm.horizontalAdvance("XXXXX")), qCeil(fm.height()), format);
image.fill(Qt::white);
{
QPainter p(&image);
@@ -662,7 +664,7 @@ void tst_QStaticText::setPenRichText()
font.setStyleStrategy(QFont::NoAntialias);
QFontMetricsF fm(font);
- QPixmap image(qCeil(fm.width("XXXXX")), qCeil(fm.height()));
+ QPixmap image(qCeil(fm.horizontalAdvance("XXXXX")), qCeil(fm.height()));
image.fill(Qt::white);
{
QPainter p(&image);
@@ -686,7 +688,7 @@ void tst_QStaticText::richTextOverridesPen()
font.setStyleStrategy(QFont::NoAntialias);
QFontMetricsF fm(font);
- QPixmap image(qCeil(fm.width("XXXXX")), qCeil(fm.height()));
+ QPixmap image(qCeil(fm.horizontalAdvance("XXXXX")), qCeil(fm.height()));
image.fill(Qt::white);
{
QPainter p(&image);
@@ -862,19 +864,19 @@ void tst_QStaticText::textDocumentColor()
class TestPaintEngine: public QPaintEngine
{
public:
- void drawTextItem(const QPointF &p, const QTextItem &) Q_DECL_OVERRIDE
+ void drawTextItem(const QPointF &p, const QTextItem &) override
{
differentVerticalPositions.insert(qRound(p.y()));
}
- void updateState(const QPaintEngineState &) Q_DECL_OVERRIDE {}
+ void updateState(const QPaintEngineState &) override {}
- void drawPolygon(const QPointF *, int , PolygonDrawMode ) Q_DECL_OVERRIDE {}
+ void drawPolygon(const QPointF *, int , PolygonDrawMode ) override {}
- bool begin(QPaintDevice *) Q_DECL_OVERRIDE { return true; }
- bool end() Q_DECL_OVERRIDE { return true; }
- void drawPixmap(const QRectF &, const QPixmap &, const QRectF &) Q_DECL_OVERRIDE {}
- Type type() const Q_DECL_OVERRIDE
+ bool begin(QPaintDevice *) override { return true; }
+ bool end() override { return true; }
+ void drawPixmap(const QRectF &, const QPixmap &, const QRectF &) override {}
+ Type type() const override
{
return User;
}
@@ -912,5 +914,42 @@ void tst_QStaticText::multiLine()
QCOMPARE(paintEngine->differentVerticalPositions.size(), 2);
}
+void tst_QStaticText::size_qtbug65836()
+{
+ const QString text = QLatin1String("Lorem ipsum dolor sit amet, "
+ "consectetur adipiscing elit.");
+ QFont font("Courier");
+ font.setPixelSize(15);
+
+ {
+ QStaticText st1(text);
+ st1.setTextFormat(Qt::PlainText);
+ st1.prepare(QTransform(), font);
+
+ QStaticText st2(text);
+ st2.setTextFormat(Qt::RichText);
+ QTextOption opt;
+ opt.setWrapMode(QTextOption::NoWrap);
+ st2.setTextOption(opt);
+ st2.prepare(QTransform(), font);
+
+ QCOMPARE(st1.size(), st2.size());
+ }
+
+ {
+ QStaticText st1(text);
+ st1.setTextFormat(Qt::PlainText);
+ st1.setTextWidth(10.0);
+ st1.prepare(QTransform(), font);
+
+ QStaticText st2(text);
+ st2.setTextFormat(Qt::RichText);
+ st2.setTextWidth(10.0);
+ st2.prepare(QTransform(), font);
+
+ QCOMPARE(st1.size(), st2.size());
+ }
+}
+
QTEST_MAIN(tst_QStaticText)
#include "tst_qstatictext.moc"
diff --git a/tests/auto/gui/text/qtextdocument/tst_qtextdocument.cpp b/tests/auto/gui/text/qtextdocument/tst_qtextdocument.cpp
index 2f3da2c196..ebdb5a56af 100644
--- a/tests/auto/gui/text/qtextdocument/tst_qtextdocument.cpp
+++ b/tests/auto/gui/text/qtextdocument/tst_qtextdocument.cpp
@@ -611,7 +611,7 @@ void tst_QTextDocument::task240325()
QFontMetrics fm(p.font());
// Set page size to contain image and one "Foobar"
- doc->setPageSize(QSize(100 + fm.width("Foobar")*2, 1000));
+ doc->setPageSize(QSize(100 + fm.horizontalAdvance("Foobar")*2, 1000));
// Force layout
doc->drawContents(&p);
diff --git a/tests/auto/gui/text/qtextformat/tst_qtextformat.cpp b/tests/auto/gui/text/qtextformat/tst_qtextformat.cpp
index b8afd6a447..4ab80bdcfe 100644
--- a/tests/auto/gui/text/qtextformat/tst_qtextformat.cpp
+++ b/tests/auto/gui/text/qtextformat/tst_qtextformat.cpp
@@ -283,20 +283,29 @@ void tst_QTextFormat::testLetterSpacing()
QCOMPARE(format.hasProperty(QTextFormat::FontLetterSpacingType), false);
format.setFontLetterSpacingType(QFont::AbsoluteSpacing);
+ QCOMPARE(format.font().letterSpacingType(), QFont::AbsoluteSpacing);
+
format.setFontLetterSpacing(10.0);
+ QCOMPARE(format.font().letterSpacing(), 10.0);
QCOMPARE(format.hasProperty(QTextFormat::FontLetterSpacing), true);
QCOMPARE(format.property(QTextFormat::FontLetterSpacing).toDouble(), 10.0);
QCOMPARE(format.property(QTextFormat::FontLetterSpacingType).toInt(), int(QFont::AbsoluteSpacing));
format.setFontLetterSpacingType(QFont::PercentageSpacing);
+ QCOMPARE(format.font().letterSpacingType(), QFont::PercentageSpacing);
+
format.setFontLetterSpacing(110.0);
+ QCOMPARE(format.font().letterSpacing(), 110.0);
QCOMPARE(format.property(QTextFormat::FontLetterSpacing).toDouble(), 110.0);
QCOMPARE(format.property(QTextFormat::FontLetterSpacingType).toInt(), int(QFont::PercentageSpacing));
format.setFontLetterSpacingType(QFont::AbsoluteSpacing);
+ QCOMPARE(format.font().letterSpacingType(), QFont::AbsoluteSpacing);
+
format.setFontLetterSpacing(10.0);
+ QCOMPARE(format.font().letterSpacing(), 10.0);
QCOMPARE(format.property(QTextFormat::FontLetterSpacingType).toInt(), int(QFont::AbsoluteSpacing));
QCOMPARE(format.property(QTextFormat::FontLetterSpacing).toDouble(), 10.0);
diff --git a/tests/auto/gui/text/qtextlayout/tst_qtextlayout.cpp b/tests/auto/gui/text/qtextlayout/tst_qtextlayout.cpp
index b68a014bff..4e3d1da8fe 100644
--- a/tests/auto/gui/text/qtextlayout/tst_qtextlayout.cpp
+++ b/tests/auto/gui/text/qtextlayout/tst_qtextlayout.cpp
@@ -203,7 +203,7 @@ void tst_QTextLayout::init()
testFont.setPixelSize(TESTFONT_SIZE);
testFont.setWeight(QFont::Normal);
#ifdef QT_BUILD_INTERNAL
- QCOMPARE(QFontMetrics(testFont).width('a'), testFont.pixelSize());
+ QCOMPARE(QFontMetrics(testFont).horizontalAdvance('a'), testFont.pixelSize());
#endif
}
diff --git a/tests/auto/gui/text/qtextscriptengine/BLACKLIST b/tests/auto/gui/text/qtextscriptengine/BLACKLIST
deleted file mode 100644
index 52eb9086a9..0000000000
--- a/tests/auto/gui/text/qtextscriptengine/BLACKLIST
+++ /dev/null
@@ -1,2 +0,0 @@
-[thaiWithZWJ]
-rhel-7.2