diff options
Diffstat (limited to 'tests/auto')
-rw-r--r-- | tests/auto/gui/text/qtextdocument/tst_qtextdocument.cpp | 48 | ||||
-rw-r--r-- | tests/auto/widgets/widgets/qlabel/tst_qlabel.cpp | 28 |
2 files changed, 41 insertions, 35 deletions
diff --git a/tests/auto/gui/text/qtextdocument/tst_qtextdocument.cpp b/tests/auto/gui/text/qtextdocument/tst_qtextdocument.cpp index 0e2765922c..a0489e287c 100644 --- a/tests/auto/gui/text/qtextdocument/tst_qtextdocument.cpp +++ b/tests/auto/gui/text/qtextdocument/tst_qtextdocument.cpp @@ -47,7 +47,6 @@ #include <qimage.h> #include <qtextlayout.h> #include <QDomDocument> -#include <qtextdocumentresourceprovider.h> #include "common.h" // #define DEBUG_WRITE_OUTPUT @@ -3596,27 +3595,40 @@ void tst_QTextDocument::clearUndoRedoStacks() QVERIFY(!doc.isUndoAvailable()); } -class UrlResourceProvider : public QTextDocumentResourceProvider +void tst_QTextDocument::resourceProvider() { -public: - QVariant resource(const QUrl &url) override - { - resourseUrl = url; - return QVariant(); - } - QUrl resourseUrl; -}; + int providerCalled = 0; + QUrl providerUrl; + auto provider = [&](const QUrl &url){ + providerUrl = url; + ++providerCalled; + return QVariant(42); + }; + const QUrl url("test://img"); + const QString html = QLatin1String("<img src='%1'/>").arg(url.toString()); -void tst_QTextDocument::resourceProvider() -{ QTextDocument doc; - UrlResourceProvider resourceProvider; - doc.setResourceProvider(&resourceProvider); - QUrl url("test://img"); - doc.setHtml(QStringLiteral("<img src='%1'/>").arg(url.toString())); - doc.resource(QTextDocument::UserResource, url); - QCOMPARE(url, resourceProvider.resourseUrl); + QVERIFY(!doc.resourceProvider()); + doc.setResourceProvider(provider); + QVERIFY(doc.resourceProvider()); + + doc.setHtml(html); + const QVariant res = doc.resource(QTextDocument::UserResource, url); + QVERIFY(res.isValid()); + QCOMPARE(providerUrl, url); + QCOMPARE(providerCalled, 1); + + QVERIFY(!QTextDocument::defaultResourceProvider()); + QTextDocument::setDefaultResourceProvider(provider); + QVERIFY(QTextDocument::defaultResourceProvider()); + + QTextDocument doc2; + QVERIFY(!doc2.resourceProvider()); + doc2.setHtml(html); + QVariant res2 = doc2.resource(QTextDocument::UserResource, url); + QCOMPARE(res2, res); + QCOMPARE(providerCalled, 2); } QTEST_MAIN(tst_QTextDocument) diff --git a/tests/auto/widgets/widgets/qlabel/tst_qlabel.cpp b/tests/auto/widgets/widgets/qlabel/tst_qlabel.cpp index e4e9d12fb4..c9e71d8388 100644 --- a/tests/auto/widgets/widgets/qlabel/tst_qlabel.cpp +++ b/tests/auto/widgets/widgets/qlabel/tst_qlabel.cpp @@ -40,7 +40,6 @@ #include <qmessagebox.h> #include <qfontmetrics.h> #include <qmath.h> -#include <qtextdocumentresourceprovider.h> #include <private/qlabel_p.h> class Widget : public QWidget @@ -599,27 +598,22 @@ void tst_QLabel::taskQTBUG_48157_dprMovie() QCOMPARE(label.sizeHint(), movie.currentPixmap().size() / movie.currentPixmap().devicePixelRatio()); } -class UrlResourceProvider : public QTextDocumentResourceProvider -{ -public: - QVariant resource(const QUrl &url) override - { - resourseUrl = url; - return QVariant(); - } - - QUrl resourseUrl; -}; - void tst_QLabel::resourceProvider() { QLabel label; - UrlResourceProvider resourceProvider; - label.setResourceProvider(&resourceProvider); - QUrl url("test://img"); + int providerCalled = 0; + QUrl providerUrl; + label.setResourceProvider([&](const QUrl &url){ + providerUrl = url; + ++providerCalled; + return QVariant(); + }); + + const QUrl url("test://img"); label.setText(QStringLiteral("<img src='%1'/>").arg(url.toString())); label.show(); - QCOMPARE(url, resourceProvider.resourseUrl); + QCOMPARE(providerUrl, url); + QVERIFY(providerCalled > 0); } QTEST_MAIN(tst_QLabel) |