diff options
author | J-P Nurmi <jpnurmi@qt.io> | 2016-06-12 12:02:02 +0200 |
---|---|---|
committer | J-P Nurmi <jpnurmi@qt.io> | 2016-06-13 14:16:41 +0000 |
commit | d4e9c964a2d17d0dbdd9c7c9599bf502ce995d9c (patch) | |
tree | c4db6898ecec09407edc67c406cd4cda4fdd50d3 /tests/auto/qquickmaterialstyle | |
parent | 3e40325d44c64f2c3fa3403e9efd6a51759ec0e9 (diff) |
Rename tst_material and tst_universal
These test specificly the QQuickMaterialStyle and QQuickUniversalStyle
implementations, so rename appropriately to make room for the upcoming
tst_material and tst_universal tests. See the next commit for more
details about that.
Change-Id: I08d6116d6219084f6087682b7e712f8499a0e945
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
Diffstat (limited to 'tests/auto/qquickmaterialstyle')
5 files changed, 663 insertions, 0 deletions
diff --git a/tests/auto/qquickmaterialstyle/data/tst_material.qml b/tests/auto/qquickmaterialstyle/data/tst_material.qml new file mode 100644 index 00000000..7305b732 --- /dev/null +++ b/tests/auto/qquickmaterialstyle/data/tst_material.qml @@ -0,0 +1,603 @@ +/**************************************************************************** +** +** Copyright (C) 2016 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:BSD$ +** 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.2 +import QtQuick.Window 2.2 +import QtTest 1.0 +import QtQuick.Controls 2.0 +import QtQuick.Controls.Material 2.0 + +TestCase { + id: testCase + width: 200 + height: 200 + visible: true + when: windowShown + name: "Material" + + Component { + id: button + Button { } + } + + Component { + id: styledButton + Button { + Material.theme: Material.Dark + Material.primary: Material.DeepOrange + Material.accent: Material.DeepPurple + Material.background: Material.Green + Material.foreground: Material.Blue + } + } + + Component { + id: window + Window { } + } + + Component { + id: styledWindow + Window { + Material.theme: Material.Dark + Material.primary: Material.Brown + Material.accent: Material.Green + Material.background: Material.Yellow + Material.foreground: Material.Grey + } + } + + Component { + id: loader + Loader { + active: false + sourceComponent: Button { } + } + } + + Component { + id: swipeView + SwipeView { + Material.theme: Material.Dark + Button { } + } + } + + Component { + id: menu + ApplicationWindow { + Material.primary: Material.Blue + Material.accent: Material.Red + property alias menu: popup + Menu { + id: popup + Material.theme: Material.Dark + MenuItem { } + } + } + } + + Component { + id: popupComponent + ApplicationWindow { + Material.primary: Material.Blue + Material.accent: Material.Red + visible: true + property alias popup: popupInstance + property alias label: labelInstance + Popup { + id: popupInstance + Label { + id: labelInstance + text: "test" + color: popupInstance.Material.textSelectionColor + } + Component.onCompleted: open() + } + } + } + + Component { + id: comboBox + ApplicationWindow { + width: 200 + height: 200 + visible: true + Material.primary: Material.Blue + Material.accent: Material.Red + property alias combo: box + ComboBox { + id: box + Material.theme: Material.Dark + model: 1 + } + } + } + + Component { + id: windowPane + ApplicationWindow { + width: 200 + height: 200 + visible: true + property alias pane: pane + Pane { id: pane } + } + } + + // need to be synced with QQuickMaterialStyle::themeShade() + function themeshade(theme) { + if (theme === Material.Light) + return Material.Shade500 + else + return Material.Shade200 + } + + function test_defaults() { + var control = button.createObject(testCase) + verify(control) + verify(control.Material) + compare(control.Material.primary, Material.color(Material.Indigo)) + compare(control.Material.accent, Material.color(Material.Pink)) + compare(control.Material.foreground, "#dd000000") + compare(control.Material.background, "#fafafa") + compare(control.Material.theme, Material.Light) + control.destroy() + } + + function test_set() { + var control = button.createObject(testCase) + verify(control) + control.Material.primary = Material.Green + control.Material.accent = Material.Brown + control.Material.background = Material.Red + control.Material.foreground = Material.Blue + control.Material.theme = Material.Dark + compare(control.Material.primary, Material.color(Material.Green)) + compare(control.Material.accent, Material.color(Material.Brown, themeshade(control.Material.theme))) + compare(control.Material.background, Material.color(Material.Red, themeshade(control.Material.theme))) + compare(control.Material.foreground, Material.color(Material.Blue)) + compare(control.Material.theme, Material.Dark) + control.destroy() + } + + function test_reset() { + var control = styledButton.createObject(testCase) + verify(control) + compare(control.Material.primary, Material.color(Material.DeepOrange)) + compare(control.Material.accent, Material.color(Material.DeepPurple, themeshade(control.Material.theme))) + compare(control.Material.background, Material.color(Material.Green, themeshade(control.Material.theme))) + compare(control.Material.foreground, Material.color(Material.Blue)) + compare(control.Material.theme, Material.Dark) + control.Material.primary = undefined + control.Material.accent = undefined + control.Material.background = undefined + control.Material.foreground = undefined + control.Material.theme = undefined + compare(control.Material.primary, testCase.Material.primary) + compare(control.Material.accent, testCase.Material.accent) + compare(control.Material.background, testCase.Material.background) + compare(control.Material.foreground, testCase.Material.foreground) + compare(control.Material.theme, testCase.Material.theme) + control.destroy() + } + + function test_inheritance_data() { + return [ + { tag: "primary", value1: Material.color(Material.Amber), value2: Material.color(Material.Indigo) }, + { tag: "accent", value1: Material.color(Material.Amber), value2: Material.color(Material.Indigo) }, + { tag: "background", value1: Material.color(Material.Amber), value2: Material.color(Material.Indigo) }, + { tag: "foreground", value1: Material.color(Material.Amber), value2: Material.color(Material.Indigo) }, + { tag: "theme", value1: Material.Dark, value2: Material.Light }, + ] + } + + function test_inheritance(data) { + var prop = data.tag + var parent = button.createObject(testCase) + parent.Material[prop] = data.value1 + compare(parent.Material[prop], data.value1) + + var child1 = button.createObject(parent) + compare(child1.Material[prop], data.value1) + + parent.Material[prop] = data.value2 + compare(parent.Material[prop], data.value2) + compare(child1.Material[prop], data.value2) + + var child2 = button.createObject(parent) + compare(child2.Material[prop], data.value2) + + child2.Material[prop] = data.value1 + compare(child2.Material[prop], data.value1) + compare(child1.Material[prop], data.value2) + compare(parent.Material[prop], data.value2) + + parent.Material[prop] = undefined + verify(parent.Material[prop] !== data.value1) + verify(parent.Material[prop] !== undefined) + compare(child1.Material[prop], parent.Material[prop]) + verify(child2.Material[prop] !== parent.Material[prop]) + + var grandChild1 = button.createObject(child1) + var grandChild2 = button.createObject(child2) + compare(grandChild1.Material[prop], child1.Material[prop]) + compare(grandChild2.Material[prop], child2.Material[prop]) + + var themelessGrandGrandChild = button.createObject(grandChild1) + var grandGrandGrandChild1 = button.createObject(themelessGrandGrandChild) + compare(grandGrandGrandChild1.Material[prop], parent.Material[prop]) + + child1.Material[prop] = data.value2 + compare(child1.Material[prop], data.value2) + compare(grandChild1.Material[prop], data.value2) + compare(grandGrandGrandChild1.Material[prop], data.value2) + + parent.destroy() + } + + function test_inheritance_popup_data() { + return [ + { tag: "primary", value1: Material.color(Material.Amber), value2: Material.color(Material.Indigo) }, + { tag: "accent", value1: Material.color(Material.Amber), value2: Material.color(Material.Indigo) }, + { tag: "theme", value1: Material.Dark, value2: Material.Light }, + ] + } + + function test_inheritance_popup(data) { + var prop = data.tag + var popupObject = popupComponent.createObject(testCase) + compare(popupObject.popup.Material.textSelectionColor.toString(), popupObject.Material.textSelectionColor.toString()) + compare(popupObject.label.color.toString(), popupObject.Material.textSelectionColor.toString()) + + popupObject.Material[prop] = data.value1 + compare(popupObject.Material[prop], data.value1) + compare(popupObject.popup.Material.textSelectionColor.toString(), popupObject.Material.textSelectionColor.toString()) + compare(popupObject.label.color.toString(), popupObject.Material.textSelectionColor.toString()) + + popupObject.Material[prop] = data.value2 + compare(popupObject.Material[prop], data.value2) + compare(popupObject.popup.Material.textSelectionColor.toString(), popupObject.Material.textSelectionColor.toString()) + compare(popupObject.label.color.toString(), popupObject.Material.textSelectionColor.toString()) + + popupObject.destroy() + } + + function test_window() { + var parent = window.createObject() + + var control = button.createObject(parent.contentItem) + compare(control.Material.primary, parent.Material.primary) + compare(control.Material.accent, parent.Material.accent) + compare(control.Material.background, parent.Material.background) + compare(control.Material.foreground, parent.Material.foreground) + compare(control.Material.theme, parent.Material.theme) + + var styledChild = styledWindow.createObject(window) + verify(styledChild.Material.primary !== parent.Material.primary) + verify(styledChild.Material.accent !== parent.Material.accent) + verify(styledChild.Material.background !== parent.Material.background) + verify(styledChild.Material.foreground !== parent.Material.foreground) + verify(styledChild.Material.theme !== parent.Material.theme) + + var unstyledChild = window.createObject(window) + compare(unstyledChild.Material.primary, parent.Material.primary) + compare(unstyledChild.Material.accent, parent.Material.accent) + compare(unstyledChild.Material.background, parent.Material.background) + compare(unstyledChild.Material.foreground, parent.Material.foreground) + compare(unstyledChild.Material.theme, parent.Material.theme) + + parent.Material.primary = Material.Lime + compare(control.Material.primary, Material.color(Material.Lime)) + verify(styledChild.Material.primary !== Material.color(Material.Lime)) + // ### TODO: compare(unstyledChild.Material.primary, Material.color(Material.Lime)) + + parent.Material.accent = Material.Cyan + compare(control.Material.accent, Material.color(Material.Cyan)) + verify(styledChild.Material.accent !== Material.color(Material.Cyan)) + // ### TODO: compare(unstyledChild.Material.accent, Material.color(Material.Cyan)) + + parent.Material.background = Material.Indigo + compare(control.Material.background, Material.color(Material.Indigo)) + verify(styledChild.Material.background !== Material.color(Material.Indigo)) + // ### TODO: compare(unstyledChild.Material.background, Material.color(Material.Indigo)) + + parent.Material.foreground = Material.Pink + compare(control.Material.foreground, Material.color(Material.Pink)) + verify(styledChild.Material.foreground !== Material.color(Material.Pink)) + // ### TODO: compare(unstyledChild.Material.foreground, Material.color(Material.Pink)) + + parent.destroy() + } + + function test_loader() { + var control = loader.createObject(testCase) + control.Material.primary = Material.Yellow + control.Material.accent = Material.Lime + control.Material.background = Material.LightGreen + control.Material.foreground = Material.LightBlue + control.active = true + compare(control.item.Material.primary, Material.color(Material.Yellow)) + compare(control.item.Material.accent, Material.color(Material.Lime)) + compare(control.item.Material.background, Material.color(Material.LightGreen)) + compare(control.item.Material.foreground, Material.color(Material.LightBlue)) + control.Material.primary = Material.Red + control.Material.accent = Material.Pink + control.Material.background = Material.Blue + control.Material.foreground = Material.Green + compare(control.item.Material.primary, Material.color(Material.Red)) + compare(control.item.Material.accent, Material.color(Material.Pink)) + compare(control.item.Material.background, Material.color(Material.Blue)) + compare(control.item.Material.foreground, Material.color(Material.Green)) + control.active = false + control.Material.primary = Material.Orange + control.Material.accent = Material.Brown + control.Material.background = Material.Red + control.Material.foreground = Material.Pink + control.active = true + compare(control.item.Material.primary, Material.color(Material.Orange)) + compare(control.item.Material.accent, Material.color(Material.Brown)) + compare(control.item.Material.background, Material.color(Material.Red)) + compare(control.item.Material.foreground, Material.color(Material.Pink)) + control.destroy() + } + + function test_swipeView() { + var control = swipeView.createObject(testCase) + verify(control) + var child = control.itemAt(0) + verify(child) + compare(control.Material.theme, Material.Dark) + compare(child.Material.theme, Material.Dark) + control.destroy() + } + + function test_menu() { + var container = menu.createObject(testCase) + verify(container) + verify(container.menu) + container.menu.open() + verify(container.menu.visible) + var child = container.menu.itemAt(0) + verify(child) + compare(container.Material.theme, Material.Light) + compare(container.menu.Material.theme, Material.Dark) + compare(child.Material.theme, Material.Dark) + compare(container.Material.primary, Material.color(Material.Blue)) + compare(container.menu.Material.primary, Material.color(Material.Blue)) + compare(child.Material.primary, Material.color(Material.Blue)) + compare(container.Material.accent, Material.color(Material.Red)) + compare(container.menu.Material.accent, Material.color(Material.Red, themeshade(container.menu.Material.theme))) + compare(child.Material.accent, Material.color(Material.Red, themeshade(child.Material.theme))) + container.destroy() + } + + function test_comboBox() { + var window = comboBox.createObject(testCase) + verify(window) + verify(window.combo) + waitForRendering(window.combo) + window.combo.forceActiveFocus() + verify(window.combo.activeFocus) + keyClick(Qt.Key_Space) + verify(window.combo.popup.visible) + var listView = window.combo.popup.contentItem + verify(listView) + var child = listView.contentItem.children[0] + verify(child) + compare(window.Material.theme, Material.Light) + compare(window.combo.Material.theme, Material.Dark) + compare(child.Material.theme, Material.Dark) + compare(window.Material.primary, Material.color(Material.Blue)) + compare(window.combo.Material.primary, Material.color(Material.Blue)) + compare(child.Material.primary, Material.color(Material.Blue)) + compare(window.Material.accent, Material.color(Material.Red)) + compare(window.combo.Material.accent, Material.color(Material.Red, themeshade(window.combo.Material.theme))) + compare(child.Material.accent, Material.color(Material.Red, themeshade(child.Material.theme))) + window.destroy() + } + + function test_windowChange() { + var ldr = loader.createObject() + verify(ldr) + + var wnd = window.createObject() + verify(wnd) + + wnd.Material.theme = Material.Dark + compare(wnd.Material.theme, Material.Dark) + + ldr.active = true + verify(ldr.item) + compare(ldr.item.Material.theme, Material.Light) + + ldr.parent = wnd.contentItem + compare(ldr.item.Material.theme, Material.Dark) + + wnd.destroy() + } + + function test_colors_data() { + return [ + { tag: "primary" }, { tag: "accent" }, { tag: "background" }, { tag: "foreground" } + ] + } + + function test_colors(data) { + var control = button.createObject(testCase) + verify(control) + + var prop = data.tag + + // Material.Color - enum + control.Material[prop] = Material.Red + compare(control.Material[prop], "#f44336") + + // Material.Color - string + control.Material[prop] = "BlueGrey" + compare(control.Material[prop], "#607d8b") + + // SVG named color + control.Material[prop] = "tomato" + compare(control.Material[prop], "#ff6347") + + // #rrggbb + control.Material[prop] = "#123456" + compare(control.Material[prop], "#123456") + + // #aarrggbb + control.Material[prop] = "#12345678" + compare(control.Material[prop], "#12345678") + + // Qt.rgba() - no alpha + control.Material[prop] = Qt.rgba(0.5, 0.5, 0.5) + compare(control.Material[prop], "#808080") + + // Qt.rgba() - with alpha + control.Material[prop] = Qt.rgba(0.5, 0.5, 0.5, 0.5) + compare(control.Material[prop], "#80808080") + + // unknown + ignoreWarning(Qt.resolvedUrl("tst_material.qml") + ":57:9: QML Button: unknown Material." + prop + " value: 123") + control.Material[prop] = 123 + ignoreWarning(Qt.resolvedUrl("tst_material.qml") + ":57:9: QML Button: unknown Material." + prop + " value: foo") + control.Material[prop] = "foo" + ignoreWarning(Qt.resolvedUrl("tst_material.qml") + ":57:9: QML Button: unknown Material." + prop + " value: #1") + control.Material[prop] = "#1" + + control.destroy() + } + + function test_font_data() { + return [ + {tag: "Button:pixelSize", type: "Button", attribute: "pixelSize", value: 14, window: 20, pane: 10}, + {tag: "Button:weight", type: "Button", attribute: "weight", value: Font.Medium, window: Font.Black, pane: Font.Bold}, + {tag: "Button:capitalization", type: "Button", attribute: "capitalization", value: Font.AllUppercase, window: Font.Capitalize, pane: Font.AllLowercase}, + + {tag: "TabButton:pixelSize", type: "TabButton", attribute: "pixelSize", value: 14, window: 20, pane: 10}, + {tag: "TabButton:weight", type: "TabButton", attribute: "weight", value: Font.Medium, window: Font.Black, pane: Font.Bold}, + {tag: "TabButton:capitalization", type: "TabButton", attribute: "capitalization", value: Font.AllUppercase, window: Font.Capitalize, pane: Font.AllLowercase}, + + {tag: "ToolButton:pixelSize", type: "ToolButton", attribute: "pixelSize", value: 14, window: 20, pane: 10}, + {tag: "ToolButton:weight", type: "ToolButton", attribute: "weight", value: Font.Medium, window: Font.Black, pane: Font.Bold}, + {tag: "ToolButton:capitalization", type: "ToolButton", attribute: "capitalization", value: Font.AllUppercase, window: Font.Capitalize, pane: Font.AllLowercase}, + + {tag: "ItemDelegate:pixelSize", type: "ItemDelegate", attribute: "pixelSize", value: 14, window: 20, pane: 10}, + {tag: "ItemDelegate:weight", type: "ItemDelegate", attribute: "weight", value: Font.Medium, window: Font.Black, pane: Font.Bold}, + {tag: "ItemDelegate:capitalization", type: "ItemDelegate", attribute: "capitalization", value: Font.MixedCase, window: Font.Capitalize, pane: Font.AllLowercase}, + + {tag: "CheckDelegate:pixelSize", type: "CheckDelegate", attribute: "pixelSize", value: 16, window: 20, pane: 10}, + {tag: "CheckDelegate:weight", type: "CheckDelegate", attribute: "weight", value: Font.Normal, window: Font.Black, pane: Font.Bold}, + {tag: "CheckDelegate:capitalization", type: "CheckDelegate", attribute: "capitalization", value: Font.MixedCase, window: Font.Capitalize, pane: Font.AllLowercase}, + + {tag: "RadioDelegate:pixelSize", type: "RadioDelegate", attribute: "pixelSize", value: 16, window: 20, pane: 10}, + {tag: "RadioDelegate:weight", type: "RadioDelegate", attribute: "weight", value: Font.Normal, window: Font.Black, pane: Font.Bold}, + {tag: "RadioDelegate:capitalization", type: "RadioDelegate", attribute: "capitalization", value: Font.MixedCase, window: Font.Capitalize, pane: Font.AllLowercase}, + + {tag: "SwitchDelegate:pixelSize", type: "SwitchDelegate", attribute: "pixelSize", value: 16, window: 20, pane: 10}, + {tag: "SwitchDelegate:weight", type: "SwitchDelegate", attribute: "weight", value: Font.Normal, window: Font.Black, pane: Font.Bold}, + {tag: "SwitchDelegate:capitalization", type: "SwitchDelegate", attribute: "capitalization", value: Font.MixedCase, window: Font.Capitalize, pane: Font.AllLowercase}, + + {tag: "Label:pixelSize", type: "Label", attribute: "pixelSize", value: 14, window: 20, pane: 10}, + {tag: "Label:weight", type: "Label", attribute: "weight", value: Font.Normal, window: Font.Black, pane: Font.Bold}, + {tag: "Label:capitalization", type: "Label", attribute: "capitalization", value: Font.MixedCase, window: Font.Capitalize, pane: Font.AllLowercase}, + + {tag: "CheckBox:pixelSize", type: "CheckBox", attribute: "pixelSize", value: 14, window: 20, pane: 10}, + {tag: "CheckBox:weight", type: "CheckBox", attribute: "weight", value: Font.Normal, window: Font.Black, pane: Font.Bold}, + {tag: "CheckBox:capitalization", type: "CheckBox", attribute: "capitalization", value: Font.MixedCase, window: Font.Capitalize, pane: Font.AllLowercase}, + + {tag: "RadioButton:pixelSize", type: "RadioButton", attribute: "pixelSize", value: 14, window: 20, pane: 10}, + {tag: "RadioButton:weight", type: "RadioButton", attribute: "weight", value: Font.Normal, window: Font.Black, pane: Font.Bold}, + {tag: "RadioButton:capitalization", type: "RadioButton", attribute: "capitalization", value: Font.MixedCase, window: Font.Capitalize, pane: Font.AllLowercase}, + + {tag: "Switch:pixelSize", type: "Switch", attribute: "pixelSize", value: 14, window: 20, pane: 10}, + {tag: "Switch:weight", type: "Switch", attribute: "weight", value: Font.Normal, window: Font.Black, pane: Font.Bold}, + {tag: "Switch:capitalization", type: "Switch", attribute: "capitalization", value: Font.MixedCase, window: Font.Capitalize, pane: Font.AllLowercase}, + + {tag: "MenuItem:pixelSize", type: "MenuItem", attribute: "pixelSize", value: 16, window: 20, pane: 10}, + {tag: "MenuItem:weight", type: "MenuItem", attribute: "weight", value: Font.Normal, window: Font.Black, pane: Font.Bold}, + {tag: "MenuItem:capitalization", type: "MenuItem", attribute: "capitalization", value: Font.MixedCase, window: Font.Capitalize, pane: Font.AllLowercase}, + + {tag: "ComboBox:pixelSize", type: "ComboBox", attribute: "pixelSize", value: 16, window: 20, pane: 10}, + {tag: "ComboBox:weight", type: "ComboBox", attribute: "weight", value: Font.Normal, window: Font.Black, pane: Font.Bold}, + {tag: "ComboBox:capitalization", type: "ComboBox", attribute: "capitalization", value: Font.MixedCase, window: Font.Capitalize, pane: Font.AllLowercase}, + + {tag: "TextField:pixelSize", type: "TextField", attribute: "pixelSize", value: 16, window: 20, pane: 10}, + {tag: "TextField:weight", type: "TextField", attribute: "weight", value: Font.Normal, window: Font.Black, pane: Font.Bold}, + {tag: "TextField:capitalization", type: "TextField", attribute: "capitalization", value: Font.MixedCase, window: Font.Capitalize, pane: Font.AllLowercase}, + + {tag: "TextArea:pixelSize", type: "TextArea", attribute: "pixelSize", value: 16, window: 20, pane: 10}, + {tag: "TextArea:weight", type: "TextArea", attribute: "weight", value: Font.Normal, window: Font.Black, pane: Font.Bold}, + {tag: "TextArea:capitalization", type: "TextArea", attribute: "capitalization", value: Font.MixedCase, window: Font.Capitalize, pane: Font.AllLowercase}, + + {tag: "SpinBox:pixelSize", type: "SpinBox", attribute: "pixelSize", value: 16, window: 20, pane: 10}, + {tag: "SpinBox:weight", type: "SpinBox", attribute: "weight", value: Font.Normal, window: Font.Black, pane: Font.Bold}, + {tag: "SpinBox:capitalization", type: "SpinBox", attribute: "capitalization", value: Font.MixedCase, window: Font.Capitalize, pane: Font.AllLowercase} + ] + } + + function test_font(data) { + var window = windowPane.createObject(testCase) + verify(window) + verify(window.pane) + + var control = Qt.createQmlObject("import QtQuick.Controls 2.0; " + data.type + " { }", window.pane) + verify(control) + + compare(control.font[data.attribute], data.value) + + window.font[data.attribute] = data.window + compare(window.font[data.attribute], data.window) + compare(window.pane.font[data.attribute], data.window) + compare(control.font[data.attribute], data.window) + + window.pane.font[data.attribute] = data.pane + compare(window.font[data.attribute], data.window) + compare(window.pane.font[data.attribute], data.pane) + compare(control.font[data.attribute], data.pane) + + window.pane.font = undefined + compare(window.font[data.attribute], data.window) + compare(window.pane.font[data.attribute], data.window) + compare(control.font[data.attribute], data.window) + + window.destroy() + } +} diff --git a/tests/auto/qquickmaterialstyle/qquickmaterialstyle.pro b/tests/auto/qquickmaterialstyle/qquickmaterialstyle.pro new file mode 100644 index 00000000..eac9bdc4 --- /dev/null +++ b/tests/auto/qquickmaterialstyle/qquickmaterialstyle.pro @@ -0,0 +1,15 @@ +TEMPLATE = app +TARGET = tst_qquickmaterialstyle +CONFIG += qmltestcase + +SOURCES += \ + $$PWD/tst_qquickmaterialstyle.cpp + +RESOURCES += \ + $$PWD/qquickmaterialstyle.qrc + +OTHER_FILES += \ + $$PWD/data/* + +TESTDATA += \ + $$PWD/data/tst_* diff --git a/tests/auto/qquickmaterialstyle/qquickmaterialstyle.qrc b/tests/auto/qquickmaterialstyle/qquickmaterialstyle.qrc new file mode 100644 index 00000000..53ba6450 --- /dev/null +++ b/tests/auto/qquickmaterialstyle/qquickmaterialstyle.qrc @@ -0,0 +1,5 @@ +<!DOCTYPE RCC><RCC version="1.0"> +<qresource> + <file>qtquickcontrols2.conf</file> +</qresource> +</RCC> diff --git a/tests/auto/qquickmaterialstyle/qtquickcontrols2.conf b/tests/auto/qquickmaterialstyle/qtquickcontrols2.conf new file mode 100644 index 00000000..b6c7c87e --- /dev/null +++ b/tests/auto/qquickmaterialstyle/qtquickcontrols2.conf @@ -0,0 +1,2 @@ +[Controls] +Style=Material diff --git a/tests/auto/qquickmaterialstyle/tst_qquickmaterialstyle.cpp b/tests/auto/qquickmaterialstyle/tst_qquickmaterialstyle.cpp new file mode 100644 index 00000000..eeee1e87 --- /dev/null +++ b/tests/auto/qquickmaterialstyle/tst_qquickmaterialstyle.cpp @@ -0,0 +1,38 @@ +/**************************************************************************** +** +** Copyright (C) 2016 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) |