diff options
| author | Moss Heim <moss.heim@qt.io> | 2024-03-27 15:46:30 +0100 |
|---|---|---|
| committer | Moss Heim <moss.heim@qt.io> | 2024-04-05 08:33:38 +0000 |
| commit | 6c6a805724a1c56427054b0a9850af5d66ab4879 (patch) | |
| tree | cf10fefcf46f9a9198115ccea9e1808c3c9c5f33 /tests | |
| parent | 5d5467849d2298055cb6403be2777005048127fa (diff) | |
Handle empty uri-list in dropped MIME data6.6
Previously WebContentsAdapter assumed that drag-n-drop MIME data with
hasUrls() == true would also have a nonempty url list. This is not
always the case. Instead, check directly if urls() is nonempty.
Fixes: QTBUG-123765
Change-Id: I9e2189e3f0223f98bdd8be273adb96cf063f4be3
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
(cherry picked from commit fa8ff1bb933b02f61e406cb29d5c8d4294676a5a)
Reviewed-by: Michael BrĂ¼ning <michael.bruning@qt.io>
Reviewed-by: Michal Klocek <michal.klocek@qt.io>
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/auto/widgets/qwebengineview/tst_qwebengineview.cpp | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/tests/auto/widgets/qwebengineview/tst_qwebengineview.cpp b/tests/auto/widgets/qwebengineview/tst_qwebengineview.cpp index 1d8aadc65..a8ae7a670 100644 --- a/tests/auto/widgets/qwebengineview/tst_qwebengineview.cpp +++ b/tests/auto/widgets/qwebengineview/tst_qwebengineview.cpp @@ -182,6 +182,7 @@ private Q_SLOTS: void inspectElement(); void navigateOnDrop_data(); void navigateOnDrop(); + void emptyUriListOnDrop(); void datalist(); void longKeyEventText(); void pageWithPaintListeners(); @@ -3784,6 +3785,28 @@ void tst_QWebEngineView::navigateOnDrop() } } +void tst_QWebEngineView::emptyUriListOnDrop() +{ + QWebEngineView view; + view.resize(640, 480); + view.show(); + QVERIFY(QTest::qWaitForWindowExposed(&view)); + + QMimeData mimeData; + mimeData.setUrls({}); // creates an empty uri-list MIME type entry + QVERIFY(mimeData.hasUrls()); + + 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); + + QSignalSpy loadSpy(&view, &QWebEngineView::loadFinished); + view.setUrl(QUrl("about:blank")); + QTRY_COMPARE(loadSpy.size(), 1); +} + void tst_QWebEngineView::datalist() { QString html("<html><body>" |
