summaryrefslogtreecommitdiffstats
path: root/tests/auto
diff options
context:
space:
mode:
authorDavid Faure <david.faure@kdab.com>2017-03-12 22:59:59 +0100
committerDavid Faure <david.faure@kdab.com>2017-12-20 16:02:53 +0000
commit17ecc4e7e0c88d891e1b18d5810a7ac2fd0b83ba (patch)
treea706510ec58bb52c9199eb7363af042b6daf5219 /tests/auto
parent5b160be90599d13707610f253f541ff0c97c08e3 (diff)
Doc: QWebEngineUrlRequestJob: mention when to delete the device
It's used from another thread, so it shouldn't be deleted immediately, and it's not deleted by the QtWebEngine code, so tell people to do it themselves at the right time. Change-Id: I54786be320f5fe82f144e7b1c2e6137260d9ceab Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io> Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
Diffstat (limited to 'tests/auto')
-rw-r--r--tests/auto/widgets/qwebengineprofile/tst_qwebengineprofile.cpp20
1 files changed, 15 insertions, 5 deletions
diff --git a/tests/auto/widgets/qwebengineprofile/tst_qwebengineprofile.cpp b/tests/auto/widgets/qwebengineprofile/tst_qwebengineprofile.cpp
index 093bc2e43..639a8456f 100644
--- a/tests/auto/widgets/qwebengineprofile/tst_qwebengineprofile.cpp
+++ b/tests/auto/widgets/qwebengineprofile/tst_qwebengineprofile.cpp
@@ -162,20 +162,25 @@ public:
class ReplyingUrlSchemeHandler : public QWebEngineUrlSchemeHandler
{
- QBuffer m_buffer;
- QByteArray m_bufferData;
public:
ReplyingUrlSchemeHandler(QObject *parent = nullptr)
: QWebEngineUrlSchemeHandler(parent)
{
- m_buffer.setBuffer(&m_bufferData);
+ }
+ ~ReplyingUrlSchemeHandler()
+ {
}
void requestStarted(QWebEngineUrlRequestJob *job)
{
- m_bufferData = job->requestUrl().toString().toUtf8();
- job->reply("text/plain;charset=utf-8", &m_buffer);
+ QBuffer *buffer = new QBuffer;
+ buffer->setData(job->requestUrl().toString().toUtf8());
+ connect(buffer, &QIODevice::aboutToClose, buffer, &QObject::deleteLater);
+ m_buffers.append(buffer);
+ job->reply("text/plain;charset=utf-8", buffer);
}
+
+ QList<QPointer<QBuffer>> m_buffers;
};
static bool loadSync(QWebEngineView *view, const QUrl &url, int timeout = 5000)
@@ -234,6 +239,11 @@ void tst_QWebEngineProfile::urlSchemeHandlers()
url = QUrl(QStringLiteral("aviancarrier:inspector.mortensen@politistyrke.dk"));
QVERIFY(loadSync(&view, url));
QCOMPARE(toPlainTextSync(view.page()), url.toString());
+
+ // Check that all buffers got deleted
+ QCOMPARE(gopherHandler.m_buffers.count(), 2);
+ for (int i = 0; i < gopherHandler.m_buffers.count(); ++i)
+ QVERIFY(gopherHandler.m_buffers.at(i).isNull());
}
class FailingUrlSchemeHandler : public QWebEngineUrlSchemeHandler