diff options
Diffstat (limited to 'tests/auto/quickcontrols2/qquickimaginestyle')
-rw-r--r-- | tests/auto/quickcontrols2/qquickimaginestyle/CMakeLists.txt | 41 | ||||
-rw-r--r-- | tests/auto/quickcontrols2/qquickimaginestyle/control-assets/button-background.9.png | bin | 0 -> 138 bytes | |||
-rw-r--r-- | tests/auto/quickcontrols2/qquickimaginestyle/data/tst_imagine.qml | 156 | ||||
-rw-r--r-- | tests/auto/quickcontrols2/qquickimaginestyle/qtquickcontrols2.conf | 5 | ||||
-rw-r--r-- | tests/auto/quickcontrols2/qquickimaginestyle/test-assets/button-background-1.png | bin | 0 -> 101 bytes | |||
-rw-r--r-- | tests/auto/quickcontrols2/qquickimaginestyle/test-assets/button-background-2.png | bin | 0 -> 101 bytes | |||
-rw-r--r-- | tests/auto/quickcontrols2/qquickimaginestyle/tst_qquickimaginestyle.cpp | 38 |
7 files changed, 240 insertions, 0 deletions
diff --git a/tests/auto/quickcontrols2/qquickimaginestyle/CMakeLists.txt b/tests/auto/quickcontrols2/qquickimaginestyle/CMakeLists.txt new file mode 100644 index 0000000000..568c44410b --- /dev/null +++ b/tests/auto/quickcontrols2/qquickimaginestyle/CMakeLists.txt @@ -0,0 +1,41 @@ +# Generated from qquickimaginestyle.pro. + +##################################################################### +## tst_qquickimaginestyle Test: +##################################################################### + +# Collect test data +file(GLOB_RECURSE test_data_glob + RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} + ${CMAKE_CURRENT_SOURCE_DIR}/data/tst_*) +list(APPEND test_data ${test_data_glob}) + +qt_internal_add_test(tst_qquickimaginestyle + GUI + QMLTEST + SOURCES + tst_qquickimaginestyle.cpp + PUBLIC_LIBRARIES + Qt::Gui + TESTDATA ${test_data} +) + +# Resources: +set(qmake_immediate_resource_files + "control-assets/button-background.9.png" + "qtquickcontrols2.conf" + "test-assets/button-background-1.png" + "test-assets/button-background-2.png" +) + +qt_internal_add_resource(tst_qquickimaginestyle "qmake_immediate" + PREFIX + "/" + FILES + ${qmake_immediate_resource_files} +) + + +#### Keys ignored in scope 1:.:.:qquickimaginestyle.pro:<TRUE>: +# OTHER_FILES = "$$PWD/data/*.qml" +# TEMPLATE = "app" diff --git a/tests/auto/quickcontrols2/qquickimaginestyle/control-assets/button-background.9.png b/tests/auto/quickcontrols2/qquickimaginestyle/control-assets/button-background.9.png Binary files differnew file mode 100644 index 0000000000..18ec9e6f4f --- /dev/null +++ b/tests/auto/quickcontrols2/qquickimaginestyle/control-assets/button-background.9.png diff --git a/tests/auto/quickcontrols2/qquickimaginestyle/data/tst_imagine.qml b/tests/auto/quickcontrols2/qquickimaginestyle/data/tst_imagine.qml new file mode 100644 index 0000000000..493ff766ba --- /dev/null +++ b/tests/auto/quickcontrols2/qquickimaginestyle/data/tst_imagine.qml @@ -0,0 +1,156 @@ +/**************************************************************************** +** +** Copyright (C) 2017 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 +import QtQuick.Window +import QtTest +import QtQuick.Templates as T +import QtQuick.Controls +import QtQuick.Controls.Imagine +import QtQuick.Controls.Imagine.impl + +TestCase { + id: testCase + width: 200 + height: 200 + visible: true + when: windowShown + name: "Imagine" + + Component { + id: buttonComponent + Button {} + } + + Component { + id: implicitQrcButtonComponent + Button { + Imagine.path: ":/control-assets" + } + } + + Component { + id: explicitQrcButtonComponent + Button { + Imagine.path: "qrc:/control-assets" + } + } + + function test_qrcPaths_data() { + return [ + { tag: ":/control-assets", component: implicitQrcButtonComponent }, + { tag: "qrc:/control-assets", component: explicitQrcButtonComponent } + ] + } + + function test_qrcPaths(data) { + if (Qt.platform.pluginName === "offscreen") + skip("grabImage() is not functional on the offscreen platform (QTBUG-63185)") + + var control = createTemporaryObject(data.component, testCase) + verify(control) + compare(control.Imagine.path, data.tag) + var image = grabImage(control) + compare(image.pixel(control.width / 2, control.height / 2), "#ff0000") + } + + function test_fontFromConfigFile() { + var control = createTemporaryObject(buttonComponent, testCase) + verify(control) + compare(control.font.pixelSize, 80) + } + + Component { + id: ninePatchImageComponent + + NinePatchImage { + property alias mouseArea: mouseArea + + MouseArea { + id: mouseArea + anchors.fill: parent + // The name of the images isn't important; we just want to check that + // going from regular to 9-patch to regular to regular works without crashing. + onPressed: parent.source = "qrc:/control-assets/button-background.9.png" + onReleased: parent.source = "qrc:/test-assets/button-background-1.png" + onClicked: parent.source = "qrc:/test-assets/button-background-2.png" + } + } + } + + Component { + id: signalSpyComponent + + SignalSpy {} + } + + // QTBUG-78790 + function test_switchBetween9PatchAndRegular() { + var ninePatchImage = createTemporaryObject(ninePatchImageComponent, testCase, + { source: "qrc:/test-assets/button-background-1.png" }) + verify(ninePatchImage) + + var clickSpy = signalSpyComponent.createObject(ninePatchImage, + { target: ninePatchImage.mouseArea, signalName: "clicked" }) + verify(clickSpy.valid) + + var afterRenderingSpy = signalSpyComponent.createObject(ninePatchImage, + { target: testCase.Window.window, signalName: "afterRendering" }) + verify(afterRenderingSpy.valid) + + mousePress(ninePatchImage) + // Wait max 1 second - in reality it should take a handful of milliseconds. + afterRenderingSpy.wait(1000) + mouseRelease(ninePatchImage) + compare(clickSpy.count, 1) + // Shouldn't result in a crash. + afterRenderingSpy.wait(1000) + } +} diff --git a/tests/auto/quickcontrols2/qquickimaginestyle/qtquickcontrols2.conf b/tests/auto/quickcontrols2/qquickimaginestyle/qtquickcontrols2.conf new file mode 100644 index 0000000000..cc58a8e374 --- /dev/null +++ b/tests/auto/quickcontrols2/qquickimaginestyle/qtquickcontrols2.conf @@ -0,0 +1,5 @@ +[Controls] +Style=Imagine + +[Imagine] +Font\PixelSize=80 diff --git a/tests/auto/quickcontrols2/qquickimaginestyle/test-assets/button-background-1.png b/tests/auto/quickcontrols2/qquickimaginestyle/test-assets/button-background-1.png Binary files differnew file mode 100644 index 0000000000..980eec3c92 --- /dev/null +++ b/tests/auto/quickcontrols2/qquickimaginestyle/test-assets/button-background-1.png diff --git a/tests/auto/quickcontrols2/qquickimaginestyle/test-assets/button-background-2.png b/tests/auto/quickcontrols2/qquickimaginestyle/test-assets/button-background-2.png Binary files differnew file mode 100644 index 0000000000..8e2639d03b --- /dev/null +++ b/tests/auto/quickcontrols2/qquickimaginestyle/test-assets/button-background-2.png diff --git a/tests/auto/quickcontrols2/qquickimaginestyle/tst_qquickimaginestyle.cpp b/tests/auto/quickcontrols2/qquickimaginestyle/tst_qquickimaginestyle.cpp new file mode 100644 index 0000000000..cd08923abe --- /dev/null +++ b/tests/auto/quickcontrols2/qquickimaginestyle/tst_qquickimaginestyle.cpp @@ -0,0 +1,38 @@ +/**************************************************************************** +** +** Copyright (C) 2017 The Qt Company Ltd. +** Contact: http://www.qt.io/licensing/ +** +** This file is part of the test suite of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL3$ +** 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 http://www.qt.io/terms-conditions. For further +** information use the contact form at http://www.qt.io/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPLv3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or later as published by the Free +** Software Foundation and appearing in the file LICENSE.GPL included in +** the packaging of this file. Please review the following information to +** ensure the GNU General Public License version 2.0 requirements will be +** met: http://www.gnu.org/licenses/gpl-2.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include <QtQuickTest/quicktest.h> +QUICK_TEST_MAIN(tst_qquickmaterialstyle) |