diff options
Diffstat (limited to 'tests/auto/quick/qmltests/data/tst_contextMenu.qml')
-rw-r--r-- | tests/auto/quick/qmltests/data/tst_contextMenu.qml | 114 |
1 files changed, 13 insertions, 101 deletions
diff --git a/tests/auto/quick/qmltests/data/tst_contextMenu.qml b/tests/auto/quick/qmltests/data/tst_contextMenu.qml index 99450a159..58e27b8ba 100644 --- a/tests/auto/quick/qmltests/data/tst_contextMenu.qml +++ b/tests/auto/quick/qmltests/data/tst_contextMenu.qml @@ -1,35 +1,10 @@ -/**************************************************************************** -** -** Copyright (C) 2017 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the QtWebEngine module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:GPL-EXCEPT$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3 as published by the Free Software -** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT -** included in the packaging of this file. Please review the following -** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-3.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -import QtQuick 2.0 -import QtQuick.Controls 1.4 -import QtTest 1.0 -import QtWebEngine 1.6 +// Copyright (C) 2017 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + +import QtQuick +import QtTest +import QtWebEngine +import "../mock-delegates/TestParams" TestWebEngineView { id: webEngineView @@ -40,7 +15,7 @@ TestWebEngineView { property var mediaType: null property string selectedText: "" - onContextMenuRequested: { + onContextMenuRequested: function (request) { linkText = request.linkText; mediaType = request.mediaType; selectedText = request.selectedText; @@ -52,38 +27,20 @@ TestWebEngineView { signalName: "contextMenuRequested" } - function getContextMenus() { - var data = webEngineView.data; - var contextMenus = []; - - for (var i = 0; i < data.length; i++) { - if (data[i].type == MenuItemType.Menu) { - contextMenus.push(data[i]); - } - } - return contextMenus; - } - - function destroyContextMenu() { - contextMenuTest.keyPress(Qt.Key_Escape); - return getContextMenus().length == 0; - } - TestCase { - id: contextMenuTest + id: testCase name: "WebEngineViewContextMenu" when: windowShown function init() { - var contextMenus = getContextMenus(); - compare(contextMenus.length, 0); + MenuParams.isMenuOpened = false; } function cleanup() { contextMenuRequestedSpy.clear(); } - function test_contextMenu_data() { + function test_contextMenuRequest_data() { return [ { tag: "defaultContextMenu", userHandled: false, accepted: false }, { tag: "defaultContextMenuWithConnect", userHandled: true, accepted: false }, @@ -91,11 +48,7 @@ TestWebEngineView { ]; } - function test_contextMenu(row) { - if (Qt.platform.os == "osx") { - skip("When the menu pops up on macOS, it does not return and the test fails after time out."); - } - + function test_contextMenuRequest(row) { function contextMenuHandler(request) { request.accepted = row.accepted; } @@ -109,22 +62,12 @@ TestWebEngineView { mouseClick(webEngineView, 20, 20, Qt.RightButton); contextMenuRequestedSpy.wait(); compare(contextMenuRequestedSpy.count, 1); + tryCompare(MenuParams, "isMenuOpened", !row.accepted); - // There should be maximum one ContextMenu present at a time - var contextMenus = getContextMenus(); - verify(contextMenus.length <= 1); - compare(contextMenus[0] != null, !row.accepted); - - // FIXME: Sometimes the keyPress(Qt.Key_Escape) event isn't caught so we keep trying - tryVerify(destroyContextMenu); webEngineView.contextMenuRequested.disconnect(contextMenuHandler); } function test_contextMenuLinkAndSelectedText() { - if (Qt.platform.os == "osx") { - skip("When the menu pops up on macOS, it does not return and the test fails after time out."); - } - webEngineView.loadHtml("<html><body>" + "<span id='text'>Text </span>" + "<a id='link' href='test1.html'>Link</a>" + @@ -137,9 +80,6 @@ TestWebEngineView { contextMenuRequestedSpy.wait(); compare(contextMenuRequestedSpy.count, 1); - var contextMenus = getContextMenus(); - compare(contextMenus.length, 1); - verify(contextMenus[0]); compare(linkText, "Link"); compare(mediaType, ContextMenuRequest.MediaTypeNone); compare(selectedText, ""); @@ -150,8 +90,6 @@ TestWebEngineView { verify(webEngineView.action(WebEngineView.CopyLinkToClipboard).enabled); contextMenuRequestedSpy.clear(); - // FIXME: Sometimes the keyPress(Qt.Key_Escape) event isn't caught so we keep trying - tryVerify(destroyContextMenu); // 2. Everything is selected, right click on the link webEngineView.triggerWebAction(WebEngineView.SelectAll); @@ -161,16 +99,11 @@ TestWebEngineView { contextMenuRequestedSpy.wait(); compare(contextMenuRequestedSpy.count, 1); - contextMenus = getContextMenus(); - compare(contextMenus.length, 1); - verify(contextMenus[0]); compare(linkText, "Link"); compare(mediaType, ContextMenuRequest.MediaTypeNone); compare(selectedText, "Text Link"); contextMenuRequestedSpy.clear(); - // FIXME: Sometimes the keyPress(Qt.Key_Escape) event isn't caught so we keep trying - tryVerify(destroyContextMenu); // 3. Everything is selected, right click on the text var textCenter = getElementCenter("text"); @@ -178,22 +111,12 @@ TestWebEngineView { contextMenuRequestedSpy.wait(); compare(contextMenuRequestedSpy.count, 1); - contextMenus = getContextMenus(); - compare(contextMenus.length, 1); - verify(contextMenus[0]); compare(linkText, ""); compare(mediaType, ContextMenuRequest.MediaTypeNone); compare(selectedText, "Text Link"); - - // FIXME: Sometimes the keyPress(Qt.Key_Escape) event isn't caught so we keep trying - tryVerify(destroyContextMenu); } function test_contextMenuMediaType() { - if (Qt.platform.os == "osx") { - skip("When the menu pops up on macOS, it does not return and the test fails after time out."); - } - webEngineView.url = Qt.resolvedUrl("favicon.html"); verify(webEngineView.waitForLoadSucceeded()); // 1. Right click on the image @@ -202,30 +125,19 @@ TestWebEngineView { contextMenuRequestedSpy.wait(); compare(contextMenuRequestedSpy.count, 1); - var contextMenus = getContextMenus(); - compare(contextMenus.length, 1); - verify(contextMenus[0]); compare(linkText, ""); compare(mediaType, ContextMenuRequest.MediaTypeImage); compare(selectedText, ""); contextMenuRequestedSpy.clear(); - // FIXME: Sometimes the keyPress(Qt.Key_Escape) event isn't caught so we keep trying - tryVerify(destroyContextMenu); // 2. Right click out of the image mouseClick(webEngineView, center.x + 30, center.y, Qt.RightButton); contextMenuRequestedSpy.wait(); compare(contextMenuRequestedSpy.count, 1); - contextMenus = getContextMenus(); - compare(contextMenus.length, 1); - verify(contextMenus[0]); compare(linkText, ""); compare(mediaType, ContextMenuRequest.MediaTypeNone); compare(selectedText, ""); - - // FIXME: Sometimes the keyPress(Qt.Key_Escape) event isn't caught so we keep trying - tryVerify(destroyContextMenu); } } } |