summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorQt Forward Merge Bot <qt_forward_merge_bot@qt-project.org>2018-05-09 19:13:21 +0200
committerQt Forward Merge Bot <qt_forward_merge_bot@qt-project.org>2018-05-09 19:13:21 +0200
commitef48edf051b24496f4e30ceb867997568ef425e3 (patch)
treeb2e08d4ba1bf317445f05e640ec7eaeab08ad5ef /tests
parentf8898170a77593e314d3cd187f259223e9bff0f8 (diff)
parent28e0320235d33f00c6c141a549dc0553ee0043a5 (diff)
Merge remote-tracking branch 'origin/5.11.0' into 5.11
Diffstat (limited to 'tests')
-rw-r--r--tests/auto/widgets/qwebenginepage/tst_qwebenginepage.cpp28
1 files changed, 28 insertions, 0 deletions
diff --git a/tests/auto/widgets/qwebenginepage/tst_qwebenginepage.cpp b/tests/auto/widgets/qwebenginepage/tst_qwebenginepage.cpp
index ffc0b6989..025df76c7 100644
--- a/tests/auto/widgets/qwebenginepage/tst_qwebenginepage.cpp
+++ b/tests/auto/widgets/qwebenginepage/tst_qwebenginepage.cpp
@@ -217,6 +217,7 @@ private Q_SLOTS:
void registerProtocolHandler();
void dataURLFragment();
void devTools();
+ void openLinkInDifferentProfile();
private:
static QPoint elementCenter(QWebEnginePage *page, const QString &id);
@@ -4373,6 +4374,33 @@ void tst_QWebEnginePage::devTools()
QCOMPARE(devToolsPage.inspectedPage(), nullptr);
}
+void tst_QWebEnginePage::openLinkInDifferentProfile()
+{
+ class Page : public QWebEnginePage {
+ public:
+ QWebEnginePage *targetPage = nullptr;
+ Page(QWebEngineProfile *profile) : QWebEnginePage(profile) {}
+ private:
+ QWebEnginePage *createWindow(WebWindowType) override { return targetPage; }
+ };
+ QWebEngineProfile profile1, profile2;
+ Page page1(&profile1), page2(&profile2);
+ QWebEngineView view;
+ view.setPage(&page1);
+ view.show();
+ QVERIFY(QTest::qWaitForWindowExposed(&view));
+ QSignalSpy spy1(&page1, &QWebEnginePage::loadFinished), spy2(&page2, &QWebEnginePage::loadFinished);
+ page1.setHtml("<html><body>"
+ "<a id='link' href='data:,hello'>link</a>"
+ "</body></html>");
+ QTRY_COMPARE(spy1.count(), 1);
+ QVERIFY(spy1.takeFirst().value(0).toBool());
+ page1.targetPage = &page2;
+ QTest::mouseClick(view.focusProxy(), Qt::MiddleButton, 0, elementCenter(&page1, "link"));
+ QTRY_COMPARE(spy2.count(), 1);
+ QVERIFY(spy2.takeFirst().value(0).toBool());
+}
+
static QByteArrayList params = {QByteArrayLiteral("--use-fake-device-for-media-stream")};
W_QTEST_MAIN(tst_QWebEnginePage, params)