diff options
author | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2018-11-16 14:57:44 +0100 |
---|---|---|
committer | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2018-11-16 14:57:44 +0100 |
commit | ef177a48f2c6c41549ef9d11a985ab2661942638 (patch) | |
tree | d6bc5aa8cbde95d9e9857ead4b509e8b04b524b9 /tests/auto/widgets/qwebengineview/tst_qwebengineview.cpp | |
parent | 396ca081d7b0d9dab7de14ebaec7943c3f857a24 (diff) | |
parent | e5bc5a6dbdd915e0b19cfc43e7af17e43c1a7878 (diff) |
Merge branch '5.12' into dev
Conflicts:
src/core/compositor/compositor.cpp
src/core/compositor/compositor.h
Change-Id: I8a4d73d728d93d95e499849f8778cc88dda2105e
Diffstat (limited to 'tests/auto/widgets/qwebengineview/tst_qwebengineview.cpp')
-rw-r--r-- | tests/auto/widgets/qwebengineview/tst_qwebengineview.cpp | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/tests/auto/widgets/qwebengineview/tst_qwebengineview.cpp b/tests/auto/widgets/qwebengineview/tst_qwebengineview.cpp index 92e281873..a0f8f11d2 100644 --- a/tests/auto/widgets/qwebengineview/tst_qwebengineview.cpp +++ b/tests/auto/widgets/qwebengineview/tst_qwebengineview.cpp @@ -191,6 +191,7 @@ private Q_SLOTS: void visibilityState(); void jsKeyboardEvent(); void deletePage(); + void closeOpenerTab(); }; // This will be called before the first test function is executed. @@ -2905,5 +2906,41 @@ void tst_QWebEngineView::deletePage() QTRY_VERIFY(spy.count()); } +class TestView : public QWebEngineView { + Q_OBJECT +public: + TestView(QWidget *parent = nullptr) : QWebEngineView(parent) + { + } + + QWebEngineView *createWindow(QWebEnginePage::WebWindowType) override + { + TestView *view = new TestView(parentWidget()); + createdWindows.append(view); + return view; + } + QList<TestView *> createdWindows; +}; + +void tst_QWebEngineView::closeOpenerTab() +{ + QWidget rootWidget; + rootWidget.resize(600, 400); + auto *testView = new TestView(&rootWidget); + testView->settings()->setAttribute(QWebEngineSettings::JavascriptCanOpenWindows, true); + QSignalSpy loadFinishedSpy(testView, SIGNAL(loadFinished(bool))); + testView->setUrl(QStringLiteral("about:blank")); + QTRY_VERIFY(loadFinishedSpy.count()); + testView->page()->runJavaScript(QStringLiteral("window.open('about:blank','_blank')")); + QTRY_COMPARE(testView->createdWindows.size(), 1); + auto *newView = testView->createdWindows.at(0); + newView->show(); + rootWidget.show(); + QVERIFY(QTest::qWaitForWindowExposed(newView)); + QVERIFY(newView->focusProxy()->isVisible()); + delete testView; + QVERIFY(newView->focusProxy()->isVisible()); +} + QTEST_MAIN(tst_QWebEngineView) #include "tst_qwebengineview.moc" |