status-desktop/storybook/qmlTests/tests/tst_StatusAmountInput.qml

99 lines
2.5 KiB
QML

import QtQuick 2.15
import QtTest 1.15
import StatusQ.Controls 0.1
import Storybook 1.0
import shared.controls 1.0
Item {
id: root
width: 600
height: 400
Component {
id: componentUnderTest
StatusAmountInput {
id: input
anchors.centerIn: parent
locale: Qt.locale("en_US") // US uses period as decimal point
}
}
TestCase {
name: "StatusAmountInput"
when: windowShown
property StatusAmountInput controlUnderTest: null
function init() {
controlUnderTest = createTemporaryObject(componentUnderTest, root)
controlUnderTest.forceActiveFocus()
}
function test_decimalPoint() {
verify(!!controlUnderTest)
keyClick(Qt.Key_1)
keyClick(Qt.Key_2)
keyClick(Qt.Key_Comma)
keyClick(Qt.Key_2)
compare(controlUnderTest.text, "12.2")
keyClick(Qt.Key_Period)
compare(controlUnderTest.text, "12.2", "There can be only single decimal point")
controlUnderTest.text = ""
compare(controlUnderTest.text.length, 0)
keyClick(Qt.Key_5)
keyClick(Qt.Key_3)
keyClick(Qt.Key_Period)
keyClick(Qt.Key_3)
compare(controlUnderTest.text, "53.3")
keyClick(Qt.Key_Comma)
compare(controlUnderTest.text, "53.3", "There can be only single decimal point")
controlUnderTest.text = ""
compare(controlUnderTest.text.length, 0)
controlUnderTest.locale = Qt.locale("pl_PL") // PL uses comma as decimal point
keyClick(Qt.Key_6)
keyClick(Qt.Key_2)
keyClick(Qt.Key_Period)
keyClick(Qt.Key_1)
compare(controlUnderTest.text, "62,1")
}
function test_unallowedKeys() {
verify(!!controlUnderTest)
keyClick(Qt.Key_1)
for (let i = Qt.Key_A ; i <= Qt.Key_BracketRight ; i++) {
keyClick(i)
}
keyClick(Qt.Key_Space)
keyClick(Qt.Key_3)
compare(controlUnderTest.text, "13")
compare(controlUnderTest.valid, true)
}
function test_defaultValidation() {
verify(!!controlUnderTest)
verify(!controlUnderTest.valid)
keyClick(Qt.Key_4)
verify(controlUnderTest.valid)
controlUnderTest.text = "-12"
verify(!controlUnderTest.valid, "Amount below zero is not allowed")
}
}
}