summaryrefslogtreecommitdiffstats
path: root/tests/auto
diff options
context:
space:
mode:
Diffstat (limited to 'tests/auto')
-rw-r--r--tests/auto/gui/text/qtextdocument/tst_qtextdocument.cpp48
-rw-r--r--tests/auto/widgets/widgets/qlabel/tst_qlabel.cpp28
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)