diff options
author | Peter Varga <pvarga@inf.u-szeged.hu> | 2018-03-07 11:48:14 +0100 |
---|---|---|
committer | Peter Varga <pvarga@inf.u-szeged.hu> | 2018-03-14 14:38:41 +0000 |
commit | 789f375411b542db3ac3be79cbe0a6153720abf1 (patch) | |
tree | 3aa2c15914a341b1bc0e05fff08f842451f3282f /tests/auto/widgets/qwebenginepage/tst_qwebenginepage.cpp | |
parent | 3b0b2e040f596105a56f83bfc0adc9f1df1bd009 (diff) |
Remove credentials from view-source URLs
Task-number: QTBUG-65997
Change-Id: Icb55326c51f1dfff77e8e862e9ced619be17ead1
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
Diffstat (limited to 'tests/auto/widgets/qwebenginepage/tst_qwebenginepage.cpp')
-rw-r--r-- | tests/auto/widgets/qwebenginepage/tst_qwebenginepage.cpp | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/tests/auto/widgets/qwebenginepage/tst_qwebenginepage.cpp b/tests/auto/widgets/qwebenginepage/tst_qwebenginepage.cpp index 7b9cc31e9..e67636378 100644 --- a/tests/auto/widgets/qwebenginepage/tst_qwebenginepage.cpp +++ b/tests/auto/widgets/qwebenginepage/tst_qwebenginepage.cpp @@ -211,6 +211,7 @@ private Q_SLOTS: void viewSource(); void viewSourceURL_data(); void viewSourceURL(); + void viewSourceCredentials(); void proxyConfigWithUnexpectedHostPortPair(); void registerProtocolHandler_data(); void registerProtocolHandler(); @@ -4190,6 +4191,39 @@ void tst_QWebEnginePage::viewSourceURL() QVERIFY(!page.action(QWebEnginePage::ViewSource)->isEnabled()); } +void tst_QWebEnginePage::viewSourceCredentials() +{ + TestPage page; + QSignalSpy loadFinishedSpy(&page, SIGNAL(loadFinished(bool))); + QSignalSpy windowCreatedSpy(&page, SIGNAL(windowCreated())); + QUrl url("http://user:passwd@httpbin.org/basic-auth/user/passwd"); + + // Test explicit view-source URL with credentials + page.load(QUrl(QString("view-source:" + url.toString()))); + if (!loadFinishedSpy.wait(10000) || !loadFinishedSpy.at(0).at(0).toBool()) + QSKIP("Couldn't load page from network, skipping test."); + + QCOMPARE(page.url().toString(), QString("view-source:" + url.toDisplayString(QUrl::RemoveUserInfo))); + QCOMPARE(page.requestedUrl(), url); + QCOMPARE(page.title(), QString("view-source:" + url.toDisplayString(QUrl::RemoveScheme | QUrl::RemoveUserInfo).remove(0, 2))); + loadFinishedSpy.clear(); + windowCreatedSpy.clear(); + + // Test ViewSource web action on URL with credentials + page.load(url); + if (!loadFinishedSpy.wait(10000) || !loadFinishedSpy.at(0).at(0).toBool()) + QSKIP("Couldn't load page from network, skipping test."); + QVERIFY(page.action(QWebEnginePage::ViewSource)->isEnabled()); + + page.triggerAction(QWebEnginePage::ViewSource); + QTRY_COMPARE(windowCreatedSpy.count(), 1); + QCOMPARE(page.createdWindows.size(), 1); + + QTRY_COMPARE(page.createdWindows[0]->url().toString(), QString("view-source:" + url.toDisplayString(QUrl::RemoveUserInfo))); + QTRY_COMPARE(page.createdWindows[0]->requestedUrl(), url); + QTRY_COMPARE(page.createdWindows[0]->title(), QString("view-source:" + url.toDisplayString(QUrl::RemoveScheme | QUrl::RemoveUserInfo).remove(0, 2))); +} + Q_DECLARE_METATYPE(QNetworkProxy::ProxyType); void tst_QWebEnginePage::proxyConfigWithUnexpectedHostPortPair() |