summaryrefslogtreecommitdiff
path: root/Source/WebKit/qt/tests/qwebpage
diff options
context:
space:
mode:
Diffstat (limited to 'Source/WebKit/qt/tests/qwebpage')
-rw-r--r--Source/WebKit/qt/tests/qwebpage/tst_qwebpage.cpp29
1 files changed, 29 insertions, 0 deletions
diff --git a/Source/WebKit/qt/tests/qwebpage/tst_qwebpage.cpp b/Source/WebKit/qt/tests/qwebpage/tst_qwebpage.cpp
index fbba56d6c..e5abf6b79 100644
--- a/Source/WebKit/qt/tests/qwebpage/tst_qwebpage.cpp
+++ b/Source/WebKit/qt/tests/qwebpage/tst_qwebpage.cpp
@@ -38,6 +38,7 @@
#include <qgraphicsview.h>
#include <qgraphicswebview.h>
#include <qnetworkcookiejar.h>
+#include <qnetworkreply.h>
#include <qnetworkrequest.h>
#include <qpa/qplatforminputcontext.h>
#include <qwebdatabase.h>
@@ -173,6 +174,8 @@ private Q_SLOTS:
#endif
void originatingObjectInNetworkRequests();
+ void networkReplyParentDidntChange();
+ void destroyQNAMBeforeAbortDoesntCrash();
void testJSPrompt();
void showModalDialog();
void testStopScheduledPageRefresh();
@@ -2846,6 +2849,32 @@ void tst_QWebPage::originatingObjectInNetworkRequests()
QVERIFY(qobject_cast<QWebFrame*>(networkManager->requests.at(i).originatingObject()) == childFrames.at(i));
}
+void tst_QWebPage::networkReplyParentDidntChange()
+{
+ TestNetworkManager* networkManager = new TestNetworkManager(m_page);
+ m_page->setNetworkAccessManager(networkManager);
+ networkManager->requests.clear();
+
+ // Trigger a load and check that pending QNetworkReplies haven't been reparented before returning to the event loop.
+ m_view->load(QUrl("qrc:///resources/content.html"));
+
+ QVERIFY(networkManager->requests.count() > 0);
+ QVERIFY(networkManager->findChildren<QNetworkReply*>().size() > 0);
+}
+
+void tst_QWebPage::destroyQNAMBeforeAbortDoesntCrash()
+{
+ QNetworkAccessManager* networkManager = new QNetworkAccessManager;
+ m_page->setNetworkAccessManager(networkManager);
+
+ m_view->load(QUrl("qrc:///resources/content.html"));
+ delete networkManager;
+ // This simulates what PingLoader does with its QNetworkReply when it times out.
+ // PingLoader isn't attached to a QWebPage and can be kept alive
+ // for 60000 seconds (~16.7 hours) to then cancel its ResourceHandle.
+ m_view->stop();
+}
+
/**
* Test fixups for https://bugs.webkit.org/show_bug.cgi?id=30914
*