diff options
Diffstat (limited to 'tests/system/declarative/sys_calculator/sys_calculator.qtt')
-rw-r--r-- | tests/system/declarative/sys_calculator/sys_calculator.qtt | 136 |
1 files changed, 136 insertions, 0 deletions
diff --git a/tests/system/declarative/sys_calculator/sys_calculator.qtt b/tests/system/declarative/sys_calculator/sys_calculator.qtt new file mode 100644 index 0000000..2b6b008 --- /dev/null +++ b/tests/system/declarative/sys_calculator/sys_calculator.qtt @@ -0,0 +1,136 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the FOO module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** GNU Lesser General Public License Usage +** This file may be used under the terms of the GNU Lesser General Public +** License version 2.1 as published by the Free Software Foundation and +** appearing in the file LICENSE.LGPL included in the packaging of this +** file. Please review the following information to ensure the GNU Lesser +** General Public License version 2.1 requirements will be met: +** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU General +** Public License version 3.0 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 3.0 requirements will be met: +** http://www.gnu.org/copyleft/gpl.html. +** +** Other Usage +** Alternatively, this file may be used in accordance with the terms and +** conditions contained in a signed written agreement between you and Nokia. +** +** +** +** +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + + +var add = "+"; +var sub = "-"; +var mul = "x"; +var div = "/"; +var xsquared = "x²"; +var plusminus = "±"; + +testcase = { + initTestCase: function() + { + print("Please ensure that $PATH contains $QTDIR/bin, and $QT_SRC_DIR is set to the Qt source directory"); + }, + + init: function() { + testcase.keyCache = {}; + }, + + binary_operations_data: { + operation1: ["0", add, "0", "0"], + operation2: ["0", sub, "0", "0"], + operation3: ["0", mul, "0", "0"], + operation4: ["0", div, "0", "NaN"], + operation5: ["0", add, "1", "1"], + operation6: ["0", sub, "1", "-1"], + operation7: ["0", mul, "1", "0"], + operation8: ["0", div, "1", "0"], + operation9: ["0.56789", add, "7453.0145", "7453.58239"], + operation10: ["0.56789", sub, "7453.0145", "-7452.44661"], + operation11: ["0.56789", mul, "7453.0145", "4232.492404405"], + operation12: ["0.56789", div, "7453.0145", "0.00007619601437780645"] + }, + + binary_operations: function(FirstOperand, Operator, SecondOperand, ExpectedResult) + { + startDemo("calculator"); + + var display = findByProperty("qmlType", "Text")[1]; + + enterNumber( FirstOperand ); + select( Operator ); + enterNumber( SecondOperand ); + select( "=" ); + + compare(getValue(display), ExpectedResult); + }, + + advanced_mode_data: { + operation1: ["-123", "Abs", "123"], + operation2: ["3.14159", "Int", "3"], + operation3: ["65536", "Sqrt", "256"], + operation4: ["123", "^2", "15129"], + operation5: ["500", "1/x", "0.002"], + operation6: ["999", "+/-", "-999"] + }, + + advanced_mode: function(Operand, Operator, ExpectedResult) + { + startDemo("calculator"); + select("Advanced Mode"); + wait(1000); + + var display = findWidget("qmlType", "Text")[1]; + + enterNumber( Operand ); + select( Operator ); + + compare(getValue(display), ExpectedResult); + } +} + +// Enter num as a series of CalcButton activations +function enterNumber(num) { + var numString = num.toString(); + for (var i=0; i<numString.length; i++) { + var digit = numString[i]; + if (testcase.keyCache[digit] == undefined) { + // It is necessary to do this instead of select(digit) because + // the display may have the same text as the required button... + var button = findWidget( { qmlType: "CalcButton", label: digit } ); + testcase.keyCache[digit] = button; + select(button); + } else { + select(testcase.keyCache[digit]); + } + } +} + +// Starts a demo QML file +function startDemo(demo, demoQml) { + if (demoQml == undefined) { + demoQml = demo; + } + startApplication("qml", ["$QT_SRC_DIR/demos/declarative/" + demo + "/" + demoQml + ".qml"]); +} |