From 9a44b6ea5c60f83d841881b5ddbbaba79228fdea Mon Sep 17 00:00:00 2001 From: Allan Sandfeld Jensen Date: Fri, 1 Apr 2022 14:30:16 +0200 Subject: 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 Reviewed-by: Kirill Burtsev --- tests/auto/widgets/qwebengineview/BLACKLIST | 3 +++ .../widgets/qwebengineview/tst_qwebengineview.cpp | 30 ++++++++++++++++++++++ 2 files changed, 33 insertions(+) (limited to 'tests/auto') 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 #include #include +#include #include #include #include #include +#include #include #include #include @@ -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" -- cgit v1.2.3