1 /*! |
|
2 * Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). |
|
3 * All rights reserved. |
|
4 * This component and the accompanying materials are made available |
|
5 * under the terms of "Eclipse Public License v1.0" |
|
6 * which accompanies this distribution, and is available |
|
7 * at the URL "http://www.eclipse.org/legal/epl-v10.html". |
|
8 * |
|
9 * Initial Contributors: |
|
10 * Nokia Corporation - initial contribution. |
|
11 * |
|
12 * Contributors: |
|
13 * |
|
14 * Description: Unit tests for PhoneUIQtButtonsController. |
|
15 * |
|
16 */ |
|
17 |
|
18 #include <QtTest/QtTest> |
|
19 #include <QtGui> |
|
20 #include <hbapplication.h> |
|
21 #include <QSignalSpy> |
|
22 //#include <hbglobal_p.h> |
|
23 #include "phoneuiqtbuttonscontroller.h" |
|
24 |
|
25 class TestPhoneUIQtButtonsController : public QObject |
|
26 { |
|
27 Q_OBJECT |
|
28 public: |
|
29 TestPhoneUIQtButtonsController(); |
|
30 virtual ~TestPhoneUIQtButtonsController(); |
|
31 |
|
32 public slots: |
|
33 void initTestCase (); |
|
34 void cleanupTestCase (); |
|
35 void init (); |
|
36 void cleanup (); |
|
37 |
|
38 private slots: |
|
39 void testSetButtonFlags(); |
|
40 void testUnsetButtonFlags(); |
|
41 void testGetButtonFlags(); |
|
42 |
|
43 private: |
|
44 // Helper functions |
|
45 bool checkFlags(bool hold, bool ihf, bool wired, bool btaa); |
|
46 void setFlags(bool hold, bool ihf, bool wired, bool btaa); |
|
47 |
|
48 private: |
|
49 PhoneUIQtButtonsController *m_buttonsCtrl; // class under test |
|
50 }; |
|
51 |
|
52 TestPhoneUIQtButtonsController::TestPhoneUIQtButtonsController () |
|
53 { |
|
54 } |
|
55 |
|
56 TestPhoneUIQtButtonsController::~TestPhoneUIQtButtonsController () |
|
57 { |
|
58 } |
|
59 |
|
60 void TestPhoneUIQtButtonsController::initTestCase () |
|
61 { |
|
62 |
|
63 } |
|
64 |
|
65 void TestPhoneUIQtButtonsController::cleanupTestCase () |
|
66 { |
|
67 |
|
68 } |
|
69 |
|
70 void TestPhoneUIQtButtonsController::init () |
|
71 { |
|
72 m_buttonsCtrl = new PhoneUIQtButtonsController (); |
|
73 } |
|
74 |
|
75 void TestPhoneUIQtButtonsController::cleanup () |
|
76 { |
|
77 delete m_buttonsCtrl; |
|
78 } |
|
79 |
|
80 void TestPhoneUIQtButtonsController::testSetButtonFlags() |
|
81 { |
|
82 // Set one flag |
|
83 setFlags(false,false,false,false); |
|
84 m_buttonsCtrl->setButtonFlags(PhoneUIQtButtonsController::Hold,true); |
|
85 QVERIFY(checkFlags(true,false,false,false) == true); |
|
86 |
|
87 setFlags(false,false,false,false); |
|
88 m_buttonsCtrl->setButtonFlags(PhoneUIQtButtonsController::Ihf,true); |
|
89 QVERIFY(checkFlags(false,true,false,false) == true); |
|
90 |
|
91 setFlags(false,false,false,false); |
|
92 m_buttonsCtrl->setButtonFlags(PhoneUIQtButtonsController::Wired,true); |
|
93 QVERIFY(checkFlags(false,false,true,false) == true); |
|
94 |
|
95 setFlags(false,false,false,false); |
|
96 m_buttonsCtrl->setButtonFlags(PhoneUIQtButtonsController::Btaa,true); |
|
97 QVERIFY(checkFlags(false,false,false,true) == true); |
|
98 |
|
99 // Two flags combinations |
|
100 setFlags(false,false,false,false); |
|
101 m_buttonsCtrl->setButtonFlags(PhoneUIQtButtonsController::Hold,true); |
|
102 m_buttonsCtrl->setButtonFlags(PhoneUIQtButtonsController::Ihf,true); |
|
103 QVERIFY(checkFlags(true,true,false,false) == true); |
|
104 |
|
105 setFlags(false,false,false,false); |
|
106 m_buttonsCtrl->setButtonFlags(PhoneUIQtButtonsController::Hold,true); |
|
107 m_buttonsCtrl->setButtonFlags(PhoneUIQtButtonsController::Wired,true); |
|
108 QVERIFY(checkFlags(true,false,true,false) == true); |
|
109 |
|
110 setFlags(false,false,false,false); |
|
111 m_buttonsCtrl->setButtonFlags(PhoneUIQtButtonsController::Hold,true); |
|
112 m_buttonsCtrl->setButtonFlags(PhoneUIQtButtonsController::Btaa,true); |
|
113 QVERIFY(checkFlags(true,false,false,true) == true); |
|
114 |
|
115 setFlags(false,false,false,false); |
|
116 m_buttonsCtrl->setButtonFlags(PhoneUIQtButtonsController::Ihf,true); |
|
117 m_buttonsCtrl->setButtonFlags(PhoneUIQtButtonsController::Wired,true); |
|
118 QVERIFY(checkFlags(false,true,true,false) == true); |
|
119 |
|
120 setFlags(false,false,false,false); |
|
121 m_buttonsCtrl->setButtonFlags(PhoneUIQtButtonsController::Ihf,true); |
|
122 m_buttonsCtrl->setButtonFlags(PhoneUIQtButtonsController::Btaa,true); |
|
123 QVERIFY(checkFlags(false,true,false,true) == true); |
|
124 |
|
125 // Three flags combinations |
|
126 setFlags(false,false,false,false); |
|
127 m_buttonsCtrl->setButtonFlags(PhoneUIQtButtonsController::Hold,true); |
|
128 m_buttonsCtrl->setButtonFlags(PhoneUIQtButtonsController::Ihf,true); |
|
129 m_buttonsCtrl->setButtonFlags(PhoneUIQtButtonsController::Wired,true); |
|
130 QVERIFY(checkFlags(true,true,true,false) == true); |
|
131 |
|
132 setFlags(false,false,false,false); |
|
133 m_buttonsCtrl->setButtonFlags(PhoneUIQtButtonsController::Hold,true); |
|
134 m_buttonsCtrl->setButtonFlags(PhoneUIQtButtonsController::Ihf,true); |
|
135 m_buttonsCtrl->setButtonFlags(PhoneUIQtButtonsController::Btaa,true); |
|
136 QVERIFY(checkFlags(true,true,false,true) == true); |
|
137 |
|
138 setFlags(false,false,false,false); |
|
139 m_buttonsCtrl->setButtonFlags(PhoneUIQtButtonsController::Hold,true); |
|
140 m_buttonsCtrl->setButtonFlags(PhoneUIQtButtonsController::Wired,true); |
|
141 m_buttonsCtrl->setButtonFlags(PhoneUIQtButtonsController::Btaa,true); |
|
142 QVERIFY(checkFlags(true,false,true,true) == true); |
|
143 |
|
144 setFlags(false,false,false,false); |
|
145 m_buttonsCtrl->setButtonFlags(PhoneUIQtButtonsController::Ihf,true); |
|
146 m_buttonsCtrl->setButtonFlags(PhoneUIQtButtonsController::Wired,true); |
|
147 m_buttonsCtrl->setButtonFlags(PhoneUIQtButtonsController::Btaa,true); |
|
148 QVERIFY(checkFlags(false,true,true,true) == true); |
|
149 |
|
150 // All flags set |
|
151 setFlags(false,false,false,false); |
|
152 m_buttonsCtrl->setButtonFlags(PhoneUIQtButtonsController::Hold,true); |
|
153 m_buttonsCtrl->setButtonFlags(PhoneUIQtButtonsController::Ihf,true); |
|
154 m_buttonsCtrl->setButtonFlags(PhoneUIQtButtonsController::Wired,true); |
|
155 m_buttonsCtrl->setButtonFlags(PhoneUIQtButtonsController::Btaa,true); |
|
156 QVERIFY(checkFlags(true,true,true,true) == true); |
|
157 } |
|
158 |
|
159 void TestPhoneUIQtButtonsController::testUnsetButtonFlags() |
|
160 { |
|
161 // Unset one flag |
|
162 setFlags(true,true,true,true); |
|
163 m_buttonsCtrl->setButtonFlags(PhoneUIQtButtonsController::Hold,false); |
|
164 QVERIFY(checkFlags(false,true,true,true) == true); |
|
165 |
|
166 setFlags(true,true,true,true); |
|
167 m_buttonsCtrl->setButtonFlags(PhoneUIQtButtonsController::Ihf,false); |
|
168 QVERIFY(checkFlags(true,false,true,true) == true); |
|
169 |
|
170 setFlags(true,true,true,true); |
|
171 m_buttonsCtrl->setButtonFlags(PhoneUIQtButtonsController::Wired,false); |
|
172 QVERIFY(checkFlags(true,true,false,true) == true); |
|
173 |
|
174 setFlags(true,true,true,true); |
|
175 m_buttonsCtrl->setButtonFlags(PhoneUIQtButtonsController::Btaa,false); |
|
176 QVERIFY(checkFlags(true,true,true,false) == true); |
|
177 |
|
178 // Two flags combinations |
|
179 setFlags(true,true,true,true); |
|
180 m_buttonsCtrl->setButtonFlags(PhoneUIQtButtonsController::Hold,false); |
|
181 m_buttonsCtrl->setButtonFlags(PhoneUIQtButtonsController::Ihf,false); |
|
182 QVERIFY(checkFlags(false,false,true,true) == true); |
|
183 |
|
184 setFlags(true,true,true,true); |
|
185 m_buttonsCtrl->setButtonFlags(PhoneUIQtButtonsController::Hold,false); |
|
186 m_buttonsCtrl->setButtonFlags(PhoneUIQtButtonsController::Wired,false); |
|
187 QVERIFY(checkFlags(false,true,false,true) == true); |
|
188 |
|
189 setFlags(true,true,true,true); |
|
190 m_buttonsCtrl->setButtonFlags(PhoneUIQtButtonsController::Hold,false); |
|
191 m_buttonsCtrl->setButtonFlags(PhoneUIQtButtonsController::Btaa,false); |
|
192 QVERIFY(checkFlags(false,true,true,false) == true); |
|
193 |
|
194 setFlags(true,true,true,true); |
|
195 m_buttonsCtrl->setButtonFlags(PhoneUIQtButtonsController::Ihf,false); |
|
196 m_buttonsCtrl->setButtonFlags(PhoneUIQtButtonsController::Wired,false); |
|
197 QVERIFY(checkFlags(true,false,false,true) == true); |
|
198 |
|
199 setFlags(true,true,true,true); |
|
200 m_buttonsCtrl->setButtonFlags(PhoneUIQtButtonsController::Ihf,false); |
|
201 m_buttonsCtrl->setButtonFlags(PhoneUIQtButtonsController::Btaa,false); |
|
202 QVERIFY(checkFlags(true,false,true,false) == true); |
|
203 |
|
204 // Three flags combinations |
|
205 setFlags(true,true,true,true); |
|
206 m_buttonsCtrl->setButtonFlags(PhoneUIQtButtonsController::Hold,false); |
|
207 m_buttonsCtrl->setButtonFlags(PhoneUIQtButtonsController::Ihf,false); |
|
208 m_buttonsCtrl->setButtonFlags(PhoneUIQtButtonsController::Wired,false); |
|
209 QVERIFY(checkFlags(false,false,false,true) == true); |
|
210 |
|
211 setFlags(true,true,true,true); |
|
212 m_buttonsCtrl->setButtonFlags(PhoneUIQtButtonsController::Hold,false); |
|
213 m_buttonsCtrl->setButtonFlags(PhoneUIQtButtonsController::Ihf,false); |
|
214 m_buttonsCtrl->setButtonFlags(PhoneUIQtButtonsController::Btaa,false); |
|
215 QVERIFY(checkFlags(false,false,true,false) == true); |
|
216 |
|
217 setFlags(true,true,true,true); |
|
218 m_buttonsCtrl->setButtonFlags(PhoneUIQtButtonsController::Hold,false); |
|
219 m_buttonsCtrl->setButtonFlags(PhoneUIQtButtonsController::Wired,false); |
|
220 m_buttonsCtrl->setButtonFlags(PhoneUIQtButtonsController::Btaa,false); |
|
221 QVERIFY(checkFlags(false,true,false,false) == true); |
|
222 |
|
223 setFlags(true,true,true,true); |
|
224 m_buttonsCtrl->setButtonFlags(PhoneUIQtButtonsController::Ihf,false); |
|
225 m_buttonsCtrl->setButtonFlags(PhoneUIQtButtonsController::Wired,false); |
|
226 m_buttonsCtrl->setButtonFlags(PhoneUIQtButtonsController::Btaa,false); |
|
227 QVERIFY(checkFlags(true,false,false,false) == true); |
|
228 |
|
229 // All flags unset |
|
230 setFlags(true,true,true,true); |
|
231 m_buttonsCtrl->setButtonFlags(PhoneUIQtButtonsController::Hold,false); |
|
232 m_buttonsCtrl->setButtonFlags(PhoneUIQtButtonsController::Ihf,false); |
|
233 m_buttonsCtrl->setButtonFlags(PhoneUIQtButtonsController::Wired,false); |
|
234 m_buttonsCtrl->setButtonFlags(PhoneUIQtButtonsController::Btaa,false); |
|
235 QVERIFY(checkFlags(false,false,false,false) == true); |
|
236 } |
|
237 |
|
238 void TestPhoneUIQtButtonsController::testGetButtonFlags() |
|
239 { |
|
240 setFlags(true,false,false,false); |
|
241 QVERIFY((m_buttonsCtrl->getButtonFlags(PhoneUIQtButtonsController::Hold) == true && |
|
242 m_buttonsCtrl->getButtonFlags(PhoneUIQtButtonsController::Ihf) == false && |
|
243 m_buttonsCtrl->getButtonFlags(PhoneUIQtButtonsController::Wired) == false && |
|
244 m_buttonsCtrl->getButtonFlags(PhoneUIQtButtonsController::Btaa) == false) == true); |
|
245 |
|
246 setFlags(false,true,false,false); |
|
247 QVERIFY((m_buttonsCtrl->getButtonFlags(PhoneUIQtButtonsController::Hold) == false && |
|
248 m_buttonsCtrl->getButtonFlags(PhoneUIQtButtonsController::Ihf) == true && |
|
249 m_buttonsCtrl->getButtonFlags(PhoneUIQtButtonsController::Wired) == false && |
|
250 m_buttonsCtrl->getButtonFlags(PhoneUIQtButtonsController::Btaa) == false) == true); |
|
251 |
|
252 setFlags(false,false,true,false); |
|
253 QVERIFY((m_buttonsCtrl->getButtonFlags(PhoneUIQtButtonsController::Hold) == false && |
|
254 m_buttonsCtrl->getButtonFlags(PhoneUIQtButtonsController::Ihf) == false && |
|
255 m_buttonsCtrl->getButtonFlags(PhoneUIQtButtonsController::Wired) == true && |
|
256 m_buttonsCtrl->getButtonFlags(PhoneUIQtButtonsController::Btaa) == false) == true); |
|
257 |
|
258 setFlags(false,false,false,true); |
|
259 QVERIFY((m_buttonsCtrl->getButtonFlags(PhoneUIQtButtonsController::Hold) == false && |
|
260 m_buttonsCtrl->getButtonFlags(PhoneUIQtButtonsController::Ihf) == false && |
|
261 m_buttonsCtrl->getButtonFlags(PhoneUIQtButtonsController::Wired) == false && |
|
262 m_buttonsCtrl->getButtonFlags(PhoneUIQtButtonsController::Btaa) == true) == true); |
|
263 } |
|
264 |
|
265 bool TestPhoneUIQtButtonsController::checkFlags(bool hold, bool ihf, bool wired, bool btaa) |
|
266 { |
|
267 return (hold == m_buttonsCtrl->getButtonFlags(PhoneUIQtButtonsController::Hold) && |
|
268 ihf == m_buttonsCtrl->getButtonFlags(PhoneUIQtButtonsController::Ihf) && |
|
269 wired == m_buttonsCtrl->getButtonFlags(PhoneUIQtButtonsController::Wired) && |
|
270 btaa == m_buttonsCtrl->getButtonFlags(PhoneUIQtButtonsController::Btaa) ); |
|
271 } |
|
272 |
|
273 void TestPhoneUIQtButtonsController::setFlags(bool hold, bool ihf, bool wired, bool btaa) |
|
274 { |
|
275 m_buttonsCtrl->setButtonFlags(PhoneUIQtButtonsController::Hold,hold); |
|
276 m_buttonsCtrl->setButtonFlags(PhoneUIQtButtonsController::Ihf,ihf); |
|
277 m_buttonsCtrl->setButtonFlags(PhoneUIQtButtonsController::Wired,wired); |
|
278 m_buttonsCtrl->setButtonFlags(PhoneUIQtButtonsController::Btaa,btaa); |
|
279 } |
|
280 |
|
281 QTEST_MAIN(TestPhoneUIQtButtonsController) |
|
282 #include "unit_tests.moc" |
|