|
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: |
|
15 * |
|
16 */ |
|
17 |
|
18 |
|
19 #include "ut_lcview.h" |
|
20 #include "ut_lcuidefs.h" |
|
21 #include "lcview.h" |
|
22 #include "lcuiengine.h" |
|
23 #include "lcuicomponentrepository.h" |
|
24 #include "lcuidefs.h" |
|
25 #include "lcvideowidget.h" |
|
26 #include "lceffecthandler.h" |
|
27 #include <QtTest/QtTest> |
|
28 #include <hbmainwindow.h> |
|
29 #include <hblabel.h> |
|
30 #include <hbmessagebox.h> |
|
31 #include <hbaction.h> |
|
32 #include <hbtoolbar.h> |
|
33 #include <hbmenu.h> |
|
34 #include <hbinstance.h> |
|
35 #include <hblineedit.h> |
|
36 #include <hbpushbutton.h> |
|
37 #include <hbtransparentwindow.h> |
|
38 #include <qgraphicssceneevent.h> |
|
39 #include <qgraphicsitem.h> |
|
40 #include <QGesture.h> |
|
41 #include <dialpad.h> |
|
42 #include <dialpadvtkeyhandler.h> |
|
43 #include <HbTapGesture.h> |
|
44 |
|
45 // Stub Helper |
|
46 #include <hbstub_helper.h> |
|
47 |
|
48 #define UT_SET_ORIENTATION(orient) \ |
|
49 HbInstance::instance()->allMainWindows().at(0)->setOrientation(orient); |
|
50 |
|
51 void UT_LcView::initTestCase() |
|
52 { |
|
53 lcutStub_LcUiEngine_reset(); |
|
54 //must have main window, even if it not used |
|
55 mMainWindow = new HbMainWindow(); |
|
56 } |
|
57 |
|
58 void UT_LcView::cleanupTestCase() |
|
59 { |
|
60 lcutStub_LcUiEngine_reset(); |
|
61 delete mMainWindow; |
|
62 } |
|
63 |
|
64 |
|
65 void UT_LcView::init() |
|
66 { |
|
67 lcutStub_LcUiEngine_reset(); |
|
68 mRecipient = new HbLabel(); |
|
69 mEndCallButton = new HbPushButton(); |
|
70 mEngine = new LcUiEngine( lcEngineName, lcDisplayName ); |
|
71 mRepository = new LcUiComponentRepository( *mEngine ); |
|
72 mView = new LcView( *mEngine, *mRepository ); |
|
73 mView->mRecipient = mRecipient; |
|
74 mView->mEndCallButton = mEndCallButton; |
|
75 mView->mChangeCameraAction = new HbAction(); |
|
76 mView->mMuteAction = new HbAction(); |
|
77 mView->mSpeakerAction = new HbAction(); |
|
78 mView->mDisableCameraAction = new HbAction(); |
|
79 mView->mDisableCameraMenuAction = new HbAction(); |
|
80 } |
|
81 |
|
82 void UT_LcView::cleanup() |
|
83 { |
|
84 lcutStub_LcUiEngine_reset(); |
|
85 delete mRecipient; |
|
86 delete mView; |
|
87 delete mEngine; |
|
88 delete mRepository; |
|
89 delete mEndCallButton; |
|
90 } |
|
91 |
|
92 void UT_LcView::testConstructor() |
|
93 { |
|
94 QVERIFY( mView ); |
|
95 } |
|
96 |
|
97 void UT_LcView::testActivated() |
|
98 { |
|
99 mView->init(); |
|
100 lcutStub_LcUiEngine_reset(); |
|
101 QVERIFY( lcutStub_LcUiEngine_getCurrentView() == 0 ); |
|
102 mView->activated(); |
|
103 QVERIFY( lcutStub_LcUiEngine_expectCall( lcutStub_LcUiEngine_updateSession, 0 ) ); |
|
104 QVERIFY( lcutStub_LcUiEngine_expectCall( lcutStub_LcUiEngine_setOrientation, 1 ) ); |
|
105 QVERIFY( lcutStub_LcUiEngine_getCurrentView() == mView ); |
|
106 QVERIFY( lcutStub_LcUiEngine_expectCall( lcutStub_LcUiEngine_setContentAreas, 2 ) ); |
|
107 |
|
108 lcutStub_LcUiEngine_reset(); |
|
109 mView->activated(); |
|
110 QVERIFY( lcutStub_LcUiEngine_expectCall( lcutStub_LcUiEngine_updateSession, 0 ) ); |
|
111 QVERIFY( lcutStub_LcUiEngine_expectCall( lcutStub_LcUiEngine_setOrientation, 1 ) ); |
|
112 QVERIFY( lcutStub_LcUiEngine_expectCall( lcutStub_LcUiEngine_setContentAreas, 2 ) ); |
|
113 |
|
114 lcutStub_LcUiEngine_reset(); |
|
115 lcutStub_LcUiEngine_setCameraMain( true); |
|
116 lcutStub_LcUiEngine_setMuted( true); |
|
117 lcutStub_LcUiEngine_setSpeaker( true ); |
|
118 |
|
119 mView->activated(); |
|
120 QVERIFY( lcutStub_LcUiEngine_expectCall( lcutStub_LcUiEngine_updateSession, 0 ) ); |
|
121 QVERIFY( lcutStub_LcUiEngine_expectCall( lcutStub_LcUiEngine_setOrientation, 1 ) ); |
|
122 QVERIFY( lcutStub_LcUiEngine_expectCall( lcutStub_LcUiEngine_setContentAreas, 2 ) ); |
|
123 |
|
124 // normal scenario |
|
125 lcutStub_LcUiEngine_reset(); |
|
126 mView->mChangeCameraAction = new HbAction(); |
|
127 mView->mMuteAction = new HbAction(); |
|
128 mView->mSpeakerAction = new HbAction(); |
|
129 mView->mDisableCameraAction = new HbAction(); |
|
130 |
|
131 mView->mEngine.setMainCamera( true ); |
|
132 lcutStub_LcUiEngine_setMuted( true); |
|
133 lcutStub_LcUiEngine_setSpeaker( true ); |
|
134 lcutStub_LcUiEngine_setLocalPlaying( true ); |
|
135 mView->activated(); |
|
136 QVERIFY( mView->mChangeCameraAction ); |
|
137 QVERIFY( mView->mChangeCameraAction->icon() == HbIcon( lcIconNameSecondaryCamera ) ); |
|
138 QVERIFY( mView->mMuteAction ); |
|
139 QVERIFY( mView->mMuteAction->icon() == HbIcon( lcIconNameUnmuteMic ) ); |
|
140 QVERIFY( mView->mSpeakerAction ); |
|
141 QVERIFY( mView->mSpeakerAction->icon() == HbIcon( lcIconNameHandset ) ); |
|
142 QVERIFY( mView->mDisableCameraAction ); |
|
143 QVERIFY( mView->mDisableCameraAction->icon() == HbIcon( lcIconNameDisableCamera ) ); |
|
144 |
|
145 // dude trust me , ofcourse not everything normal everytime |
|
146 mView->mEngine.setMainCamera( false ); |
|
147 lcutStub_LcUiEngine_setMuted( false ); |
|
148 lcutStub_LcUiEngine_setSpeaker( false ); |
|
149 lcutStub_LcUiEngine_setLocalPlaying( false ); |
|
150 mView->activated(); |
|
151 QVERIFY( mView->mChangeCameraAction ); |
|
152 QVERIFY( mView->mChangeCameraAction->icon() == HbIcon( lcIconNameMainCamera ) ); |
|
153 QVERIFY( mView->mMuteAction ); |
|
154 QVERIFY( mView->mMuteAction->icon() == HbIcon( lcIconNameMuteMic ) ); |
|
155 QVERIFY( mView->mSpeakerAction ); |
|
156 QVERIFY( mView->mSpeakerAction->icon() == HbIcon( lcIconNameLoudspeaker ) ); |
|
157 QVERIFY( mView->mDisableCameraAction ); |
|
158 QVERIFY( mView->mDisableCameraAction->icon() == HbIcon( lcIconNameEnableCamera ) ); |
|
159 } |
|
160 |
|
161 void UT_LcView::testInit() |
|
162 { |
|
163 mRepository->mReturnSendVideo = false; |
|
164 mView->init(); |
|
165 QVERIFY( mView->mRecipient ); |
|
166 QVERIFY( !mView->mSharedVideoWidget ); |
|
167 QVERIFY( mView->mDialpad ); |
|
168 QVERIFY( mView->mDialpadVtKeyHandler ); |
|
169 |
|
170 mRepository->mReturnSendVideo = true; |
|
171 mView->init(); |
|
172 QVERIFY( mView->mRecipient ); |
|
173 QVERIFY( mView->mSharedVideoWidget ); |
|
174 QVERIFY( mView->menu()); |
|
175 QVERIFY( mView->mDialpad ); |
|
176 QVERIFY( mView->mDialpadVtKeyHandler ); |
|
177 |
|
178 // emergency call |
|
179 mView->mDialpadVtKeyHandler->contentChanged("112"); |
|
180 QVERIFY( mView->mDialpad->mIsCallButtonEnabled ); |
|
181 mView->mDialpadVtKeyHandler->contentChanged("100"); |
|
182 QVERIFY( !mView->mDialpad->mIsCallButtonEnabled ); |
|
183 } |
|
184 |
|
185 void UT_LcView::testDeactivated() |
|
186 { |
|
187 mView->deactivated(); |
|
188 QVERIFY( lcutStub_LcUiEngine_expectCall( lcutStub_LcUiEngine_setContentAreas ) ); |
|
189 } |
|
190 |
|
191 void UT_LcView::testSetCameraActionToMain() |
|
192 { |
|
193 mView->setCameraActionToMain(); |
|
194 QVERIFY( mView->mChangeCameraAction->text().isEmpty() ); |
|
195 QCOMPARE( mView->mChangeCameraAction->icon(), HbIcon(lcIconNameMainCamera) ); |
|
196 } |
|
197 |
|
198 void UT_LcView::testSetCameraActionToSecondary() |
|
199 { |
|
200 mView->setCameraActionToSecondary(); |
|
201 QVERIFY( mView->mChangeCameraAction->text().isEmpty() ); |
|
202 QCOMPARE( mView->mChangeCameraAction->icon(), HbIcon(lcIconNameSecondaryCamera) ); |
|
203 } |
|
204 |
|
205 void UT_LcView::testSetMuteActionToUnmute() |
|
206 { |
|
207 mView->setMuteActionToUnmute(); |
|
208 QVERIFY( mView->mMuteAction->text().isEmpty() ); |
|
209 QCOMPARE (mView->mMuteAction->icon(), HbIcon(lcIconNameUnmuteMic)); |
|
210 } |
|
211 |
|
212 void UT_LcView::testSetMuteActionToMute() |
|
213 { |
|
214 mView->setMuteActionToMute(); |
|
215 QVERIFY( mView->mMuteAction->text().isEmpty() ); |
|
216 QCOMPARE (mView->mMuteAction->icon(), HbIcon(lcIconNameMuteMic)); |
|
217 } |
|
218 |
|
219 void UT_LcView::testSetSpeakerActionToHandset() |
|
220 { |
|
221 mView->setSpeakerActionToHandset(); |
|
222 QVERIFY( mView->mSpeakerAction->text().isEmpty() ); |
|
223 QCOMPARE( mView->mSpeakerAction->icon(), HbIcon(lcIconNameHandset) ); |
|
224 } |
|
225 |
|
226 void UT_LcView::testSetSpeakerActionToSpeaker() |
|
227 { |
|
228 mView->setSpeakerActionToSpeaker(); |
|
229 QVERIFY( mView->mSpeakerAction->text().isEmpty() ); |
|
230 QCOMPARE( mView->mSpeakerAction->icon(), HbIcon(lcIconNameLoudspeaker) ); |
|
231 } |
|
232 |
|
233 void UT_LcView::testSetCameraActionToEnable() |
|
234 { |
|
235 mView->setCameraActionToEnable(); |
|
236 QVERIFY( mView->mDisableCameraAction->text().isEmpty() ); |
|
237 QCOMPARE( mView->mDisableCameraAction->icon(), HbIcon(lcIconNameEnableCamera) ); |
|
238 QCOMPARE( mView->mDisableCameraMenuAction->text(), hbTrId( "txt_vt_menu_enable_camera" ) ); |
|
239 } |
|
240 |
|
241 void UT_LcView::testSetCameraActionToDisable() |
|
242 { |
|
243 mView->setCameraActionToDisable(); |
|
244 QVERIFY( mView->mDisableCameraAction->text().isEmpty() ); |
|
245 QCOMPARE( mView->mDisableCameraAction->icon(), HbIcon(lcIconNameDisableCamera) ); |
|
246 QCOMPARE( mView->mDisableCameraMenuAction->text(), hbTrId( "txt_vt_menu_disable_camera" ) ); |
|
247 } |
|
248 |
|
249 |
|
250 void UT_LcView::testDisableControls() |
|
251 { |
|
252 mView->disableControls(); |
|
253 QVERIFY( !mView->menu()->isEnabled() ); |
|
254 QVERIFY( !mView->toolBar()->isEnabled() ); |
|
255 } |
|
256 |
|
257 void UT_LcView::testEnableControls() |
|
258 { |
|
259 mView->menu()->setEnabled( false ); |
|
260 mView->toolBar()->setEnabled( false ); |
|
261 |
|
262 mView->enableControls(); |
|
263 QVERIFY( mView->menu()->isEnabled() ); |
|
264 QVERIFY( mView->toolBar()->isEnabled() ); |
|
265 } |
|
266 |
|
267 |
|
268 void UT_LcView::testEndVideoSession() |
|
269 { |
|
270 mView->endVideoSession(); |
|
271 QVERIFY( lcutStub_LcUiEngine_expectCall( lcutStub_LcUiEngine_stop ) ); |
|
272 } |
|
273 |
|
274 void UT_LcView::testMute() |
|
275 { |
|
276 mView->mute(); |
|
277 QVERIFY( lcutStub_LcUiEngine_expectCall( lcutStub_LcUiEngine_mute ) ); |
|
278 QVERIFY( !mView->timerId ); |
|
279 QVERIFY( !mEngine->fullScreenMode()); |
|
280 } |
|
281 |
|
282 void UT_LcView::testChangeCamera() |
|
283 { |
|
284 mView->init(); |
|
285 mView->changeCamera(); |
|
286 QVERIFY( lcutStub_LcUiEngine_expectCall( lcutStub_LcUiEngine_toggleCamera ) ); |
|
287 QVERIFY( !mEngine->fullScreenMode() ); |
|
288 } |
|
289 |
|
290 void UT_LcView::testSwitchToVoiceCall() |
|
291 { |
|
292 mView->switchToVoiceCall(); |
|
293 QVERIFY( lcutStub_LcUiEngine_expectCall( lcutStub_LcUiEngine_stop ) ); |
|
294 } |
|
295 |
|
296 void UT_LcView::testDisableCameraWhenOnFullScreenMode() |
|
297 { |
|
298 mView->init(); |
|
299 mEngine->setFullScreenMode(true); |
|
300 mView->disableCamera(); |
|
301 QVERIFY( lcutStub_LcUiEngine_expectCall( lcutStub_LcUiEngine_disableCamera ) ); |
|
302 QVERIFY( mEngine->fullScreenMode() ); |
|
303 } |
|
304 |
|
305 void UT_LcView::testDisableCameraWhenNotOnFullScreenMode() |
|
306 { |
|
307 mView->init(); |
|
308 mEngine->setFullScreenMode(false); |
|
309 mView->disableCamera(); |
|
310 QVERIFY( lcutStub_LcUiEngine_expectCall( lcutStub_LcUiEngine_disableCamera ) ); |
|
311 QVERIFY( !mEngine->fullScreenMode() ); |
|
312 } |
|
313 |
|
314 void UT_LcView::testSpeaker() |
|
315 { |
|
316 mView->init(); |
|
317 mView->speaker(); |
|
318 QVERIFY( lcutStub_LcUiEngine_expectCall( lcutStub_LcUiEngine_speaker ) ); |
|
319 QVERIFY( !mEngine->fullScreenMode() ); |
|
320 } |
|
321 |
|
322 void UT_LcView::testSwap() |
|
323 { |
|
324 QVERIFY( !mView->mSharedVideoWidget ); |
|
325 QVERIFY( !mView->mReceivedVideoWidget ); |
|
326 mView->swap(); |
|
327 QVERIFY( lcutStub_LcUiEngine_expectCall( lcutNoCall ) ); |
|
328 |
|
329 lcutStub_LcUiEngine_reset(); |
|
330 mView->init(); |
|
331 mView->swap(); |
|
332 QVERIFY( lcutStub_LcUiEngine_expectCall( lcutNoCall ) ); |
|
333 } |
|
334 |
|
335 void UT_LcView::testNotSupported() |
|
336 { |
|
337 HbMainWindow mainWin; |
|
338 QVERIFY( mView->mNotSupportedNote ); |
|
339 QVERIFY( !mView->mNotSupportedNote->isVisible() ); |
|
340 mView->notSupported(); |
|
341 QVERIFY( mView->mNotSupportedNote->isVisible() ); |
|
342 } |
|
343 |
|
344 void UT_LcView::testUpdateVideoRects() |
|
345 { |
|
346 mView->init(); |
|
347 LcVideoWidget* sharedVideoWidget = mView->mSharedVideoWidget; |
|
348 LcVideoWidget* receivedVideoWidget = mView->mReceivedVideoWidget; |
|
349 |
|
350 mView->mSharedVideoWidget = 0; |
|
351 mView->mReceivedVideoWidget = 0; |
|
352 mView->updateVideoRects(); |
|
353 QVERIFY( lcutStub_LcUiEngine_expectCall( lcutStub_LcUiEngine_updateSession, 0 ) ); |
|
354 QVERIFY( lcutStub_LcUiEngine_expectCall( lcutStub_LcUiEngine_setOrientation, 1 ) ); |
|
355 QVERIFY( lcutStub_LcUiEngine_expectCall( lcutStub_LcUiEngine_setContentAreas, 2 ) ); |
|
356 |
|
357 mView->mSharedVideoWidget = sharedVideoWidget; |
|
358 mView->mReceivedVideoWidget = 0; |
|
359 mView->updateVideoRects(); |
|
360 QVERIFY( lcutStub_LcUiEngine_expectCall( lcutStub_LcUiEngine_updateSession, 0 ) ); |
|
361 QVERIFY( lcutStub_LcUiEngine_expectCall( lcutStub_LcUiEngine_setOrientation, 1 ) ); |
|
362 QVERIFY( lcutStub_LcUiEngine_expectCall( lcutStub_LcUiEngine_setContentAreas, 2 ) ); |
|
363 |
|
364 mView->mSharedVideoWidget = 0; |
|
365 mView->mReceivedVideoWidget = receivedVideoWidget; |
|
366 mView->updateVideoRects(); |
|
367 QVERIFY( lcutStub_LcUiEngine_expectCall( lcutStub_LcUiEngine_updateSession, 0 ) ); |
|
368 QVERIFY( lcutStub_LcUiEngine_expectCall( lcutStub_LcUiEngine_setOrientation, 1 ) ); |
|
369 QVERIFY( lcutStub_LcUiEngine_expectCall( lcutStub_LcUiEngine_setContentAreas, 2 ) ); |
|
370 |
|
371 mView->mSharedVideoWidget = sharedVideoWidget; |
|
372 mView->mReceivedVideoWidget = receivedVideoWidget; |
|
373 sharedVideoWidget->hide(); |
|
374 receivedVideoWidget->hide(); |
|
375 lcutStub_LcUiEngine_setLocalPlaying( false ); |
|
376 lcutStub_LcUiEngine_setRemotePlaying( false ); |
|
377 mView->updateVideoRects(); |
|
378 QVERIFY( lcutStub_LcUiEngine_expectCall( lcutStub_LcUiEngine_updateSession, 0 ) ); |
|
379 QVERIFY( lcutStub_LcUiEngine_expectCall( lcutStub_LcUiEngine_setOrientation, 1 ) ); |
|
380 QVERIFY( lcutStub_LcUiEngine_expectCall( lcutStub_LcUiEngine_setContentAreas, 2 ) ); |
|
381 QVERIFY( !sharedVideoWidget->isVisible() ); |
|
382 QVERIFY( !receivedVideoWidget->isVisible() ); |
|
383 |
|
384 sharedVideoWidget->hide(); |
|
385 receivedVideoWidget->hide(); |
|
386 lcutStub_LcUiEngine_setLocalPlaying( true ); |
|
387 lcutStub_LcUiEngine_setRemotePlaying( true ); |
|
388 mView->updateVideoRects(); |
|
389 QVERIFY( lcutStub_LcUiEngine_expectCall( lcutStub_LcUiEngine_updateSession, 0 ) ); |
|
390 QVERIFY( lcutStub_LcUiEngine_expectCall( lcutStub_LcUiEngine_setOrientation, 1 ) ); |
|
391 QVERIFY( lcutStub_LcUiEngine_expectCall( lcutStub_LcUiEngine_setContentAreas, 2 ) ); |
|
392 |
|
393 //Test: Shared video widgets and received video wigts are positioned at (0,0) |
|
394 //It does not update. |
|
395 lcutStub_LcUiEngine_reset(); |
|
396 mView->isViewReady = false; |
|
397 mView->mSharedVideoWidget = sharedVideoWidget; |
|
398 mView->mSharedVideoWidget->setPos(QPointF(0,0)); |
|
399 mView->mReceivedVideoWidget = receivedVideoWidget; |
|
400 mView->mReceivedVideoWidget->setPos(QPointF(0,0)); |
|
401 mView->updateVideoRects(); |
|
402 QVERIFY( !lcutStub_LcUiEngine_expectCall( lcutStub_LcUiEngine_updateSession, 0 ) ); |
|
403 QVERIFY( !lcutStub_LcUiEngine_expectCall( lcutStub_LcUiEngine_setOrientation, 1 ) ); |
|
404 QVERIFY( !lcutStub_LcUiEngine_expectCall( lcutStub_LcUiEngine_setContentAreas, 2 ) ); |
|
405 |
|
406 |
|
407 //Test2: Shared video widgets positioned at (0,0) and other widgets is null |
|
408 //It does not update. |
|
409 lcutStub_LcUiEngine_reset(); |
|
410 mView->mSharedVideoWidget = sharedVideoWidget; |
|
411 mView->mSharedVideoWidget->setPos(QPointF(0,0)); |
|
412 mView->mReceivedVideoWidget = 0; |
|
413 mView->isViewReady = false; |
|
414 mView->updateVideoRects(); |
|
415 QVERIFY( !lcutStub_LcUiEngine_expectCall( lcutStub_LcUiEngine_updateSession, 0 ) ); |
|
416 QVERIFY( !lcutStub_LcUiEngine_expectCall( lcutStub_LcUiEngine_setOrientation, 1 ) ); |
|
417 QVERIFY( !lcutStub_LcUiEngine_expectCall( lcutStub_LcUiEngine_setContentAreas, 2 ) ); |
|
418 |
|
419 //Test3: Shared video widgets positioned correctly and other widgets is null |
|
420 //It update. |
|
421 lcutStub_LcUiEngine_reset(); |
|
422 mView->mSharedVideoWidget = sharedVideoWidget; |
|
423 mView->mSharedVideoWidget->setPos(QPointF(10,10)); |
|
424 mView->mReceivedVideoWidget = 0; |
|
425 mView->isViewReady = false; |
|
426 mView->updateVideoRects(); |
|
427 QVERIFY( lcutStub_LcUiEngine_expectCall( lcutStub_LcUiEngine_updateSession, 0 ) ); |
|
428 QVERIFY( lcutStub_LcUiEngine_expectCall( lcutStub_LcUiEngine_setOrientation, 1 ) ); |
|
429 QVERIFY( lcutStub_LcUiEngine_expectCall( lcutStub_LcUiEngine_setContentAreas, 2 ) ); |
|
430 } |
|
431 |
|
432 void UT_LcView::testCurrentLayout() |
|
433 { |
|
434 mView->init(); |
|
435 QString layout; |
|
436 |
|
437 //1. Landscape layout |
|
438 UT_SET_ORIENTATION( Qt::Horizontal ); |
|
439 layout = mView->currentLayout(); |
|
440 QVERIFY( layout == lcLayoutLandscapeDefaultId ); |
|
441 |
|
442 //2. Landscape swapped layout |
|
443 // Shared window x coordinate is higher than Received windows x coordinate. |
|
444 |
|
445 QRectF pos1 = QRectF(100,300, 400, 400); |
|
446 QRectF pos2 = QRectF(5,100, 200, 200); |
|
447 |
|
448 UT_SET_ORIENTATION( Qt::Horizontal ); |
|
449 mView->mEffectHandler->mSwapInProgress = true; |
|
450 mView->mSharedVideoWidget->setGeometry(pos1); |
|
451 mView->mReceivedVideoWidget->setGeometry(pos2); |
|
452 |
|
453 layout = mView->currentLayout(); |
|
454 QVERIFY( layout == lcLayoutLandscapeSwappedId ); |
|
455 |
|
456 //3. If it's already swapped, change to the normal landscape mode |
|
457 mView->mSharedVideoWidget->setGeometry(pos2); |
|
458 mView->mReceivedVideoWidget->setGeometry(pos1); |
|
459 layout = mView->currentLayout(); |
|
460 QVERIFY( layout == lcLayoutLandscapeDefaultId ); |
|
461 } |
|
462 |
|
463 |
|
464 void UT_LcView::testToFullScreen() |
|
465 { |
|
466 QString layout; |
|
467 UT_SET_ORIENTATION( Qt::Horizontal ); |
|
468 |
|
469 // Test1: to full screen |
|
470 mView->init(); |
|
471 mView->menu()->setVisible( false ); |
|
472 mView->toFullScreen( true ); |
|
473 QVERIFY( mEngine->fullScreenMode() ); |
|
474 // Use the helper function do not invent new one |
|
475 QVERIFY( !HbStubHelper::isTitleBarVisible() ); |
|
476 QVERIFY( !HbStubHelper::isStatusBarVisible() ); |
|
477 QVERIFY( !mView->toolBar()->isVisible() ); |
|
478 QVERIFY( !mView->mEndCallButton->isVisible() ); |
|
479 QVERIFY( !mView->mDuration->isVisible() ); |
|
480 QVERIFY( !mView->mRecipient->isVisible() ); |
|
481 |
|
482 // Test2 : not in full screen |
|
483 mView->init(); |
|
484 mView->menu()->setVisible( false ); |
|
485 mView->toFullScreen( false ); |
|
486 QVERIFY( !mEngine->fullScreenMode() ); |
|
487 QVERIFY( HbStubHelper::isTitleBarVisible() ); |
|
488 QVERIFY( HbStubHelper::isStatusBarVisible() ); |
|
489 QVERIFY( mView->toolBar()->isVisible() ); |
|
490 QVERIFY( mView->mEndCallButton->isVisible() ); |
|
491 QVERIFY( mView->mDuration->isVisible() ); |
|
492 QVERIFY( mView->mRecipient->isVisible() ); |
|
493 int tId = mView->timerId; |
|
494 mView->watchInactivity(); |
|
495 QVERIFY( mView->timerId != tId ); |
|
496 |
|
497 // Test3 : menu visible |
|
498 mView->init(); |
|
499 mView->menu()->setVisible( false ); |
|
500 mView->toFullScreen( false ); |
|
501 mView->menu()->setVisible( true ); |
|
502 mView->toFullScreen( true ); |
|
503 QVERIFY( !mEngine->fullScreenMode() ); |
|
504 QVERIFY( HbStubHelper::isTitleBarVisible() ); |
|
505 QVERIFY( HbStubHelper::isStatusBarVisible() ); |
|
506 QVERIFY( mView->toolBar()->isVisible() ); |
|
507 QVERIFY( mView->mEndCallButton->isVisible() ); |
|
508 QVERIFY( mView->mDuration->isVisible() ); |
|
509 QVERIFY( mView->mRecipient->isVisible() ); |
|
510 tId = mView->timerId; |
|
511 mView->watchInactivity(); |
|
512 QVERIFY( mView->timerId != tId ); |
|
513 |
|
514 // Test3 : dialpad visible |
|
515 mView->init(); |
|
516 delete mView->mDialpad; |
|
517 mView->mDialpad = new Dialpad(); |
|
518 mView->toFullScreen( true ); |
|
519 QVERIFY( !mEngine->fullScreenMode() ); |
|
520 QVERIFY( HbStubHelper::isTitleBarVisible() ); |
|
521 QVERIFY( HbStubHelper::isStatusBarVisible() ); |
|
522 QVERIFY( mView->toolBar()->isVisible() ); |
|
523 QVERIFY( mView->mEndCallButton->isVisible() ); |
|
524 QVERIFY( mView->mDuration->isVisible() ); |
|
525 QVERIFY( mView->mRecipient->isVisible() ); |
|
526 tId = mView->timerId; |
|
527 mView->watchInactivity(); |
|
528 QVERIFY( mView->timerId == tId ); |
|
529 } |
|
530 |
|
531 void UT_LcView::testGestureEvent() |
|
532 { |
|
533 mView->init(); |
|
534 mView->menu()->setVisible(false); |
|
535 UT_SET_ORIENTATION( Qt::Horizontal ); |
|
536 |
|
537 mView->mSharedVideoWidget->setGeometry(QRectF(5,50, 100, 100)); |
|
538 mView->mReceivedVideoWidget->setGeometry(QRectF(5,200, 200, 400)); |
|
539 QList<QGesture*> list; |
|
540 |
|
541 // Test1: Short tap Event toggle the full screen mode |
|
542 mEngine->setFullScreenMode(true); |
|
543 QPointF sharedVideoPos(10,60); |
|
544 QTapGesture *tapGesture = new QTapGesture(); |
|
545 tapGesture->setPosition(sharedVideoPos); |
|
546 HbStubHelper::setGestureStyleHint(HbTapGesture::Tap); |
|
547 HbStubHelper::setGestureState(Qt::GestureFinished); |
|
548 list.append(tapGesture); |
|
549 QGestureEvent event1(list); |
|
550 mView->gestureEvent(&event1); |
|
551 QVERIFY( !mEngine->fullScreenMode()); |
|
552 list.clear(); |
|
553 |
|
554 // Test2: Long tap event does not affect full screen mode. |
|
555 QTapGesture *tapGesture2 = new QTapGesture(); |
|
556 QPointF receivedVideoPos(10,210); |
|
557 tapGesture2->setPosition(receivedVideoPos); |
|
558 HbStubHelper::setGestureState(Qt::GestureUpdated); |
|
559 HbStubHelper::setGestureStyleHint(HbTapGesture::TapAndHold); |
|
560 list.append(tapGesture2); |
|
561 QGestureEvent event3(list); |
|
562 mEngine->setFullScreenMode(true); |
|
563 mView->gestureEvent(&event3); |
|
564 // Ensure it does not affect full screen mode. |
|
565 QVERIFY( mEngine->fullScreenMode()); |
|
566 |
|
567 //Test3: Not Handled States. |
|
568 HbStubHelper::setGestureState(Qt::GestureStarted); |
|
569 mEngine->setFullScreenMode(true); |
|
570 mView->gestureEvent(&event3); |
|
571 // Ensure its not handled everything remains same |
|
572 QVERIFY( mEngine->fullScreenMode()); |
|
573 list.clear(); |
|
574 |
|
575 //Test4: Not Handled Event |
|
576 QSwipeGesture *swipeGesture = new QSwipeGesture(); |
|
577 list.append(swipeGesture); |
|
578 QGestureEvent event4(list); |
|
579 mEngine->setFullScreenMode(true); |
|
580 mView->gestureEvent(&event4); |
|
581 // Ensure it does not affect full screen mode. |
|
582 QVERIFY( mEngine->fullScreenMode()); |
|
583 } |
|
584 |
|
585 void UT_LcView::testContextMenu() |
|
586 { |
|
587 QVERIFY( !mView->mItemContextMenu ); |
|
588 mView->createContextMenu(); |
|
589 QVERIFY( mView->mItemContextMenu ); |
|
590 QVERIFY( mView->mItemContextMenu->isEmpty() ); |
|
591 } |
|
592 |
|
593 void UT_LcView::testGestureLongPress() |
|
594 { |
|
595 QVERIFY( !mView->mItemContextMenu ); |
|
596 QPointF coordsNoHit(10,10); |
|
597 mView->gestureLongPress( coordsNoHit ); |
|
598 QVERIFY( !mView->mItemContextMenu ); |
|
599 |
|
600 mView->init(); |
|
601 HbTransparentWindow* sharedVideoWidget = mView->mSharedVideoWidget; |
|
602 QVERIFY( sharedVideoWidget != NULL ); |
|
603 mView->mSharedVideoWidget->setGeometry(QRectF(5,100, 200, 200)); |
|
604 |
|
605 QPointF coordsHitSharedVideo(20,150); |
|
606 mView->gestureLongPress( coordsHitSharedVideo ); |
|
607 QVERIFY( mView->mItemContextMenu ); |
|
608 |
|
609 delete mView->mItemContextMenu; |
|
610 mView->mItemContextMenu = 0; |
|
611 |
|
612 QPointF coordsNoHit2(10,400); |
|
613 mView->gestureLongPress( coordsNoHit2 ); |
|
614 QVERIFY( !mView->mItemContextMenu ); |
|
615 |
|
616 HbTransparentWindow* receivedVideoWidget = mView->mReceivedVideoWidget; |
|
617 QVERIFY( receivedVideoWidget != NULL ); |
|
618 mView->mReceivedVideoWidget->setGeometry(QRectF(5,350, 200, 200)); |
|
619 |
|
620 QPointF coordsHitRecievedVideo(10,400); |
|
621 mView->gestureLongPress( coordsHitRecievedVideo ); |
|
622 QVERIFY( !mView->mItemContextMenu ); |
|
623 } |
|
624 |
|
625 |
|
626 void UT_LcView::testGestureShortPress() |
|
627 { |
|
628 mView->init(); |
|
629 mView->menu()->setVisible(false); |
|
630 mView->mSharedVideoWidget->setGeometry(QRectF(5,50, 100, 100)); |
|
631 mView->mReceivedVideoWidget->setGeometry(QRectF(5,200, 200, 400)); |
|
632 |
|
633 UT_SET_ORIENTATION( Qt::Horizontal ); |
|
634 mEngine->setFullScreenMode(true); |
|
635 mView->gestureShortPress(); |
|
636 QVERIFY( !mEngine->fullScreenMode()); |
|
637 |
|
638 // toggled |
|
639 mView->gestureShortPress(); |
|
640 QVERIFY( mEngine->fullScreenMode()); |
|
641 } |
|
642 |
|
643 |
|
644 void UT_LcView::testTimerEvent() |
|
645 { |
|
646 mView->init(); |
|
647 // timer time out |
|
648 QTimerEvent* event = new QTimerEvent( mView->timerId ); |
|
649 mView->menu()->setVisible(false); |
|
650 mView->timerEvent( event ); |
|
651 QVERIFY( mEngine->fullScreenMode()); |
|
652 QVERIFY( !HbStubHelper::isTitleBarVisible() ); |
|
653 QVERIFY( !HbStubHelper::isStatusBarVisible() ); |
|
654 QVERIFY( !mView->toolBar()->isVisible() ); |
|
655 QVERIFY( !mView->mEndCallButton->isVisible()); |
|
656 QVERIFY( !mView->mDuration->isVisible()); |
|
657 QVERIFY( !mView->mRecipient->isVisible()); |
|
658 delete event; |
|
659 |
|
660 // not a timer we want |
|
661 mView->toFullScreen( false ); |
|
662 event = new QTimerEvent( 22222 ); // some number |
|
663 mView->timerEvent( event ); |
|
664 QVERIFY( !mEngine->fullScreenMode() ); |
|
665 QVERIFY( HbStubHelper::isTitleBarVisible() ); |
|
666 QVERIFY( HbStubHelper::isStatusBarVisible() ); |
|
667 QVERIFY( mView->toolBar()->isVisible() ); |
|
668 QVERIFY( mView->mEndCallButton->isVisible()); |
|
669 QVERIFY( mView->mDuration->isVisible()); |
|
670 QVERIFY( mView->mRecipient->isVisible()); |
|
671 delete event; |
|
672 } |
|
673 |
|
674 void UT_LcView::testShareImage() |
|
675 { |
|
676 QVERIFY( !lcutStub_LcUiEngine_isImageShared ); |
|
677 mView->shareImage(); |
|
678 //QVERIFY( lcutStub_LcUiEngine_isImageShared() ); |
|
679 } |
|
680 |
|
681 void UT_LcView::testUpdateSwapLayout() |
|
682 { |
|
683 mView->init(); |
|
684 mView->menu()->setVisible(false); |
|
685 mView->mEndCallButton = mEndCallButton; |
|
686 UT_SET_ORIENTATION( Qt::Horizontal ); |
|
687 mEngine->setFullScreenMode(true); |
|
688 mView->updateSwapLayout(); |
|
689 QVERIFY( mEngine->fullScreenMode()); |
|
690 QVERIFY( !HbStubHelper::isTitleBarVisible() ); |
|
691 QVERIFY( !HbStubHelper::isStatusBarVisible() ); |
|
692 QVERIFY( !mView->isItemVisible(Hb::DockWidgetItem ) ); |
|
693 QVERIFY( !mView->mEndCallButton->isVisible()); |
|
694 QVERIFY( !mView->mDuration->isVisible()); |
|
695 QVERIFY( !mView->mRecipient->isVisible()); |
|
696 } |
|
697 |
|
698 void UT_LcView::testMenuAboutToShow() |
|
699 { |
|
700 mView->init(); |
|
701 mView->menu()->setVisible(false); |
|
702 mView->toFullScreen( true ); |
|
703 mView->menuAboutToShow(); |
|
704 QVERIFY( !mEngine->fullScreenMode()); |
|
705 QVERIFY( HbStubHelper::isTitleBarVisible() ); |
|
706 QVERIFY( HbStubHelper::isStatusBarVisible() ); |
|
707 QVERIFY( mView->toolBar()->isVisible() ); |
|
708 QVERIFY( mView->mEndCallButton->isVisible()); |
|
709 QVERIFY( mView->mDuration->isVisible()); |
|
710 QVERIFY( mView->mRecipient->isVisible()); |
|
711 int tId = mView->timerId; |
|
712 mView->watchInactivity(); |
|
713 QVERIFY( mView->timerId != tId ); |
|
714 |
|
715 } |
|
716 |
|
717 void UT_LcView::testTranslateRectForOrientation() |
|
718 { |
|
719 UT_SET_ORIENTATION( Qt::Horizontal ); |
|
720 QRectF origRect( 10, 10, 100, 200 ); |
|
721 QRectF modRect = mView->translateRectForOrientation(origRect); |
|
722 QVERIFY( modRect.height() == origRect.width() ); |
|
723 QVERIFY( modRect.width() == origRect.height() ); |
|
724 } |
|
725 |
|
726 void UT_LcView::testTranslatePointForOrientation() |
|
727 { |
|
728 UT_SET_ORIENTATION( Qt::Horizontal ); |
|
729 QPointF origPoint( 10, 20 ); |
|
730 QPointF modPoint = mView->translatePointForOrientation(origPoint); |
|
731 QVERIFY( origPoint != modPoint ); |
|
732 } |
|
733 |
|
734 void UT_LcView::testOpenDialpad() |
|
735 { |
|
736 delete mView; |
|
737 mView = mRepository->twowayView(); |
|
738 HbMainWindow& window = *(HbInstance::instance()->allMainWindows().at(0)); |
|
739 QPointF pos = window.pos(); |
|
740 window.setOrientation(Qt::Horizontal); |
|
741 |
|
742 // init |
|
743 mView->mRepository.mLayoutSection = lcLayoutLandscapeDefaultId; |
|
744 mView->menu()->setVisible(true); |
|
745 |
|
746 mView->openDialpad(); |
|
747 |
|
748 QVERIFY(mView->mDialpad->isOpen()); |
|
749 QVERIFY(!mView->mDialpad->mIsCallButtonEnabled); |
|
750 QVERIFY(mView->mRepository.mLayoutSection == lcLayoutLandscapeDialpadId); |
|
751 QVERIFY( HbStubHelper::isTitleBarVisible() ); |
|
752 QVERIFY( HbStubHelper::isStatusBarVisible() ); |
|
753 QCOMPARE(mView->menu()->actions().size(), 0); |
|
754 QVERIFY(!mView->mEngine.fullScreenMode()); |
|
755 } |
|
756 |
|
757 void UT_LcView::testDialpadOpened() |
|
758 { |
|
759 // no implementation |
|
760 } |
|
761 |
|
762 void UT_LcView::testDialpadClosed() |
|
763 { |
|
764 delete mView; |
|
765 mView = mRepository->twowayView(); |
|
766 |
|
767 // test : no fullscreen,landscape , open and close dialpad scenario |
|
768 HbMainWindow& window = *(HbInstance::instance()->allMainWindows().at(0)); |
|
769 window.setOrientation( Qt::Horizontal ); |
|
770 mView->openDialpad(); |
|
771 |
|
772 // Enter some dummy text |
|
773 mView->mDialpad->editor().setText( QString("1") ); |
|
774 mView->dialpadClosed(); |
|
775 // Ensure text is cleared. |
|
776 |
|
777 QCOMPARE(mView->mDialpad->editor().text(), QString::fromAscii("")); |
|
778 QVERIFY(!mView->mDialpad->editor().text().length()); |
|
779 |
|
780 // check that layout has changed |
|
781 QVERIFY(mView->mRepository.layout()!= lcLayoutLandscapeDialpadId); |
|
782 QVERIFY( HbStubHelper::isTitleBarVisible() ); |
|
783 QVERIFY( HbStubHelper::isStatusBarVisible() ); |
|
784 QVERIFY(mView->toolBar()->isVisible()); |
|
785 QVERIFY(mView->mEndCallButton->isVisible()); |
|
786 QVERIFY(mView->mRecipient->isVisible()); |
|
787 QVERIFY(mView->mDuration->isVisible()); |
|
788 QVERIFY(mView->menu()->isVisible()); |
|
789 QVERIFY(!mView->mEngine.fullScreenMode()); |
|
790 |
|
791 // test : swapped,fullscreen,landscape,open and close dialpad scenario |
|
792 mView->mRepository.loadLayout( lcLayoutLandscapeSwappedId ); |
|
793 mView->openDialpad(); |
|
794 mView->dialpadClosed(); |
|
795 // check for swapped view appears |
|
796 QVERIFY( mView->mRepository.layout()== lcLayoutLandscapeSwappedId ); |
|
797 // check titlebar invisible |
|
798 QVERIFY( HbStubHelper::isTitleBarVisible() ); |
|
799 QVERIFY( HbStubHelper::isStatusBarVisible() ); |
|
800 // check toolbar invisible |
|
801 QVERIFY( mView->toolBar()->isVisible() ); |
|
802 QVERIFY(!mView->mEngine.fullScreenMode()); |
|
803 |
|
804 } |
|
805 |
|
806 |
|
807 void UT_LcView::testDialpadEditorTextChanged() |
|
808 { |
|
809 delete mView; |
|
810 mView = mRepository->twowayView(); |
|
811 |
|
812 mView->openDialpad(); |
|
813 //text editor is one character long |
|
814 QVERIFY( lcutStub_LcUiEngine_getDialToneChar() == '0'); |
|
815 mView->mDialpad->editor().setText( QString("1") ); |
|
816 mView->dialpadEditorTextChanged(); |
|
817 QVERIFY( lcutStub_LcUiEngine_getDialToneChar() == '1' ); |
|
818 |
|
819 // We transmit dial tone character sepretly. |
|
820 mView->mDialpad->editor().setText( QString("12345") ); |
|
821 mView->dialpadEditorTextChanged(); |
|
822 QVERIFY( lcutStub_LcUiEngine_getDialToneChar() == '5' ); |
|
823 } |
|
824 |
|
825 void UT_LcView::testBack() |
|
826 { |
|
827 delete mView; |
|
828 mView = mRepository->twowayView(); |
|
829 mView->openDialpad(); |
|
830 mView->back(); |
|
831 QVERIFY( !mView->mDialpad->isOpen() ); |
|
832 } |
|
833 |
|
834 void UT_LcView::testAddOptionsMenuActions() |
|
835 { |
|
836 delete mView; |
|
837 mView = mRepository->twowayView(); |
|
838 |
|
839 mView->addOptionsMenuActions(); |
|
840 //TODO: stub implementation of void QGraphicsWidget::addAction(QAction *action); |
|
841 //QCOMPARE(mView->menu()->actions().size(), 2); |
|
842 } |
|
843 |
|
844 void UT_LcView::testWatchInactivity() |
|
845 { |
|
846 mView->init(); |
|
847 |
|
848 // test : in fullscreen mode already, dont start timer again |
|
849 int tid = mView->timerId ; |
|
850 mView->mEngine.setFullScreenMode( true ); |
|
851 mView->watchInactivity(); |
|
852 QVERIFY( tid==mView->timerId ); |
|
853 |
|
854 // test : not in full screen but dialpad view. dont start timer |
|
855 mView->mEngine.setFullScreenMode( false ); |
|
856 QVERIFY( mView->mDialpad ); |
|
857 mView->openDialpad(); |
|
858 mView->watchInactivity(); |
|
859 QVERIFY( tid==mView->timerId ); |
|
860 |
|
861 // test : not in full screen and no dialpad , start timer |
|
862 mView->mEngine.setFullScreenMode( false ); |
|
863 QVERIFY( mView->mDialpad ); |
|
864 mView->mDialpad->closeDialpad(); |
|
865 mView->watchInactivity(); |
|
866 QVERIFY( tid!=mView->timerId ); |
|
867 |
|
868 } |
|
869 |
|
870 |
|
871 |
|
872 void UT_LcView::testIsVideoPositionedCorrectly() |
|
873 { |
|
874 //Test1: Null video Widget returns true |
|
875 mRepository->mReturnSendVideo = false; |
|
876 mView->init(); |
|
877 QVERIFY( !mView->mSharedVideoWidget ); |
|
878 QVERIFY(mView->isVideoPositionedCorrectly(mView->mSharedVideoWidget)); |
|
879 |
|
880 //Test2: Valid Video widgets with correct position returns true: |
|
881 mRepository->mReturnSendVideo = true; |
|
882 mView->init(); |
|
883 QVERIFY( mView->mSharedVideoWidget ); |
|
884 QVERIFY( mView->isVideoPositionedCorrectly(mView->mSharedVideoWidget )); |
|
885 |
|
886 //Test3: Vaild video widgets withi co-ordinates returns false. |
|
887 mView->mSharedVideoWidget->setPos(QPointF(0,0)); |
|
888 QVERIFY( mView->mSharedVideoWidget ); |
|
889 QVERIFY( !mView->isVideoPositionedCorrectly(mView->mSharedVideoWidget )); |
|
890 } |
|
891 |
|
892 |
|
893 void UT_LcView::testIsPositioned() |
|
894 { |
|
895 //Test: isViewReady is true and proper co-ordinates |
|
896 mRepository->mReturnSendVideo = true; |
|
897 mView->init(); |
|
898 QVERIFY( !mView->isViewReady ); |
|
899 QVERIFY( mView->mSharedVideoWidget ); |
|
900 QVERIFY( mView->isVideoPositionedCorrectly(mView->mSharedVideoWidget )); |
|
901 mView->isPositioned(); |
|
902 QVERIFY( mView->isViewReady ); |
|
903 |
|
904 //Test: isViewReady is false and its first time and co ordinates are 0,0 |
|
905 mView->isViewReady = false; |
|
906 mView->mSharedVideoWidget->setPos(QPointF(0,0)); |
|
907 QVERIFY( mView->mSharedVideoWidget ); |
|
908 QVERIFY( !mView->isVideoPositionedCorrectly(mView->mSharedVideoWidget )); |
|
909 mView->isPositioned(); |
|
910 QVERIFY( !mView->isViewReady ); |
|
911 } |