summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorRhys Weatherley <rhys.weatherley@nokia.com>2010-12-13 11:47:43 +1000
committerRhys Weatherley <rhys.weatherley@nokia.com>2010-12-13 11:47:43 +1000
commit7f1714382712d8c265d67b5679494973756e713a (patch)
treea85b8059cf04084bd40764408f393a367cb7c5eb /tests
parent9d71a4dbeaff06f3da11e9e4554637f1052946b6 (diff)
Add some self tests for QtQuickTest
Diffstat (limited to 'tests')
-rw-r--r--tests/qmlauto/selftests/tst_selftests.qml306
1 files changed, 306 insertions, 0 deletions
diff --git a/tests/qmlauto/selftests/tst_selftests.qml b/tests/qmlauto/selftests/tst_selftests.qml
new file mode 100644
index 0000000..c26250d
--- /dev/null
+++ b/tests/qmlauto/selftests/tst_selftests.qml
@@ -0,0 +1,306 @@
+/****************************************************************************
+**
+** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the test suite of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the Technology Preview License Agreement accompanying
+** this package.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, 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.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at qt-info@nokia.com.
+**
+**
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 1.0
+import QtQuickTest 1.0
+
+TestCase {
+ name: "SelfTests"
+
+ // Replace the TestResult functions in "testCase" with hooks
+ // that record the events but don't send them to QTestLib.
+ QtObject {
+ id: functions
+ property string failmsg: "cleaned"
+ property string actual: ""
+ property string expected: ""
+
+ function fail(msg, file, line) {
+ failmsg = msg
+ }
+
+ function verify(cond, msg, file, line) {
+ if (cond) {
+ failmsg = "verify-ok"
+ return true
+ } else {
+ failmsg = msg
+ return false
+ }
+ }
+
+ function compare(success, msg, act, exp, file, line) {
+ if (success) {
+ failmsg = "compare-ok"
+ actual = ""
+ expected = ""
+ return true
+ } else {
+ failmsg = msg
+ actual = act
+ expected = exp
+ return false
+ }
+ }
+
+ function skipSingle(msg, file, line) {
+ failmsg = "skipSingle:" + msg
+ }
+
+ function skipAll(msg, file, line) {
+ failmsg = "skipAll:" + msg
+ }
+ }
+
+ TestCase {
+ id: testCase
+ when: false
+ optional: true
+ qtest_results: functions
+ }
+
+ function init() {
+ compare(functions.failmsg, "cleaned") // Checks for previous cleanup()
+ functions.failmsg = "invalid"
+ }
+
+ function cleanup() {
+ functions.failmsg = "cleaned"
+ }
+
+ function test_fail() {
+ compare(functions.failmsg, "invalid") // Checks that init() was run
+
+ var caught = false
+ try {
+ testCase.fail("foo")
+ } catch (e) {
+ compare(e.message, "QtQuickTest::fail")
+ compare(functions.failmsg, "foo")
+ caught = true
+ }
+ verify(caught)
+
+ caught = false
+ try {
+ testCase.fail()
+ } catch (e) {
+ compare(e.message, "QtQuickTest::fail")
+ compare(functions.failmsg, "")
+ caught = true
+ }
+ verify(caught)
+
+ caught = false
+ try {
+ testCase.fail(false)
+ } catch (e) {
+ compare(e.message, "QtQuickTest::fail")
+ compare(functions.failmsg, "false")
+ caught = true
+ }
+ verify(caught)
+
+ caught = false
+ try {
+ testCase.fail(3)
+ } catch (e) {
+ compare(e.message, "QtQuickTest::fail")
+ compare(functions.failmsg, "3")
+ caught = true
+ }
+ verify(caught)
+ }
+
+ function test_verify() {
+ compare(functions.failmsg, "invalid") // Checks that init() was run
+
+ try {
+ testCase.verify(true)
+ } catch (e) {
+ fail("verify(true) did not succeed")
+ }
+ compare(functions.failmsg, "verify-ok")
+
+ var caught = false;
+ try {
+ testCase.verify(false, "foo")
+ } catch (e) {
+ compare(e.message, "QtQuickTest::fail")
+ compare(functions.failmsg, "foo")
+ caught = true
+ }
+ verify(caught)
+
+ caught = false;
+ try {
+ testCase.verify(false)
+ } catch (e) {
+ compare(e.message, "QtQuickTest::fail")
+ compare(functions.failmsg, "")
+ caught = true
+ }
+ verify(caught)
+ }
+
+ function test_compare() {
+ compare(functions.failmsg, "invalid") // Checks that init() was run
+
+ try {
+ testCase.compare(23, 23)
+ } catch (e) {
+ fail("compare(23, 23) did not succeed")
+ }
+ compare(functions.failmsg, "compare-ok")
+
+ var caught = false;
+ try {
+ testCase.compare(23, 42, "foo")
+ } catch (e) {
+ compare(e.message, "QtQuickTest::fail")
+ compare(functions.failmsg, "foo")
+ compare(functions.actual, "23")
+ compare(functions.expected, "42")
+ caught = true
+ }
+ verify(caught)
+
+ caught = false;
+ try {
+ testCase.compare("abcdef", 42)
+ } catch (e) {
+ compare(e.message, "QtQuickTest::fail")
+ compare(functions.failmsg, "")
+ compare(functions.actual, "abcdef")
+ compare(functions.expected, "42")
+ caught = true
+ }
+ verify(caught)
+
+ caught = false;
+ try {
+ testCase.compare(Qt.vector3d(1, 2, 3), Qt.vector3d(-1, 2, 3), "x")
+ } catch (e) {
+ compare(e.message, "QtQuickTest::fail")
+ compare(functions.failmsg, "x")
+ compare(functions.actual, "Qt.vector3d(1, 2, 3)")
+ compare(functions.expected, "Qt.vector3d(-1, 2, 3)")
+ caught = true
+ }
+ verify(caught)
+
+ caught = false;
+ try {
+ testCase.compare(Qt.vector3d(1, 2, 3), Qt.vector3d(1, -2, 3), "y")
+ } catch (e) {
+ compare(e.message, "QtQuickTest::fail")
+ compare(functions.failmsg, "y")
+ compare(functions.actual, "Qt.vector3d(1, 2, 3)")
+ compare(functions.expected, "Qt.vector3d(1, -2, 3)")
+ caught = true
+ }
+ verify(caught)
+
+ caught = false;
+ try {
+ testCase.compare(Qt.vector3d(1, 2, 3), Qt.vector3d(1, 2, -3), "z")
+ } catch (e) {
+ compare(e.message, "QtQuickTest::fail")
+ compare(functions.failmsg, "z")
+ compare(functions.actual, "Qt.vector3d(1, 2, 3)")
+ compare(functions.expected, "Qt.vector3d(1, 2, -3)")
+ caught = true
+ }
+ verify(caught)
+
+ caught = false;
+ try {
+ testCase.compare(Qt.vector3d(1, 2, 3), Qt.vector3d(1, 2, 3))
+ } catch (e) {
+ fail("vector compare did not succeed")
+ }
+ compare(functions.failmsg, "compare-ok")
+ }
+
+ function test_skip() {
+ compare(functions.failmsg, "invalid") // Checks that init() was run
+
+ var caught = false
+ try {
+ testCase.skip("foo")
+ } catch (e) {
+ compare(e.message, "QtQuickTest::skip")
+ compare(functions.failmsg, "skipSingle:foo")
+ caught = true
+ }
+ verify(caught)
+
+ caught = false
+ try {
+ testCase.skip()
+ } catch (e) {
+ compare(e.message, "QtQuickTest::skip")
+ compare(functions.failmsg, "skipSingle:")
+ caught = true
+ }
+ verify(caught)
+
+ caught = false
+ try {
+ testCase.skipAll("foo")
+ } catch (e) {
+ compare(e.message, "QtQuickTest::skip")
+ compare(functions.failmsg, "skipAll:foo")
+ caught = true
+ }
+ verify(caught)
+
+ caught = false
+ try {
+ testCase.skipAll()
+ } catch (e) {
+ compare(e.message, "QtQuickTest::skip")
+ compare(functions.failmsg, "skipAll:")
+ caught = true
+ }
+ verify(caught)
+ }
+}