diff options
Diffstat (limited to 'tests/auto/gui/text')
-rw-r--r-- | tests/auto/gui/text/qcssparser/tst_qcssparser.cpp | 4 | ||||
-rw-r--r-- | tests/auto/gui/text/qfont/BLACKLIST | 4 | ||||
-rw-r--r-- | tests/auto/gui/text/qfontdatabase/tst_qfontdatabase.cpp | 10 | ||||
-rw-r--r-- | tests/auto/gui/text/qfontmetrics/tst_qfontmetrics.cpp | 10 | ||||
-rw-r--r-- | tests/auto/gui/text/qrawfont/BLACKLIST | 4 | ||||
-rw-r--r-- | tests/auto/gui/text/qrawfont/tst_qrawfont.cpp | 39 | ||||
-rw-r--r-- | tests/auto/gui/text/qstatictext/tst_qstatictext.cpp | 59 | ||||
-rw-r--r-- | tests/auto/gui/text/qtextdocument/tst_qtextdocument.cpp | 2 | ||||
-rw-r--r-- | tests/auto/gui/text/qtextformat/tst_qtextformat.cpp | 9 | ||||
-rw-r--r-- | tests/auto/gui/text/qtextlayout/tst_qtextlayout.cpp | 2 | ||||
-rw-r--r-- | tests/auto/gui/text/qtextscriptengine/BLACKLIST | 2 |
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 |