Change copyrights from Nokia to Digia
[qt:qtfeedback.git] / tests / auto / qfeedbackactuator / tst_qfeedbackactuator.cpp
1 /****************************************************************************
2 **
3 ** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies).
4 ** Contact: http://www.qt-project.org/legal
5 **
6 ** This file is part of the Qt Mobility Components.
7 **
8 ** $QT_BEGIN_LICENSE:LGPL$
9 ** Commercial License Usage
10 ** Licensees holding valid commercial Qt licenses may use this file in
11 ** accordance with the commercial license agreement provided with the
12 ** Software or, alternatively, in accordance with the terms contained in
13 ** a written agreement between you and Digia.  For licensing terms and
14 ** conditions see http://qt.digia.com/licensing.  For further information
15 ** use the contact form at http://qt.digia.com/contact-us.
16 **
17 ** GNU Lesser General Public License Usage
18 ** Alternatively, this file may be used under the terms of the GNU Lesser
19 ** General Public License version 2.1 as published by the Free Software
20 ** Foundation and appearing in the file LICENSE.LGPL included in the
21 ** packaging of this file.  Please review the following information to
22 ** ensure the GNU Lesser General Public License version 2.1 requirements
23 ** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
24 **
25 ** In addition, as a special exception, Digia gives you certain additional
26 ** rights.  These rights are described in the Digia Qt LGPL Exception
27 ** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
28 **
29 ** GNU General Public License Usage
30 ** Alternatively, this file may be used under the terms of the GNU
31 ** General Public License version 3.0 as published by the Free Software
32 ** Foundation and appearing in the file LICENSE.GPL included in the
33 ** packaging of this file.  Please review the following information to
34 ** ensure the GNU General Public License version 3.0 requirements will be
35 ** met: http://www.gnu.org/copyleft/gpl.html.
36 **
37 **
38 ** $QT_END_LICENSE$
39 **
40 ****************************************************************************/
41
42 //TESTED_COMPONENT=src/feedback
43
44 #include <QtTest/QtTest>
45
46 #include <qfeedbackactuator.h>
47
48 QT_USE_NAMESPACE
49
50 class tst_QFeedbackActuator : public QObject
51 {
52     Q_OBJECT
53 public:
54     tst_QFeedbackActuator();
55     ~tst_QFeedbackActuator();
56
57 public slots:
58     void initTestCase();
59     void cleanupTestCase();
60     void init();
61     void cleanup();
62
63 private slots:
64     void enumeration();
65     void setEnabled();
66 };
67
68 tst_QFeedbackActuator::tst_QFeedbackActuator()
69 {
70 }
71
72 tst_QFeedbackActuator::~tst_QFeedbackActuator()
73 {
74 }
75
76 void tst_QFeedbackActuator::initTestCase()
77 {
78 }
79
80 void tst_QFeedbackActuator::cleanupTestCase()
81 {
82 }
83
84 void tst_QFeedbackActuator::init()
85 {
86     //the list returned should always be the same with the same order
87     QCOMPARE(QFeedbackActuator::actuators(), QFeedbackActuator::actuators());
88 }
89
90 void tst_QFeedbackActuator::cleanup()
91 {
92 }
93
94
95 #if defined(HAVE_ACTUATORS) && !defined(Q_OS_SYMBIAN)
96 //we're on meego/maemo
97 #define CAPABILITY true //the capabilities are supported through Immersion
98 #else
99 #define CAPABILITY false
100 #endif
101
102 void tst_QFeedbackActuator::enumeration()
103 {
104     QList<QFeedbackActuator*> actuators = QFeedbackActuator::actuators();
105 #ifdef HAVE_ACTUATORS
106     QVERIFY(!actuators.isEmpty());
107 #endif
108     foreach(QFeedbackActuator* actuator, actuators) {
109         if (actuator->name() == QString("test plugin") || actuator->name() == QString("5555"))
110             continue;
111
112         QVERIFY(actuator->isValid());
113         QVERIFY(actuator->id() >= 0);
114         QCOMPARE(actuator->isCapabilitySupported(QFeedbackActuator::Envelope), CAPABILITY);
115         QCOMPARE(actuator->isCapabilitySupported(QFeedbackActuator::Period), CAPABILITY);
116         QVERIFY(!actuator->name().isEmpty());
117     }
118
119     // Try comparisons
120     if (actuators.count() > 1) {
121         QFeedbackActuator* a1 = actuators.at(0);
122         QFeedbackActuator* a2 = actuators.at(1);
123         QFeedbackActuator* a1b = actuators.at(0);
124         QFeedbackActuator* a2b = actuators.at(1);
125         QVERIFY(a1->id() != a2->id());
126 //        QVERIFY(*a1 != *a2); // doesn't work, no operator != !!
127         QVERIFY(!(*a1 == *a2));
128
129         QVERIFY(*a1 == *a1b);
130         QVERIFY(*a2 == *a2b);
131     }
132 }
133
134 void tst_QFeedbackActuator::setEnabled()
135 {
136    foreach(QFeedbackActuator* actuator, QFeedbackActuator::actuators()) {
137        if (actuator->name() == QString("test plugin") || actuator->name() == QString("5555"))
138             continue;
139         //this test might not always be true because you ight not be allowed to change the enabled property
140         actuator->setEnabled(false);
141         QVERIFY(!actuator->isEnabled());
142         actuator->setEnabled(true);
143         QVERIFY(actuator->isEnabled());
144     }
145 }
146
147
148
149
150 QTEST_MAIN(tst_QFeedbackActuator)
151
152 #include "tst_qfeedbackactuator.moc"