diff options
author | Qt Forward Merge Bot <qt_forward_merge_bot@qt-project.org> | 2018-05-09 19:13:21 +0200 |
---|---|---|
committer | Qt Forward Merge Bot <qt_forward_merge_bot@qt-project.org> | 2018-05-09 19:13:21 +0200 |
commit | ef48edf051b24496f4e30ceb867997568ef425e3 (patch) | |
tree | b2e08d4ba1bf317445f05e640ec7eaeab08ad5ef /tests | |
parent | f8898170a77593e314d3cd187f259223e9bff0f8 (diff) | |
parent | 28e0320235d33f00c6c141a549dc0553ee0043a5 (diff) |
Merge remote-tracking branch 'origin/5.11.0' into 5.11
Change-Id: Id41b0b07a934994471df40de884e1231ee1c0e8e
Diffstat (limited to 'tests')
-rw-r--r-- | tests/auto/widgets/qwebenginepage/tst_qwebenginepage.cpp | 28 |
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) |