summaryrefslogtreecommitdiffstats
path: root/tests/auto/qtsensors5
diff options
context:
space:
mode:
authorWolfgang Beck <wolfgang.beck@nokia.com>2011-09-27 12:09:02 +1000
committerLincoln Ramsay <lincoln.ramsay@nokia.com>2011-10-10 09:25:31 +1000
commit2ae28157cc76180fd79765f612deece7974d5c0e (patch)
tree30b9925dc00bb38931e3573aa53ac5fa90049bba /tests/auto/qtsensors5
parenta554c047592dd5b74eceda155fbcbae3a414267c (diff)
MTMW-337 Unit test (presence of each new QML API element)
Change-Id: Ie0efa681cff6cce4ec2b75b25fcd8cdb45cd03bd Reviewed-on: http://codereview.qt-project.org/5568 Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com> Reviewed-by: Wolfgang Beck <wolfgang.beck@nokia.com>
Diffstat (limited to 'tests/auto/qtsensors5')
-rw-r--r--tests/auto/qtsensors5/qtsensors5.pro6
-rw-r--r--tests/auto/qtsensors5/tst_qtsensors5.cpp129
2 files changed, 135 insertions, 0 deletions
diff --git a/tests/auto/qtsensors5/qtsensors5.pro b/tests/auto/qtsensors5/qtsensors5.pro
new file mode 100644
index 00000000..92d624dd
--- /dev/null
+++ b/tests/auto/qtsensors5/qtsensors5.pro
@@ -0,0 +1,6 @@
+TEMPLATE=app
+TARGET=tst_qtsensors5
+CONFIG += testcase
+QT = core testlib gui declarative
+SOURCES += tst_qtsensors5.cpp
+
diff --git a/tests/auto/qtsensors5/tst_qtsensors5.cpp b/tests/auto/qtsensors5/tst_qtsensors5.cpp
new file mode 100644
index 00000000..ce6036ff
--- /dev/null
+++ b/tests/auto/qtsensors5/tst_qtsensors5.cpp
@@ -0,0 +1,129 @@
+/****************************************************************************
+**
+** 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 test suite 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$
+**
+****************************************************************************/
+
+#include <QtTest/QtTest>
+#include <QtDeclarative/QtDeclarative>
+
+class tst_qtsensors5 : public QObject
+{
+ Q_OBJECT
+public:
+ tst_qtsensors5(QObject *parent = 0)
+ : QObject(parent)
+ {
+ }
+
+private slots:
+ void initTestCase()
+ {
+ }
+
+ void cleanupTestCase()
+ {
+ }
+
+ void versions_data()
+ {
+ QTest::addColumn<QString>("version");
+ QTest::addColumn<bool>("exists");
+
+ QTest::newRow("version 5.0") << "5.0" << true;
+ }
+
+ void versions()
+ {
+ QFETCH(QString, version);
+ QFETCH(bool, exists);
+
+ QDeclarativeEngine engine;
+ QString qml = QString("import QtQuick 2.0\nimport QtSensors %1\nItem {}").arg(version);
+ QDeclarativeComponent c(&engine);
+ c.setData(qml.toLocal8Bit(), QUrl::fromLocalFile(QDir::currentPath()));
+ if (!exists)
+ QTest::ignoreMessage(QtWarningMsg, "QDeclarativeComponent: Component is not ready");
+ QObject *obj = c.create();
+ QCOMPARE(exists, (obj != 0));
+ delete obj;
+ QList<QDeclarativeError> errors = c.errors();
+ if (exists) {
+ QCOMPARE(errors.count(), 0);
+ } else {
+ QCOMPARE(errors.count(), 1);
+ QString expected = QString("module \"QtSensors\" version %1 is not installed").arg(version);
+ QString actual = errors.first().description();
+ QCOMPARE(expected, actual);
+ }
+ }
+
+ void elements_data()
+ {
+ QTest::addColumn<QString>("version");
+ QTest::addColumn<QString>("element");
+ QTest::addColumn<bool>("exists");
+
+ QTest::newRow("TiltSensor 5.0") << "5.0" << "TiltSensor" << true;
+ QTest::newRow("AmbientLightSensor 5.0") << "5.0" << "AmbientLightSensor" << true;
+ QTest::newRow("ProximitySensor 5.0") << "5.0" << "ProximitySensor" << true;
+ }
+
+ void elements()
+ {
+ QFETCH(QString, version);
+ QFETCH(QString, element);
+ QFETCH(bool, exists);
+
+ QDeclarativeEngine engine;
+ QString qml = QString("import QtQuick 2.0\nimport QtSensors %1\n%2 {}").arg(version).arg(element);
+ QDeclarativeComponent c(&engine);
+ c.setData(qml.toLocal8Bit(), QUrl::fromLocalFile(QDir::currentPath()));
+ if (!exists)
+ QTest::ignoreMessage(QtWarningMsg, "QDeclarativeComponent: Component is not ready");
+ QObject *obj = c.create();
+ QCOMPARE(exists, (obj != 0));
+ delete obj;
+ QList<QDeclarativeError> errors = c.errors();
+ QCOMPARE(errors.count(), 0);
+ }
+};
+
+QTEST_MAIN(tst_qtsensors5)
+
+#include "tst_qtsensors5.moc"