diff options
author | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2022-04-01 14:30:16 +0200 |
---|---|---|
committer | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2022-04-14 01:23:21 +0200 |
commit | 9a44b6ea5c60f83d841881b5ddbbaba79228fdea (patch) | |
tree | bf8169543e0a6a60ab2e712593f35794f0d18420 /tests/auto | |
parent | e618a38fc3aefbeecdd04d2217bfd23a9e55346e (diff) |
Fix granted file access after local/remote access cleanup
We forgot to check for files specifically granted access to.
This blocked a number of features including dropping local files.
Pick-to: 6.3 6.2
Task-number: QTBUG-102192
Change-Id: I5d34d9ba5351ec179df5896e64cc95c5481c7dc2
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Kirill Burtsev <kirill.burtsev@qt.io>
Diffstat (limited to 'tests/auto')
-rw-r--r-- | tests/auto/widgets/qwebengineview/BLACKLIST | 3 | ||||
-rw-r--r-- | tests/auto/widgets/qwebengineview/tst_qwebengineview.cpp | 30 |
2 files changed, 33 insertions, 0 deletions
diff --git a/tests/auto/widgets/qwebengineview/BLACKLIST b/tests/auto/widgets/qwebengineview/BLACKLIST index eccf02971..99161a591 100644 --- a/tests/auto/widgets/qwebengineview/BLACKLIST +++ b/tests/auto/widgets/qwebengineview/BLACKLIST @@ -12,3 +12,6 @@ osx [reusePage] b2qt arm + +[navigateOnDrop] +windows diff --git a/tests/auto/widgets/qwebengineview/tst_qwebengineview.cpp b/tests/auto/widgets/qwebengineview/tst_qwebengineview.cpp index fefb7d9e5..14666e3c0 100644 --- a/tests/auto/widgets/qwebengineview/tst_qwebengineview.cpp +++ b/tests/auto/widgets/qwebengineview/tst_qwebengineview.cpp @@ -34,10 +34,12 @@ #include <qtemporarydir.h> #include <QClipboard> #include <QCompleter> +#include <QDropEvent> #include <QLabel> #include <QLineEdit> #include <QHBoxLayout> #include <QMenu> +#include <QMimeData> #include <QQuickItem> #include <QQuickWidget> #include <QtWebEngineCore/qwebenginehttprequest.h> @@ -174,6 +176,7 @@ private Q_SLOTS: void closeDiscardsPage(); void loadAfterRendererCrashed(); void inspectElement(); + void navigateOnDrop(); }; // This will be called before the first test function is executed. @@ -3516,5 +3519,32 @@ void tst_QWebEngineView::inspectElement() QTest::qWait(100); } +void tst_QWebEngineView::navigateOnDrop() +{ + struct WebEngineView : QWebEngineView { + QWebEngineView* createWindow(QWebEnginePage::WebWindowType /* type */) override { return this; } + } view; + view.resize(640, 480); + view.show(); + QVERIFY(QTest::qWaitForWindowExposed(&view)); + + QSignalSpy loadSpy(&view, &QWebEngineView::loadFinished); + auto url = QUrl::fromLocalFile(QDir(QT_TESTCASE_SOURCEDIR).absoluteFilePath("resources/dummy.html")); + QMimeData mimeData; + mimeData.setUrls({ url }); + + auto sendEvents = [&] () { + QDragEnterEvent dee(view.rect().center(), Qt::CopyAction, &mimeData, Qt::LeftButton, Qt::NoModifier); + QApplication::sendEvent(&view, &dee); + QDropEvent de(view.rect().center(), Qt::CopyAction, &mimeData, Qt::LeftButton, Qt::NoModifier); + QApplication::sendEvent(&view, &de); + }; + + sendEvents(); + QTRY_COMPARE(loadSpy.count(), 1); + QVERIFY(loadSpy.first().first().toBool()); + QCOMPARE(view.url(), url); +} + QTEST_MAIN(tst_QWebEngineView) #include "tst_qwebengineview.moc" |