summaryrefslogtreecommitdiff
path: root/Source/WebKit/qt/tests/qwebpage/tst_qwebpage.cpp
diff options
context:
space:
mode:
authorFrederik Gladhorn <frederik.gladhorn@digia.com>2013-06-12 14:45:04 +0200
committerFrederik Gladhorn <frederik.gladhorn@digia.com>2013-06-12 14:45:05 +0200
commitcabbad3ff6732e07d614eb743a59496d73aabb28 (patch)
tree0799683696ef54345680a799e9a5e5586082bf9e /Source/WebKit/qt/tests/qwebpage/tst_qwebpage.cpp
parent289da5616df56912fa6f8c319d61fb4489c51add (diff)
parent1810e3848d15ffbe9529f53866fc0ede8d947fef (diff)
downloadqtwebkit-cabbad3ff6732e07d614eb743a59496d73aabb28.tar.gz
Merge remote-tracking branch 'origin/release' into stable
Change-Id: I66f94d7e3dea401f7a89a00fb474532377baf6c4
Diffstat (limited to 'Source/WebKit/qt/tests/qwebpage/tst_qwebpage.cpp')
-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
*