X-Git-Url: https://git.webkit.org/?p=WebKit-https.git;a=blobdiff_plain;f=WebKit%2Fqt%2Ftests%2Fqwebframe%2Ftst_qwebframe.cpp;h=8b549e480b849d50d4147cb9221744ba23513112;hp=d29a224068dad1de7dd52c85643577af7847f0c5;hb=2b7c593dcadee5d710fef3d53204929d08d89302;hpb=f43ff8e196c93147bf75628bf31247f52291882e diff --git a/WebKit/qt/tests/qwebframe/tst_qwebframe.cpp b/WebKit/qt/tests/qwebframe/tst_qwebframe.cpp index d29a224068da..8b549e480b84 100644 --- a/WebKit/qt/tests/qwebframe/tst_qwebframe.cpp +++ b/WebKit/qt/tests/qwebframe/tst_qwebframe.cpp @@ -26,6 +26,7 @@ #include #include #include +#include //TESTED_CLASS= //TESTED_FILES= @@ -563,6 +564,7 @@ private slots: void progressSignal(); void domCycles(); void setHtml(); + void ipv6HostEncoding(); private: QString evalJS(const QString&s) { // Convert an undefined return variant to the string "undefined" @@ -2060,5 +2062,37 @@ void tst_QWebFrame::setHtml() QCOMPARE(m_view->page()->mainFrame()->toHtml(), html); } +class TestNetworkManager : public QNetworkAccessManager +{ +public: + TestNetworkManager(QObject* parent) : QNetworkAccessManager(parent) {} + + QList requestedUrls; + +protected: + virtual QNetworkReply* createRequest(Operation op, const QNetworkRequest &request, QIODevice* outgoingData) { + requestedUrls.append(request.url()); + QNetworkRequest redirectedRequest = request; + redirectedRequest.setUrl(QUrl("data:text/html,

hello")); + return QNetworkAccessManager::createRequest(op, redirectedRequest, outgoingData); + } +}; + +void tst_QWebFrame::ipv6HostEncoding() +{ + TestNetworkManager* networkManager = new TestNetworkManager(m_page); + m_page->setNetworkAccessManager(networkManager); + networkManager->requestedUrls.clear(); + + QUrl baseUrl = QUrl::fromEncoded("http://[::1]/index.html"); + m_view->setHtml("

Hi", baseUrl); + m_view->page()->mainFrame()->evaluateJavaScript("var r = new XMLHttpRequest();" + "r.open('GET', 'http://[::1]/test.xml', false);" + "r.send(null);" + ); + QCOMPARE(networkManager->requestedUrls.count(), 1); + QCOMPARE(networkManager->requestedUrls.at(0), QUrl::fromEncoded("http://[::1]/test.xml")); +} + QTEST_MAIN(tst_QWebFrame) #include "tst_qwebframe.moc"