diff options
author | Qt Forward Merge Bot <qt_forward_merge_bot@qt-project.org> | 2019-10-26 03:07:24 +0200 |
---|---|---|
committer | Qt Forward Merge Bot <qt_forward_merge_bot@qt-project.org> | 2019-10-26 03:07:24 +0200 |
commit | 9898744e2ea17e805da559faeb677c9f5bbe080f (patch) | |
tree | 36cb67cd6fa0e60d8bf9044ddd4623c5539b0baa /tests | |
parent | f5211d76cb92254af4a14d56599e5817f2368de8 (diff) | |
parent | b395f94ec3032b11eed5708acf4e72244ea728c2 (diff) |
Merge remote-tracking branch 'origin/5.13' into 5.14
Change-Id: I5da24592eb292ef4f430d734fec234166ce6e1e3
Diffstat (limited to 'tests')
-rw-r--r-- | tests/auto/controls/data/tst_splitview.qml | 33 | ||||
-rw-r--r-- | tests/auto/qquickmenubar/data/checkHighlightWhenDismissed.qml | 93 | ||||
-rw-r--r-- | tests/auto/qquickmenubar/tst_qquickmenubar.cpp | 58 | ||||
-rw-r--r-- | tests/auto/qquickpopup/tst_qquickpopup.cpp | 2 |
4 files changed, 169 insertions, 17 deletions
diff --git a/tests/auto/controls/data/tst_splitview.qml b/tests/auto/controls/data/tst_splitview.qml index a03c09a0..76572a00 100644 --- a/tests/auto/controls/data/tst_splitview.qml +++ b/tests/auto/controls/data/tst_splitview.qml @@ -149,23 +149,6 @@ TestCase { } } - SplitView { - id: dummyHorizontalSplitView - handle: handleComponent - - Item { objectName: "dummyItem" } - Item { objectName: "dummyItem" } - } - - SplitView { - id: dummyVerticalSplitView - orientation: Qt.Vertical - handle: handleComponent - - Item { objectName: "dummyItem" } - Item { objectName: "dummyItem" } - } - Component { id: splitViewComponent @@ -1958,4 +1941,20 @@ TestCase { mouseRelease(targetHandle, -100, targetHandle.height / 2, Qt.LeftButton) verify(!control.resizing) } + + Component { + id: oneItemComponent + + SplitView { + Item {} + } + } + + // QTBUG-79270 + function test_hideSplitViewWithOneItem() { + var control = createTemporaryObject(oneItemComponent, testCase) + verify(control) + // Shouldn't be an assertion failure. + control.visible = false + } } diff --git a/tests/auto/qquickmenubar/data/checkHighlightWhenDismissed.qml b/tests/auto/qquickmenubar/data/checkHighlightWhenDismissed.qml new file mode 100644 index 00000000..072fa6b1 --- /dev/null +++ b/tests/auto/qquickmenubar/data/checkHighlightWhenDismissed.qml @@ -0,0 +1,93 @@ +/**************************************************************************** +** +** Copyright (C) 2019 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ +** +** This file is part of the test suite of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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. +** +** BSD License Usage +** Alternatively, you may use this file under the terms of the BSD license +** as follows: +** +** "Redistribution and use in source and binary forms, with or without +** modification, are permitted provided that the following conditions are +** met: +** * Redistributions of source code must retain the above copyright +** notice, this list of conditions and the following disclaimer. +** * Redistributions in binary form must reproduce the above copyright +** notice, this list of conditions and the following disclaimer in +** the documentation and/or other materials provided with the +** distribution. +** * Neither the name of The Qt Company Ltd nor the names of its +** contributors may be used to endorse or promote products derived +** from this software without specific prior written permission. +** +** +** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 2.13 +import QtQuick.Controls 2.13 + +ApplicationWindow { + width: 300 + height: 300 + visible: true + MenuBar { + id: mb + objectName: "menuBar" + width: parent.width + Menu { + title: "StaticMenu" + MenuItem { + text: "Cut" + } + MenuItem { + text: "Copy" + } + MenuItem { + text: "Paste" + } + } + } + Component { + id: cmp + Menu { + title: "DynamicMenu" + MenuItem { + text: "Cut" + } + MenuItem { + text: "Copy" + } + MenuItem { + text: "Paste" + } + } + } + Component.onCompleted: { + mb.addMenu(cmp.createObject(mb)) + } +} diff --git a/tests/auto/qquickmenubar/tst_qquickmenubar.cpp b/tests/auto/qquickmenubar/tst_qquickmenubar.cpp index 9a22d26f..2fb1a02b 100644 --- a/tests/auto/qquickmenubar/tst_qquickmenubar.cpp +++ b/tests/auto/qquickmenubar/tst_qquickmenubar.cpp @@ -60,6 +60,7 @@ private slots: void keys(); void mnemonics(); void addRemove(); + void checkHighlightWhenMenuDismissed(); }; void tst_qquickmenubar::delegate() @@ -564,6 +565,63 @@ void tst_qquickmenubar::addRemove() QVERIFY(menuBarItem1.isNull()); } +void tst_qquickmenubar::checkHighlightWhenMenuDismissed() +{ + if ((QGuiApplication::platformName() == QLatin1String("offscreen")) + || (QGuiApplication::platformName() == QLatin1String("minimal"))) + QSKIP("Mouse highlight not functional on offscreen/minimal platforms"); + + QQmlApplicationEngine engine(testFileUrl("checkHighlightWhenDismissed.qml")); + QScopedPointer<QQuickApplicationWindow> window(qobject_cast<QQuickApplicationWindow *>(engine.rootObjects().value(0))); + QVERIFY(window); + + centerOnScreen(window.data()); + moveMouseAway(window.data()); + QVERIFY(QTest::qWaitForWindowActive(window.data())); + + QQuickMenuBar *menuBar = window->findChild<QQuickMenuBar *>("menuBar"); + QVERIFY(menuBar); + + QQuickMenu *staticMenu = menuBar->menuAt(0); + QQuickMenu *dynamicMenu = menuBar->menuAt(1); + QVERIFY(staticMenu && dynamicMenu); + QQuickMenuBarItem *staticMenuBarItem = qobject_cast<QQuickMenuBarItem *>(staticMenu->parentItem()); + QQuickMenuBarItem *dynamicMenuBarItem = qobject_cast<QQuickMenuBarItem *>(dynamicMenu->parentItem()); + QVERIFY(staticMenuBarItem && dynamicMenuBarItem); + + // highlight the static MenuBarItem and open the menu + QTest::mouseMove(window.data(), staticMenuBarItem->mapToScene( + QPointF(staticMenuBarItem->width() / 2, staticMenuBarItem->height() / 2)).toPoint()); + QTest::mouseClick(window.data(), Qt::LeftButton, Qt::NoModifier, + staticMenuBarItem->mapToScene(QPointF(staticMenuBarItem->width() / 2, staticMenuBarItem->height() / 2)).toPoint()); + QCOMPARE(staticMenuBarItem->isHighlighted(), true); + QCOMPARE(staticMenu->isVisible(), true); + QTRY_COMPARE(staticMenu->isOpened(), true); + + // click a menu item to dismiss the menu and unhighlight the static MenuBarItem + QQuickMenuItem *menuItem = qobject_cast<QQuickMenuItem *>(staticMenu->itemAt(0)); + QVERIFY(menuItem); + QTest::mouseClick(window.data(), Qt::LeftButton, Qt::NoModifier, + menuItem->mapToScene(QPointF(menuItem->width() / 2, menuItem->height() / 2)).toPoint()); + QCOMPARE(staticMenuBarItem->isHighlighted(), false); + + // highlight the dynamic MenuBarItem and open the menu + QTest::mouseMove(window.data(), dynamicMenuBarItem->mapToScene( + QPointF(dynamicMenuBarItem->width() / 2, dynamicMenuBarItem->height() / 2)).toPoint()); + QTest::mouseClick(window.data(), Qt::LeftButton, Qt::NoModifier, + dynamicMenuBarItem->mapToScene(QPointF(dynamicMenuBarItem->width() / 2, dynamicMenuBarItem->height() / 2)).toPoint()); + QCOMPARE(dynamicMenuBarItem->isHighlighted(), true); + QCOMPARE(dynamicMenu->isVisible(), true); + QTRY_COMPARE(dynamicMenu->isOpened(), true); + + // click a menu item to dismiss the menu and unhighlight the dynamic MenuBarItem + menuItem = qobject_cast<QQuickMenuItem *>(dynamicMenu->itemAt(0)); + QVERIFY(menuItem); + QTest::mouseClick(window.data(), Qt::LeftButton, Qt::NoModifier, + menuItem->mapToScene(QPointF(menuItem->width() / 2, menuItem->height() / 2)).toPoint()); + QCOMPARE(dynamicMenuBarItem->isHighlighted(), false); +} + QTEST_QUICKCONTROLS_MAIN(tst_qquickmenubar) #include "tst_qquickmenubar.moc" diff --git a/tests/auto/qquickpopup/tst_qquickpopup.cpp b/tests/auto/qquickpopup/tst_qquickpopup.cpp index 8a8cd143..c36edd6d 100644 --- a/tests/auto/qquickpopup/tst_qquickpopup.cpp +++ b/tests/auto/qquickpopup/tst_qquickpopup.cpp @@ -904,6 +904,8 @@ void tst_QQuickPopup::cursorShape() // which is itself over an item with a different shape. QQuickApplicationHelper helper(this, QStringLiteral("cursor.qml")); QQuickApplicationWindow *window = helper.appWindow; + centerOnScreen(window); + moveMouseAway(window); window->show(); QVERIFY(QTest::qWaitForWindowExposed(window)); |