|
1 // Copyright (c) 2003-2009 Nokia Corporation and/or its subsidiary(-ies). |
|
2 // All rights reserved. |
|
3 // This component and the accompanying materials are made available |
|
4 // under the terms of "Eclipse Public License v1.0" |
|
5 // which accompanies this distribution, and is available |
|
6 // at the URL "http://www.eclipse.org/legal/epl-v10.html". |
|
7 // |
|
8 // Initial Contributors: |
|
9 // Nokia Corporation - initial contribution. |
|
10 // |
|
11 // Contributors: |
|
12 // |
|
13 // Description: |
|
14 // |
|
15 |
|
16 #include <s32file.h> |
|
17 #include <logeng.h> |
|
18 #include <tz.h> |
|
19 #include "TEST.H" |
|
20 #include <logview.h> |
|
21 |
|
22 #undef test //there is a "test" macro which hides "RTest test" declaration. |
|
23 |
|
24 RTest test(_L("Log View Test Harness Number 2")); |
|
25 |
|
26 const TInt KTestEventNum = 20; |
|
27 const TInt KTestErrorEventNum = 3; |
|
28 const TLogContactItemId KTestContact1 = 0x123; |
|
29 const TLogContactItemId KTestContact2 = 0x456; |
|
30 const TLogContactItemId KTestContact3 = 0x789; |
|
31 _LIT(KTestDirection1, "Direction Test 1"); |
|
32 _LIT(KTestDirection2, "Direction Test 2"); |
|
33 _LIT(KTestDirection3, "Direction Test 3"); |
|
34 _LIT(KTestNumber1, "Number Test 1"); |
|
35 _LIT(KTestNumber2, "Number Test 2"); |
|
36 _LIT(KTestNumber3, "Number Test 3"); |
|
37 _LIT(KTestRemote1, "Remote Test 1"); |
|
38 _LIT(KTestRemote2, "Remote Test 2"); |
|
39 _LIT(KTestRemote3, "Remote Test 3"); |
|
40 _LIT(KTestStatus1, "Status Test 1"); |
|
41 _LIT(KTestStatus2, "Status Test 2"); |
|
42 _LIT(KTestStatus3, "Status Test 3"); |
|
43 _LIT(KTestSubject, "Test Subject"); |
|
44 const TLogLink KTestLink = 0x123456; |
|
45 _LIT8(KTestData, "Test data"); |
|
46 |
|
47 /** |
|
48 @SYMTestCaseID SYSLIB-LOGENG-CT-0930 |
|
49 @SYMTestCaseDesc Tests for the functionality of CLogViewEvent,CLogFilter classes |
|
50 @SYMTestPriority High |
|
51 @SYMTestActions Tests for event view after setting filter on the views. |
|
52 Change the filter list configuration and test for the view |
|
53 @SYMTestExpectedResults Test must not fail |
|
54 @SYMREQ REQ0000 |
|
55 */ |
|
56 LOCAL_C void TestEventViewWithFilterListL(CLogClient& aClient) |
|
57 { |
|
58 test.Next(_L(" @SYMTestCaseID:SYSLIB-LOGENG-CT-0930 ")); |
|
59 CTestActive* active = new(ELeave)CTestActive; |
|
60 CleanupStack::PushL(active); |
|
61 |
|
62 CLogEvent* event = CLogEvent::NewL(); |
|
63 CleanupStack::PushL(event); |
|
64 |
|
65 event->SetEventType(KLogCallEventTypeUid); |
|
66 event->SetContact(KTestContact1); |
|
67 event->SetDirection(KTestDirection1); |
|
68 event->SetDurationType(KLogDurationNone); |
|
69 event->SetNumber(KTestNumber1); |
|
70 event->SetRemoteParty(KTestRemote1); |
|
71 event->SetStatus(KTestStatus1); |
|
72 |
|
73 // Add event |
|
74 active->StartL(); |
|
75 aClient.AddEvent(*event, active->iStatus); |
|
76 CActiveScheduler::Start(); |
|
77 TEST2(active->iStatus.Int(), KErrNone); |
|
78 |
|
79 event->SetEventType(KLogDataEventTypeUid); |
|
80 event->SetContact(KTestContact2); |
|
81 event->SetDirection(KTestDirection2); |
|
82 event->SetDurationType(KLogDurationValid); |
|
83 event->SetNumber(KTestNumber2); |
|
84 event->SetRemoteParty(KTestRemote2); |
|
85 event->SetStatus(KTestStatus2); |
|
86 |
|
87 // Add event |
|
88 active->StartL(); |
|
89 aClient.AddEvent(*event, active->iStatus); |
|
90 CActiveScheduler::Start(); |
|
91 TEST2(active->iStatus.Int(), KErrNone); |
|
92 |
|
93 event->SetEventType(KLogFaxEventTypeUid); |
|
94 event->SetContact(KTestContact3); |
|
95 event->SetDirection(KTestDirection3); |
|
96 event->SetDurationType(KLogDurationData); |
|
97 event->SetNumber(KTestNumber3); |
|
98 event->SetRemoteParty(KTestRemote3); |
|
99 event->SetStatus(KTestStatus3); |
|
100 |
|
101 // Add event |
|
102 active->StartL(); |
|
103 aClient.AddEvent(*event, active->iStatus); |
|
104 CActiveScheduler::Start(); |
|
105 TEST2(active->iStatus.Int(), KErrNone); |
|
106 |
|
107 CLogFilterList* list = new(ELeave)CLogFilterList; |
|
108 CleanupStack::PushL(list); |
|
109 |
|
110 CLogViewEvent* view = CLogViewEvent::NewL(aClient); |
|
111 CleanupStack::PushL(view); |
|
112 |
|
113 CLogFilter* filter = CLogFilter::NewL(); |
|
114 CleanupStack::PushL(filter); |
|
115 |
|
116 // Set filter |
|
117 filter->SetContact(KTestContact1); |
|
118 |
|
119 list->AppendL(filter); |
|
120 CleanupStack::Pop(); // filter |
|
121 |
|
122 // Test View |
|
123 active->StartL(); |
|
124 TEST(view->SetFilterL(*list, active->iStatus)); |
|
125 CActiveScheduler::Start(); |
|
126 TEST2(view->CountL(),1); |
|
127 |
|
128 filter = CLogFilter::NewL(); |
|
129 CleanupStack::PushL(filter); |
|
130 |
|
131 // Set filter |
|
132 filter->SetContact(KTestContact2); |
|
133 |
|
134 list->AppendL(filter); |
|
135 CleanupStack::Pop(); // filter |
|
136 |
|
137 // Test View |
|
138 active->StartL(); |
|
139 TEST(view->SetFilterL(*list, active->iStatus)); |
|
140 CActiveScheduler::Start(); |
|
141 TEST2(view->CountL(), 2); |
|
142 |
|
143 filter = CLogFilter::NewL(); |
|
144 CleanupStack::PushL(filter); |
|
145 |
|
146 // Set filter |
|
147 filter->SetContact(KTestContact3); |
|
148 |
|
149 list->AppendL(filter); |
|
150 CleanupStack::Pop(); // filter |
|
151 |
|
152 // Test View |
|
153 active->StartL(); |
|
154 TEST(view->SetFilterL(*list, active->iStatus)); |
|
155 CActiveScheduler::Start(); |
|
156 TEST2(view->CountL(), 3); |
|
157 |
|
158 list->ResetAndDestroy(); |
|
159 |
|
160 ///////////////////////////////////////// |
|
161 |
|
162 filter = CLogFilter::NewL(); |
|
163 CleanupStack::PushL(filter); |
|
164 |
|
165 // Set filter |
|
166 filter->SetContact(KTestContact1); |
|
167 filter->SetDirection(KTestDirection1); |
|
168 |
|
169 list->AppendL(filter); |
|
170 CleanupStack::Pop(); // filter |
|
171 |
|
172 // Test View |
|
173 active->StartL(); |
|
174 TEST(view->SetFilterL(*list, active->iStatus)); |
|
175 CActiveScheduler::Start(); |
|
176 TEST2(view->CountL(), 1); |
|
177 |
|
178 filter = CLogFilter::NewL(); |
|
179 CleanupStack::PushL(filter); |
|
180 |
|
181 // Set filter |
|
182 filter->SetContact(KTestContact2); |
|
183 filter->SetDirection(KTestDirection2); |
|
184 |
|
185 list->AppendL(filter); |
|
186 CleanupStack::Pop(); // filter |
|
187 |
|
188 // Test View |
|
189 active->StartL(); |
|
190 TEST(view->SetFilterL(*list, active->iStatus)); |
|
191 CActiveScheduler::Start(); |
|
192 TEST2(view->CountL(), 2); |
|
193 |
|
194 filter = CLogFilter::NewL(); |
|
195 CleanupStack::PushL(filter); |
|
196 |
|
197 // Set filter |
|
198 filter->SetContact(KTestContact3); |
|
199 filter->SetDirection(KTestDirection3); |
|
200 |
|
201 list->AppendL(filter); |
|
202 CleanupStack::Pop(); // filter |
|
203 |
|
204 // Test View |
|
205 active->StartL(); |
|
206 TEST(view->SetFilterL(*list, active->iStatus)); |
|
207 CActiveScheduler::Start(); |
|
208 TEST2(view->CountL(), 3); |
|
209 |
|
210 list->ResetAndDestroy(); |
|
211 |
|
212 ///////////////////////////////////////// |
|
213 |
|
214 filter = CLogFilter::NewL(); |
|
215 CleanupStack::PushL(filter); |
|
216 |
|
217 // Set filter |
|
218 filter->SetContact(KTestContact1); |
|
219 filter->SetDirection(KTestDirection1); |
|
220 filter->SetDurationType(KLogDurationNone); |
|
221 |
|
222 list->AppendL(filter); |
|
223 CleanupStack::Pop(); // filter |
|
224 |
|
225 // Test View |
|
226 active->StartL(); |
|
227 TEST(view->SetFilterL(*list, active->iStatus)); |
|
228 CActiveScheduler::Start(); |
|
229 TEST2(view->CountL(), 1); |
|
230 |
|
231 filter = CLogFilter::NewL(); |
|
232 CleanupStack::PushL(filter); |
|
233 |
|
234 // Set filter |
|
235 filter->SetContact(KTestContact2); |
|
236 filter->SetDirection(KTestDirection2); |
|
237 filter->SetDurationType(KLogDurationValid); |
|
238 |
|
239 list->AppendL(filter); |
|
240 CleanupStack::Pop(); // filter |
|
241 |
|
242 // Test View |
|
243 active->StartL(); |
|
244 TEST(view->SetFilterL(*list, active->iStatus)); |
|
245 CActiveScheduler::Start(); |
|
246 TEST2(view->CountL(), 2); |
|
247 |
|
248 filter = CLogFilter::NewL(); |
|
249 CleanupStack::PushL(filter); |
|
250 |
|
251 // Set filter |
|
252 filter->SetContact(KTestContact3); |
|
253 filter->SetDirection(KTestDirection3); |
|
254 filter->SetDurationType(KLogDurationData); |
|
255 |
|
256 list->AppendL(filter); |
|
257 CleanupStack::Pop(); // filter |
|
258 |
|
259 // Test View |
|
260 active->StartL(); |
|
261 TEST(view->SetFilterL(*list, active->iStatus)); |
|
262 CActiveScheduler::Start(); |
|
263 TEST2(view->CountL(), 3); |
|
264 |
|
265 list->ResetAndDestroy(); |
|
266 |
|
267 ///////////////////////////////////////// |
|
268 |
|
269 filter = CLogFilter::NewL(); |
|
270 CleanupStack::PushL(filter); |
|
271 |
|
272 // Set filter |
|
273 filter->SetContact(KTestContact1); |
|
274 filter->SetDirection(KTestDirection1); |
|
275 filter->SetDurationType(KLogDurationNone); |
|
276 filter->SetEventType(KLogCallEventTypeUid); |
|
277 |
|
278 list->AppendL(filter); |
|
279 CleanupStack::Pop(); // filter |
|
280 |
|
281 // Test View |
|
282 active->StartL(); |
|
283 TEST(view->SetFilterL(*list, active->iStatus)); |
|
284 CActiveScheduler::Start(); |
|
285 TEST2(view->CountL(), 1); |
|
286 |
|
287 filter = CLogFilter::NewL(); |
|
288 CleanupStack::PushL(filter); |
|
289 |
|
290 // Set filter |
|
291 filter->SetContact(KTestContact2); |
|
292 filter->SetDirection(KTestDirection2); |
|
293 filter->SetDurationType(KLogDurationValid); |
|
294 filter->SetEventType(KLogDataEventTypeUid); |
|
295 |
|
296 list->AppendL(filter); |
|
297 CleanupStack::Pop(); // filter |
|
298 |
|
299 // Test View |
|
300 active->StartL(); |
|
301 TEST(view->SetFilterL(*list, active->iStatus)); |
|
302 CActiveScheduler::Start(); |
|
303 TEST2(view->CountL(), 2); |
|
304 |
|
305 filter = CLogFilter::NewL(); |
|
306 CleanupStack::PushL(filter); |
|
307 |
|
308 // Set filter |
|
309 filter->SetContact(KTestContact3); |
|
310 filter->SetDirection(KTestDirection3); |
|
311 filter->SetDurationType(KLogDurationData); |
|
312 filter->SetEventType(KLogFaxEventTypeUid); |
|
313 |
|
314 list->AppendL(filter); |
|
315 CleanupStack::Pop(); // filter |
|
316 |
|
317 // Test View |
|
318 active->StartL(); |
|
319 TEST(view->SetFilterL(*list, active->iStatus)); |
|
320 CActiveScheduler::Start(); |
|
321 TEST2(view->CountL(), 3); |
|
322 |
|
323 list->ResetAndDestroy(); |
|
324 |
|
325 ///////////////////////////////////////// |
|
326 |
|
327 filter = CLogFilter::NewL(); |
|
328 CleanupStack::PushL(filter); |
|
329 |
|
330 // Set filter |
|
331 filter->SetContact(KTestContact1); |
|
332 filter->SetDirection(KTestDirection1); |
|
333 filter->SetDurationType(KLogDurationNone); |
|
334 filter->SetEventType(KLogCallEventTypeUid); |
|
335 filter->SetNumber(KTestNumber1); |
|
336 |
|
337 list->AppendL(filter); |
|
338 CleanupStack::Pop(); // filter |
|
339 |
|
340 // Test View |
|
341 active->StartL(); |
|
342 TEST(view->SetFilterL(*list, active->iStatus)); |
|
343 CActiveScheduler::Start(); |
|
344 TEST2(view->CountL(), 1); |
|
345 |
|
346 filter = CLogFilter::NewL(); |
|
347 CleanupStack::PushL(filter); |
|
348 |
|
349 // Set filter |
|
350 filter->SetContact(KTestContact2); |
|
351 filter->SetDirection(KTestDirection2); |
|
352 filter->SetDurationType(KLogDurationValid); |
|
353 filter->SetEventType(KLogDataEventTypeUid); |
|
354 filter->SetNumber(KTestNumber2); |
|
355 |
|
356 list->AppendL(filter); |
|
357 CleanupStack::Pop(); // filter |
|
358 |
|
359 // Test View |
|
360 active->StartL(); |
|
361 TEST(view->SetFilterL(*list, active->iStatus)); |
|
362 CActiveScheduler::Start(); |
|
363 TEST2(view->CountL(), 2); |
|
364 |
|
365 filter = CLogFilter::NewL(); |
|
366 CleanupStack::PushL(filter); |
|
367 |
|
368 // Set filter |
|
369 filter->SetContact(KTestContact3); |
|
370 filter->SetDirection(KTestDirection3); |
|
371 filter->SetDurationType(KLogDurationData); |
|
372 filter->SetEventType(KLogFaxEventTypeUid); |
|
373 filter->SetNumber(KTestNumber3); |
|
374 |
|
375 list->AppendL(filter); |
|
376 CleanupStack::Pop(); // filter |
|
377 |
|
378 // Test View |
|
379 active->StartL(); |
|
380 TEST(view->SetFilterL(*list, active->iStatus)); |
|
381 CActiveScheduler::Start(); |
|
382 TEST2(view->CountL(), 3); |
|
383 |
|
384 list->ResetAndDestroy(); |
|
385 |
|
386 ///////////////////////////////////////// |
|
387 |
|
388 filter = CLogFilter::NewL(); |
|
389 CleanupStack::PushL(filter); |
|
390 |
|
391 // Set filter |
|
392 filter->SetContact(KTestContact1); |
|
393 filter->SetDirection(KTestDirection1); |
|
394 filter->SetDurationType(KLogDurationNone); |
|
395 filter->SetEventType(KLogCallEventTypeUid); |
|
396 filter->SetNumber(KTestNumber1); |
|
397 filter->SetRemoteParty(KTestRemote1); |
|
398 |
|
399 list->AppendL(filter); |
|
400 CleanupStack::Pop(); // filter |
|
401 |
|
402 // Test View |
|
403 active->StartL(); |
|
404 TEST(view->SetFilterL(*list, active->iStatus)); |
|
405 CActiveScheduler::Start(); |
|
406 TEST2(view->CountL(), 1); |
|
407 |
|
408 filter = CLogFilter::NewL(); |
|
409 CleanupStack::PushL(filter); |
|
410 |
|
411 // Set filter |
|
412 filter->SetContact(KTestContact2); |
|
413 filter->SetDirection(KTestDirection2); |
|
414 filter->SetDurationType(KLogDurationValid); |
|
415 filter->SetEventType(KLogDataEventTypeUid); |
|
416 filter->SetNumber(KTestNumber2); |
|
417 filter->SetRemoteParty(KTestRemote2); |
|
418 |
|
419 list->AppendL(filter); |
|
420 CleanupStack::Pop(); // filter |
|
421 |
|
422 // Test View |
|
423 active->StartL(); |
|
424 TEST(view->SetFilterL(*list, active->iStatus)); |
|
425 CActiveScheduler::Start(); |
|
426 TEST2(view->CountL(), 2); |
|
427 |
|
428 filter = CLogFilter::NewL(); |
|
429 CleanupStack::PushL(filter); |
|
430 |
|
431 // Set filter |
|
432 filter->SetContact(KTestContact3); |
|
433 filter->SetDirection(KTestDirection3); |
|
434 filter->SetDurationType(KLogDurationData); |
|
435 filter->SetEventType(KLogFaxEventTypeUid); |
|
436 filter->SetNumber(KTestNumber3); |
|
437 filter->SetRemoteParty(KTestRemote3); |
|
438 |
|
439 list->AppendL(filter); |
|
440 CleanupStack::Pop(); // filter |
|
441 |
|
442 // Test View |
|
443 active->StartL(); |
|
444 TEST(view->SetFilterL(*list, active->iStatus)); |
|
445 CActiveScheduler::Start(); |
|
446 TEST2(view->CountL(), 3); |
|
447 |
|
448 list->ResetAndDestroy(); |
|
449 |
|
450 ///////////////////////////////////////// |
|
451 |
|
452 filter = CLogFilter::NewL(); |
|
453 CleanupStack::PushL(filter); |
|
454 |
|
455 // Set filter |
|
456 filter->SetContact(KTestContact1); |
|
457 filter->SetDirection(KTestDirection1); |
|
458 filter->SetDurationType(KLogDurationNone); |
|
459 filter->SetEventType(KLogCallEventTypeUid); |
|
460 filter->SetNumber(KTestNumber1); |
|
461 filter->SetRemoteParty(KTestRemote1); |
|
462 filter->SetStatus(KTestStatus1); |
|
463 |
|
464 list->AppendL(filter); |
|
465 CleanupStack::Pop(); // filter |
|
466 |
|
467 // Test View |
|
468 active->StartL(); |
|
469 TEST(view->SetFilterL(*list, active->iStatus)); |
|
470 CActiveScheduler::Start(); |
|
471 TEST2(view->CountL(), 1); |
|
472 |
|
473 filter = CLogFilter::NewL(); |
|
474 CleanupStack::PushL(filter); |
|
475 |
|
476 // Set filter |
|
477 filter->SetContact(KTestContact2); |
|
478 filter->SetDirection(KTestDirection2); |
|
479 filter->SetDurationType(KLogDurationValid); |
|
480 filter->SetEventType(KLogDataEventTypeUid); |
|
481 filter->SetNumber(KTestNumber2); |
|
482 filter->SetRemoteParty(KTestRemote2); |
|
483 filter->SetStatus(KTestStatus2); |
|
484 |
|
485 list->AppendL(filter); |
|
486 CleanupStack::Pop(); // filter |
|
487 |
|
488 // Test View |
|
489 active->StartL(); |
|
490 TEST(view->SetFilterL(*list, active->iStatus)); |
|
491 CActiveScheduler::Start(); |
|
492 TEST2(view->CountL(), 2); |
|
493 |
|
494 filter = CLogFilter::NewL(); |
|
495 CleanupStack::PushL(filter); |
|
496 |
|
497 // Set filter |
|
498 filter->SetContact(KTestContact3); |
|
499 filter->SetDirection(KTestDirection3); |
|
500 filter->SetDurationType(KLogDurationData); |
|
501 filter->SetEventType(KLogFaxEventTypeUid); |
|
502 filter->SetNumber(KTestNumber3); |
|
503 filter->SetRemoteParty(KTestRemote3); |
|
504 filter->SetStatus(KTestStatus3); |
|
505 |
|
506 list->AppendL(filter); |
|
507 CleanupStack::Pop(); // filter |
|
508 |
|
509 // Test View |
|
510 active->StartL(); |
|
511 TEST(view->SetFilterL(*list, active->iStatus)); |
|
512 CActiveScheduler::Start(); |
|
513 TEST2(view->CountL(), 3); |
|
514 |
|
515 list->ResetAndDestroy(); |
|
516 |
|
517 CleanupStack::PopAndDestroy(4); // list, view, event, active |
|
518 } |
|
519 |
|
520 /** |
|
521 @SYMTestCaseID SYSLIB-LOGENG-CT-3432 |
|
522 @SYMTestCaseDesc Test the functionality of CLogViewEvent::SetFilterL with the CLogFilterList parameter containing multiple filters with start time and end time. |
|
523 @SYMTestPriority High |
|
524 @SYMTestActions 1. Add 2 events. |
|
525 2. Setup a CLogFilterList with two filters targeting the first event. Both filters have start and end time. Call SetFilterL. |
|
526 3. Verify view has 1 event and no LogServ panic. |
|
527 4. Clear the filter list. |
|
528 5. Setup filter for first event with start and end time. Call SetFilterL. |
|
529 6. Verify view has one event. |
|
530 7. Setup second filter for second event with start and end time. Append this filter to filter list and call SetFilterL. |
|
531 8. Verify view has 2 events and no LogServ panic. |
|
532 @SYMTestExpectedResults Log view has expected number of events and no LogServ panic. |
|
533 @SYMDEF INC102412 |
|
534 */ |
|
535 LOCAL_C void TestEventViewWithTimestampsInFilterListL(CLogClient& aClient) |
|
536 { |
|
537 test.Next(_L(" @SYMTestCaseID:SYSLIB-LOGENG-CT-3432 ")); |
|
538 TTime testStartTime; |
|
539 testStartTime.UniversalTime(); |
|
540 TTime tomorrow = testStartTime + (TTimeIntervalDays)1; |
|
541 TTime twoDaysFromNow = tomorrow + (TTimeIntervalDays)1; |
|
542 |
|
543 CTestActive* active = new(ELeave)CTestActive; |
|
544 CleanupStack::PushL(active); |
|
545 |
|
546 // Get rid of all the events in the log |
|
547 active->StartL(); |
|
548 aClient.ClearLog(tomorrow, active->iStatus); |
|
549 CActiveScheduler::Start(); |
|
550 TEST2(active->iStatus.Int(), KErrNone); |
|
551 |
|
552 // Wait a second before adding events to log. |
|
553 User::After(1100000); |
|
554 |
|
555 // Add two events to log |
|
556 CLogEvent* event = CLogEvent::NewL(); |
|
557 CleanupStack::PushL(event); |
|
558 |
|
559 // Add event 1 |
|
560 event->SetEventType(KLogCallEventTypeUid); |
|
561 event->SetContact(KTestContact1); |
|
562 event->SetDirection(KTestDirection1); |
|
563 event->SetDurationType(KLogDurationNone); |
|
564 event->SetNumber(KTestNumber1); |
|
565 event->SetRemoteParty(KTestRemote1); |
|
566 event->SetStatus(KTestStatus1); |
|
567 |
|
568 active->StartL(); |
|
569 aClient.AddEvent(*event, active->iStatus); |
|
570 CActiveScheduler::Start(); |
|
571 TEST2(active->iStatus.Int(), KErrNone); |
|
572 |
|
573 // Add event 2 |
|
574 event->SetEventType(KLogDataEventTypeUid); |
|
575 event->SetContact(KTestContact2); |
|
576 event->SetDirection(KTestDirection2); |
|
577 event->SetDurationType(KLogDurationValid); |
|
578 event->SetNumber(KTestNumber2); |
|
579 event->SetRemoteParty(KTestRemote2); |
|
580 event->SetStatus(KTestStatus2); |
|
581 |
|
582 active->StartL(); |
|
583 aClient.AddEvent(*event, active->iStatus); |
|
584 CActiveScheduler::Start(); |
|
585 TEST2(active->iStatus.Int(), KErrNone); |
|
586 |
|
587 // Setup filter |
|
588 CLogFilterList* list = new(ELeave)CLogFilterList; |
|
589 CleanupStack::PushL(list); |
|
590 |
|
591 CLogViewEvent* view = CLogViewEvent::NewL(aClient); |
|
592 CleanupStack::PushL(view); |
|
593 |
|
594 CLogFilter* filter = CLogFilter::NewL(); |
|
595 CleanupStack::PushL(filter); |
|
596 |
|
597 // Set half a filter |
|
598 filter->SetContact(KTestContact1); |
|
599 filter->SetDirection(KTestDirection1); |
|
600 filter->SetDurationType(KLogDurationNone); |
|
601 filter->SetStartTime(testStartTime); |
|
602 TTime t1 = filter->StartTime(); |
|
603 TEST(t1 == testStartTime); |
|
604 filter->SetEndTime(tomorrow); |
|
605 TTime t2 = filter->EndTime(); |
|
606 TEST(t2 == tomorrow); |
|
607 |
|
608 list->AppendL(filter); |
|
609 CleanupStack::Pop(); // filter |
|
610 |
|
611 // set the other half of filter for event 1 |
|
612 filter = CLogFilter::NewL(); |
|
613 CleanupStack::PushL(filter); |
|
614 |
|
615 filter->SetEventType(KLogCallEventTypeUid); |
|
616 filter->SetNumber(KTestNumber1); |
|
617 filter->SetRemoteParty(KTestRemote1); |
|
618 filter->SetStatus(KTestStatus1); |
|
619 |
|
620 // start time is duplicate of previous filter, |
|
621 // end time is not duplicate |
|
622 filter->SetStartTime(testStartTime); |
|
623 filter->SetEndTime(twoDaysFromNow); |
|
624 |
|
625 list->AppendL(filter); |
|
626 CleanupStack::Pop(); // filter |
|
627 |
|
628 // Test View |
|
629 active->StartL(); |
|
630 TEST(view->SetFilterL(*list, active->iStatus)); |
|
631 CActiveScheduler::Start(); |
|
632 TEST2(view->CountL(),1); |
|
633 |
|
634 list->ResetAndDestroy(); |
|
635 |
|
636 // check contents of the event. |
|
637 TBool res = view->FirstL(active->iStatus); |
|
638 TEST(res); |
|
639 active->StartL(); |
|
640 CActiveScheduler::Start(); |
|
641 TEST2(active->iStatus.Int(), KErrNone); |
|
642 |
|
643 TEST2(view->Event().Contact(), KTestContact1); |
|
644 TEST( view->Event().Number() == KTestNumber1); |
|
645 TEST( view->Event().Status() == KTestStatus1); |
|
646 TEST( view->Event().RemoteParty() == KTestRemote1); |
|
647 |
|
648 ///////////////////////////////////////// |
|
649 |
|
650 filter = CLogFilter::NewL(); |
|
651 CleanupStack::PushL(filter); |
|
652 |
|
653 // Set filter |
|
654 filter->SetContact(KTestContact1); |
|
655 filter->SetDirection(KTestDirection1); |
|
656 filter->SetDurationType(KLogDurationNone); |
|
657 filter->SetEventType(KLogCallEventTypeUid); |
|
658 filter->SetNumber(KTestNumber1); |
|
659 filter->SetRemoteParty(KTestRemote1); |
|
660 filter->SetStatus(KTestStatus1); |
|
661 filter->SetStartTime(testStartTime); |
|
662 filter->SetEndTime(tomorrow); |
|
663 |
|
664 list->AppendL(filter); |
|
665 CleanupStack::Pop(); // filter |
|
666 |
|
667 // Test View |
|
668 active->StartL(); |
|
669 TEST(view->SetFilterL(*list, active->iStatus)); |
|
670 CActiveScheduler::Start(); |
|
671 TEST2(view->CountL(), 1); |
|
672 |
|
673 filter = CLogFilter::NewL(); |
|
674 CleanupStack::PushL(filter); |
|
675 |
|
676 // Set filter |
|
677 filter->SetContact(KTestContact2); |
|
678 filter->SetDirection(KTestDirection2); |
|
679 filter->SetDurationType(KLogDurationValid); |
|
680 filter->SetEventType(KLogDataEventTypeUid); |
|
681 filter->SetNumber(KTestNumber2); |
|
682 filter->SetRemoteParty(KTestRemote2); |
|
683 filter->SetStatus(KTestStatus2); |
|
684 |
|
685 // start time is duplicate, |
|
686 // end time is not duplicate |
|
687 filter->SetStartTime(testStartTime); |
|
688 filter->SetEndTime(twoDaysFromNow); |
|
689 |
|
690 list->AppendL(filter); |
|
691 CleanupStack::Pop(); // filter |
|
692 |
|
693 // Test View |
|
694 active->StartL(); |
|
695 TEST(view->SetFilterL(*list, active->iStatus)); |
|
696 CActiveScheduler::Start(); |
|
697 TEST2(view->CountL(), 2); |
|
698 |
|
699 list->ResetAndDestroy(); |
|
700 |
|
701 // check contents of event 2 (most recent) |
|
702 res = view->FirstL(active->iStatus); |
|
703 TEST(res); |
|
704 active->StartL(); |
|
705 CActiveScheduler::Start(); |
|
706 TEST2(active->iStatus.Int(), KErrNone); |
|
707 |
|
708 TEST2(view->Event().Contact(), KTestContact2); |
|
709 TEST( view->Event().Number() == KTestNumber2); |
|
710 TEST( view->Event().Status() == KTestStatus2); |
|
711 TEST( view->Event().RemoteParty() == KTestRemote2); |
|
712 |
|
713 // check contents of event 1 (older) |
|
714 res = view->NextL(active->iStatus); |
|
715 TEST(res); |
|
716 active->StartL(); |
|
717 CActiveScheduler::Start(); |
|
718 TEST2(active->iStatus.Int(), KErrNone); |
|
719 |
|
720 TEST2(view->Event().Contact(), KTestContact1); |
|
721 TEST( view->Event().Number() == KTestNumber1); |
|
722 TEST( view->Event().Status() == KTestStatus1); |
|
723 TEST( view->Event().RemoteParty() == KTestRemote1); |
|
724 |
|
725 CleanupStack::PopAndDestroy(4); // list, view, event, active |
|
726 } |
|
727 |
|
728 /** |
|
729 @SYMTestCaseID SYSLIB-LOGENG-CT-0931 |
|
730 @SYMTestCaseDesc Tests for recent view list with filters |
|
731 @SYMTestPriority High |
|
732 @SYMTestActions Tests for recent view list,with different settings of the filter. |
|
733 @SYMTestExpectedResults Test must not fail |
|
734 @SYMREQ REQ0000 |
|
735 */ |
|
736 LOCAL_C void TestRecentViewWithFilterL(CLogClient& aClient) |
|
737 { |
|
738 test.Next(_L(" @SYMTestCaseID:SYSLIB-LOGENG-CT-0931 ")); |
|
739 CLogEvent* event = CLogEvent::NewL(); |
|
740 CleanupStack::PushL(event); |
|
741 |
|
742 CTestActive* active = new(ELeave)CTestActive(); |
|
743 CleanupStack::PushL(active); |
|
744 |
|
745 CLogViewRecent* view = CLogViewRecent::NewL(aClient); |
|
746 CleanupStack::PushL(view); |
|
747 |
|
748 // Incoming |
|
749 TLogString buf; |
|
750 aClient.GetString(buf, R_LOG_DIR_IN); |
|
751 |
|
752 event->SetEventType(KLogCallEventTypeUid); |
|
753 event->SetDirection(buf); |
|
754 event->SetNumber(_L("1")); |
|
755 |
|
756 // Add event |
|
757 active->StartL(); |
|
758 aClient.AddEvent(*event, active->iStatus); |
|
759 CActiveScheduler::Start(); |
|
760 TEST2(active->iStatus.Int(), KErrNone); |
|
761 |
|
762 event->SetDurationType(KLogDurationData); |
|
763 event->SetNumber(_L("2")); |
|
764 |
|
765 // Add event |
|
766 active->StartL(); |
|
767 aClient.AddEvent(*event, active->iStatus); |
|
768 CActiveScheduler::Start(); |
|
769 TEST2(active->iStatus.Int(), KErrNone); |
|
770 |
|
771 event->SetStatus(KTestStatus1); |
|
772 event->SetNumber(_L("3")); |
|
773 |
|
774 // Add event |
|
775 active->StartL(); |
|
776 aClient.AddEvent(*event, active->iStatus); |
|
777 CActiveScheduler::Start(); |
|
778 TEST2(active->iStatus.Int(), KErrNone); |
|
779 |
|
780 event->SetContact(KTestContact1); |
|
781 event->SetNumber(_L("4")); |
|
782 |
|
783 // Add event |
|
784 active->StartL(); |
|
785 aClient.AddEvent(*event, active->iStatus); |
|
786 CActiveScheduler::Start(); |
|
787 TEST2(active->iStatus.Int(), KErrNone); |
|
788 |
|
789 active->StartL(); |
|
790 TEST(view->SetRecentListL(KLogRecentIncomingCalls, active->iStatus)); |
|
791 CActiveScheduler::Start(); |
|
792 TEST2(view->CountL(), 4); |
|
793 |
|
794 CLogFilter* filter = CLogFilter::NewL(); |
|
795 CleanupStack::PushL(filter); |
|
796 |
|
797 // This should make no difference |
|
798 filter->SetEventType(KLogCallEventTypeUid); |
|
799 |
|
800 active->StartL(); |
|
801 TEST(view->SetRecentListL(KLogRecentIncomingCalls, *filter, active->iStatus)); |
|
802 CActiveScheduler::Start(); |
|
803 TEST2(view->CountL(), 4); |
|
804 |
|
805 // This should make no difference |
|
806 filter->SetDirection(buf); |
|
807 |
|
808 active->StartL(); |
|
809 TEST(view->SetRecentListL(KLogRecentIncomingCalls, *filter, active->iStatus)); |
|
810 CActiveScheduler::Start(); |
|
811 TEST2(view->CountL(), 4); |
|
812 |
|
813 filter->SetDurationType(KLogDurationData); |
|
814 |
|
815 active->StartL(); |
|
816 TEST(view->SetRecentListL(KLogRecentIncomingCalls, *filter, active->iStatus)); |
|
817 CActiveScheduler::Start(); |
|
818 TEST2(view->CountL(), 3); |
|
819 |
|
820 filter->SetStatus(KTestStatus1); |
|
821 |
|
822 active->StartL(); |
|
823 TEST(view->SetRecentListL(KLogRecentIncomingCalls, *filter, active->iStatus)); |
|
824 CActiveScheduler::Start(); |
|
825 TEST2(view->CountL(), 2); |
|
826 |
|
827 filter->SetContact(KTestContact1); |
|
828 |
|
829 active->StartL(); |
|
830 TEST(view->SetRecentListL(KLogRecentIncomingCalls, *filter, active->iStatus)); |
|
831 CActiveScheduler::Start(); |
|
832 TEST2(view->CountL(), 1); |
|
833 |
|
834 filter->SetStatus(_L("Dummy")); |
|
835 TEST(!view->SetRecentListL(KLogRecentIncomingCalls, *filter, active->iStatus)); |
|
836 |
|
837 CleanupStack::PopAndDestroy(4); // filter, view, active, event |
|
838 } |
|
839 |
|
840 /** |
|
841 @SYMTestCaseID SYSLIB-LOGENG-CT-0932 |
|
842 @SYMTestCaseDesc Tests for recent view list with filter set for the view |
|
843 @SYMTestPriority High |
|
844 @SYMTestActions Tests for recent view list set by the specified set of filters. |
|
845 @SYMTestExpectedResults Test must not fail |
|
846 @SYMREQ REQ0000 |
|
847 */ |
|
848 LOCAL_C void TestRecentViewWithFilterListL(CLogClient& aClient) |
|
849 { |
|
850 test.Next(_L(" @SYMTestCaseID:SYSLIB-LOGENG-CT-0932 ")); |
|
851 CLogEvent* event = CLogEvent::NewL(); |
|
852 CleanupStack::PushL(event); |
|
853 |
|
854 CTestActive* active = new(ELeave)CTestActive(); |
|
855 CleanupStack::PushL(active); |
|
856 |
|
857 CLogViewRecent* view = CLogViewRecent::NewL(aClient); |
|
858 CleanupStack::PushL(view); |
|
859 |
|
860 // Make sure there are no entries in any recent lists |
|
861 active->StartL(); |
|
862 aClient.ClearLog(KLogNullRecentList, active->iStatus); |
|
863 CActiveScheduler::Start(); |
|
864 TEST2(active->iStatus.Int(), KErrNone); |
|
865 |
|
866 // Incoming |
|
867 TLogString buf; |
|
868 aClient.GetString(buf, R_LOG_DIR_IN); |
|
869 |
|
870 event->SetEventType(KLogCallEventTypeUid); |
|
871 event->SetDirection(buf); |
|
872 event->SetDurationType(KLogDurationNone); |
|
873 event->SetContact(KTestContact1); |
|
874 event->SetStatus(KTestStatus1); |
|
875 |
|
876 // Add event |
|
877 active->StartL(); |
|
878 aClient.AddEvent(*event, active->iStatus); |
|
879 CActiveScheduler::Start(); |
|
880 TEST2(active->iStatus.Int(), KErrNone); |
|
881 |
|
882 event->SetDurationType(KLogDurationValid); |
|
883 event->SetContact(KTestContact2); |
|
884 event->SetStatus(KTestStatus2); |
|
885 |
|
886 // Add event |
|
887 active->StartL(); |
|
888 aClient.AddEvent(*event, active->iStatus); |
|
889 CActiveScheduler::Start(); |
|
890 TEST2(active->iStatus.Int(), KErrNone); |
|
891 |
|
892 event->SetDurationType(KLogDurationData); |
|
893 event->SetContact(KTestContact3); |
|
894 event->SetStatus(KTestStatus3); |
|
895 |
|
896 // Add event |
|
897 active->StartL(); |
|
898 aClient.AddEvent(*event, active->iStatus); |
|
899 CActiveScheduler::Start(); |
|
900 TEST2(active->iStatus.Int(), KErrNone); |
|
901 |
|
902 active->StartL(); |
|
903 TEST(view->SetRecentListL(KLogRecentIncomingCalls, active->iStatus)); |
|
904 CActiveScheduler::Start(); |
|
905 TEST2(active->iStatus.Int(), KErrNone); |
|
906 TEST2(view->CountL(), 3); |
|
907 |
|
908 CLogFilterList* list = new(ELeave)CLogFilterList; |
|
909 CleanupStack::PushL(list); |
|
910 |
|
911 CLogFilter* filter = CLogFilter::NewL(); |
|
912 CleanupStack::PushL(filter); |
|
913 list->AppendL(filter); |
|
914 CleanupStack::Pop(); // filter |
|
915 |
|
916 filter->SetDurationType(KLogDurationNone); |
|
917 filter->SetStatus(KTestStatus1); |
|
918 filter->SetContact(KTestContact1); |
|
919 |
|
920 active->StartL(); |
|
921 TEST(view->SetRecentListL(KLogRecentIncomingCalls, *list, active->iStatus)); |
|
922 CActiveScheduler::Start(); |
|
923 TEST2(active->iStatus.Int(), KErrNone); |
|
924 TEST2(view->CountL(), 1); |
|
925 |
|
926 filter = CLogFilter::NewL(); |
|
927 CleanupStack::PushL(filter); |
|
928 list->AppendL(filter); |
|
929 CleanupStack::Pop(); // filter |
|
930 |
|
931 filter->SetDurationType(KLogDurationValid); |
|
932 filter->SetStatus(KTestStatus2); |
|
933 filter->SetContact(KTestContact2); |
|
934 |
|
935 active->StartL(); |
|
936 TEST(view->SetRecentListL(KLogRecentIncomingCalls, *list, active->iStatus)); |
|
937 CActiveScheduler::Start(); |
|
938 TEST2(active->iStatus.Int(), KErrNone); |
|
939 TEST2(view->CountL(), 2); |
|
940 |
|
941 filter = CLogFilter::NewL(); |
|
942 CleanupStack::PushL(filter); |
|
943 list->AppendL(filter); |
|
944 CleanupStack::Pop(); // filter |
|
945 |
|
946 filter->SetDurationType(KLogDurationData); |
|
947 filter->SetStatus(KTestStatus3); |
|
948 filter->SetContact(KTestContact3); |
|
949 |
|
950 active->StartL(); |
|
951 TEST(view->SetRecentListL(KLogRecentIncomingCalls, *list, active->iStatus)); |
|
952 CActiveScheduler::Start(); |
|
953 TEST2(active->iStatus.Int(), KErrNone); |
|
954 TEST2(view->CountL(), 3); |
|
955 |
|
956 list->ResetAndDestroy(); |
|
957 CleanupStack::PopAndDestroy(4); // list, view, active, event |
|
958 } |
|
959 |
|
960 /** |
|
961 @SYMTestCaseID SYSLIB-LOGENG-CT-0933 |
|
962 @SYMTestCaseDesc Tests for duplicate event view with filter |
|
963 @SYMTestPriority High |
|
964 @SYMTestActions Tests for duplicate event view count. |
|
965 @SYMTestExpectedResults Test must not fail |
|
966 @SYMREQ REQ0000 |
|
967 */ |
|
968 LOCAL_C void TestDuplicateViewWithFilterL(CLogClient& aClient) |
|
969 { |
|
970 test.Next(_L(" @SYMTestCaseID:SYSLIB-LOGENG-CT-0933 ")); |
|
971 CLogEvent* event = CLogEvent::NewL(); |
|
972 CleanupStack::PushL(event); |
|
973 |
|
974 CTestActive* active = new(ELeave)CTestActive(); |
|
975 CleanupStack::PushL(active); |
|
976 |
|
977 CLogViewRecent* view = CLogViewRecent::NewL(aClient); |
|
978 CleanupStack::PushL(view); |
|
979 |
|
980 CLogViewDuplicate* duplicate = CLogViewDuplicate::NewL(aClient); |
|
981 CleanupStack::PushL(duplicate); |
|
982 |
|
983 // Make sure there are no entries in any recent lists |
|
984 active->StartL(); |
|
985 aClient.ClearLog(KLogNullRecentList, active->iStatus); |
|
986 CActiveScheduler::Start(); |
|
987 TEST2(active->iStatus.Int(), KErrNone); |
|
988 |
|
989 // Incoming |
|
990 TLogString buf; |
|
991 aClient.GetString(buf, R_LOG_DIR_IN); |
|
992 |
|
993 event->SetEventType(KLogCallEventTypeUid); |
|
994 event->SetDirection(buf); |
|
995 event->SetContact(KTestContact1); |
|
996 |
|
997 // Add event |
|
998 active->StartL(); |
|
999 aClient.AddEvent(*event, active->iStatus); |
|
1000 CActiveScheduler::Start(); |
|
1001 TEST2(active->iStatus.Int(), KErrNone); |
|
1002 |
|
1003 event->SetDurationType(KLogDurationValid); |
|
1004 |
|
1005 // Add event |
|
1006 active->StartL(); |
|
1007 aClient.AddEvent(*event, active->iStatus); |
|
1008 CActiveScheduler::Start(); |
|
1009 TEST2(active->iStatus.Int(), KErrNone); |
|
1010 |
|
1011 event->SetStatus(KTestStatus1); |
|
1012 |
|
1013 // Add event |
|
1014 active->StartL(); |
|
1015 aClient.AddEvent(*event, active->iStatus); |
|
1016 CActiveScheduler::Start(); |
|
1017 TEST2(active->iStatus.Int(), KErrNone); |
|
1018 |
|
1019 event->SetDurationType(KLogDurationNone); |
|
1020 event->SetStatus(KNullDesC); |
|
1021 |
|
1022 // Add event - This will be the entry in recent list |
|
1023 active->StartL(); |
|
1024 aClient.AddEvent(*event, active->iStatus); |
|
1025 CActiveScheduler::Start(); |
|
1026 TEST2(active->iStatus.Int(), KErrNone); |
|
1027 TLogId logId1 = event->Id(); |
|
1028 |
|
1029 // Should only be one event in recent list - the rest are duplicates |
|
1030 active->StartL(); |
|
1031 TEST(view->SetRecentListL(KLogRecentIncomingCalls, active->iStatus)); |
|
1032 CActiveScheduler::Start(); |
|
1033 TEST2(active->iStatus.Int(), KErrNone); |
|
1034 TEST2(view->CountL(), 1); |
|
1035 |
|
1036 TLogRecentList recentList = view->RecentList(); |
|
1037 TEST(recentList == KLogRecentIncomingCalls); |
|
1038 |
|
1039 // Check duplicate count |
|
1040 active->StartL(); |
|
1041 TEST(view->DuplicatesL(*duplicate, active->iStatus)); |
|
1042 CActiveScheduler::Start(); |
|
1043 TEST2(active->iStatus.Int(), KErrNone); |
|
1044 TEST2(duplicate->CountL(), 3); |
|
1045 |
|
1046 TLogId logId2 = duplicate->Source(); |
|
1047 TEST(logId1 == logId2); |
|
1048 |
|
1049 CLogFilter* filter = CLogFilter::NewL(); |
|
1050 CleanupStack::PushL(filter); |
|
1051 |
|
1052 active->StartL(); |
|
1053 TEST(view->DuplicatesL(*duplicate, *filter, active->iStatus)); |
|
1054 CActiveScheduler::Start(); |
|
1055 TEST2(active->iStatus.Int(), KErrNone); |
|
1056 TEST2(duplicate->CountL(), 3); |
|
1057 |
|
1058 filter->SetDurationType(KLogDurationValid); |
|
1059 |
|
1060 active->StartL(); |
|
1061 TEST(view->DuplicatesL(*duplicate, *filter, active->iStatus)); |
|
1062 CActiveScheduler::Start(); |
|
1063 TEST2(active->iStatus.Int(), KErrNone); |
|
1064 TEST2(duplicate->CountL(), 2); |
|
1065 |
|
1066 filter->SetStatus(KTestStatus1); |
|
1067 |
|
1068 active->StartL(); |
|
1069 TEST(view->DuplicatesL(*duplicate, *filter, active->iStatus)); |
|
1070 CActiveScheduler::Start(); |
|
1071 TEST2(active->iStatus.Int(), KErrNone); |
|
1072 TEST2(duplicate->CountL(), 1); |
|
1073 |
|
1074 filter->SetStatus(KTestStatus2); |
|
1075 TEST(!view->DuplicatesL(*duplicate, *filter, active->iStatus)); |
|
1076 |
|
1077 CleanupStack::PopAndDestroy(5); // filter, duplicate, view, active, event |
|
1078 } |
|
1079 |
|
1080 /** |
|
1081 @SYMTestCaseID SYSLIB-LOGENG-CT-0934 |
|
1082 @SYMTestCaseDesc Tests for duplicate event view with filter list |
|
1083 @SYMTestPriority High |
|
1084 @SYMTestActions Tests for duplicate event view count,set by the specified set of filters. |
|
1085 @SYMTestExpectedResults Test must not fail |
|
1086 @SYMREQ REQ0000 |
|
1087 */ |
|
1088 LOCAL_C void TestDuplicateViewWithFilterListL(CLogClient& aClient) |
|
1089 { |
|
1090 test.Next(_L(" @SYMTestCaseID:SYSLIB-LOGENG-CT-0934 ")); |
|
1091 CLogEvent* event = CLogEvent::NewL(); |
|
1092 CleanupStack::PushL(event); |
|
1093 |
|
1094 CTestActive* active = new(ELeave)CTestActive(); |
|
1095 CleanupStack::PushL(active); |
|
1096 |
|
1097 CLogViewRecent* view = CLogViewRecent::NewL(aClient); |
|
1098 CleanupStack::PushL(view); |
|
1099 |
|
1100 CLogViewDuplicate* duplicate = CLogViewDuplicate::NewL(aClient); |
|
1101 CleanupStack::PushL(duplicate); |
|
1102 |
|
1103 // Make sure there are no entries in any recent lists |
|
1104 active->StartL(); |
|
1105 aClient.ClearLog(KLogNullRecentList, active->iStatus); |
|
1106 CActiveScheduler::Start(); |
|
1107 TEST2(active->iStatus.Int(), KErrNone); |
|
1108 |
|
1109 // Incoming |
|
1110 TLogString buf; |
|
1111 aClient.GetString(buf, R_LOG_DIR_IN); |
|
1112 |
|
1113 event->SetEventType(KLogCallEventTypeUid); |
|
1114 event->SetDirection(buf); |
|
1115 event->SetContact(KTestContact1); |
|
1116 |
|
1117 event->SetDurationType(KLogDurationNone); |
|
1118 event->SetStatus(KNullDesC); |
|
1119 |
|
1120 // Add event |
|
1121 active->StartL(); |
|
1122 aClient.AddEvent(*event, active->iStatus); |
|
1123 CActiveScheduler::Start(); |
|
1124 TEST2(active->iStatus.Int(), KErrNone); |
|
1125 |
|
1126 event->SetDurationType(KLogDurationValid); |
|
1127 |
|
1128 active->StartL(); |
|
1129 aClient.AddEvent(*event, active->iStatus); |
|
1130 CActiveScheduler::Start(); |
|
1131 TEST2(active->iStatus.Int(), KErrNone); |
|
1132 |
|
1133 event->SetDurationType(KLogDurationData); |
|
1134 |
|
1135 active->StartL(); |
|
1136 aClient.AddEvent(*event, active->iStatus); |
|
1137 CActiveScheduler::Start(); |
|
1138 TEST2(active->iStatus.Int(), KErrNone); |
|
1139 |
|
1140 // Final event will be most recent |
|
1141 event->SetDurationType(KLogDurationNone); |
|
1142 event->SetStatus(KNullDesC); |
|
1143 |
|
1144 // Add event |
|
1145 active->StartL(); |
|
1146 aClient.AddEvent(*event, active->iStatus); |
|
1147 CActiveScheduler::Start(); |
|
1148 TEST2(active->iStatus.Int(), KErrNone); |
|
1149 |
|
1150 CLogFilterList* list = new(ELeave)CLogFilterList; |
|
1151 CleanupStack::PushL(list); |
|
1152 |
|
1153 active->StartL(); |
|
1154 TEST(view->SetRecentListL(KLogRecentIncomingCalls, active->iStatus)); |
|
1155 CActiveScheduler::Start(); |
|
1156 TEST2(active->iStatus.Int(), KErrNone); |
|
1157 TEST2(view->CountL(), 1); |
|
1158 |
|
1159 active->StartL(); |
|
1160 TEST(view->DuplicatesL(*duplicate, active->iStatus)); |
|
1161 CActiveScheduler::Start(); |
|
1162 TEST2(active->iStatus.Int(), KErrNone); |
|
1163 TEST2(duplicate->CountL(), 3); |
|
1164 |
|
1165 CLogFilter* filter = CLogFilter::NewL(); |
|
1166 CleanupStack::PushL(filter); |
|
1167 list->AppendL(filter); |
|
1168 CleanupStack::Pop(); // filter |
|
1169 |
|
1170 filter->SetDurationType(KLogDurationValid); |
|
1171 |
|
1172 active->StartL(); |
|
1173 TEST(view->DuplicatesL(*duplicate, *list, active->iStatus)); |
|
1174 CActiveScheduler::Start(); |
|
1175 TEST2(active->iStatus.Int(), KErrNone); |
|
1176 TEST2(duplicate->CountL(), 1); |
|
1177 |
|
1178 filter = CLogFilter::NewL(); |
|
1179 CleanupStack::PushL(filter); |
|
1180 list->AppendL(filter); |
|
1181 CleanupStack::Pop(); // filter |
|
1182 |
|
1183 filter->SetDurationType(KLogDurationData); |
|
1184 |
|
1185 active->StartL(); |
|
1186 TEST(view->DuplicatesL(*duplicate, *list, active->iStatus)); |
|
1187 CActiveScheduler::Start(); |
|
1188 TEST2(active->iStatus.Int(), KErrNone); |
|
1189 TEST2(duplicate->CountL(), 2); |
|
1190 |
|
1191 list->ResetAndDestroy(); |
|
1192 CleanupStack::PopAndDestroy(5); // list, duplicate, view, active, event |
|
1193 } |
|
1194 |
|
1195 /** |
|
1196 @SYMTestCaseID SYSLIB-LOGENG-CT-0935 |
|
1197 @SYMTestCaseDesc Tests for null field set on filter in the event view |
|
1198 Tests for CLogFilter::SetNullFields() function |
|
1199 @SYMTestPriority High |
|
1200 @SYMTestActions Clear the log events and add new events with fields set in.Define null fields in the filter and check the view |
|
1201 @SYMTestExpectedResults Test must not fail |
|
1202 @SYMREQ REQ0000 |
|
1203 */ |
|
1204 LOCAL_C void TestEventViewForNullFieldsL(CLogClient& aClient) |
|
1205 { |
|
1206 test.Next(_L(" @SYMTestCaseID:SYSLIB-LOGENG-CT-0935 ")); |
|
1207 CTestActive* active = new(ELeave)CTestActive; |
|
1208 CleanupStack::PushL(active); |
|
1209 |
|
1210 CLogEvent* event = CLogEvent::NewL(); |
|
1211 CleanupStack::PushL(event); |
|
1212 event->SetEventType(KLogCallEventTypeUid); |
|
1213 |
|
1214 CLogViewEvent* view = CLogViewEvent::NewL(aClient); |
|
1215 CleanupStack::PushL(view); |
|
1216 |
|
1217 CLogFilter* filter = CLogFilter::NewL(); |
|
1218 CleanupStack::PushL(filter); |
|
1219 |
|
1220 // Wait a second |
|
1221 User::After(1000000); |
|
1222 |
|
1223 TTime now; |
|
1224 now.UniversalTime(); |
|
1225 now += (TTimeIntervalDays)+1; |
|
1226 // Get rid of all the events in the log |
|
1227 active->StartL(); |
|
1228 aClient.ClearLog(now, active->iStatus); |
|
1229 CActiveScheduler::Start(); |
|
1230 TEST2(active->iStatus.Int(), KErrNone); |
|
1231 |
|
1232 // Make sure there are no events |
|
1233 TEST(!view->SetFilterL(*filter, active->iStatus)); |
|
1234 |
|
1235 active->StartL(); |
|
1236 aClient.AddEvent(*event, active->iStatus); |
|
1237 CActiveScheduler::Start(); |
|
1238 TEST2(active->iStatus.Int(), KErrNone); |
|
1239 |
|
1240 event->SetContact(KTestContact1); |
|
1241 |
|
1242 active->StartL(); |
|
1243 aClient.AddEvent(*event, active->iStatus); |
|
1244 CActiveScheduler::Start(); |
|
1245 TEST2(active->iStatus.Int(), KErrNone); |
|
1246 |
|
1247 event->SetDirection(KTestDirection1); |
|
1248 |
|
1249 active->StartL(); |
|
1250 aClient.AddEvent(*event, active->iStatus); |
|
1251 CActiveScheduler::Start(); |
|
1252 TEST2(active->iStatus.Int(), KErrNone); |
|
1253 |
|
1254 event->SetNumber(KTestNumber1); |
|
1255 |
|
1256 active->StartL(); |
|
1257 aClient.AddEvent(*event, active->iStatus); |
|
1258 CActiveScheduler::Start(); |
|
1259 TEST2(active->iStatus.Int(), KErrNone); |
|
1260 |
|
1261 event->SetRemoteParty(KTestRemote1); |
|
1262 |
|
1263 active->StartL(); |
|
1264 aClient.AddEvent(*event, active->iStatus); |
|
1265 CActiveScheduler::Start(); |
|
1266 TEST2(active->iStatus.Int(), KErrNone); |
|
1267 |
|
1268 event->SetStatus(KTestStatus1); |
|
1269 |
|
1270 active->StartL(); |
|
1271 aClient.AddEvent(*event, active->iStatus); |
|
1272 CActiveScheduler::Start(); |
|
1273 TEST2(active->iStatus.Int(), KErrNone); |
|
1274 |
|
1275 event->SetSubject(KTestSubject); |
|
1276 |
|
1277 active->StartL(); |
|
1278 aClient.AddEvent(*event, active->iStatus); |
|
1279 CActiveScheduler::Start(); |
|
1280 TEST2(active->iStatus.Int(), KErrNone); |
|
1281 |
|
1282 event->SetLink(KTestLink); |
|
1283 |
|
1284 active->StartL(); |
|
1285 aClient.AddEvent(*event, active->iStatus); |
|
1286 CActiveScheduler::Start(); |
|
1287 TEST2(active->iStatus.Int(), KErrNone); |
|
1288 |
|
1289 event->SetDataL(KTestData); |
|
1290 |
|
1291 active->StartL(); |
|
1292 aClient.AddEvent(*event, active->iStatus); |
|
1293 CActiveScheduler::Start(); |
|
1294 TEST2(active->iStatus.Int(), KErrNone); |
|
1295 |
|
1296 // Test for NULL fields |
|
1297 |
|
1298 active->StartL(); |
|
1299 TEST(view->SetFilterL(*filter, active->iStatus)); |
|
1300 CActiveScheduler::Start(); |
|
1301 TEST2(active->iStatus.Int(), KErrNone); |
|
1302 TEST2(view->CountL(), 9); |
|
1303 |
|
1304 filter->SetNullFields(ELogContactField); |
|
1305 |
|
1306 active->StartL(); |
|
1307 TEST(view->SetFilterL(*filter, active->iStatus)); |
|
1308 CActiveScheduler::Start(); |
|
1309 TEST2(active->iStatus.Int(), KErrNone); |
|
1310 TEST2(view->CountL(), 1); |
|
1311 |
|
1312 filter->SetNullFields(ELogContactField | ELogDirectionField); |
|
1313 |
|
1314 active->StartL(); |
|
1315 TEST(view->SetFilterL(*filter, active->iStatus)); |
|
1316 CActiveScheduler::Start(); |
|
1317 TEST2(active->iStatus.Int(), KErrNone); |
|
1318 TEST2(view->CountL(), 1); |
|
1319 |
|
1320 filter->SetNullFields(ELogContactField | ELogDirectionField); |
|
1321 |
|
1322 active->StartL(); |
|
1323 TEST(view->SetFilterL(*filter, active->iStatus)); |
|
1324 CActiveScheduler::Start(); |
|
1325 TEST2(active->iStatus.Int(), KErrNone); |
|
1326 TEST2(view->CountL(), 1); |
|
1327 |
|
1328 filter->SetNullFields(ELogContactField | ELogDirectionField | ELogNumberField); |
|
1329 |
|
1330 active->StartL(); |
|
1331 TEST(view->SetFilterL(*filter, active->iStatus)); |
|
1332 CActiveScheduler::Start(); |
|
1333 TEST2(active->iStatus.Int(), KErrNone); |
|
1334 TEST2(view->CountL(), 1); |
|
1335 |
|
1336 filter->SetNullFields(ELogContactField | ELogDirectionField | ELogNumberField | ELogRemotePartyField); |
|
1337 |
|
1338 active->StartL(); |
|
1339 TEST(view->SetFilterL(*filter, active->iStatus)); |
|
1340 CActiveScheduler::Start(); |
|
1341 TEST2(active->iStatus.Int(), KErrNone); |
|
1342 TEST2(view->CountL(), 1); |
|
1343 |
|
1344 filter->SetNullFields(ELogContactField | ELogDirectionField | ELogNumberField | ELogRemotePartyField | ELogStatusField); |
|
1345 |
|
1346 active->StartL(); |
|
1347 TEST(view->SetFilterL(*filter, active->iStatus)); |
|
1348 CActiveScheduler::Start(); |
|
1349 TEST2(active->iStatus.Int(), KErrNone); |
|
1350 TEST2(view->CountL(), 1); |
|
1351 |
|
1352 filter->SetNullFields(ELogContactField | ELogDirectionField | ELogNumberField | ELogRemotePartyField | ELogStatusField | ELogSubjectField); |
|
1353 |
|
1354 active->StartL(); |
|
1355 TEST(view->SetFilterL(*filter, active->iStatus)); |
|
1356 CActiveScheduler::Start(); |
|
1357 TEST2(active->iStatus.Int(), KErrNone); |
|
1358 TEST2(view->CountL(), 1); |
|
1359 |
|
1360 filter->SetNullFields(ELogContactField | ELogDirectionField | ELogNumberField | ELogRemotePartyField | ELogStatusField | ELogSubjectField | ELogLinkField); |
|
1361 |
|
1362 active->StartL(); |
|
1363 TEST(view->SetFilterL(*filter, active->iStatus)); |
|
1364 CActiveScheduler::Start(); |
|
1365 TEST2(active->iStatus.Int(), KErrNone); |
|
1366 TEST2(view->CountL(), 1); |
|
1367 |
|
1368 filter->SetNullFields(ELogContactField | ELogDirectionField | ELogNumberField | ELogRemotePartyField | ELogStatusField | ELogSubjectField | ELogLinkField | ELogDataField); |
|
1369 |
|
1370 active->StartL(); |
|
1371 TEST(view->SetFilterL(*filter, active->iStatus)); |
|
1372 CActiveScheduler::Start(); |
|
1373 TEST2(active->iStatus.Int(), KErrNone); |
|
1374 TEST2(view->CountL(), 1); |
|
1375 |
|
1376 CleanupStack::PopAndDestroy(4); // filter, view, event, active |
|
1377 } |
|
1378 |
|
1379 /** |
|
1380 @SYMTestCaseID SYSLIB-LOGENG-CT-0936 |
|
1381 @SYMTestCaseDesc Tests for null field set on filter for the recent event view list |
|
1382 @SYMTestPriority High |
|
1383 @SYMTestActions Clear the log events and add new events with fields set in.Define null fields in the filter and check the view |
|
1384 @SYMTestExpectedResults Test must not fail |
|
1385 @SYMREQ REQ0000 |
|
1386 */ |
|
1387 LOCAL_C void TestRecentViewForNullFieldsL(CLogClient& aClient) |
|
1388 { |
|
1389 test.Next(_L(" @SYMTestCaseID:SYSLIB-LOGENG-CT-0936 ")); |
|
1390 CLogEvent* event = CLogEvent::NewL(); |
|
1391 CleanupStack::PushL(event); |
|
1392 |
|
1393 CTestActive* active = new(ELeave)CTestActive(); |
|
1394 CleanupStack::PushL(active); |
|
1395 |
|
1396 CLogViewRecent* view = CLogViewRecent::NewL(aClient); |
|
1397 CleanupStack::PushL(view); |
|
1398 |
|
1399 // Incoming |
|
1400 TLogString buf; |
|
1401 aClient.GetString(buf, R_LOG_DIR_IN); |
|
1402 |
|
1403 event->SetEventType(KLogCallEventTypeUid); |
|
1404 event->SetDirection(buf); |
|
1405 event->SetNumber(_L("1")); |
|
1406 |
|
1407 // Add event |
|
1408 active->StartL(); |
|
1409 aClient.AddEvent(*event, active->iStatus); |
|
1410 CActiveScheduler::Start(); |
|
1411 TEST2(active->iStatus.Int(), KErrNone); |
|
1412 |
|
1413 event->SetStatus(KTestStatus1); |
|
1414 event->SetNumber(_L("2")); |
|
1415 |
|
1416 // Add event |
|
1417 active->StartL(); |
|
1418 aClient.AddEvent(*event, active->iStatus); |
|
1419 CActiveScheduler::Start(); |
|
1420 TEST2(active->iStatus.Int(), KErrNone); |
|
1421 |
|
1422 event->SetSubject(KTestSubject); |
|
1423 event->SetNumber(_L("3")); |
|
1424 |
|
1425 active->StartL(); |
|
1426 aClient.AddEvent(*event, active->iStatus); |
|
1427 CActiveScheduler::Start(); |
|
1428 TEST2(active->iStatus.Int(), KErrNone); |
|
1429 |
|
1430 event->SetLink(KTestLink); |
|
1431 event->SetNumber(_L("4")); |
|
1432 |
|
1433 active->StartL(); |
|
1434 aClient.AddEvent(*event, active->iStatus); |
|
1435 CActiveScheduler::Start(); |
|
1436 TEST2(active->iStatus.Int(), KErrNone); |
|
1437 |
|
1438 event->SetDataL(KTestData); |
|
1439 event->SetNumber(_L("5")); |
|
1440 |
|
1441 active->StartL(); |
|
1442 aClient.AddEvent(*event, active->iStatus); |
|
1443 CActiveScheduler::Start(); |
|
1444 TEST2(active->iStatus.Int(), KErrNone); |
|
1445 |
|
1446 active->StartL(); |
|
1447 TEST(view->SetRecentListL(KLogRecentIncomingCalls, active->iStatus)); |
|
1448 CActiveScheduler::Start(); |
|
1449 TEST2(view->CountL(), 5); |
|
1450 |
|
1451 CLogFilter* filter = CLogFilter::NewL(); |
|
1452 CleanupStack::PushL(filter); |
|
1453 |
|
1454 // Test for NULL fields |
|
1455 |
|
1456 filter->SetNullFields(ELogStatusField); |
|
1457 |
|
1458 active->StartL(); |
|
1459 TEST(view->SetRecentListL(KLogRecentIncomingCalls, *filter, active->iStatus)); |
|
1460 CActiveScheduler::Start(); |
|
1461 TEST2(view->CountL(), 1); |
|
1462 |
|
1463 filter->SetNullFields(ELogStatusField | ELogSubjectField); |
|
1464 |
|
1465 active->StartL(); |
|
1466 TEST(view->SetRecentListL(KLogRecentIncomingCalls, *filter, active->iStatus)); |
|
1467 CActiveScheduler::Start(); |
|
1468 TEST2(view->CountL(), 1); |
|
1469 |
|
1470 filter->SetNullFields(ELogStatusField | ELogSubjectField | ELogLinkField); |
|
1471 |
|
1472 active->StartL(); |
|
1473 TEST(view->SetRecentListL(KLogRecentIncomingCalls, *filter, active->iStatus)); |
|
1474 CActiveScheduler::Start(); |
|
1475 TEST2(view->CountL(), 1); |
|
1476 |
|
1477 filter->SetNullFields(ELogStatusField | ELogSubjectField | ELogLinkField | ELogDataField); |
|
1478 |
|
1479 active->StartL(); |
|
1480 TEST(view->SetRecentListL(KLogRecentIncomingCalls, *filter, active->iStatus)); |
|
1481 CActiveScheduler::Start(); |
|
1482 TEST2(view->CountL(), 1); |
|
1483 |
|
1484 CleanupStack::PopAndDestroy(4); // filter, view, active, event |
|
1485 } |
|
1486 |
|
1487 /** |
|
1488 @SYMTestCaseID SYSLIB-LOGENG-CT-0937 |
|
1489 @SYMTestCaseDesc Tests for null field set on filter for the duplicate event view list |
|
1490 @SYMTestPriority High |
|
1491 @SYMTestActions Clear the log events and add new events with fields set in.Define null fields in the filter and check the view |
|
1492 @SYMTestExpectedResults Test must not fail |
|
1493 @SYMREQ REQ0000 |
|
1494 */ |
|
1495 LOCAL_C void TestDuplicateViewForNullFieldsL(CLogClient& aClient) |
|
1496 { |
|
1497 test.Next(_L(" @SYMTestCaseID:SYSLIB-LOGENG-CT-0937 ")); |
|
1498 CLogEvent* event = CLogEvent::NewL(); |
|
1499 CleanupStack::PushL(event); |
|
1500 |
|
1501 CTestActive* active = new(ELeave)CTestActive(); |
|
1502 CleanupStack::PushL(active); |
|
1503 |
|
1504 CLogViewRecent* view = CLogViewRecent::NewL(aClient); |
|
1505 CleanupStack::PushL(view); |
|
1506 |
|
1507 CLogViewDuplicate* duplicate = CLogViewDuplicate::NewL(aClient); |
|
1508 CleanupStack::PushL(duplicate); |
|
1509 |
|
1510 // Make sure there are no entries in any recent lists |
|
1511 active->StartL(); |
|
1512 aClient.ClearLog(KLogNullRecentList, active->iStatus); |
|
1513 CActiveScheduler::Start(); |
|
1514 TEST2(active->iStatus.Int(), KErrNone); |
|
1515 |
|
1516 // Incoming |
|
1517 TLogString buf; |
|
1518 aClient.GetString(buf, R_LOG_DIR_IN); |
|
1519 |
|
1520 event->SetEventType(KLogCallEventTypeUid); |
|
1521 event->SetDirection(buf); |
|
1522 event->SetContact(KTestContact1); |
|
1523 |
|
1524 // Add event |
|
1525 active->StartL(); |
|
1526 aClient.AddEvent(*event, active->iStatus); |
|
1527 CActiveScheduler::Start(); |
|
1528 TEST2(active->iStatus.Int(), KErrNone); |
|
1529 |
|
1530 event->SetStatus(KTestStatus1); |
|
1531 |
|
1532 // Add event |
|
1533 active->StartL(); |
|
1534 aClient.AddEvent(*event, active->iStatus); |
|
1535 CActiveScheduler::Start(); |
|
1536 TEST2(active->iStatus.Int(), KErrNone); |
|
1537 |
|
1538 event->SetSubject(KTestSubject); |
|
1539 |
|
1540 // Add event |
|
1541 active->StartL(); |
|
1542 aClient.AddEvent(*event, active->iStatus); |
|
1543 CActiveScheduler::Start(); |
|
1544 TEST2(active->iStatus.Int(), KErrNone); |
|
1545 |
|
1546 event->SetLink(KTestLink); |
|
1547 |
|
1548 // Add event |
|
1549 active->StartL(); |
|
1550 aClient.AddEvent(*event, active->iStatus); |
|
1551 CActiveScheduler::Start(); |
|
1552 TEST2(active->iStatus.Int(), KErrNone); |
|
1553 |
|
1554 event->SetDataL(KTestData); |
|
1555 |
|
1556 // Add event |
|
1557 active->StartL(); |
|
1558 aClient.AddEvent(*event, active->iStatus); |
|
1559 CActiveScheduler::Start(); |
|
1560 TEST2(active->iStatus.Int(), KErrNone); |
|
1561 |
|
1562 event->SetDurationType(KLogDurationNone); |
|
1563 event->SetStatus(KNullDesC); |
|
1564 |
|
1565 // Add event - This will be the entry in recent list |
|
1566 active->StartL(); |
|
1567 aClient.AddEvent(*event, active->iStatus); |
|
1568 CActiveScheduler::Start(); |
|
1569 TEST2(active->iStatus.Int(), KErrNone); |
|
1570 |
|
1571 // Should only be one event in recent list - the rest are duplicates |
|
1572 active->StartL(); |
|
1573 TEST(view->SetRecentListL(KLogRecentIncomingCalls, active->iStatus)); |
|
1574 CActiveScheduler::Start(); |
|
1575 TEST2(active->iStatus.Int(), KErrNone); |
|
1576 TEST2(view->CountL(), 1); |
|
1577 |
|
1578 // Check duplicate count |
|
1579 active->StartL(); |
|
1580 TEST(view->DuplicatesL(*duplicate, active->iStatus)); |
|
1581 CActiveScheduler::Start(); |
|
1582 TEST2(active->iStatus.Int(), KErrNone); |
|
1583 TEST2(duplicate->CountL(), 5); |
|
1584 |
|
1585 CLogFilter* filter = CLogFilter::NewL(); |
|
1586 CleanupStack::PushL(filter); |
|
1587 |
|
1588 filter->SetNullFields(ELogStatusField); |
|
1589 |
|
1590 active->StartL(); |
|
1591 TEST(view->DuplicatesL(*duplicate, *filter, active->iStatus)); |
|
1592 CActiveScheduler::Start(); |
|
1593 TEST2(active->iStatus.Int(), KErrNone); |
|
1594 TEST2(duplicate->CountL(), 1); |
|
1595 |
|
1596 filter->SetNullFields(ELogStatusField | ELogSubjectField); |
|
1597 |
|
1598 active->StartL(); |
|
1599 TEST(view->DuplicatesL(*duplicate, *filter, active->iStatus)); |
|
1600 CActiveScheduler::Start(); |
|
1601 TEST2(active->iStatus.Int(), KErrNone); |
|
1602 TEST2(duplicate->CountL(), 1); |
|
1603 |
|
1604 filter->SetNullFields(ELogStatusField | ELogSubjectField | ELogLinkField); |
|
1605 |
|
1606 active->StartL(); |
|
1607 TEST(view->DuplicatesL(*duplicate, *filter, active->iStatus)); |
|
1608 CActiveScheduler::Start(); |
|
1609 TEST2(active->iStatus.Int(), KErrNone); |
|
1610 TEST2(duplicate->CountL(), 1); |
|
1611 |
|
1612 filter->SetNullFields(ELogStatusField | ELogSubjectField | ELogLinkField | ELogDataField); |
|
1613 |
|
1614 active->StartL(); |
|
1615 TEST(view->DuplicatesL(*duplicate, *filter, active->iStatus)); |
|
1616 CActiveScheduler::Start(); |
|
1617 TEST2(active->iStatus.Int(), KErrNone); |
|
1618 TEST2(duplicate->CountL(), 1); |
|
1619 |
|
1620 CleanupStack::PopAndDestroy(5); // filter, duplicate, view, active, event |
|
1621 } |
|
1622 |
|
1623 /** |
|
1624 @SYMTestCaseID SYSLIB-LOGENG-CT-0938 |
|
1625 @SYMTestCaseDesc Querying event view for flags test |
|
1626 @SYMTestPriority High |
|
1627 @SYMTestActions Clear the log events and add new events with fields set in.Define null fields and set flags in the filter and check the view |
|
1628 @SYMTestExpectedResults Test must not fail |
|
1629 @SYMREQ REQ0000 |
|
1630 */ |
|
1631 LOCAL_C void TestEventViewForFlagsL(CLogClient& aClient) |
|
1632 { |
|
1633 test.Next(_L(" @SYMTestCaseID:SYSLIB-LOGENG-CT-0938 ")); |
|
1634 CLogEvent* event = CLogEvent::NewL(); |
|
1635 CleanupStack::PushL(event); |
|
1636 |
|
1637 CTestActive* active = new(ELeave)CTestActive(); |
|
1638 CleanupStack::PushL(active); |
|
1639 |
|
1640 CLogViewEvent* view = CLogViewEvent::NewL(aClient); |
|
1641 CleanupStack::PushL(view); |
|
1642 |
|
1643 CLogFilter* filter = CLogFilter::NewL(); |
|
1644 CleanupStack::PushL(filter); |
|
1645 |
|
1646 // Wait a second |
|
1647 User::After(1000000); |
|
1648 |
|
1649 TTime now; |
|
1650 now.UniversalTime(); |
|
1651 now += (TTimeIntervalDays)+1; |
|
1652 |
|
1653 // Get rid of all the events in the log |
|
1654 active->StartL(); |
|
1655 aClient.ClearLog(now, active->iStatus); |
|
1656 CActiveScheduler::Start(); |
|
1657 TEST2(active->iStatus.Int(), KErrNone); |
|
1658 |
|
1659 // Make sure there are now events |
|
1660 TEST(!view->SetFilterL(*filter, active->iStatus)); |
|
1661 |
|
1662 // Add some events |
|
1663 event->SetEventType(KLogCallEventTypeUid); |
|
1664 TLogFlags flags = KLogFlagsMask + 1; |
|
1665 TLogFlags flags2; |
|
1666 |
|
1667 while(flags--) |
|
1668 { |
|
1669 event->ClearFlags(0xF); |
|
1670 event->SetFlags(flags); |
|
1671 |
|
1672 // Add event |
|
1673 active->StartL(); |
|
1674 aClient.AddEvent(*event, active->iStatus); |
|
1675 CActiveScheduler::Start(); |
|
1676 TEST2(active->iStatus.Int(), KErrNone); |
|
1677 } |
|
1678 |
|
1679 flags = KLogFlagsMask + 1; |
|
1680 while(flags--) |
|
1681 { |
|
1682 filter->ClearFlags(0xF); |
|
1683 // we use this because, since the events were all created without contact ids |
|
1684 // the log engine looked each one up in the contacts DB and set the flag so we |
|
1685 // need to set it in the flags being looked for |
|
1686 flags2 = static_cast<TLogFlags>(flags | KLogEventContactSearched); |
|
1687 filter->SetFlags(flags2); |
|
1688 active->StartL(); |
|
1689 TEST(view->SetFilterL(*filter, active->iStatus)); |
|
1690 CActiveScheduler::Start(); |
|
1691 TEST2(active->iStatus.Int(), KErrNone); |
|
1692 TEST((view->Event().Flags() & flags2) == flags2); |
|
1693 |
|
1694 while(view->NextL(active->iStatus)) |
|
1695 { |
|
1696 active->StartL(); |
|
1697 CActiveScheduler::Start(); |
|
1698 TEST2(active->iStatus.Int(), KErrNone); |
|
1699 TEST((view->Event().Flags() & flags2) == flags2); |
|
1700 } |
|
1701 } |
|
1702 |
|
1703 // Now TEST we can query for the inverse |
|
1704 filter->SetNullFields(ELogFlagsField); |
|
1705 |
|
1706 flags = KLogFlagsMask + 1; |
|
1707 while(flags--) |
|
1708 { |
|
1709 filter->ClearFlags(0xF); |
|
1710 // we use this because, since the events were all created without contact ids |
|
1711 // the log engine looked each one up in the contacts DB and set the flag so we |
|
1712 // need to unset it in the flags being excluded |
|
1713 flags2 = static_cast<TLogFlags>(flags & ~KLogEventContactSearched); |
|
1714 filter->SetFlags(flags2); |
|
1715 |
|
1716 active->StartL(); |
|
1717 TEST(view->SetFilterL(*filter, active->iStatus)); |
|
1718 CActiveScheduler::Start(); |
|
1719 TEST2(active->iStatus.Int(), KErrNone); |
|
1720 TEST((~view->Event().Flags() & flags2) == flags2); |
|
1721 |
|
1722 while(view->NextL(active->iStatus)) |
|
1723 { |
|
1724 active->StartL(); |
|
1725 CActiveScheduler::Start(); |
|
1726 TEST2(active->iStatus.Int(), KErrNone); |
|
1727 TEST((~view->Event().Flags() & flags2) == flags2); |
|
1728 } |
|
1729 } |
|
1730 |
|
1731 CleanupStack::PopAndDestroy(4); // filter, view, active, event |
|
1732 } |
|
1733 |
|
1734 /** |
|
1735 @SYMTestCaseID SYSLIB-LOGENG-CT-0939 |
|
1736 @SYMTestCaseDesc Querying recent event view for flags test |
|
1737 @SYMTestPriority High |
|
1738 @SYMTestActions Change the log configuration.Clear the log for any recent list and add some events.Query for flags in the recent view list |
|
1739 @SYMTestExpectedResults Test must not fail |
|
1740 @SYMREQ REQ0000 |
|
1741 */ |
|
1742 LOCAL_C void TestRecentViewForFlagsL(CLogClient& aClient) |
|
1743 { |
|
1744 test.Next(_L(" @SYMTestCaseID:SYSLIB-LOGENG-CT-0939 ")); |
|
1745 CLogEvent* event = CLogEvent::NewL(); |
|
1746 CleanupStack::PushL(event); |
|
1747 |
|
1748 CTestActive* active = new(ELeave)CTestActive(); |
|
1749 CleanupStack::PushL(active); |
|
1750 |
|
1751 TLogConfig config; |
|
1752 |
|
1753 // Change the log engine config |
|
1754 active->StartL(); |
|
1755 aClient.GetConfig(config, active->iStatus); |
|
1756 CActiveScheduler::Start(); |
|
1757 TEST2(active->iStatus.Int(), KErrNone); |
|
1758 |
|
1759 config.iMaxRecentLogSize = KLogFlagsMask + 1; |
|
1760 |
|
1761 // Change the log engine config |
|
1762 active->StartL(); |
|
1763 aClient.ChangeConfig(config, active->iStatus); |
|
1764 CActiveScheduler::Start(); |
|
1765 TEST2(active->iStatus.Int(), KErrNone); |
|
1766 |
|
1767 CLogViewRecent* view = CLogViewRecent::NewL(aClient); |
|
1768 CleanupStack::PushL(view); |
|
1769 |
|
1770 CLogFilter* filter = CLogFilter::NewL(); |
|
1771 CleanupStack::PushL(filter); |
|
1772 |
|
1773 // Make sure there are no entries in any recent lists |
|
1774 active->StartL(); |
|
1775 aClient.ClearLog(KLogNullRecentList, active->iStatus); |
|
1776 CActiveScheduler::Start(); |
|
1777 TEST2(active->iStatus.Int(), KErrNone); |
|
1778 |
|
1779 // Make sure there are no events |
|
1780 TEST(!view->SetRecentListL(KLogNullRecentList, *filter, active->iStatus)); |
|
1781 |
|
1782 // Incoming |
|
1783 TLogString buf; |
|
1784 aClient.GetString(buf, R_LOG_DIR_IN); |
|
1785 |
|
1786 // Add some events |
|
1787 event->SetEventType(KLogCallEventTypeUid); |
|
1788 event->SetDirection(buf); |
|
1789 |
|
1790 TLogFlags flags = KLogFlagsMask + 1; |
|
1791 while(flags--) |
|
1792 { |
|
1793 event->ClearFlags(0xF); |
|
1794 event->SetFlags(flags); |
|
1795 event->SetContact(flags); |
|
1796 |
|
1797 // Add event |
|
1798 active->StartL(); |
|
1799 aClient.AddEvent(*event, active->iStatus); |
|
1800 CActiveScheduler::Start(); |
|
1801 TEST2(active->iStatus.Int(), KErrNone); |
|
1802 } |
|
1803 |
|
1804 flags = KLogFlagsMask + 1; |
|
1805 while(flags--) |
|
1806 { |
|
1807 filter->ClearFlags(0xF); |
|
1808 filter->SetFlags(flags); |
|
1809 |
|
1810 active->StartL(); |
|
1811 TEST(view->SetRecentListL(KLogRecentIncomingCalls, *filter, active->iStatus)); |
|
1812 CActiveScheduler::Start(); |
|
1813 TEST2(active->iStatus.Int(), KErrNone); |
|
1814 TEST((view->Event().Flags() & flags) == flags); |
|
1815 |
|
1816 while(view->NextL(active->iStatus)) |
|
1817 { |
|
1818 active->StartL(); |
|
1819 CActiveScheduler::Start(); |
|
1820 TEST2(active->iStatus.Int(), KErrNone); |
|
1821 TEST((view->Event().Flags() & flags) == flags); |
|
1822 } |
|
1823 } |
|
1824 |
|
1825 // Now TEST we can query for the inverse |
|
1826 filter->SetNullFields(ELogFlagsField); |
|
1827 |
|
1828 flags = KLogFlagsMask + 1; |
|
1829 while(flags--) |
|
1830 { |
|
1831 filter->ClearFlags(0xF); |
|
1832 filter->SetFlags(flags); |
|
1833 |
|
1834 active->StartL(); |
|
1835 TEST(view->SetRecentListL(KLogRecentIncomingCalls, *filter, active->iStatus)); |
|
1836 CActiveScheduler::Start(); |
|
1837 TEST2(active->iStatus.Int(), KErrNone); |
|
1838 TEST((~view->Event().Flags() & flags) == flags); |
|
1839 |
|
1840 while(view->NextL(active->iStatus)) |
|
1841 { |
|
1842 active->StartL(); |
|
1843 CActiveScheduler::Start(); |
|
1844 TEST2(active->iStatus.Int(), KErrNone); |
|
1845 TEST((~view->Event().Flags() & flags) == flags); |
|
1846 } |
|
1847 } |
|
1848 |
|
1849 CleanupStack::PopAndDestroy(4); // filter, view, active, event |
|
1850 } |
|
1851 |
|
1852 /** |
|
1853 @SYMTestCaseID SYSLIB-LOGENG-CT-0940 |
|
1854 @SYMTestCaseDesc Querying duplicate event view for flags test |
|
1855 @SYMTestPriority High |
|
1856 @SYMTestActions Change the log configuration.Clear the log for any recent list and add some events.Query for flags in the duplicate view list |
|
1857 @SYMTestExpectedResults Test must not fail |
|
1858 @SYMREQ REQ0000 |
|
1859 */ |
|
1860 LOCAL_C void TestDuplicateViewForFlagsL(CLogClient& aClient) |
|
1861 { |
|
1862 test.Next(_L(" @SYMTestCaseID:SYSLIB-LOGENG-CT-0940 ")); |
|
1863 CLogEvent* event = CLogEvent::NewL(); |
|
1864 CleanupStack::PushL(event); |
|
1865 |
|
1866 CTestActive* active = new(ELeave)CTestActive(); |
|
1867 CleanupStack::PushL(active); |
|
1868 |
|
1869 CLogViewRecent* view = CLogViewRecent::NewL(aClient); |
|
1870 CleanupStack::PushL(view); |
|
1871 |
|
1872 CLogViewDuplicate* duplicate = CLogViewDuplicate::NewL(aClient); |
|
1873 CleanupStack::PushL(duplicate); |
|
1874 |
|
1875 CLogFilter* filter = CLogFilter::NewL(); |
|
1876 CleanupStack::PushL(filter); |
|
1877 |
|
1878 // Make sure there are no entries in any recent lists |
|
1879 active->StartL(); |
|
1880 aClient.ClearLog(KLogNullRecentList, active->iStatus); |
|
1881 CActiveScheduler::Start(); |
|
1882 TEST2(active->iStatus.Int(), KErrNone); |
|
1883 |
|
1884 // Make sure there are now events |
|
1885 TEST(!view->SetRecentListL(KLogNullRecentList, *filter, active->iStatus)); |
|
1886 |
|
1887 // Incoming |
|
1888 TLogString buf; |
|
1889 aClient.GetString(buf, R_LOG_DIR_IN); |
|
1890 |
|
1891 // Add some events |
|
1892 event->SetEventType(KLogCallEventTypeUid); |
|
1893 event->SetDirection(buf); |
|
1894 event->SetDurationType(KLogDurationNone); |
|
1895 event->SetContact(KTestContact1); |
|
1896 event->SetStatus(KTestStatus1); |
|
1897 |
|
1898 TLogFlags flags = KLogFlagsMask + 1; |
|
1899 while(flags--) |
|
1900 { |
|
1901 event->ClearFlags(0xF); |
|
1902 event->SetFlags(flags); |
|
1903 |
|
1904 // Add event |
|
1905 active->StartL(); |
|
1906 aClient.AddEvent(*event, active->iStatus); |
|
1907 CActiveScheduler::Start(); |
|
1908 TEST2(active->iStatus.Int(), KErrNone); |
|
1909 } |
|
1910 |
|
1911 // Add an extra event which will be the most recent |
|
1912 active->StartL(); |
|
1913 aClient.AddEvent(*event, active->iStatus); |
|
1914 CActiveScheduler::Start(); |
|
1915 TEST2(active->iStatus.Int(), KErrNone); |
|
1916 |
|
1917 active->StartL(); |
|
1918 TEST(view->SetRecentListL(KLogRecentIncomingCalls, *filter, active->iStatus)); |
|
1919 CActiveScheduler::Start(); |
|
1920 TEST2(active->iStatus.Int(), KErrNone); |
|
1921 TEST2(view->CountL(), 1); |
|
1922 |
|
1923 flags = KLogFlagsMask + 1; |
|
1924 while(flags--) |
|
1925 { |
|
1926 filter->ClearFlags(0xF); |
|
1927 filter->SetFlags(flags); |
|
1928 |
|
1929 active->StartL(); |
|
1930 TEST(view->DuplicatesL(*duplicate, *filter, active->iStatus)); |
|
1931 CActiveScheduler::Start(); |
|
1932 TEST2(active->iStatus.Int(), KErrNone); |
|
1933 TEST((duplicate->Event().Flags() & flags) == flags); |
|
1934 |
|
1935 while(duplicate->NextL(active->iStatus)) |
|
1936 { |
|
1937 active->StartL(); |
|
1938 CActiveScheduler::Start(); |
|
1939 TEST2(active->iStatus.Int(), KErrNone); |
|
1940 TEST((duplicate->Event().Flags() & flags) == flags); |
|
1941 } |
|
1942 } |
|
1943 |
|
1944 // Now TEST we can query for the inverse |
|
1945 filter->SetNullFields(ELogFlagsField); |
|
1946 |
|
1947 flags = KLogFlagsMask + 1; |
|
1948 while(flags--) |
|
1949 { |
|
1950 filter->ClearFlags(0xF); |
|
1951 filter->SetFlags(flags); |
|
1952 |
|
1953 active->StartL(); |
|
1954 TEST(view->DuplicatesL(*duplicate, *filter, active->iStatus)); |
|
1955 CActiveScheduler::Start(); |
|
1956 TEST2(active->iStatus.Int(), KErrNone); |
|
1957 TEST((~duplicate->Event().Flags() & flags) == flags); |
|
1958 |
|
1959 while(duplicate->NextL(active->iStatus)) |
|
1960 { |
|
1961 active->StartL(); |
|
1962 CActiveScheduler::Start(); |
|
1963 TEST2(active->iStatus.Int(), KErrNone); |
|
1964 TEST((~duplicate->Event().Flags() & flags) == flags); |
|
1965 } |
|
1966 } |
|
1967 |
|
1968 CleanupStack::PopAndDestroy(5); // filter, duplicate, view, active, event |
|
1969 } |
|
1970 |
|
1971 /** |
|
1972 @SYMTestCaseID SYSLIB-LOGENG-CT-0941 |
|
1973 @SYMTestCaseDesc Tests for removing recent events.Tests for CLogClient::ClearLog() function |
|
1974 @SYMTestPriority High |
|
1975 @SYMTestActions Clear log for any recent entries.Add events and create the view.Test for removing the recent events from the view |
|
1976 @SYMTestExpectedResults Test must not fail |
|
1977 @SYMREQ REQ0000 |
|
1978 */ |
|
1979 LOCAL_C void TestRemovingRecentEventsL(CLogClient& aClient) |
|
1980 { |
|
1981 test.Next(_L(" @SYMTestCaseID:SYSLIB-LOGENG-CT-0941 ")); |
|
1982 CLogEvent* event = CLogEvent::NewL(); |
|
1983 CleanupStack::PushL(event); |
|
1984 |
|
1985 CTestActive* active = new(ELeave)CTestActive(); |
|
1986 CleanupStack::PushL(active); |
|
1987 |
|
1988 CLogViewRecent* view = CLogViewRecent::NewL(aClient); |
|
1989 CleanupStack::PushL(view); |
|
1990 |
|
1991 // Make sure there are no entries in any recent lists |
|
1992 active->StartL(); |
|
1993 aClient.ClearLog(KLogNullRecentList, active->iStatus); |
|
1994 CActiveScheduler::Start(); |
|
1995 TEST2(active->iStatus.Int(), KErrNone); |
|
1996 |
|
1997 // Make sure there are no events |
|
1998 TEST(!view->SetRecentListL(KLogNullRecentList, active->iStatus)); |
|
1999 |
|
2000 // Incoming |
|
2001 TLogString buf; |
|
2002 aClient.GetString(buf, R_LOG_DIR_IN); |
|
2003 |
|
2004 // Add some events |
|
2005 event->SetEventType(KLogCallEventTypeUid); |
|
2006 event->SetDirection(buf); |
|
2007 |
|
2008 TInt count = 10; |
|
2009 while(count--) |
|
2010 { |
|
2011 // Add event |
|
2012 active->StartL(); |
|
2013 aClient.AddEvent(*event, active->iStatus); |
|
2014 CActiveScheduler::Start(); |
|
2015 TEST2(active->iStatus.Int(), KErrNone); |
|
2016 } |
|
2017 |
|
2018 // Create the view |
|
2019 active->StartL(); |
|
2020 TEST(view->SetRecentListL(KLogNullRecentList, active->iStatus)); |
|
2021 CActiveScheduler::Start(); |
|
2022 TEST2(active->iStatus.Int(), KErrNone); |
|
2023 |
|
2024 TLogId id = view->Event().Id(); |
|
2025 while(view->NextL(active->iStatus)) |
|
2026 { |
|
2027 active->StartL(); |
|
2028 CActiveScheduler::Start(); |
|
2029 TEST2(active->iStatus.Int(), KErrNone); |
|
2030 |
|
2031 // Try removing the previous event |
|
2032 view->RemoveL(id); |
|
2033 id = view->Event().Id(); |
|
2034 } |
|
2035 |
|
2036 // Try removing the current event |
|
2037 view->RemoveL(id); |
|
2038 TEST(!view->SetRecentListL(KLogNullRecentList, active->iStatus)); |
|
2039 |
|
2040 CleanupStack::PopAndDestroy(3); // view, active, event |
|
2041 } |
|
2042 |
|
2043 /** |
|
2044 @SYMTestCaseID SYSLIB-LOGENG-CT-0942 |
|
2045 @SYMTestCaseDesc Removing duplicate events from the duplicate view |
|
2046 Tests for CLogViewRecent::DuplicatesL() function |
|
2047 @SYMTestPriority High |
|
2048 @SYMTestActions Clear log for any recent entries.Add events and create the view and duplicate view. |
|
2049 @SYMTestExpectedResults Test must not fail |
|
2050 @SYMREQ REQ0000 |
|
2051 */ |
|
2052 LOCAL_C void TestRemovingDuplicateEventsL(CLogClient& aClient) |
|
2053 { |
|
2054 test.Next(_L(" @SYMTestCaseID:SYSLIB-LOGENG-CT-0942 ")); |
|
2055 CLogEvent* event = CLogEvent::NewL(); |
|
2056 CleanupStack::PushL(event); |
|
2057 |
|
2058 CTestActive* active = new(ELeave)CTestActive(); |
|
2059 CleanupStack::PushL(active); |
|
2060 |
|
2061 CLogViewRecent* view = CLogViewRecent::NewL(aClient); |
|
2062 CleanupStack::PushL(view); |
|
2063 |
|
2064 CLogViewDuplicate* duplicate = CLogViewDuplicate::NewL(aClient); |
|
2065 CleanupStack::PushL(duplicate); |
|
2066 |
|
2067 // Make sure there are no entries in any recent lists |
|
2068 active->StartL(); |
|
2069 aClient.ClearLog(KLogNullRecentList, active->iStatus); |
|
2070 CActiveScheduler::Start(); |
|
2071 TEST2(active->iStatus.Int(), KErrNone); |
|
2072 |
|
2073 // Make sure there are no events |
|
2074 TEST(!view->SetRecentListL(KLogNullRecentList, active->iStatus)); |
|
2075 |
|
2076 // Incoming |
|
2077 TLogString buf; |
|
2078 aClient.GetString(buf, R_LOG_DIR_IN); |
|
2079 |
|
2080 // Add some events |
|
2081 event->SetEventType(KLogCallEventTypeUid); |
|
2082 event->SetDirection(buf); |
|
2083 event->SetDurationType(KLogDurationNone); |
|
2084 event->SetContact(KTestContact1); |
|
2085 event->SetStatus(KTestStatus1); |
|
2086 |
|
2087 TInt count = 10; |
|
2088 while(count--) |
|
2089 { |
|
2090 // Add event |
|
2091 active->StartL(); |
|
2092 aClient.AddEvent(*event, active->iStatus); |
|
2093 CActiveScheduler::Start(); |
|
2094 TEST2(active->iStatus.Int(), KErrNone); |
|
2095 RDebug::Print(_L("EVENT ID: %d\n"), event->Id()); |
|
2096 } |
|
2097 |
|
2098 // Create the view |
|
2099 active->StartL(); |
|
2100 TEST(view->SetRecentListL(KLogNullRecentList, active->iStatus)); |
|
2101 CActiveScheduler::Start(); |
|
2102 TEST2(active->iStatus.Int(), KErrNone); |
|
2103 |
|
2104 // Create the duplicate view |
|
2105 active->StartL(); |
|
2106 TEST(view->DuplicatesL(*duplicate, active->iStatus)); |
|
2107 CActiveScheduler::Start(); |
|
2108 TEST2(active->iStatus.Int(), KErrNone); |
|
2109 TEST2(view->CountL(), 1); |
|
2110 count = duplicate->CountL(); |
|
2111 TEST2(count, 9); |
|
2112 |
|
2113 TLogId id = duplicate->Event().Id(); |
|
2114 while(duplicate->NextL(active->iStatus)) |
|
2115 { |
|
2116 active->StartL(); |
|
2117 CActiveScheduler::Start(); |
|
2118 TEST2(active->iStatus.Int(), KErrNone); |
|
2119 |
|
2120 // Try removing the previous event |
|
2121 duplicate->RemoveL(id); |
|
2122 id = duplicate->Event().Id(); |
|
2123 } |
|
2124 |
|
2125 // Try removing the current event |
|
2126 duplicate->RemoveL(id); |
|
2127 count = duplicate->CountL(); |
|
2128 TEST2(count, 0); |
|
2129 // |
|
2130 TEST(!view->DuplicatesL(*duplicate, active->iStatus)); |
|
2131 |
|
2132 CleanupStack::PopAndDestroy(4); // duplicate, view, active, event |
|
2133 } |
|
2134 |
|
2135 /** |
|
2136 @SYMTestCaseID SYSLIB-LOGENG-CT-0943 |
|
2137 s@SYMTestCaseDesc Multiple log event views test |
|
2138 @SYMTestPriority High |
|
2139 @SYMTestActions Add events and set the filter with different fields.Check for log event views |
|
2140 @SYMTestExpectedResults Test must not fail |
|
2141 @SYMREQ REQ0000 |
|
2142 */ |
|
2143 LOCAL_C void TestMultipleViews1L(CLogClient& aClient) |
|
2144 { |
|
2145 test.Next(_L(" @SYMTestCaseID:SYSLIB-LOGENG-CT-0943 ")); |
|
2146 CTestActive* active1 = new(ELeave)CTestActive; |
|
2147 CleanupStack::PushL(active1); |
|
2148 |
|
2149 // Wait a second |
|
2150 User::After(1000000); |
|
2151 |
|
2152 TTime now; |
|
2153 now.UniversalTime(); |
|
2154 now += (TTimeIntervalDays)+1; |
|
2155 |
|
2156 // Get rid of all the events in the log |
|
2157 active1->StartL(); |
|
2158 aClient.ClearLog(now, active1->iStatus); |
|
2159 CActiveScheduler::Start(); |
|
2160 TEST2(active1->iStatus.Int(), KErrNone); |
|
2161 |
|
2162 CTestActive* active2 = new(ELeave)CTestActive; |
|
2163 CleanupStack::PushL(active2); |
|
2164 |
|
2165 CLogEvent* event = CLogEvent::NewL(); |
|
2166 CleanupStack::PushL(event); |
|
2167 |
|
2168 event->SetEventType(KLogCallEventTypeUid); |
|
2169 event->SetContact(KTestContact1); |
|
2170 event->SetDirection(KTestDirection1); |
|
2171 event->SetDurationType(KLogDurationNone); |
|
2172 event->SetNumber(KTestNumber1); |
|
2173 event->SetRemoteParty(KTestRemote1); |
|
2174 event->SetStatus(KTestStatus1); |
|
2175 |
|
2176 // Add event |
|
2177 active1->StartL(); |
|
2178 aClient.AddEvent(*event, active1->iStatus); |
|
2179 CActiveScheduler::Start(); |
|
2180 TEST2(active1->iStatus.Int(), KErrNone); |
|
2181 |
|
2182 event->SetEventType(KLogDataEventTypeUid); |
|
2183 event->SetContact(KTestContact2); |
|
2184 event->SetDirection(KTestDirection2); |
|
2185 event->SetDurationType(KLogDurationValid); |
|
2186 event->SetNumber(KTestNumber2); |
|
2187 event->SetRemoteParty(KTestRemote2); |
|
2188 event->SetStatus(KTestStatus2); |
|
2189 |
|
2190 // Add event |
|
2191 active1->StartL(); |
|
2192 aClient.AddEvent(*event, active1->iStatus); |
|
2193 CActiveScheduler::Start(); |
|
2194 TEST2(active1->iStatus.Int(), KErrNone); |
|
2195 |
|
2196 event->SetEventType(KLogFaxEventTypeUid); |
|
2197 event->SetContact(KTestContact3); |
|
2198 event->SetDirection(KTestDirection3); |
|
2199 event->SetDurationType(KLogDurationData); |
|
2200 event->SetNumber(KTestNumber3); |
|
2201 event->SetRemoteParty(KTestRemote3); |
|
2202 event->SetStatus(KTestStatus3); |
|
2203 |
|
2204 // Add event |
|
2205 active1->StartL(); |
|
2206 aClient.AddEvent(*event, active1->iStatus); |
|
2207 CActiveScheduler::Start(); |
|
2208 TEST2(active1->iStatus.Int(), KErrNone); |
|
2209 |
|
2210 CLogFilterList* list = new(ELeave)CLogFilterList; |
|
2211 CleanupStack::PushL(list); |
|
2212 |
|
2213 CLogViewEvent* view1 = CLogViewEvent::NewL(aClient); |
|
2214 CleanupStack::PushL(view1); |
|
2215 |
|
2216 CLogViewEvent* view2 = CLogViewEvent::NewL(aClient); |
|
2217 CleanupStack::PushL(view2); |
|
2218 |
|
2219 CLogFilter* filter = CLogFilter::NewL(); |
|
2220 CleanupStack::PushL(filter); |
|
2221 |
|
2222 // Set filter |
|
2223 filter->SetContact(KTestContact1); |
|
2224 |
|
2225 list->AppendL(filter); |
|
2226 CleanupStack::Pop(); // filter |
|
2227 |
|
2228 // Test Views |
|
2229 active1->StartL(); |
|
2230 active2->StartL(); |
|
2231 TEST(view1->SetFilterL(*list, active1->iStatus)); |
|
2232 TEST(view2->SetFilterL(*list, active2->iStatus)); |
|
2233 CActiveScheduler::Start(); |
|
2234 CActiveScheduler::Start(); |
|
2235 TEST2(view1->CountL(), 1); |
|
2236 TEST2(view2->CountL(), 1); |
|
2237 |
|
2238 filter = CLogFilter::NewL(); |
|
2239 CleanupStack::PushL(filter); |
|
2240 |
|
2241 // Set filter |
|
2242 filter->SetContact(KTestContact2); |
|
2243 |
|
2244 list->AppendL(filter); |
|
2245 CleanupStack::Pop(); // filter |
|
2246 |
|
2247 // Test View |
|
2248 active1->StartL(); |
|
2249 TEST(view1->SetFilterL(*list, active1->iStatus)); |
|
2250 CActiveScheduler::Start(); |
|
2251 TEST2(view1->CountL(), 2); |
|
2252 |
|
2253 filter = CLogFilter::NewL(); |
|
2254 CleanupStack::PushL(filter); |
|
2255 |
|
2256 // Set filter |
|
2257 filter->SetContact(KTestContact3); |
|
2258 |
|
2259 list->AppendL(filter); |
|
2260 CleanupStack::Pop(); // filter |
|
2261 |
|
2262 // Test View |
|
2263 active1->StartL(); |
|
2264 active2->StartL(); |
|
2265 TEST(view1->SetFilterL(*list, active1->iStatus)); |
|
2266 TEST(view2->SetFilterL(*list, active2->iStatus)); |
|
2267 CActiveScheduler::Start(); |
|
2268 CActiveScheduler::Start(); |
|
2269 TEST2(view1->CountL(), 3); |
|
2270 TEST2(view2->CountL(), 3); |
|
2271 |
|
2272 list->ResetAndDestroy(); |
|
2273 |
|
2274 ///////////////////////////////////////// |
|
2275 |
|
2276 filter = CLogFilter::NewL(); |
|
2277 CleanupStack::PushL(filter); |
|
2278 |
|
2279 // Set filter |
|
2280 filter->SetContact(KTestContact1); |
|
2281 filter->SetDirection(KTestDirection1); |
|
2282 |
|
2283 list->AppendL(filter); |
|
2284 CleanupStack::Pop(); // filter |
|
2285 |
|
2286 // Test View |
|
2287 active1->StartL(); |
|
2288 active2->StartL(); |
|
2289 TEST(view1->SetFilterL(*list, active1->iStatus)); |
|
2290 TEST(view2->SetFilterL(*list, active2->iStatus)); |
|
2291 CActiveScheduler::Start(); |
|
2292 CActiveScheduler::Start(); |
|
2293 TEST2(view1->CountL(), 1); |
|
2294 TEST2(view2->CountL(), 1); |
|
2295 |
|
2296 filter = CLogFilter::NewL(); |
|
2297 CleanupStack::PushL(filter); |
|
2298 |
|
2299 // Set filter |
|
2300 filter->SetContact(KTestContact2); |
|
2301 filter->SetDirection(KTestDirection2); |
|
2302 |
|
2303 list->AppendL(filter); |
|
2304 CleanupStack::Pop(); // filter |
|
2305 |
|
2306 // Test View |
|
2307 active1->StartL(); |
|
2308 active2->StartL(); |
|
2309 TEST(view1->SetFilterL(*list, active1->iStatus)); |
|
2310 TEST(view2->SetFilterL(*list, active2->iStatus)); |
|
2311 CActiveScheduler::Start(); |
|
2312 CActiveScheduler::Start(); |
|
2313 TEST2(view1->CountL(), 2); |
|
2314 TEST2(view2->CountL(), 2); |
|
2315 |
|
2316 filter = CLogFilter::NewL(); |
|
2317 CleanupStack::PushL(filter); |
|
2318 |
|
2319 // Set filter |
|
2320 filter->SetContact(KTestContact3); |
|
2321 filter->SetDirection(KTestDirection3); |
|
2322 |
|
2323 list->AppendL(filter); |
|
2324 CleanupStack::Pop(); // filter |
|
2325 |
|
2326 // Test View |
|
2327 active1->StartL(); |
|
2328 active2->StartL(); |
|
2329 TEST(view1->SetFilterL(*list, active1->iStatus)); |
|
2330 TEST(view2->SetFilterL(*list, active2->iStatus)); |
|
2331 CActiveScheduler::Start(); |
|
2332 CActiveScheduler::Start(); |
|
2333 TEST2(view1->CountL(), 3); |
|
2334 TEST2(view2->CountL(), 3); |
|
2335 |
|
2336 list->ResetAndDestroy(); |
|
2337 |
|
2338 ///////////////////////////////////////// |
|
2339 |
|
2340 filter = CLogFilter::NewL(); |
|
2341 CleanupStack::PushL(filter); |
|
2342 |
|
2343 // Set filter |
|
2344 filter->SetContact(KTestContact1); |
|
2345 filter->SetDirection(KTestDirection1); |
|
2346 filter->SetDurationType(KLogDurationNone); |
|
2347 |
|
2348 list->AppendL(filter); |
|
2349 CleanupStack::Pop(); // filter |
|
2350 |
|
2351 // Test View |
|
2352 active1->StartL(); |
|
2353 active2->StartL(); |
|
2354 TEST(view1->SetFilterL(*list, active1->iStatus)); |
|
2355 TEST(view2->SetFilterL(*list, active2->iStatus)); |
|
2356 CActiveScheduler::Start(); |
|
2357 CActiveScheduler::Start(); |
|
2358 TEST2(view1->CountL(), 1); |
|
2359 TEST2(view2->CountL(), 1); |
|
2360 |
|
2361 filter = CLogFilter::NewL(); |
|
2362 CleanupStack::PushL(filter); |
|
2363 |
|
2364 // Set filter |
|
2365 filter->SetContact(KTestContact2); |
|
2366 filter->SetDirection(KTestDirection2); |
|
2367 filter->SetDurationType(KLogDurationValid); |
|
2368 |
|
2369 list->AppendL(filter); |
|
2370 CleanupStack::Pop(); // filter |
|
2371 |
|
2372 // Test View |
|
2373 active1->StartL(); |
|
2374 active2->StartL(); |
|
2375 TEST(view1->SetFilterL(*list, active1->iStatus)); |
|
2376 TEST(view2->SetFilterL(*list, active2->iStatus)); |
|
2377 CActiveScheduler::Start(); |
|
2378 CActiveScheduler::Start(); |
|
2379 TEST2(view1->CountL(), 2); |
|
2380 TEST2(view2->CountL(), 2); |
|
2381 |
|
2382 filter = CLogFilter::NewL(); |
|
2383 CleanupStack::PushL(filter); |
|
2384 |
|
2385 // Set filter |
|
2386 filter->SetContact(KTestContact3); |
|
2387 filter->SetDirection(KTestDirection3); |
|
2388 filter->SetDurationType(KLogDurationData); |
|
2389 |
|
2390 list->AppendL(filter); |
|
2391 CleanupStack::Pop(); // filter |
|
2392 |
|
2393 // Test View |
|
2394 active1->StartL(); |
|
2395 active2->StartL(); |
|
2396 TEST(view1->SetFilterL(*list, active1->iStatus)); |
|
2397 TEST(view2->SetFilterL(*list, active2->iStatus)); |
|
2398 CActiveScheduler::Start(); |
|
2399 CActiveScheduler::Start(); |
|
2400 TEST2(view1->CountL(), 3); |
|
2401 TEST2(view2->CountL(), 3); |
|
2402 |
|
2403 list->ResetAndDestroy(); |
|
2404 |
|
2405 ///////////////////////////////////////// |
|
2406 |
|
2407 filter = CLogFilter::NewL(); |
|
2408 CleanupStack::PushL(filter); |
|
2409 |
|
2410 // Set filter |
|
2411 filter->SetContact(KTestContact1); |
|
2412 filter->SetDirection(KTestDirection1); |
|
2413 filter->SetDurationType(KLogDurationNone); |
|
2414 filter->SetEventType(KLogCallEventTypeUid); |
|
2415 |
|
2416 list->AppendL(filter); |
|
2417 CleanupStack::Pop(); // filter |
|
2418 |
|
2419 // Test View |
|
2420 active1->StartL(); |
|
2421 active2->StartL(); |
|
2422 TEST(view1->SetFilterL(*list, active1->iStatus)); |
|
2423 TEST(view2->SetFilterL(*list, active2->iStatus)); |
|
2424 CActiveScheduler::Start(); |
|
2425 CActiveScheduler::Start(); |
|
2426 TEST2(view1->CountL(), 1); |
|
2427 TEST2(view2->CountL(), 1); |
|
2428 |
|
2429 filter = CLogFilter::NewL(); |
|
2430 CleanupStack::PushL(filter); |
|
2431 |
|
2432 // Set filter |
|
2433 filter->SetContact(KTestContact2); |
|
2434 filter->SetDirection(KTestDirection2); |
|
2435 filter->SetDurationType(KLogDurationValid); |
|
2436 filter->SetEventType(KLogDataEventTypeUid); |
|
2437 |
|
2438 list->AppendL(filter); |
|
2439 CleanupStack::Pop(); // filter |
|
2440 |
|
2441 // Test View |
|
2442 active1->StartL(); |
|
2443 active2->StartL(); |
|
2444 TEST(view1->SetFilterL(*list, active1->iStatus)); |
|
2445 TEST(view2->SetFilterL(*list, active2->iStatus)); |
|
2446 CActiveScheduler::Start(); |
|
2447 CActiveScheduler::Start(); |
|
2448 TEST2(view1->CountL(), 2); |
|
2449 TEST2(view2->CountL(), 2); |
|
2450 |
|
2451 filter = CLogFilter::NewL(); |
|
2452 CleanupStack::PushL(filter); |
|
2453 |
|
2454 // Set filter |
|
2455 filter->SetContact(KTestContact3); |
|
2456 filter->SetDirection(KTestDirection3); |
|
2457 filter->SetDurationType(KLogDurationData); |
|
2458 filter->SetEventType(KLogFaxEventTypeUid); |
|
2459 |
|
2460 list->AppendL(filter); |
|
2461 CleanupStack::Pop(); // filter |
|
2462 |
|
2463 // Test View |
|
2464 active1->StartL(); |
|
2465 active2->StartL(); |
|
2466 TEST(view1->SetFilterL(*list, active1->iStatus)); |
|
2467 TEST(view2->SetFilterL(*list, active2->iStatus)); |
|
2468 CActiveScheduler::Start(); |
|
2469 CActiveScheduler::Start(); |
|
2470 TEST2(view1->CountL(), 3); |
|
2471 TEST2(view2->CountL(), 3); |
|
2472 |
|
2473 list->ResetAndDestroy(); |
|
2474 |
|
2475 ///////////////////////////////////////// |
|
2476 |
|
2477 filter = CLogFilter::NewL(); |
|
2478 CleanupStack::PushL(filter); |
|
2479 |
|
2480 // Set filter |
|
2481 filter->SetContact(KTestContact1); |
|
2482 filter->SetDirection(KTestDirection1); |
|
2483 filter->SetDurationType(KLogDurationNone); |
|
2484 filter->SetEventType(KLogCallEventTypeUid); |
|
2485 filter->SetNumber(KTestNumber1); |
|
2486 |
|
2487 list->AppendL(filter); |
|
2488 CleanupStack::Pop(); // filter |
|
2489 |
|
2490 // Test View |
|
2491 active1->StartL(); |
|
2492 active2->StartL(); |
|
2493 TEST(view1->SetFilterL(*list, active1->iStatus)); |
|
2494 TEST(view2->SetFilterL(*list, active2->iStatus)); |
|
2495 CActiveScheduler::Start(); |
|
2496 CActiveScheduler::Start(); |
|
2497 TEST2(view1->CountL(), 1); |
|
2498 TEST2(view2->CountL(), 1); |
|
2499 |
|
2500 filter = CLogFilter::NewL(); |
|
2501 CleanupStack::PushL(filter); |
|
2502 |
|
2503 // Set filter |
|
2504 filter->SetContact(KTestContact2); |
|
2505 filter->SetDirection(KTestDirection2); |
|
2506 filter->SetDurationType(KLogDurationValid); |
|
2507 filter->SetEventType(KLogDataEventTypeUid); |
|
2508 filter->SetNumber(KTestNumber2); |
|
2509 |
|
2510 list->AppendL(filter); |
|
2511 CleanupStack::Pop(); // filter |
|
2512 |
|
2513 // Test View |
|
2514 active1->StartL(); |
|
2515 active2->StartL(); |
|
2516 TEST(view1->SetFilterL(*list, active1->iStatus)); |
|
2517 TEST(view2->SetFilterL(*list, active2->iStatus)); |
|
2518 CActiveScheduler::Start(); |
|
2519 CActiveScheduler::Start(); |
|
2520 TEST2(view1->CountL(), 2); |
|
2521 TEST2(view2->CountL(), 2); |
|
2522 |
|
2523 filter = CLogFilter::NewL(); |
|
2524 CleanupStack::PushL(filter); |
|
2525 |
|
2526 // Set filter |
|
2527 filter->SetContact(KTestContact3); |
|
2528 filter->SetDirection(KTestDirection3); |
|
2529 filter->SetDurationType(KLogDurationData); |
|
2530 filter->SetEventType(KLogFaxEventTypeUid); |
|
2531 filter->SetNumber(KTestNumber3); |
|
2532 |
|
2533 list->AppendL(filter); |
|
2534 CleanupStack::Pop(); // filter |
|
2535 |
|
2536 // Test View |
|
2537 active1->StartL(); |
|
2538 active2->StartL(); |
|
2539 TEST(view1->SetFilterL(*list, active1->iStatus)); |
|
2540 TEST(view2->SetFilterL(*list, active2->iStatus)); |
|
2541 CActiveScheduler::Start(); |
|
2542 CActiveScheduler::Start(); |
|
2543 TEST2(view1->CountL(), 3); |
|
2544 TEST2(view2->CountL(), 3); |
|
2545 |
|
2546 list->ResetAndDestroy(); |
|
2547 |
|
2548 ///////////////////////////////////////// |
|
2549 |
|
2550 filter = CLogFilter::NewL(); |
|
2551 CleanupStack::PushL(filter); |
|
2552 |
|
2553 // Set filter |
|
2554 filter->SetContact(KTestContact1); |
|
2555 filter->SetDirection(KTestDirection1); |
|
2556 filter->SetDurationType(KLogDurationNone); |
|
2557 filter->SetEventType(KLogCallEventTypeUid); |
|
2558 filter->SetNumber(KTestNumber1); |
|
2559 filter->SetRemoteParty(KTestRemote1); |
|
2560 |
|
2561 list->AppendL(filter); |
|
2562 CleanupStack::Pop(); // filter |
|
2563 |
|
2564 // Test View |
|
2565 active1->StartL(); |
|
2566 active2->StartL(); |
|
2567 TEST(view1->SetFilterL(*list, active1->iStatus)); |
|
2568 TEST(view2->SetFilterL(*list, active2->iStatus)); |
|
2569 CActiveScheduler::Start(); |
|
2570 CActiveScheduler::Start(); |
|
2571 TEST2(view1->CountL(), 1); |
|
2572 TEST2(view2->CountL(), 1); |
|
2573 |
|
2574 filter = CLogFilter::NewL(); |
|
2575 CleanupStack::PushL(filter); |
|
2576 |
|
2577 // Set filter |
|
2578 filter->SetContact(KTestContact2); |
|
2579 filter->SetDirection(KTestDirection2); |
|
2580 filter->SetDurationType(KLogDurationValid); |
|
2581 filter->SetEventType(KLogDataEventTypeUid); |
|
2582 filter->SetNumber(KTestNumber2); |
|
2583 filter->SetRemoteParty(KTestRemote2); |
|
2584 |
|
2585 list->AppendL(filter); |
|
2586 CleanupStack::Pop(); // filter |
|
2587 |
|
2588 // Test View |
|
2589 active1->StartL(); |
|
2590 active2->StartL(); |
|
2591 TEST(view1->SetFilterL(*list, active1->iStatus)); |
|
2592 TEST(view2->SetFilterL(*list, active2->iStatus)); |
|
2593 CActiveScheduler::Start(); |
|
2594 CActiveScheduler::Start(); |
|
2595 TEST2(view1->CountL(), 2); |
|
2596 TEST2(view2->CountL(), 2); |
|
2597 |
|
2598 filter = CLogFilter::NewL(); |
|
2599 CleanupStack::PushL(filter); |
|
2600 |
|
2601 // Set filter |
|
2602 filter->SetContact(KTestContact3); |
|
2603 filter->SetDirection(KTestDirection3); |
|
2604 filter->SetDurationType(KLogDurationData); |
|
2605 filter->SetEventType(KLogFaxEventTypeUid); |
|
2606 filter->SetNumber(KTestNumber3); |
|
2607 filter->SetRemoteParty(KTestRemote3); |
|
2608 |
|
2609 list->AppendL(filter); |
|
2610 CleanupStack::Pop(); // filter |
|
2611 |
|
2612 // Test View |
|
2613 active1->StartL(); |
|
2614 active2->StartL(); |
|
2615 TEST(view1->SetFilterL(*list, active1->iStatus)); |
|
2616 TEST(view2->SetFilterL(*list, active2->iStatus)); |
|
2617 CActiveScheduler::Start(); |
|
2618 CActiveScheduler::Start(); |
|
2619 TEST2(view1->CountL(), 3); |
|
2620 TEST2(view2->CountL(), 3); |
|
2621 |
|
2622 list->ResetAndDestroy(); |
|
2623 |
|
2624 ///////////////////////////////////////// |
|
2625 |
|
2626 filter = CLogFilter::NewL(); |
|
2627 CleanupStack::PushL(filter); |
|
2628 |
|
2629 // Set filter |
|
2630 filter->SetContact(KTestContact1); |
|
2631 filter->SetDirection(KTestDirection1); |
|
2632 filter->SetDurationType(KLogDurationNone); |
|
2633 filter->SetEventType(KLogCallEventTypeUid); |
|
2634 filter->SetNumber(KTestNumber1); |
|
2635 filter->SetRemoteParty(KTestRemote1); |
|
2636 filter->SetStatus(KTestStatus1); |
|
2637 |
|
2638 list->AppendL(filter); |
|
2639 CleanupStack::Pop(); // filter |
|
2640 |
|
2641 // Test View |
|
2642 active1->StartL(); |
|
2643 active2->StartL(); |
|
2644 TEST(view1->SetFilterL(*list, active1->iStatus)); |
|
2645 TEST(view2->SetFilterL(*list, active2->iStatus)); |
|
2646 CActiveScheduler::Start(); |
|
2647 CActiveScheduler::Start(); |
|
2648 TEST2(view1->CountL(), 1); |
|
2649 TEST2(view2->CountL(), 1); |
|
2650 |
|
2651 filter = CLogFilter::NewL(); |
|
2652 CleanupStack::PushL(filter); |
|
2653 |
|
2654 // Set filter |
|
2655 filter->SetContact(KTestContact2); |
|
2656 filter->SetDirection(KTestDirection2); |
|
2657 filter->SetDurationType(KLogDurationValid); |
|
2658 filter->SetEventType(KLogDataEventTypeUid); |
|
2659 filter->SetNumber(KTestNumber2); |
|
2660 filter->SetRemoteParty(KTestRemote2); |
|
2661 filter->SetStatus(KTestStatus2); |
|
2662 |
|
2663 list->AppendL(filter); |
|
2664 CleanupStack::Pop(); // filter |
|
2665 |
|
2666 // Test View |
|
2667 active1->StartL(); |
|
2668 active2->StartL(); |
|
2669 TEST(view1->SetFilterL(*list, active1->iStatus)); |
|
2670 TEST(view2->SetFilterL(*list, active2->iStatus)); |
|
2671 CActiveScheduler::Start(); |
|
2672 CActiveScheduler::Start(); |
|
2673 TEST2(view1->CountL(), 2); |
|
2674 TEST2(view2->CountL(), 2); |
|
2675 |
|
2676 filter = CLogFilter::NewL(); |
|
2677 CleanupStack::PushL(filter); |
|
2678 |
|
2679 // Set filter |
|
2680 filter->SetContact(KTestContact3); |
|
2681 filter->SetDirection(KTestDirection3); |
|
2682 filter->SetDurationType(KLogDurationData); |
|
2683 filter->SetEventType(KLogFaxEventTypeUid); |
|
2684 filter->SetNumber(KTestNumber3); |
|
2685 filter->SetRemoteParty(KTestRemote3); |
|
2686 filter->SetStatus(KTestStatus3); |
|
2687 |
|
2688 list->AppendL(filter); |
|
2689 CleanupStack::Pop(); // filter |
|
2690 |
|
2691 // Test View |
|
2692 active1->StartL(); |
|
2693 active2->StartL(); |
|
2694 TEST(view1->SetFilterL(*list, active1->iStatus)); |
|
2695 TEST(view2->SetFilterL(*list, active2->iStatus)); |
|
2696 CActiveScheduler::Start(); |
|
2697 CActiveScheduler::Start(); |
|
2698 TEST2(view1->CountL(), 3); |
|
2699 TEST2(view2->CountL(), 3); |
|
2700 |
|
2701 list->ResetAndDestroy(); |
|
2702 |
|
2703 CleanupStack::PopAndDestroy(6); // list, view1, view2, event, active1, active2 |
|
2704 } |
|
2705 |
|
2706 /** |
|
2707 @SYMTestCaseID SYSLIB-LOGENG-CT-0944 |
|
2708 @SYMTestCaseDesc Multiple log event views test |
|
2709 @SYMTestPriority High |
|
2710 @SYMTestActions Add events and set the filter with different fields. |
|
2711 Check for log event views and the test for the count of events |
|
2712 @SYMTestExpectedResults Test must not fail |
|
2713 @SYMREQ REQ0000 |
|
2714 */ |
|
2715 LOCAL_C void TestMultipleViews2L(CLogClient& aClient) |
|
2716 { |
|
2717 test.Next(_L(" @SYMTestCaseID:SYSLIB-LOGENG-CT-0944 ")); |
|
2718 CTestActive* active1 = new(ELeave)CTestActive; |
|
2719 CleanupStack::PushL(active1); |
|
2720 |
|
2721 // Wait a second |
|
2722 User::After(1000000); |
|
2723 |
|
2724 TTime now; |
|
2725 now.UniversalTime(); |
|
2726 now += (TTimeIntervalDays)+1; |
|
2727 |
|
2728 // Get rid of all the events in the log |
|
2729 active1->StartL(); |
|
2730 aClient.ClearLog(now, active1->iStatus); |
|
2731 CActiveScheduler::Start(); |
|
2732 TEST2(active1->iStatus.Int(), KErrNone); |
|
2733 |
|
2734 CTestActive* active2 = new(ELeave)CTestActive; |
|
2735 CleanupStack::PushL(active2); |
|
2736 |
|
2737 CLogEvent* event = CLogEvent::NewL(); |
|
2738 CleanupStack::PushL(event); |
|
2739 |
|
2740 event->SetEventType(KLogCallEventTypeUid); |
|
2741 event->SetContact(KTestContact1); |
|
2742 event->SetDirection(KTestDirection1); |
|
2743 event->SetDurationType(KLogDurationNone); |
|
2744 event->SetNumber(KTestNumber1); |
|
2745 event->SetRemoteParty(KTestRemote1); |
|
2746 event->SetStatus(KTestStatus1); |
|
2747 |
|
2748 // Add event |
|
2749 active1->StartL(); |
|
2750 aClient.AddEvent(*event, active1->iStatus); |
|
2751 CActiveScheduler::Start(); |
|
2752 TEST2(active1->iStatus.Int(), KErrNone); |
|
2753 |
|
2754 event->SetEventType(KLogDataEventTypeUid); |
|
2755 event->SetContact(KTestContact2); |
|
2756 event->SetDirection(KTestDirection2); |
|
2757 event->SetDurationType(KLogDurationValid); |
|
2758 event->SetNumber(KTestNumber2); |
|
2759 event->SetRemoteParty(KTestRemote2); |
|
2760 event->SetStatus(KTestStatus2); |
|
2761 |
|
2762 // Add event |
|
2763 active1->StartL(); |
|
2764 aClient.AddEvent(*event, active1->iStatus); |
|
2765 CActiveScheduler::Start(); |
|
2766 TEST2(active1->iStatus.Int(), KErrNone); |
|
2767 |
|
2768 event->SetEventType(KLogFaxEventTypeUid); |
|
2769 event->SetContact(KTestContact3); |
|
2770 event->SetDirection(KTestDirection3); |
|
2771 event->SetDurationType(KLogDurationData); |
|
2772 event->SetNumber(KTestNumber3); |
|
2773 event->SetRemoteParty(KTestRemote3); |
|
2774 event->SetStatus(KTestStatus3); |
|
2775 |
|
2776 // Add event |
|
2777 active1->StartL(); |
|
2778 aClient.AddEvent(*event, active1->iStatus); |
|
2779 CActiveScheduler::Start(); |
|
2780 TEST2(active1->iStatus.Int(), KErrNone); |
|
2781 |
|
2782 CLogFilterList* list = new(ELeave)CLogFilterList; |
|
2783 CleanupStack::PushL(list); |
|
2784 |
|
2785 CLogViewEvent* view1 = CLogViewEvent::NewL(aClient); |
|
2786 CleanupStack::PushL(view1); |
|
2787 |
|
2788 CLogClient* client2 = CLogClient::NewL(theFs); |
|
2789 CleanupStack::PushL(client2); |
|
2790 |
|
2791 CLogViewEvent* view2 = CLogViewEvent::NewL(*client2); |
|
2792 CleanupStack::PushL(view2); |
|
2793 |
|
2794 CLogFilter* filter = CLogFilter::NewL(); |
|
2795 CleanupStack::PushL(filter); |
|
2796 |
|
2797 // Set filter |
|
2798 filter->SetContact(KTestContact1); |
|
2799 |
|
2800 list->AppendL(filter); |
|
2801 CleanupStack::Pop(); // filter |
|
2802 |
|
2803 // Test Views |
|
2804 active1->StartL(); |
|
2805 active2->StartL(); |
|
2806 TEST(view1->SetFilterL(*list, active1->iStatus)); |
|
2807 TEST(view2->SetFilterL(*list, active2->iStatus)); |
|
2808 CActiveScheduler::Start(); |
|
2809 CActiveScheduler::Start(); |
|
2810 TEST2(view1->CountL(), 1); |
|
2811 TEST2(view2->CountL(), 1); |
|
2812 |
|
2813 filter = CLogFilter::NewL(); |
|
2814 CleanupStack::PushL(filter); |
|
2815 |
|
2816 // Set filter |
|
2817 filter->SetContact(KTestContact2); |
|
2818 |
|
2819 list->AppendL(filter); |
|
2820 CleanupStack::Pop(); // filter |
|
2821 |
|
2822 // Test View |
|
2823 active1->StartL(); |
|
2824 TEST(view1->SetFilterL(*list, active1->iStatus)); |
|
2825 CActiveScheduler::Start(); |
|
2826 TEST2(view1->CountL(), 2); |
|
2827 |
|
2828 filter = CLogFilter::NewL(); |
|
2829 CleanupStack::PushL(filter); |
|
2830 |
|
2831 // Set filter |
|
2832 filter->SetContact(KTestContact3); |
|
2833 |
|
2834 list->AppendL(filter); |
|
2835 CleanupStack::Pop(); // filter |
|
2836 |
|
2837 // Test View |
|
2838 active1->StartL(); |
|
2839 active2->StartL(); |
|
2840 TEST(view1->SetFilterL(*list, active1->iStatus)); |
|
2841 TEST(view2->SetFilterL(*list, active2->iStatus)); |
|
2842 CActiveScheduler::Start(); |
|
2843 CActiveScheduler::Start(); |
|
2844 TEST2(view1->CountL(), 3); |
|
2845 TEST2(view2->CountL(), 3); |
|
2846 |
|
2847 list->ResetAndDestroy(); |
|
2848 |
|
2849 ///////////////////////////////////////// |
|
2850 |
|
2851 filter = CLogFilter::NewL(); |
|
2852 CleanupStack::PushL(filter); |
|
2853 |
|
2854 // Set filter |
|
2855 filter->SetContact(KTestContact1); |
|
2856 filter->SetDirection(KTestDirection1); |
|
2857 |
|
2858 list->AppendL(filter); |
|
2859 CleanupStack::Pop(); // filter |
|
2860 |
|
2861 // Test View |
|
2862 active1->StartL(); |
|
2863 active2->StartL(); |
|
2864 TEST(view1->SetFilterL(*list, active1->iStatus)); |
|
2865 TEST(view2->SetFilterL(*list, active2->iStatus)); |
|
2866 CActiveScheduler::Start(); |
|
2867 CActiveScheduler::Start(); |
|
2868 TEST2(view1->CountL(), 1); |
|
2869 TEST2(view2->CountL(), 1); |
|
2870 |
|
2871 filter = CLogFilter::NewL(); |
|
2872 CleanupStack::PushL(filter); |
|
2873 |
|
2874 // Set filter |
|
2875 filter->SetContact(KTestContact2); |
|
2876 filter->SetDirection(KTestDirection2); |
|
2877 |
|
2878 list->AppendL(filter); |
|
2879 CleanupStack::Pop(); // filter |
|
2880 |
|
2881 // Test View |
|
2882 active1->StartL(); |
|
2883 active2->StartL(); |
|
2884 TEST(view1->SetFilterL(*list, active1->iStatus)); |
|
2885 TEST(view2->SetFilterL(*list, active2->iStatus)); |
|
2886 CActiveScheduler::Start(); |
|
2887 CActiveScheduler::Start(); |
|
2888 TEST2(view1->CountL(), 2); |
|
2889 TEST2(view2->CountL(), 2); |
|
2890 |
|
2891 filter = CLogFilter::NewL(); |
|
2892 CleanupStack::PushL(filter); |
|
2893 |
|
2894 // Set filter |
|
2895 filter->SetContact(KTestContact3); |
|
2896 filter->SetDirection(KTestDirection3); |
|
2897 |
|
2898 list->AppendL(filter); |
|
2899 CleanupStack::Pop(); // filter |
|
2900 |
|
2901 // Test View |
|
2902 active1->StartL(); |
|
2903 active2->StartL(); |
|
2904 TEST(view1->SetFilterL(*list, active1->iStatus)); |
|
2905 TEST(view2->SetFilterL(*list, active2->iStatus)); |
|
2906 CActiveScheduler::Start(); |
|
2907 CActiveScheduler::Start(); |
|
2908 TEST2(view1->CountL(), 3); |
|
2909 TEST2(view2->CountL(), 3); |
|
2910 |
|
2911 list->ResetAndDestroy(); |
|
2912 |
|
2913 ///////////////////////////////////////// |
|
2914 |
|
2915 filter = CLogFilter::NewL(); |
|
2916 CleanupStack::PushL(filter); |
|
2917 |
|
2918 // Set filter |
|
2919 filter->SetContact(KTestContact1); |
|
2920 filter->SetDirection(KTestDirection1); |
|
2921 filter->SetDurationType(KLogDurationNone); |
|
2922 |
|
2923 list->AppendL(filter); |
|
2924 CleanupStack::Pop(); // filter |
|
2925 |
|
2926 // Test View |
|
2927 active1->StartL(); |
|
2928 active2->StartL(); |
|
2929 TEST(view1->SetFilterL(*list, active1->iStatus)); |
|
2930 TEST(view2->SetFilterL(*list, active2->iStatus)); |
|
2931 CActiveScheduler::Start(); |
|
2932 CActiveScheduler::Start(); |
|
2933 TEST2(view1->CountL(), 1); |
|
2934 TEST2(view2->CountL(), 1); |
|
2935 |
|
2936 filter = CLogFilter::NewL(); |
|
2937 CleanupStack::PushL(filter); |
|
2938 |
|
2939 // Set filter |
|
2940 filter->SetContact(KTestContact2); |
|
2941 filter->SetDirection(KTestDirection2); |
|
2942 filter->SetDurationType(KLogDurationValid); |
|
2943 |
|
2944 list->AppendL(filter); |
|
2945 CleanupStack::Pop(); // filter |
|
2946 |
|
2947 // Test View |
|
2948 active1->StartL(); |
|
2949 active2->StartL(); |
|
2950 TEST(view1->SetFilterL(*list, active1->iStatus)); |
|
2951 TEST(view2->SetFilterL(*list, active2->iStatus)); |
|
2952 CActiveScheduler::Start(); |
|
2953 CActiveScheduler::Start(); |
|
2954 TEST2(view1->CountL(), 2); |
|
2955 TEST2(view2->CountL(), 2); |
|
2956 |
|
2957 filter = CLogFilter::NewL(); |
|
2958 CleanupStack::PushL(filter); |
|
2959 |
|
2960 // Set filter |
|
2961 filter->SetContact(KTestContact3); |
|
2962 filter->SetDirection(KTestDirection3); |
|
2963 filter->SetDurationType(KLogDurationData); |
|
2964 |
|
2965 list->AppendL(filter); |
|
2966 CleanupStack::Pop(); // filter |
|
2967 |
|
2968 // Test View |
|
2969 active1->StartL(); |
|
2970 active2->StartL(); |
|
2971 TEST(view1->SetFilterL(*list, active1->iStatus)); |
|
2972 TEST(view2->SetFilterL(*list, active2->iStatus)); |
|
2973 CActiveScheduler::Start(); |
|
2974 CActiveScheduler::Start(); |
|
2975 TEST2(view1->CountL(), 3); |
|
2976 TEST2(view2->CountL(), 3); |
|
2977 |
|
2978 list->ResetAndDestroy(); |
|
2979 |
|
2980 ///////////////////////////////////////// |
|
2981 |
|
2982 filter = CLogFilter::NewL(); |
|
2983 CleanupStack::PushL(filter); |
|
2984 |
|
2985 // Set filter |
|
2986 filter->SetContact(KTestContact1); |
|
2987 filter->SetDirection(KTestDirection1); |
|
2988 filter->SetDurationType(KLogDurationNone); |
|
2989 filter->SetEventType(KLogCallEventTypeUid); |
|
2990 |
|
2991 list->AppendL(filter); |
|
2992 CleanupStack::Pop(); // filter |
|
2993 |
|
2994 // Test View |
|
2995 active1->StartL(); |
|
2996 active2->StartL(); |
|
2997 TEST(view1->SetFilterL(*list, active1->iStatus)); |
|
2998 TEST(view2->SetFilterL(*list, active2->iStatus)); |
|
2999 CActiveScheduler::Start(); |
|
3000 CActiveScheduler::Start(); |
|
3001 TEST2(view1->CountL(), 1); |
|
3002 TEST2(view2->CountL(), 1); |
|
3003 |
|
3004 filter = CLogFilter::NewL(); |
|
3005 CleanupStack::PushL(filter); |
|
3006 |
|
3007 // Set filter |
|
3008 filter->SetContact(KTestContact2); |
|
3009 filter->SetDirection(KTestDirection2); |
|
3010 filter->SetDurationType(KLogDurationValid); |
|
3011 filter->SetEventType(KLogDataEventTypeUid); |
|
3012 |
|
3013 list->AppendL(filter); |
|
3014 CleanupStack::Pop(); // filter |
|
3015 |
|
3016 // Test View |
|
3017 active1->StartL(); |
|
3018 active2->StartL(); |
|
3019 TEST(view1->SetFilterL(*list, active1->iStatus)); |
|
3020 TEST(view2->SetFilterL(*list, active2->iStatus)); |
|
3021 CActiveScheduler::Start(); |
|
3022 CActiveScheduler::Start(); |
|
3023 TEST2(view1->CountL(), 2); |
|
3024 TEST2(view2->CountL(), 2); |
|
3025 |
|
3026 filter = CLogFilter::NewL(); |
|
3027 CleanupStack::PushL(filter); |
|
3028 |
|
3029 // Set filter |
|
3030 filter->SetContact(KTestContact3); |
|
3031 filter->SetDirection(KTestDirection3); |
|
3032 filter->SetDurationType(KLogDurationData); |
|
3033 filter->SetEventType(KLogFaxEventTypeUid); |
|
3034 |
|
3035 list->AppendL(filter); |
|
3036 CleanupStack::Pop(); // filter |
|
3037 |
|
3038 // Test View |
|
3039 active1->StartL(); |
|
3040 active2->StartL(); |
|
3041 TEST(view1->SetFilterL(*list, active1->iStatus)); |
|
3042 TEST(view2->SetFilterL(*list, active2->iStatus)); |
|
3043 CActiveScheduler::Start(); |
|
3044 CActiveScheduler::Start(); |
|
3045 TEST2(view1->CountL(), 3); |
|
3046 TEST2(view2->CountL(), 3); |
|
3047 |
|
3048 list->ResetAndDestroy(); |
|
3049 |
|
3050 ///////////////////////////////////////// |
|
3051 |
|
3052 filter = CLogFilter::NewL(); |
|
3053 CleanupStack::PushL(filter); |
|
3054 |
|
3055 // Set filter |
|
3056 filter->SetContact(KTestContact1); |
|
3057 filter->SetDirection(KTestDirection1); |
|
3058 filter->SetDurationType(KLogDurationNone); |
|
3059 filter->SetEventType(KLogCallEventTypeUid); |
|
3060 filter->SetNumber(KTestNumber1); |
|
3061 |
|
3062 list->AppendL(filter); |
|
3063 CleanupStack::Pop(); // filter |
|
3064 |
|
3065 // Test View |
|
3066 active1->StartL(); |
|
3067 active2->StartL(); |
|
3068 TEST(view1->SetFilterL(*list, active1->iStatus)); |
|
3069 TEST(view2->SetFilterL(*list, active2->iStatus)); |
|
3070 CActiveScheduler::Start(); |
|
3071 CActiveScheduler::Start(); |
|
3072 TEST2(view1->CountL(), 1); |
|
3073 TEST2(view2->CountL(), 1); |
|
3074 |
|
3075 filter = CLogFilter::NewL(); |
|
3076 CleanupStack::PushL(filter); |
|
3077 |
|
3078 // Set filter |
|
3079 filter->SetContact(KTestContact2); |
|
3080 filter->SetDirection(KTestDirection2); |
|
3081 filter->SetDurationType(KLogDurationValid); |
|
3082 filter->SetEventType(KLogDataEventTypeUid); |
|
3083 filter->SetNumber(KTestNumber2); |
|
3084 |
|
3085 list->AppendL(filter); |
|
3086 CleanupStack::Pop(); // filter |
|
3087 |
|
3088 // Test View |
|
3089 active1->StartL(); |
|
3090 active2->StartL(); |
|
3091 TEST(view1->SetFilterL(*list, active1->iStatus)); |
|
3092 TEST(view2->SetFilterL(*list, active2->iStatus)); |
|
3093 CActiveScheduler::Start(); |
|
3094 CActiveScheduler::Start(); |
|
3095 TEST2(view1->CountL(), 2); |
|
3096 TEST2(view2->CountL(), 2); |
|
3097 |
|
3098 filter = CLogFilter::NewL(); |
|
3099 CleanupStack::PushL(filter); |
|
3100 |
|
3101 // Set filter |
|
3102 filter->SetContact(KTestContact3); |
|
3103 filter->SetDirection(KTestDirection3); |
|
3104 filter->SetDurationType(KLogDurationData); |
|
3105 filter->SetEventType(KLogFaxEventTypeUid); |
|
3106 filter->SetNumber(KTestNumber3); |
|
3107 |
|
3108 list->AppendL(filter); |
|
3109 CleanupStack::Pop(); // filter |
|
3110 |
|
3111 // Test View |
|
3112 active1->StartL(); |
|
3113 active2->StartL(); |
|
3114 TEST(view1->SetFilterL(*list, active1->iStatus)); |
|
3115 TEST(view2->SetFilterL(*list, active2->iStatus)); |
|
3116 CActiveScheduler::Start(); |
|
3117 CActiveScheduler::Start(); |
|
3118 TEST2(view1->CountL(), 3); |
|
3119 TEST2(view2->CountL(), 3); |
|
3120 |
|
3121 list->ResetAndDestroy(); |
|
3122 |
|
3123 ///////////////////////////////////////// |
|
3124 |
|
3125 filter = CLogFilter::NewL(); |
|
3126 CleanupStack::PushL(filter); |
|
3127 |
|
3128 // Set filter |
|
3129 filter->SetContact(KTestContact1); |
|
3130 filter->SetDirection(KTestDirection1); |
|
3131 filter->SetDurationType(KLogDurationNone); |
|
3132 filter->SetEventType(KLogCallEventTypeUid); |
|
3133 filter->SetNumber(KTestNumber1); |
|
3134 filter->SetRemoteParty(KTestRemote1); |
|
3135 |
|
3136 list->AppendL(filter); |
|
3137 CleanupStack::Pop(); // filter |
|
3138 |
|
3139 // Test View |
|
3140 active1->StartL(); |
|
3141 active2->StartL(); |
|
3142 TEST(view1->SetFilterL(*list, active1->iStatus)); |
|
3143 TEST(view2->SetFilterL(*list, active2->iStatus)); |
|
3144 CActiveScheduler::Start(); |
|
3145 CActiveScheduler::Start(); |
|
3146 TEST2(view1->CountL(), 1); |
|
3147 TEST2(view2->CountL(), 1); |
|
3148 |
|
3149 filter = CLogFilter::NewL(); |
|
3150 CleanupStack::PushL(filter); |
|
3151 |
|
3152 // Set filter |
|
3153 filter->SetContact(KTestContact2); |
|
3154 filter->SetDirection(KTestDirection2); |
|
3155 filter->SetDurationType(KLogDurationValid); |
|
3156 filter->SetEventType(KLogDataEventTypeUid); |
|
3157 filter->SetNumber(KTestNumber2); |
|
3158 filter->SetRemoteParty(KTestRemote2); |
|
3159 |
|
3160 list->AppendL(filter); |
|
3161 CleanupStack::Pop(); // filter |
|
3162 |
|
3163 // Test View |
|
3164 active1->StartL(); |
|
3165 active2->StartL(); |
|
3166 TEST(view1->SetFilterL(*list, active1->iStatus)); |
|
3167 TEST(view2->SetFilterL(*list, active2->iStatus)); |
|
3168 CActiveScheduler::Start(); |
|
3169 CActiveScheduler::Start(); |
|
3170 TEST2(view1->CountL(), 2); |
|
3171 TEST2(view2->CountL(), 2); |
|
3172 |
|
3173 filter = CLogFilter::NewL(); |
|
3174 CleanupStack::PushL(filter); |
|
3175 |
|
3176 // Set filter |
|
3177 filter->SetContact(KTestContact3); |
|
3178 filter->SetDirection(KTestDirection3); |
|
3179 filter->SetDurationType(KLogDurationData); |
|
3180 filter->SetEventType(KLogFaxEventTypeUid); |
|
3181 filter->SetNumber(KTestNumber3); |
|
3182 filter->SetRemoteParty(KTestRemote3); |
|
3183 |
|
3184 list->AppendL(filter); |
|
3185 CleanupStack::Pop(); // filter |
|
3186 |
|
3187 // Test View |
|
3188 active1->StartL(); |
|
3189 active2->StartL(); |
|
3190 TEST(view1->SetFilterL(*list, active1->iStatus)); |
|
3191 TEST(view2->SetFilterL(*list, active2->iStatus)); |
|
3192 CActiveScheduler::Start(); |
|
3193 CActiveScheduler::Start(); |
|
3194 TEST2(view1->CountL(), 3); |
|
3195 TEST2(view2->CountL(), 3); |
|
3196 |
|
3197 list->ResetAndDestroy(); |
|
3198 |
|
3199 ///////////////////////////////////////// |
|
3200 |
|
3201 filter = CLogFilter::NewL(); |
|
3202 CleanupStack::PushL(filter); |
|
3203 |
|
3204 // Set filter |
|
3205 filter->SetContact(KTestContact1); |
|
3206 filter->SetDirection(KTestDirection1); |
|
3207 filter->SetDurationType(KLogDurationNone); |
|
3208 filter->SetEventType(KLogCallEventTypeUid); |
|
3209 filter->SetNumber(KTestNumber1); |
|
3210 filter->SetRemoteParty(KTestRemote1); |
|
3211 filter->SetStatus(KTestStatus1); |
|
3212 |
|
3213 list->AppendL(filter); |
|
3214 CleanupStack::Pop(); // filter |
|
3215 |
|
3216 // Test View |
|
3217 active1->StartL(); |
|
3218 active2->StartL(); |
|
3219 TEST(view1->SetFilterL(*list, active1->iStatus)); |
|
3220 TEST(view2->SetFilterL(*list, active2->iStatus)); |
|
3221 CActiveScheduler::Start(); |
|
3222 CActiveScheduler::Start(); |
|
3223 TEST2(view1->CountL(), 1); |
|
3224 TEST2(view2->CountL(), 1); |
|
3225 |
|
3226 filter = CLogFilter::NewL(); |
|
3227 CleanupStack::PushL(filter); |
|
3228 |
|
3229 // Set filter |
|
3230 filter->SetContact(KTestContact2); |
|
3231 filter->SetDirection(KTestDirection2); |
|
3232 filter->SetDurationType(KLogDurationValid); |
|
3233 filter->SetEventType(KLogDataEventTypeUid); |
|
3234 filter->SetNumber(KTestNumber2); |
|
3235 filter->SetRemoteParty(KTestRemote2); |
|
3236 filter->SetStatus(KTestStatus2); |
|
3237 |
|
3238 list->AppendL(filter); |
|
3239 CleanupStack::Pop(); // filter |
|
3240 |
|
3241 // Test View |
|
3242 active1->StartL(); |
|
3243 active2->StartL(); |
|
3244 TEST(view1->SetFilterL(*list, active1->iStatus)); |
|
3245 TEST(view2->SetFilterL(*list, active2->iStatus)); |
|
3246 CActiveScheduler::Start(); |
|
3247 CActiveScheduler::Start(); |
|
3248 TEST2(view1->CountL(), 2); |
|
3249 TEST2(view2->CountL(), 2); |
|
3250 |
|
3251 filter = CLogFilter::NewL(); |
|
3252 CleanupStack::PushL(filter); |
|
3253 |
|
3254 // Set filter |
|
3255 filter->SetContact(KTestContact3); |
|
3256 filter->SetDirection(KTestDirection3); |
|
3257 filter->SetDurationType(KLogDurationData); |
|
3258 filter->SetEventType(KLogFaxEventTypeUid); |
|
3259 filter->SetNumber(KTestNumber3); |
|
3260 filter->SetRemoteParty(KTestRemote3); |
|
3261 filter->SetStatus(KTestStatus3); |
|
3262 |
|
3263 list->AppendL(filter); |
|
3264 CleanupStack::Pop(); // filter |
|
3265 |
|
3266 // Test View |
|
3267 active1->StartL(); |
|
3268 active2->StartL(); |
|
3269 TEST(view1->SetFilterL(*list, active1->iStatus)); |
|
3270 TEST(view2->SetFilterL(*list, active2->iStatus)); |
|
3271 CActiveScheduler::Start(); |
|
3272 CActiveScheduler::Start(); |
|
3273 TEST2(view1->CountL(), 3); |
|
3274 TEST2(view2->CountL(), 3); |
|
3275 |
|
3276 list->ResetAndDestroy(); |
|
3277 |
|
3278 CleanupStack::PopAndDestroy(7); // list, view1, view2, client2, event, active1, active2 |
|
3279 } |
|
3280 |
|
3281 /** |
|
3282 @SYMTestCaseID SYSLIB-LOGENG-CT-0945 |
|
3283 @SYMTestCaseDesc Tests for notification on changes done to the view |
|
3284 Tests for CLogViewChangeObserver::iStatus |
|
3285 @SYMTestPriority High |
|
3286 @SYMTestActions Tests for setting a filter on the view.Check for receiving notifications on adding events to the view |
|
3287 @SYMTestExpectedResults Test must not fail |
|
3288 @SYMREQ REQ0000 |
|
3289 */ |
|
3290 LOCAL_C void TestViewChangeEventsL(CLogClient& aClient) |
|
3291 { |
|
3292 test.Next(_L(" @SYMTestCaseID:SYSLIB-LOGENG-CT-0945 ")); |
|
3293 TestUtils::DeleteDatabaseL(); |
|
3294 |
|
3295 CLogEvent* event = CLogEvent::NewL(); |
|
3296 CleanupStack::PushL(event); |
|
3297 event->SetEventType(KLogCallEventTypeUid); |
|
3298 |
|
3299 CTestActive* active = new(ELeave) CTestActive(); |
|
3300 CleanupStack::PushL(active); |
|
3301 |
|
3302 CLogViewChangeObserver* changeObs = CLogViewChangeObserver::NewLC(); |
|
3303 |
|
3304 CLogViewEvent* view = CLogViewEvent::NewL(aClient, *changeObs); |
|
3305 CleanupStack::PushL(view); |
|
3306 |
|
3307 CLogFilter* filter = CLogFilter::NewL(); |
|
3308 CleanupStack::PushL(filter); |
|
3309 TEST(!view->SetFilterL(*filter, active->iStatus)); |
|
3310 |
|
3311 // Add some events and check we receive change notifications |
|
3312 TInt count; |
|
3313 TLogId logId; |
|
3314 TInt viewIndex; |
|
3315 // |
|
3316 for(count = 0; count < KTestEventNum; count++) |
|
3317 { |
|
3318 aClient.AddEvent(*event, changeObs->iStatus); |
|
3319 CLogChangeDefinition* changes = changeObs->WaitForChangesLC(CLogViewChangeObserver::EStopOnBoth); |
|
3320 TEST2(changeObs->iStatus.Int(), KErrNone); |
|
3321 TEST(event->Id() == (TLogId) count); |
|
3322 // |
|
3323 User::After(1); |
|
3324 // |
|
3325 TEST2(changes->Count(), 1); |
|
3326 TEST2(changes->At(0, logId, viewIndex), ELogChangeTypeEventAdded); |
|
3327 TEST(logId == (TLogId) count); |
|
3328 TEST2(viewIndex, 0); |
|
3329 CleanupStack::PopAndDestroy(changes); |
|
3330 } |
|
3331 |
|
3332 CleanupStack::PopAndDestroy(5, event); // filter, view, changeObs, active, event |
|
3333 } |
|
3334 |
|
3335 /** |
|
3336 @SYMTestCaseID SYSLIB-LOGENG-CT-0946 |
|
3337 @SYMTestCaseDesc Tests for events in the recent view list |
|
3338 @SYMTestPriority High |
|
3339 @SYMTestActions Tests for events in the recent view list after setting the filters for incoming,outgoing and missed calls |
|
3340 @SYMTestExpectedResults Test must not fail |
|
3341 @SYMREQ REQ0000 |
|
3342 */ |
|
3343 LOCAL_C void TestAltEventsInRecentListL(CLogClient& aClient) |
|
3344 { |
|
3345 test.Next(_L(" @SYMTestCaseID:SYSLIB-LOGENG-CT-0946 ")); |
|
3346 CLogEvent* event = CLogEvent::NewL(); |
|
3347 CleanupStack::PushL(event); |
|
3348 |
|
3349 CTestActive* active = new(ELeave)CTestActive(); |
|
3350 CleanupStack::PushL(active); |
|
3351 |
|
3352 CLogViewRecent* view = CLogViewRecent::NewL(aClient); |
|
3353 CleanupStack::PushL(view); |
|
3354 |
|
3355 // Clear recent lists |
|
3356 active->StartL(); |
|
3357 aClient.ClearLog(KLogNullRecentList, active->iStatus); |
|
3358 CActiveScheduler::Start(); |
|
3359 TEST2(active->iStatus.Int(), KErrNone); |
|
3360 |
|
3361 TLogString buf; |
|
3362 event->SetEventType(KLogCallEventTypeUid); |
|
3363 |
|
3364 // Add Incoming events |
|
3365 aClient.GetString(buf, R_LOG_DIR_IN); |
|
3366 event->SetDirection(buf); |
|
3367 event->SetContact(1); |
|
3368 active->StartL(); |
|
3369 aClient.AddEvent(*event, active->iStatus); |
|
3370 CActiveScheduler::Start(); |
|
3371 TEST2(active->iStatus.Int(), KErrNone); |
|
3372 aClient.GetString(buf, R_LOG_DIR_IN_ALT); |
|
3373 event->SetDirection(buf); |
|
3374 event->SetContact(2); |
|
3375 active->StartL(); |
|
3376 aClient.AddEvent(*event, active->iStatus); |
|
3377 CActiveScheduler::Start(); |
|
3378 TEST2(active->iStatus.Int(), KErrNone); |
|
3379 // Verify both events in recent list |
|
3380 active->StartL(); |
|
3381 TEST(view->SetRecentListL(KLogRecentIncomingCalls, active->iStatus)); |
|
3382 CActiveScheduler::Start(); |
|
3383 TEST2(active->iStatus.Int(), KErrNone); |
|
3384 TEST2(view->CountL(), 2); |
|
3385 |
|
3386 // Add Outgoing events |
|
3387 aClient.GetString(buf, R_LOG_DIR_OUT); |
|
3388 event->SetDirection(buf); |
|
3389 event->SetContact(3); |
|
3390 active->StartL(); |
|
3391 aClient.AddEvent(*event, active->iStatus); |
|
3392 CActiveScheduler::Start(); |
|
3393 TEST2(active->iStatus.Int(), KErrNone); |
|
3394 aClient.GetString(buf, R_LOG_DIR_OUT_ALT); |
|
3395 event->SetDirection(buf); |
|
3396 event->SetContact(4); |
|
3397 active->StartL(); |
|
3398 aClient.AddEvent(*event, active->iStatus); |
|
3399 CActiveScheduler::Start(); |
|
3400 TEST2(active->iStatus.Int(), KErrNone); |
|
3401 // Verify both events in recent list |
|
3402 active->StartL(); |
|
3403 TEST(view->SetRecentListL(KLogRecentOutgoingCalls, active->iStatus)); |
|
3404 CActiveScheduler::Start(); |
|
3405 TEST2(active->iStatus.Int(), KErrNone); |
|
3406 TEST2(view->CountL(), 2); |
|
3407 |
|
3408 // Add Missed events |
|
3409 aClient.GetString(buf, R_LOG_DIR_MISSED); |
|
3410 event->SetDirection(buf); |
|
3411 event->SetContact(5); |
|
3412 active->StartL(); |
|
3413 aClient.AddEvent(*event, active->iStatus); |
|
3414 CActiveScheduler::Start(); |
|
3415 TEST2(active->iStatus.Int(), KErrNone); |
|
3416 aClient.GetString(buf, R_LOG_DIR_MISSED_ALT); |
|
3417 event->SetDirection(buf); |
|
3418 event->SetContact(6); |
|
3419 active->StartL(); |
|
3420 aClient.AddEvent(*event, active->iStatus); |
|
3421 CActiveScheduler::Start(); |
|
3422 TEST2(active->iStatus.Int(), KErrNone); |
|
3423 // Verify both events in recent list |
|
3424 active->StartL(); |
|
3425 TEST(view->SetRecentListL(KLogRecentMissedCalls, active->iStatus)); |
|
3426 CActiveScheduler::Start(); |
|
3427 TEST2(active->iStatus.Int(), KErrNone); |
|
3428 TEST2(view->CountL(), 2); |
|
3429 |
|
3430 CleanupStack::PopAndDestroy(3); // view, active, event, |
|
3431 } |
|
3432 |
|
3433 /** |
|
3434 @SYMTestCaseID SYSLIB-LOGENG-CT-0947 |
|
3435 @SYMTestCaseDesc Tests for view with filter by time |
|
3436 @SYMTestPriority High |
|
3437 @SYMTestActions Tests for view with filters set by different time |
|
3438 @SYMTestExpectedResults Test must not fail |
|
3439 @SYMREQ REQ0000 |
|
3440 */ |
|
3441 LOCAL_C void TestFilterByTimeL(CLogClient& aClient) |
|
3442 { |
|
3443 test.Next(_L(" @SYMTestCaseID:SYSLIB-LOGENG-CT-0947 ")); |
|
3444 CLogEvent* event = CLogEvent::NewL(); |
|
3445 CleanupStack::PushL(event); |
|
3446 |
|
3447 CTestActive* active = new(ELeave)CTestActive(); |
|
3448 CleanupStack::PushL(active); |
|
3449 |
|
3450 CLogViewRecent* view = CLogViewRecent::NewL(aClient); |
|
3451 CleanupStack::PushL(view); |
|
3452 |
|
3453 // Clear recent lists |
|
3454 active->StartL(); |
|
3455 aClient.ClearLog(KLogNullRecentList, active->iStatus); |
|
3456 CActiveScheduler::Start(); |
|
3457 TEST2(active->iStatus.Int(), KErrNone); |
|
3458 |
|
3459 event->SetEventType(KLogCallEventTypeUid); |
|
3460 TLogString buf; |
|
3461 aClient.GetString(buf, R_LOG_DIR_IN); |
|
3462 event->SetDirection(buf); |
|
3463 |
|
3464 // add first event (events following are added on successive days) |
|
3465 event->SetContact(1); // ensures events are not duplicates |
|
3466 active->StartL(); |
|
3467 aClient.AddEvent(*event, active->iStatus); |
|
3468 CActiveScheduler::Start(); |
|
3469 TEST2(active->iStatus.Int(), KErrNone); |
|
3470 |
|
3471 TTime systemTime; |
|
3472 systemTime.UniversalTime(); |
|
3473 |
|
3474 // set filter startDate |
|
3475 TTime startDate = systemTime + (TTimeIntervalHours)+1; |
|
3476 |
|
3477 // add event 2 |
|
3478 systemTime += (TTimeIntervalDays)+1; |
|
3479 event->SetContact(2); |
|
3480 active->StartL(); |
|
3481 aClient.AddEvent(*event, active->iStatus); |
|
3482 CActiveScheduler::Start(); |
|
3483 TEST2(active->iStatus.Int(), KErrNone); |
|
3484 |
|
3485 event->SetTime(systemTime); |
|
3486 active->StartL(); |
|
3487 aClient.ChangeEvent(*event, active->iStatus); |
|
3488 CActiveScheduler::Start(); |
|
3489 TEST2(active->iStatus.Int(), KErrNone); |
|
3490 |
|
3491 // add event 3 |
|
3492 systemTime += (TTimeIntervalDays)+1; |
|
3493 event->SetContact(3); |
|
3494 active->StartL(); |
|
3495 aClient.AddEvent(*event, active->iStatus); |
|
3496 CActiveScheduler::Start(); |
|
3497 TEST2(active->iStatus.Int(), KErrNone); |
|
3498 |
|
3499 event->SetTime(systemTime); |
|
3500 active->StartL(); |
|
3501 aClient.ChangeEvent(*event, active->iStatus); |
|
3502 CActiveScheduler::Start(); |
|
3503 TEST2(active->iStatus.Int(), KErrNone); |
|
3504 |
|
3505 // set filter endDate |
|
3506 TTime endDate = systemTime + (TTimeIntervalHours)+1; |
|
3507 |
|
3508 // add event 4 |
|
3509 systemTime += (TTimeIntervalDays)+1; |
|
3510 event->SetContact(4); |
|
3511 active->StartL(); |
|
3512 aClient.AddEvent(*event, active->iStatus); |
|
3513 CActiveScheduler::Start(); |
|
3514 TEST2(active->iStatus.Int(), KErrNone); |
|
3515 |
|
3516 event->SetTime(systemTime); |
|
3517 active->StartL(); |
|
3518 aClient.ChangeEvent(*event, active->iStatus); |
|
3519 CActiveScheduler::Start(); |
|
3520 TEST2(active->iStatus.Int(), KErrNone); |
|
3521 |
|
3522 CLogFilter* filter = CLogFilter::NewL(); |
|
3523 CleanupStack::PushL(filter); |
|
3524 |
|
3525 // check using both start and end |
|
3526 filter->SetStartTime(startDate); |
|
3527 filter->SetEndTime(endDate); |
|
3528 active->StartL(); |
|
3529 TEST(view->SetRecentListL(KLogNullRecentList, *filter, active->iStatus)); |
|
3530 CActiveScheduler::Start(); |
|
3531 TEST2(active->iStatus.Int(), KErrNone); |
|
3532 TEST2(view->CountL(), 2); |
|
3533 |
|
3534 // only end filter |
|
3535 filter->SetStartTime(TTime(0)); // reset |
|
3536 filter->SetEndTime(endDate); |
|
3537 active->StartL(); |
|
3538 TEST(view->SetRecentListL(KLogNullRecentList, *filter, active->iStatus)); |
|
3539 CActiveScheduler::Start(); |
|
3540 TEST2(active->iStatus.Int(), KErrNone); |
|
3541 TEST2(view->CountL(), 3); |
|
3542 |
|
3543 // only start filter |
|
3544 filter->SetStartTime(startDate); |
|
3545 filter->SetEndTime(TTime(0)); |
|
3546 active->StartL(); |
|
3547 TEST(view->SetRecentListL(KLogNullRecentList, *filter, active->iStatus)); |
|
3548 CActiveScheduler::Start(); |
|
3549 TEST2(active->iStatus.Int(), KErrNone); |
|
3550 TEST2(view->CountL(), 3); |
|
3551 |
|
3552 // no time filter |
|
3553 filter->SetStartTime(TTime(0)); |
|
3554 filter->SetEndTime(TTime(0)); |
|
3555 active->StartL(); |
|
3556 TEST(view->SetRecentListL(KLogNullRecentList, *filter, active->iStatus)); |
|
3557 CActiveScheduler::Start(); |
|
3558 TEST2(active->iStatus.Int(), KErrNone); |
|
3559 TEST2(view->CountL(), 4); |
|
3560 |
|
3561 CleanupStack::PopAndDestroy(4); // view, active, event, filter |
|
3562 } |
|
3563 |
|
3564 /** |
|
3565 @SYMTestCaseID SYSLIB-LOGENG-CT-0948 |
|
3566 @SYMTestCaseDesc Tests for log view change observer |
|
3567 @SYMTestPriority High |
|
3568 @SYMTestActions Check that a view doesn't get change events for duplicates |
|
3569 @SYMTestExpectedResults Test must not fail |
|
3570 @SYMREQ REQ0000 |
|
3571 */ |
|
3572 LOCAL_C void TestHiddenChangeEvents1L(CLogClient& aClient) |
|
3573 { |
|
3574 test.Next(_L(" @SYMTestCaseID:SYSLIB-LOGENG-CT-0948 ")); |
|
3575 TLogId logId; |
|
3576 TInt viewIndex; |
|
3577 TLogDatabaseChangeType type; |
|
3578 |
|
3579 CLogViewChangeObserver* changeObs1 = CLogViewChangeObserver::NewLC(); |
|
3580 changeObs1->StartCollectingChanges(); |
|
3581 |
|
3582 |
|
3583 CLogViewEvent* view = CLogViewEvent::NewL(aClient, *changeObs1); |
|
3584 CleanupStack::PushL(view); |
|
3585 |
|
3586 CLogFilter* filter = CLogFilter::NewL(); |
|
3587 CleanupStack::PushL(filter); |
|
3588 |
|
3589 CLogEvent* event = CLogEvent::NewL(); |
|
3590 CleanupStack::PushL(event); |
|
3591 |
|
3592 CTestActive* active = new(ELeave)CTestActive(); |
|
3593 CleanupStack::PushL(active); |
|
3594 |
|
3595 TTime now; |
|
3596 now.UniversalTime(); |
|
3597 now += (TTimeIntervalDays)+1; |
|
3598 |
|
3599 // Get rid of all the events in the log |
|
3600 active->StartL(); |
|
3601 aClient.ClearLog(now, active->iStatus); |
|
3602 CActiveScheduler::Start(); |
|
3603 TEST2(active->iStatus.Int(), KErrNone); |
|
3604 |
|
3605 // Incoming call event |
|
3606 event->SetEventType(KLogCallEventTypeUid); |
|
3607 TBuf<KLogMaxDirectionLength> buf; |
|
3608 aClient.GetString(buf, R_LOG_DIR_IN); |
|
3609 event->SetDirection(buf); |
|
3610 |
|
3611 // Add an event |
|
3612 active->StartL(); |
|
3613 aClient.AddEvent(*event, active->iStatus); |
|
3614 CActiveScheduler::Start(); |
|
3615 TEST2(active->iStatus.Int(), KErrNone); |
|
3616 |
|
3617 // Setup normal event view |
|
3618 active->StartL(); |
|
3619 TEST(view->SetFilterL(*filter, active->iStatus)); |
|
3620 CActiveScheduler::Start(); |
|
3621 TEST2(active->iStatus.Int(), KErrNone); |
|
3622 |
|
3623 CLogViewChangeObserver* changeObs2 = CLogViewChangeObserver::NewLC(); |
|
3624 changeObs2->StartCollectingChanges(); |
|
3625 |
|
3626 CLogViewRecent* recent = CLogViewRecent::NewL(aClient, *changeObs2); |
|
3627 CleanupStack::PushL(recent); |
|
3628 |
|
3629 // Check recent view |
|
3630 active->StartL(); |
|
3631 TEST(recent->SetRecentListL(KLogRecentIncomingCalls, active->iStatus)); |
|
3632 CActiveScheduler::Start(); |
|
3633 TEST2(active->iStatus.Int(), KErrNone); |
|
3634 TEST2(recent->CountL(), 1); |
|
3635 |
|
3636 // Add a new event |
|
3637 active->StartL(); |
|
3638 aClient.AddEvent(*event, active->iStatus); |
|
3639 CActiveScheduler::Start(); |
|
3640 TEST2(active->iStatus.Int(), KErrNone); |
|
3641 |
|
3642 // Check change events |
|
3643 CTestTimer* timer = CTestTimer::NewL(); |
|
3644 timer->After(100000); |
|
3645 CActiveScheduler::Start(); |
|
3646 delete timer; |
|
3647 |
|
3648 TEST2(changeObs2->Changes().Count(), 2); |
|
3649 type = changeObs2->Changes().At(0, logId, viewIndex); |
|
3650 TEST2(type, ELogChangeTypeEventAdded); |
|
3651 type = changeObs2->Changes().At(1, logId, viewIndex); |
|
3652 TEST2(type, ELogChangeTypeEventDeleted); |
|
3653 |
|
3654 // Check recent view |
|
3655 active->StartL(); |
|
3656 TEST(recent->SetRecentListL(KLogRecentIncomingCalls, active->iStatus)); |
|
3657 CActiveScheduler::Start(); |
|
3658 TEST2(active->iStatus.Int(), KErrNone); |
|
3659 TEST2(recent->CountL(), 1); |
|
3660 |
|
3661 CLogViewDuplicate* duplicate = CLogViewDuplicate::NewL(aClient); |
|
3662 CleanupStack::PushL(duplicate); |
|
3663 |
|
3664 // Check duplicate count |
|
3665 active->StartL(); |
|
3666 TEST(recent->DuplicatesL(*duplicate, active->iStatus)); |
|
3667 CActiveScheduler::Start(); |
|
3668 TEST2(active->iStatus.Int(), KErrNone); |
|
3669 TEST2(duplicate->CountL(), 1); |
|
3670 |
|
3671 // Check change events |
|
3672 User::After(100000); |
|
3673 TEST2(changeObs1->Changes().Count(), 1); |
|
3674 type = changeObs1->Changes().At(0, logId, viewIndex); |
|
3675 TEST2(type, ELogChangeTypeEventAdded); |
|
3676 |
|
3677 CleanupStack::PopAndDestroy(8); // changeObs1, changeObs2, view, filter, event, active, recent, duplicate |
|
3678 } |
|
3679 |
|
3680 /** |
|
3681 @SYMTestCaseID SYSLIB-LOGENG-CT-0949 |
|
3682 @SYMTestCaseDesc Tests for log view change observer |
|
3683 @SYMTestPriority High |
|
3684 @SYMTestActions Check that a view doesn't get change events when recent list purged |
|
3685 @SYMTestExpectedResults Test must not fail |
|
3686 @SYMREQ REQ0000 |
|
3687 */ |
|
3688 LOCAL_C void TestHiddenChangeEvents2L(CLogClient& aClient) |
|
3689 { |
|
3690 test.Next(_L(" @SYMTestCaseID:SYSLIB-LOGENG-CT-0949 ")); |
|
3691 TLogId logId; |
|
3692 TInt viewIndex; |
|
3693 TLogDatabaseChangeType type; |
|
3694 |
|
3695 CLogViewChangeObserver* changeObs1 = CLogViewChangeObserver::NewLC(); |
|
3696 changeObs1->StartCollectingChanges(); |
|
3697 |
|
3698 CLogViewEvent* view = CLogViewEvent::NewL(aClient, *changeObs1); |
|
3699 CleanupStack::PushL(view); |
|
3700 |
|
3701 CLogFilter* filter = CLogFilter::NewL(); |
|
3702 CleanupStack::PushL(filter); |
|
3703 |
|
3704 CLogEvent* event = CLogEvent::NewL(); |
|
3705 CleanupStack::PushL(event); |
|
3706 |
|
3707 CTestActive* active = new(ELeave)CTestActive(); |
|
3708 CleanupStack::PushL(active); |
|
3709 |
|
3710 TTime now; |
|
3711 now.UniversalTime(); |
|
3712 now += (TTimeIntervalDays)+1; |
|
3713 |
|
3714 // Get rid of all the events in the log |
|
3715 active->StartL(); |
|
3716 aClient.ClearLog(now, active->iStatus); |
|
3717 CActiveScheduler::Start(); |
|
3718 TEST2(active->iStatus.Int(), KErrNone); |
|
3719 |
|
3720 // Get config |
|
3721 TLogConfig config; |
|
3722 active->StartL(); |
|
3723 aClient.GetConfig(config, active->iStatus); |
|
3724 CActiveScheduler::Start(); |
|
3725 TEST2(active->iStatus.Int(), KErrNone); |
|
3726 |
|
3727 // Incoming call event |
|
3728 event->SetEventType(KLogCallEventTypeUid); |
|
3729 TBuf<KLogMaxDirectionLength> buf; |
|
3730 aClient.GetString(buf, R_LOG_DIR_IN); |
|
3731 event->SetDirection(buf); |
|
3732 |
|
3733 // Add max allowed events |
|
3734 TInt count = config.iMaxRecentLogSize; |
|
3735 while(count--) |
|
3736 { |
|
3737 event->SetContact(count+1); |
|
3738 active->StartL(); |
|
3739 aClient.AddEvent(*event, active->iStatus); |
|
3740 CActiveScheduler::Start(); |
|
3741 TEST2(active->iStatus.Int(), KErrNone); |
|
3742 } |
|
3743 |
|
3744 // Setup normal event view |
|
3745 active->StartL(); |
|
3746 TEST(view->SetFilterL(*filter, active->iStatus)); |
|
3747 CActiveScheduler::Start(); |
|
3748 TEST2(active->iStatus.Int(), KErrNone); |
|
3749 |
|
3750 CLogViewChangeObserver* changeObs2 = CLogViewChangeObserver::NewLC(); |
|
3751 changeObs2->StartCollectingChanges(); |
|
3752 |
|
3753 CLogViewRecent* recent = CLogViewRecent::NewL(aClient, *changeObs2); |
|
3754 CleanupStack::PushL(recent); |
|
3755 |
|
3756 // Check recent view |
|
3757 active->StartL(); |
|
3758 TEST(recent->SetRecentListL(KLogRecentIncomingCalls, active->iStatus)); |
|
3759 CActiveScheduler::Start(); |
|
3760 TEST2(active->iStatus.Int(), KErrNone); |
|
3761 TEST2(recent->CountL(), config.iMaxRecentLogSize); |
|
3762 |
|
3763 // Add a new event, will cause one to be purged from recent view |
|
3764 event->SetContact(1234); |
|
3765 active->StartL(); |
|
3766 aClient.AddEvent(*event, active->iStatus); |
|
3767 CActiveScheduler::Start(); |
|
3768 TEST2(active->iStatus.Int(), KErrNone); |
|
3769 |
|
3770 // Check change events |
|
3771 CTestTimer *timer = CTestTimer::NewL(); |
|
3772 timer->After(100000); |
|
3773 CActiveScheduler::Start(); |
|
3774 delete timer; |
|
3775 |
|
3776 TEST2(changeObs2->Changes().Count(), 2); |
|
3777 type = changeObs2->Changes().At(0, logId, viewIndex); |
|
3778 TEST2(type, ELogChangeTypeEventAdded); |
|
3779 type = changeObs2->Changes().At(1, logId, viewIndex); |
|
3780 TEST2(type, ELogChangeTypeEventDeleted); |
|
3781 |
|
3782 // Check recent view |
|
3783 active->StartL(); |
|
3784 TEST(recent->SetRecentListL(KLogRecentIncomingCalls, active->iStatus)); |
|
3785 CActiveScheduler::Start(); |
|
3786 TEST2(active->iStatus.Int(), KErrNone); |
|
3787 TEST2(recent->CountL(), config.iMaxRecentLogSize); |
|
3788 |
|
3789 CLogViewDuplicate* duplicate = CLogViewDuplicate::NewL(aClient); |
|
3790 CleanupStack::PushL(duplicate); |
|
3791 |
|
3792 // Check duplicate count |
|
3793 TEST(!recent->DuplicatesL(*duplicate, active->iStatus)); |
|
3794 |
|
3795 // Check change events |
|
3796 User::After(100000); |
|
3797 TEST2(changeObs1->Changes().Count(), 1); |
|
3798 type = changeObs1->Changes().At(0, logId, viewIndex); |
|
3799 TEST2(type, ELogChangeTypeEventAdded); |
|
3800 |
|
3801 CleanupStack::PopAndDestroy(8); // changeObs1, changeObs2, view, filter, event, active, recent, duplicate |
|
3802 } |
|
3803 /** |
|
3804 @SYMTestCaseID SYSLIB-LOGENG-CT-0950 |
|
3805 @SYMTestCaseDesc Tests for log view change observer |
|
3806 @SYMTestPriority High |
|
3807 @SYMTestActions Check that a view doesn't get change events when recent list purged after changing config |
|
3808 @SYMTestExpectedResults Test must not fail |
|
3809 @SYMREQ REQ0000 |
|
3810 */ |
|
3811 LOCAL_C void TestHiddenChangeEvents3L(CLogClient& aClient) |
|
3812 { |
|
3813 test.Next(_L(" @SYMTestCaseID:SYSLIB-LOGENG-CT-0950 ")); |
|
3814 TLogId logId; |
|
3815 TInt viewIndex; |
|
3816 TLogDatabaseChangeType type; |
|
3817 |
|
3818 CLogViewChangeObserver* changeObs1 = CLogViewChangeObserver::NewLC(); |
|
3819 changeObs1->StartCollectingChanges(); |
|
3820 |
|
3821 CLogViewEvent* view = CLogViewEvent::NewL(aClient, *changeObs1); |
|
3822 CleanupStack::PushL(view); |
|
3823 |
|
3824 CLogFilter* filter = CLogFilter::NewL(); |
|
3825 CleanupStack::PushL(filter); |
|
3826 |
|
3827 CLogEvent* event = CLogEvent::NewL(); |
|
3828 CleanupStack::PushL(event); |
|
3829 |
|
3830 CTestActive* active = new(ELeave)CTestActive(); |
|
3831 CleanupStack::PushL(active); |
|
3832 |
|
3833 TTime now; |
|
3834 now.UniversalTime(); |
|
3835 now += (TTimeIntervalDays)+1; |
|
3836 |
|
3837 // Get rid of all the events in the log |
|
3838 active->StartL(); |
|
3839 aClient.ClearLog(now, active->iStatus); |
|
3840 CActiveScheduler::Start(); |
|
3841 TEST2(active->iStatus.Int(), KErrNone); |
|
3842 |
|
3843 // Get and set config |
|
3844 TLogConfig config; |
|
3845 active->StartL(); |
|
3846 aClient.GetConfig(config, active->iStatus); |
|
3847 CActiveScheduler::Start(); |
|
3848 TEST2(active->iStatus.Int(), KErrNone); |
|
3849 config.iMaxRecentLogSize = 2; |
|
3850 active->StartL(); |
|
3851 aClient.ChangeConfig(config, active->iStatus); |
|
3852 CActiveScheduler::Start(); |
|
3853 TEST2(active->iStatus.Int(), KErrNone); |
|
3854 |
|
3855 // Incoming call event |
|
3856 event->SetEventType(KLogCallEventTypeUid); |
|
3857 TBuf<KLogMaxDirectionLength> buf; |
|
3858 aClient.GetString(buf, R_LOG_DIR_IN); |
|
3859 event->SetDirection(buf); |
|
3860 |
|
3861 // Add max allowed events |
|
3862 TInt count = config.iMaxRecentLogSize; |
|
3863 while(count--) |
|
3864 { |
|
3865 event->SetContact(count+1); |
|
3866 active->StartL(); |
|
3867 aClient.AddEvent(*event, active->iStatus); |
|
3868 CActiveScheduler::Start(); |
|
3869 TEST2(active->iStatus.Int(), KErrNone); |
|
3870 } |
|
3871 |
|
3872 // Setup normal event view |
|
3873 active->StartL(); |
|
3874 TEST(view->SetFilterL(*filter, active->iStatus)); |
|
3875 CActiveScheduler::Start(); |
|
3876 TEST2(active->iStatus.Int(), KErrNone); |
|
3877 |
|
3878 CLogViewChangeObserver* changeObs2 = CLogViewChangeObserver::NewLC(); |
|
3879 changeObs2->StartCollectingChanges(); |
|
3880 |
|
3881 CLogViewRecent* recent = CLogViewRecent::NewL(aClient, *changeObs2); |
|
3882 CleanupStack::PushL(recent); |
|
3883 |
|
3884 // Check recent view |
|
3885 active->StartL(); |
|
3886 TEST(recent->SetRecentListL(KLogRecentIncomingCalls, active->iStatus)); |
|
3887 CActiveScheduler::Start(); |
|
3888 TEST2(active->iStatus.Int(), KErrNone); |
|
3889 TEST2(recent->CountL(), config.iMaxRecentLogSize); |
|
3890 |
|
3891 // Change config, will cause one event to be purged from recent view |
|
3892 config.iMaxRecentLogSize = 1; |
|
3893 active->StartL(); |
|
3894 aClient.ChangeConfig(config, active->iStatus); |
|
3895 CActiveScheduler::Start(); |
|
3896 TEST2(active->iStatus.Int(), KErrNone); |
|
3897 |
|
3898 // Check change events |
|
3899 User::After(100000); |
|
3900 TEST2(changeObs2->Changes().Count(), 1); |
|
3901 type = changeObs2->Changes().At(0, logId, viewIndex); |
|
3902 TEST2(type, ELogChangeTypeEventDeleted); |
|
3903 |
|
3904 // Check recent view |
|
3905 active->StartL(); |
|
3906 TEST(recent->SetRecentListL(KLogRecentIncomingCalls, active->iStatus)); |
|
3907 CActiveScheduler::Start(); |
|
3908 TEST2(active->iStatus.Int(), KErrNone); |
|
3909 TEST2(recent->CountL(), config.iMaxRecentLogSize); |
|
3910 |
|
3911 CLogViewDuplicate* duplicate = CLogViewDuplicate::NewL(aClient); |
|
3912 CleanupStack::PushL(duplicate); |
|
3913 |
|
3914 // Check duplicate count |
|
3915 TEST(!recent->DuplicatesL(*duplicate, active->iStatus)); |
|
3916 |
|
3917 // Check change events |
|
3918 User::After(100000); |
|
3919 TEST(!changeObs1->HaveChanges()); |
|
3920 |
|
3921 CleanupStack::PopAndDestroy(8); // changeObs1, changeObs2, view, filter, event, active, recent, duplicate |
|
3922 } |
|
3923 |
|
3924 /** |
|
3925 @SYMTestCaseID SYSLIB-LOGENG-CT-0951 |
|
3926 @SYMTestCaseDesc Test for log view change observer |
|
3927 @SYMTestPriority High |
|
3928 @SYMTestActions Check that when deleting an event causing recent lists to be updated,views don't get unnecessary change events |
|
3929 @SYMTestExpectedResults Test must not fail |
|
3930 @SYMREQ REQ0000 |
|
3931 */ |
|
3932 LOCAL_C void TestHiddenChangeEvents4L(CLogClient& aClient) |
|
3933 { |
|
3934 test.Next(_L(" @SYMTestCaseID:SYSLIB-LOGENG-CT-0951 ")); |
|
3935 TLogId logId; |
|
3936 TInt viewIndex; |
|
3937 TLogDatabaseChangeType type; |
|
3938 |
|
3939 CLogViewChangeObserver* changeObs1 = CLogViewChangeObserver::NewLC(); |
|
3940 changeObs1->StartCollectingChanges(); |
|
3941 |
|
3942 CLogViewEvent* view = CLogViewEvent::NewL(aClient, *changeObs1); |
|
3943 CleanupStack::PushL(view); |
|
3944 |
|
3945 CLogFilter* filter = CLogFilter::NewL(); |
|
3946 CleanupStack::PushL(filter); |
|
3947 filter->SetFlags(1); // Need to hide an event from the view |
|
3948 |
|
3949 CLogEvent* event = CLogEvent::NewL(); |
|
3950 CleanupStack::PushL(event); |
|
3951 |
|
3952 CTestActive* active = new(ELeave)CTestActive(); |
|
3953 CleanupStack::PushL(active); |
|
3954 |
|
3955 TTime now; |
|
3956 now.UniversalTime(); |
|
3957 now += (TTimeIntervalDays)+1; |
|
3958 |
|
3959 // Get rid of all the events in the log |
|
3960 active->StartL(); |
|
3961 aClient.ClearLog(now, active->iStatus); |
|
3962 CActiveScheduler::Start(); |
|
3963 TEST2(active->iStatus.Int(), KErrNone); |
|
3964 |
|
3965 // Incoming call event |
|
3966 event->SetEventType(KLogCallEventTypeUid); |
|
3967 TBuf<KLogMaxDirectionLength> buf; |
|
3968 aClient.GetString(buf, R_LOG_DIR_IN); |
|
3969 event->SetDirection(buf); |
|
3970 |
|
3971 event->SetFlags(1); |
|
3972 |
|
3973 // Add an event |
|
3974 active->StartL(); |
|
3975 aClient.AddEvent(*event, active->iStatus); |
|
3976 CActiveScheduler::Start(); |
|
3977 TEST2(active->iStatus.Int(), KErrNone); |
|
3978 |
|
3979 // Add an event |
|
3980 active->StartL(); |
|
3981 aClient.AddEvent(*event, active->iStatus); |
|
3982 CActiveScheduler::Start(); |
|
3983 TEST2(active->iStatus.Int(), KErrNone); |
|
3984 |
|
3985 event->ClearFlags(0xF); |
|
3986 |
|
3987 // Add an event |
|
3988 active->StartL(); |
|
3989 aClient.AddEvent(*event, active->iStatus); |
|
3990 CActiveScheduler::Start(); |
|
3991 TEST2(active->iStatus.Int(), KErrNone); |
|
3992 |
|
3993 // Setup normal event view |
|
3994 active->StartL(); |
|
3995 TEST(view->SetFilterL(*filter, active->iStatus)); |
|
3996 CActiveScheduler::Start(); |
|
3997 TEST2(active->iStatus.Int(), KErrNone); |
|
3998 TEST2(view->CountL(), 2); |
|
3999 |
|
4000 CLogViewChangeObserver* changeObs2 = CLogViewChangeObserver::NewLC(); |
|
4001 changeObs2->StartCollectingChanges(); |
|
4002 |
|
4003 CLogViewRecent* recent = CLogViewRecent::NewL(aClient, *changeObs2); |
|
4004 CleanupStack::PushL(recent); |
|
4005 |
|
4006 // Check recent view |
|
4007 active->StartL(); |
|
4008 TEST(recent->SetRecentListL(KLogRecentIncomingCalls, active->iStatus)); |
|
4009 CActiveScheduler::Start(); |
|
4010 TEST2(active->iStatus.Int(), KErrNone); |
|
4011 TEST2(recent->CountL(), 1); |
|
4012 |
|
4013 changeObs1->StartCollectingChanges(); |
|
4014 changeObs2->StartCollectingChanges(); |
|
4015 |
|
4016 // Delete the event in recent list |
|
4017 active->StartL(); |
|
4018 aClient.DeleteEvent(event->Id(), active->iStatus); |
|
4019 CActiveScheduler::Start(); |
|
4020 TEST2(active->iStatus.Int(), KErrNone); |
|
4021 |
|
4022 // Check change events |
|
4023 User::After(1000000); |
|
4024 TEST2(changeObs2->Changes().Count(), 2); |
|
4025 type = changeObs2->Changes().At(0, logId, viewIndex); |
|
4026 TEST2(type, ELogChangeTypeEventAdded); |
|
4027 type = changeObs2->Changes().At(1, logId, viewIndex); |
|
4028 TEST2(type, ELogChangeTypeEventDeleted); |
|
4029 |
|
4030 TEST(!changeObs1->HaveChanges()); |
|
4031 |
|
4032 CleanupStack::PopAndDestroy(7); // changeObs1, changeObs2, view, filter, event, active, recent |
|
4033 } |
|
4034 |
|
4035 /** |
|
4036 @SYMTestCaseID SYSLIB-LOGENG-CT-0952 |
|
4037 @SYMTestCaseDesc Tests for log view change observer |
|
4038 @SYMTestPriority High |
|
4039 @SYMTestActions Check that a view doesn't get change events when recent list cleared |
|
4040 @SYMTestExpectedResults Test must not fail |
|
4041 @SYMREQ REQ0000 |
|
4042 */ |
|
4043 LOCAL_C void TestHiddenChangeEvents5L(CLogClient& aClient) |
|
4044 { |
|
4045 test.Next(_L(" @SYMTestCaseID:SYSLIB-LOGENG-CT-0952 ")); |
|
4046 TLogId logId; |
|
4047 TInt viewIndex; |
|
4048 TLogDatabaseChangeType type; |
|
4049 |
|
4050 CLogViewChangeObserver* changeObs1 = CLogViewChangeObserver::NewLC(); |
|
4051 changeObs1->StartCollectingChanges(); |
|
4052 |
|
4053 CLogViewEvent* view = CLogViewEvent::NewL(aClient, *changeObs1); |
|
4054 CleanupStack::PushL(view); |
|
4055 |
|
4056 CLogFilter* filter = CLogFilter::NewL(); |
|
4057 CleanupStack::PushL(filter); |
|
4058 |
|
4059 CLogEvent* event = CLogEvent::NewL(); |
|
4060 CleanupStack::PushL(event); |
|
4061 |
|
4062 CTestActive* active = new(ELeave)CTestActive(); |
|
4063 CleanupStack::PushL(active); |
|
4064 |
|
4065 TTime now; |
|
4066 now.UniversalTime(); |
|
4067 now += (TTimeIntervalDays)+1; |
|
4068 |
|
4069 // Get rid of all the events in the log |
|
4070 active->StartL(); |
|
4071 aClient.ClearLog(now, active->iStatus); |
|
4072 CActiveScheduler::Start(); |
|
4073 TEST2(active->iStatus.Int(), KErrNone); |
|
4074 |
|
4075 // Get config |
|
4076 TLogConfig config; |
|
4077 active->StartL(); |
|
4078 aClient.GetConfig(config, active->iStatus); |
|
4079 CActiveScheduler::Start(); |
|
4080 TEST2(active->iStatus.Int(), KErrNone); |
|
4081 |
|
4082 // Incoming call event |
|
4083 event->SetEventType(KLogCallEventTypeUid); |
|
4084 TBuf<KLogMaxDirectionLength> buf; |
|
4085 aClient.GetString(buf, R_LOG_DIR_IN); |
|
4086 event->SetDirection(buf); |
|
4087 |
|
4088 // Add max allowed events |
|
4089 TInt count = config.iMaxRecentLogSize; |
|
4090 while(count--) |
|
4091 { |
|
4092 event->SetContact(count+1); |
|
4093 active->StartL(); |
|
4094 aClient.AddEvent(*event, active->iStatus); |
|
4095 CActiveScheduler::Start(); |
|
4096 TEST2(active->iStatus.Int(), KErrNone); |
|
4097 } |
|
4098 |
|
4099 // Setup normal event view |
|
4100 active->StartL(); |
|
4101 TEST(view->SetFilterL(*filter, active->iStatus)); |
|
4102 CActiveScheduler::Start(); |
|
4103 TEST2(active->iStatus.Int(), KErrNone); |
|
4104 |
|
4105 CLogViewChangeObserver* changeObs2 = CLogViewChangeObserver::NewLC(); |
|
4106 changeObs2->StartCollectingChanges(); |
|
4107 |
|
4108 CLogViewRecent* recent = CLogViewRecent::NewL(aClient, *changeObs2); |
|
4109 CleanupStack::PushL(recent); |
|
4110 |
|
4111 // Check recent view |
|
4112 active->StartL(); |
|
4113 TEST(recent->SetRecentListL(KLogRecentIncomingCalls, active->iStatus)); |
|
4114 CActiveScheduler::Start(); |
|
4115 TEST2(active->iStatus.Int(), KErrNone); |
|
4116 TEST2(recent->CountL(), config.iMaxRecentLogSize); |
|
4117 |
|
4118 // Clear recent view |
|
4119 active->StartL(); |
|
4120 aClient.ClearLog(KLogRecentIncomingCalls, active->iStatus); |
|
4121 CActiveScheduler::Start(); |
|
4122 TEST2(active->iStatus.Int(), KErrNone); |
|
4123 |
|
4124 // Check change events |
|
4125 User::After(100000); |
|
4126 |
|
4127 count = config.iMaxRecentLogSize; |
|
4128 TEST2(changeObs2->Changes().Count(), count); |
|
4129 while(count--) |
|
4130 { |
|
4131 type = changeObs2->Changes().At(count, logId, viewIndex); |
|
4132 TEST2(type, ELogChangeTypeEventDeleted); |
|
4133 } |
|
4134 |
|
4135 // Check recent view |
|
4136 TEST(!recent->SetRecentListL(KLogRecentIncomingCalls, active->iStatus)); |
|
4137 |
|
4138 // Check change events |
|
4139 User::After(100000); |
|
4140 TEST(!changeObs1->HaveChanges()); |
|
4141 |
|
4142 CleanupStack::PopAndDestroy(7); // changeObs1, changeObs2, view, filter, event, active, recent |
|
4143 } |
|
4144 |
|
4145 /** |
|
4146 @SYMTestCaseID SYSLIB-LOGENG-CT-0953 |
|
4147 @SYMTestCaseDesc Tests for log view change observer |
|
4148 @SYMTestPriority High |
|
4149 @SYMTestActions Check that a view doesn't get change events when removing events from a recent or duplicate view |
|
4150 @SYMTestExpectedResults Test must not fail |
|
4151 @SYMREQ REQ0000 |
|
4152 */ |
|
4153 LOCAL_C void TestHiddenChangeEvents6L(CLogClient& aClient) |
|
4154 { |
|
4155 test.Next(_L(" @SYMTestCaseID:SYSLIB-LOGENG-CT-0953 ")); |
|
4156 CLogViewChangeObserver* changeObs1 = CLogViewChangeObserver::NewLC(); |
|
4157 changeObs1->StartCollectingChanges(); |
|
4158 |
|
4159 CLogViewEvent* view = CLogViewEvent::NewL(aClient, *changeObs1); |
|
4160 CleanupStack::PushL(view); |
|
4161 |
|
4162 CLogFilter* filter = CLogFilter::NewL(); |
|
4163 CleanupStack::PushL(filter); |
|
4164 |
|
4165 CLogEvent* event = CLogEvent::NewL(); |
|
4166 CleanupStack::PushL(event); |
|
4167 |
|
4168 CTestActive* active = new(ELeave)CTestActive(); |
|
4169 CleanupStack::PushL(active); |
|
4170 |
|
4171 TTime now; |
|
4172 now.UniversalTime(); |
|
4173 now += (TTimeIntervalDays)+1; |
|
4174 |
|
4175 // Get rid of all the events in the log |
|
4176 active->StartL(); |
|
4177 aClient.ClearLog(now, active->iStatus); |
|
4178 CActiveScheduler::Start(); |
|
4179 TEST2(active->iStatus.Int(), KErrNone); |
|
4180 |
|
4181 // Incoming call event |
|
4182 event->SetEventType(KLogCallEventTypeUid); |
|
4183 TBuf<KLogMaxDirectionLength> buf; |
|
4184 aClient.GetString(buf, R_LOG_DIR_IN); |
|
4185 event->SetDirection(buf); |
|
4186 |
|
4187 // Add an event |
|
4188 active->StartL(); |
|
4189 aClient.AddEvent(*event, active->iStatus); |
|
4190 CActiveScheduler::Start(); |
|
4191 TEST2(active->iStatus.Int(), KErrNone); |
|
4192 |
|
4193 // Add a duplicate |
|
4194 active->StartL(); |
|
4195 aClient.AddEvent(*event, active->iStatus); |
|
4196 CActiveScheduler::Start(); |
|
4197 TEST2(active->iStatus.Int(), KErrNone); |
|
4198 |
|
4199 // Setup normal event view |
|
4200 active->StartL(); |
|
4201 TEST(view->SetFilterL(*filter, active->iStatus)); |
|
4202 CActiveScheduler::Start(); |
|
4203 TEST2(active->iStatus.Int(), KErrNone); |
|
4204 TEST2(view->CountL(), 2); |
|
4205 |
|
4206 CLogViewChangeObserver* changeObs2 = CLogViewChangeObserver::NewLC(); |
|
4207 changeObs2->StartCollectingChanges(); |
|
4208 |
|
4209 CLogViewRecent* recent = CLogViewRecent::NewL(aClient, *changeObs2); |
|
4210 CleanupStack::PushL(recent); |
|
4211 |
|
4212 // Check recent view |
|
4213 active->StartL(); |
|
4214 TEST(recent->SetRecentListL(KLogRecentIncomingCalls, active->iStatus)); |
|
4215 CActiveScheduler::Start(); |
|
4216 TEST2(active->iStatus.Int(), KErrNone); |
|
4217 TEST2(recent->CountL(), 1); |
|
4218 |
|
4219 CLogViewDuplicate* duplicate = CLogViewDuplicate::NewL(aClient); |
|
4220 CleanupStack::PushL(duplicate); |
|
4221 |
|
4222 // Check duplicate count |
|
4223 active->StartL(); |
|
4224 TEST(recent->DuplicatesL(*duplicate, active->iStatus)); |
|
4225 CActiveScheduler::Start(); |
|
4226 TEST2(active->iStatus.Int(), KErrNone); |
|
4227 TEST2(recent->CountL(), 1); |
|
4228 |
|
4229 // Remove duplicate |
|
4230 duplicate->RemoveL(duplicate->Event().Id()); |
|
4231 |
|
4232 CTestTimer* timer = CTestTimer::NewL(); |
|
4233 CleanupStack::PushL(timer); |
|
4234 timer->After(100000); |
|
4235 CActiveScheduler::Start(); |
|
4236 |
|
4237 // Check change events |
|
4238 TEST(!changeObs1->HaveChanges()); |
|
4239 TEST(!changeObs2->HaveChanges()); |
|
4240 |
|
4241 // Remove recent |
|
4242 recent->RemoveL(recent->Event().Id()); |
|
4243 |
|
4244 // Check change events |
|
4245 timer->After(100000); |
|
4246 CActiveScheduler::Start(); |
|
4247 |
|
4248 TEST(!changeObs1->HaveChanges()); |
|
4249 TEST(!changeObs2->HaveChanges()); // No event because we should know we called Remove on ourselves |
|
4250 |
|
4251 CleanupStack::PopAndDestroy(9); // changeObs1, changeObs2, view, filter, event, active, recent, duplicate, timer |
|
4252 } |
|
4253 |
|
4254 /** |
|
4255 @SYMTestCaseID SYSLIB-LOGENG-CT-0954 |
|
4256 @SYMTestCaseDesc Tests for log view change observer |
|
4257 @SYMTestPriority High |
|
4258 @SYMTestActions Check that a view doesn't get change events when clearing duplicates |
|
4259 @SYMTestExpectedResults Test must not fail |
|
4260 @SYMREQ REQ0000 |
|
4261 */ |
|
4262 LOCAL_C void TestHiddenChangeEvents7L(CLogClient& aClient) |
|
4263 { |
|
4264 test.Next(_L(" @SYMTestCaseID:SYSLIB-LOGENG-CT-0954 ")); |
|
4265 CLogViewChangeObserver* changeObs1 = CLogViewChangeObserver::NewLC(); |
|
4266 changeObs1->StartCollectingChanges(); |
|
4267 |
|
4268 CLogViewEvent* view = CLogViewEvent::NewL(aClient, *changeObs1); |
|
4269 CleanupStack::PushL(view); |
|
4270 |
|
4271 CLogFilter* filter = CLogFilter::NewL(); |
|
4272 CleanupStack::PushL(filter); |
|
4273 |
|
4274 CLogEvent* event = CLogEvent::NewL(); |
|
4275 CleanupStack::PushL(event); |
|
4276 |
|
4277 CTestActive* active = new(ELeave)CTestActive(); |
|
4278 CleanupStack::PushL(active); |
|
4279 |
|
4280 TTime now; |
|
4281 now.UniversalTime(); |
|
4282 now += (TTimeIntervalDays)+1; |
|
4283 |
|
4284 // Get rid of all the events in the log |
|
4285 active->StartL(); |
|
4286 aClient.ClearLog(now, active->iStatus); |
|
4287 CActiveScheduler::Start(); |
|
4288 TEST2(active->iStatus.Int(), KErrNone); |
|
4289 |
|
4290 // Incoming call event |
|
4291 event->SetEventType(KLogCallEventTypeUid); |
|
4292 TBuf<KLogMaxDirectionLength> buf; |
|
4293 aClient.GetString(buf, R_LOG_DIR_IN); |
|
4294 event->SetDirection(buf); |
|
4295 |
|
4296 // Add an event |
|
4297 active->StartL(); |
|
4298 aClient.AddEvent(*event, active->iStatus); |
|
4299 CActiveScheduler::Start(); |
|
4300 TEST2(active->iStatus.Int(), KErrNone); |
|
4301 |
|
4302 // Add a duplicate |
|
4303 active->StartL(); |
|
4304 aClient.AddEvent(*event, active->iStatus); |
|
4305 CActiveScheduler::Start(); |
|
4306 TEST2(active->iStatus.Int(), KErrNone); |
|
4307 |
|
4308 // Setup normal event view |
|
4309 active->StartL(); |
|
4310 TEST(view->SetFilterL(*filter, active->iStatus)); |
|
4311 CActiveScheduler::Start(); |
|
4312 TEST2(active->iStatus.Int(), KErrNone); |
|
4313 TEST2(view->CountL(), 2); |
|
4314 |
|
4315 CLogViewChangeObserver* changeObs2 = CLogViewChangeObserver::NewLC(); |
|
4316 changeObs2->StartCollectingChanges(); |
|
4317 |
|
4318 CLogViewRecent* recent = CLogViewRecent::NewL(aClient, *changeObs2); |
|
4319 CleanupStack::PushL(recent); |
|
4320 |
|
4321 // Check recent view |
|
4322 active->StartL(); |
|
4323 TEST(recent->SetRecentListL(KLogRecentIncomingCalls, active->iStatus)); |
|
4324 CActiveScheduler::Start(); |
|
4325 TEST2(active->iStatus.Int(), KErrNone); |
|
4326 TEST2(recent->CountL(), 1); |
|
4327 |
|
4328 CLogViewDuplicate* duplicate = CLogViewDuplicate::NewL(aClient); |
|
4329 CleanupStack::PushL(duplicate); |
|
4330 |
|
4331 // Check duplicate count |
|
4332 active->StartL(); |
|
4333 TEST(recent->DuplicatesL(*duplicate, active->iStatus)); |
|
4334 CActiveScheduler::Start(); |
|
4335 TEST2(active->iStatus.Int(), KErrNone); |
|
4336 TEST2(recent->CountL(), 1); |
|
4337 |
|
4338 // Remove duplicate |
|
4339 recent->ClearDuplicatesL(); |
|
4340 |
|
4341 CTestTimer* timer = CTestTimer::NewL(); |
|
4342 CleanupStack::PushL(timer); |
|
4343 timer->After(100000); |
|
4344 CActiveScheduler::Start(); |
|
4345 |
|
4346 // Check change events |
|
4347 TEST(!changeObs1->HaveChanges()); |
|
4348 TEST(!changeObs2->HaveChanges()); |
|
4349 |
|
4350 CleanupStack::PopAndDestroy(9); // changeObs1, changeObs2, view, filter, event, active, recent, duplicate, timer |
|
4351 } |
|
4352 |
|
4353 /** |
|
4354 @SYMTestCaseID SYSLIB-LOGENG-CT-1363 |
|
4355 @SYMTestCaseDesc Tests for log view change observer |
|
4356 Making a call from recent call list causes total freeze if log |
|
4357 has been cleared |
|
4358 @SYMTestPriority High |
|
4359 @SYMTestActions Test that editing a recent event does not cause a panic if |
|
4360 part of the log has been cleared |
|
4361 @SYMTestExpectedResults Test must not fail |
|
4362 @SYMDEF DEF066296 |
|
4363 */ |
|
4364 LOCAL_C void DEF066296L(CLogClient& aClient) |
|
4365 { |
|
4366 test.Next(_L(" @SYMTestCaseID:SYSLIB-LOGENG-CT-1363 ")); |
|
4367 TBuf<KLogMaxDirectionLength> buf; |
|
4368 |
|
4369 CLogEvent* event = CLogEvent::NewL(); |
|
4370 CleanupStack::PushL(event); |
|
4371 |
|
4372 CTestActive* active = new(ELeave)CTestActive(); |
|
4373 CleanupStack::PushL(active); |
|
4374 |
|
4375 // To reproduce this defect, we need a view to be updated |
|
4376 CLogViewRecent* view = CLogViewRecent::NewL(aClient); |
|
4377 CleanupStack::PushL(view); |
|
4378 |
|
4379 // Set up the event and log a call from number 444 |
|
4380 event->SetEventType(KLogCallEventTypeUid); |
|
4381 aClient.GetString(buf, R_LOG_DIR_IN); |
|
4382 event->SetDirection(buf); |
|
4383 event->SetNumber(_L("444")); |
|
4384 active->StartL(); |
|
4385 aClient.AddEvent(*event, active->iStatus); |
|
4386 CActiveScheduler::Start(); |
|
4387 TEST2(active->iStatus.Int(), KErrNone); |
|
4388 |
|
4389 // Set up the view to display the recent call list |
|
4390 active->StartL(); |
|
4391 test(view->SetRecentListL(-1, active->iStatus)); |
|
4392 CActiveScheduler::Start(); |
|
4393 TEST2(active->iStatus.Int(), KErrNone); |
|
4394 |
|
4395 // Get and print current UTC time |
|
4396 TTime now; |
|
4397 now.UniversalTime(); |
|
4398 TBuf<0x80> testString; |
|
4399 now.FormatL(testString,(_L("%H:%T %1\\%2\\%3 %E"))); |
|
4400 RDebug::Print(_L("Current UTC time - %S\n"), &testString); |
|
4401 |
|
4402 // Move the UTC time forward by one day |
|
4403 now += TTimeIntervalDays(1); |
|
4404 User::SetUTCTime(now); |
|
4405 |
|
4406 now.FormatL(testString,(_L("%H:%T %1\\%2\\%3 %E"))); |
|
4407 RDebug::Print(_L("Changed UTC time to - %S\n"), &testString); |
|
4408 |
|
4409 // Set up the event and log a call from number 555 |
|
4410 event->SetNumber(_L("555")); |
|
4411 active->StartL(); |
|
4412 aClient.AddEvent(*event, active->iStatus); |
|
4413 CActiveScheduler::Start(); |
|
4414 TEST2(active->iStatus.Int(), KErrNone); |
|
4415 |
|
4416 // Set up the event and log a call from number 611 |
|
4417 event->SetNumber(_L("611")); |
|
4418 active->StartL(); |
|
4419 aClient.AddEvent(*event, active->iStatus); |
|
4420 CActiveScheduler::Start(); |
|
4421 TEST2(active->iStatus.Int(), KErrNone); |
|
4422 |
|
4423 //remember this Id - we will try to change this log event later |
|
4424 TInt logId = event->Id(); |
|
4425 |
|
4426 // Set up the event and log a call from number 777 |
|
4427 event->SetNumber(_L("777")); |
|
4428 active->StartL(); |
|
4429 aClient.AddEvent(*event, active->iStatus); |
|
4430 CActiveScheduler::Start(); |
|
4431 TEST2(active->iStatus.Int(), KErrNone); |
|
4432 |
|
4433 // Delete all events occurring before today |
|
4434 // this should remove only the first call to number 444 |
|
4435 TDateTime midnight = now.DateTime(); |
|
4436 midnight.SetHour(0); |
|
4437 midnight.SetMinute(0); |
|
4438 midnight.SetSecond(0); |
|
4439 midnight.SetMicroSecond(0); |
|
4440 |
|
4441 active->StartL(); |
|
4442 aClient.ClearLog(midnight, active->iStatus); |
|
4443 CActiveScheduler::Start(); |
|
4444 TEST2(active->iStatus.Int(), KErrNone); |
|
4445 |
|
4446 // Attempt to change an entry from the recent list - that for the call to number 611 |
|
4447 // without this defect fix, the call to ChangeEvent() will panic with EBadArrayPosition |
|
4448 event->SetNumber(_L("555")); |
|
4449 event->SetId(logId); |
|
4450 active->StartL(); |
|
4451 aClient.ChangeEvent(*event, active->iStatus); |
|
4452 CActiveScheduler::Start(); |
|
4453 TEST2(active->iStatus.Int(), KErrNone); |
|
4454 |
|
4455 // Restore and print UTC time |
|
4456 now.UniversalTime(); |
|
4457 now -= TTimeIntervalDays(1); |
|
4458 User::SetUTCTime(now); |
|
4459 |
|
4460 now.FormatL(testString,(_L("%H:%T %1\\%2\\%3 %E"))); |
|
4461 RDebug::Print(_L("Restored UTC time to - %S\n"), &testString); |
|
4462 |
|
4463 CleanupStack::PopAndDestroy(3, event); //event, active, view |
|
4464 } |
|
4465 |
|
4466 /** |
|
4467 @SYMTestCaseID SYSLIB-LOGENG-CT-1807 |
|
4468 @SYMTestCaseDesc Tests that DEF087459 works between 00:00 and 01:00am hometime |
|
4469 @SYMTestPriority Medium |
|
4470 @SYMTestActions Change the home time to 00:30 and run DEF066296 test |
|
4471 @SYMTestExpectedResults Test must not fail |
|
4472 @SYMDEF DEF087459 |
|
4473 */ |
|
4474 LOCAL_C void DEF087459L(CLogClient& aClient) |
|
4475 { |
|
4476 test.Next(_L(" @SYMTestCaseID:SYSLIB-LOGENG-CT-1807 ")); |
|
4477 RTz tz; |
|
4478 TInt err = tz.Connect(); |
|
4479 TEST2(err, KErrNone); |
|
4480 CleanupClosePushL(tz); |
|
4481 TTime now, saveNow; |
|
4482 |
|
4483 // Get and print current home time and save it |
|
4484 now.HomeTime(); |
|
4485 saveNow=now; |
|
4486 |
|
4487 TBuf<0x80> testString; |
|
4488 now.FormatL(testString,(_L("%H:%T %1\\%2\\%3 %E"))); |
|
4489 RDebug::Print(_L("Current home time - %S\n"), &testString); |
|
4490 |
|
4491 // Problem occurred between midnight and 01:00am hometime, so change home time to |
|
4492 // be 00:30am |
|
4493 TDateTime midnight = now.DateTime(); |
|
4494 midnight.SetHour(0); |
|
4495 midnight.SetMinute(30); |
|
4496 midnight.SetSecond(0); |
|
4497 midnight.SetMicroSecond(0); |
|
4498 |
|
4499 TTime newTime=midnight; |
|
4500 |
|
4501 err = tz.SetHomeTime(midnight); |
|
4502 TEST2(err, KErrNone); |
|
4503 |
|
4504 // Get and print new home time |
|
4505 now.HomeTime(); |
|
4506 now.FormatL(testString,(_L("%H:%T %1\\%2\\%3 %E"))); |
|
4507 RDebug::Print(_L("Changed home time to - %S\n"), &testString); |
|
4508 RDebug::Print(_L("Re-running DEF066296 test\n")); |
|
4509 |
|
4510 DEF066296L(aClient); |
|
4511 |
|
4512 // Restore and print hometime |
|
4513 err = tz.SetHomeTime(saveNow); |
|
4514 TEST2(err, KErrNone); |
|
4515 now.HomeTime(); |
|
4516 now.FormatL(testString,(_L("%H:%T %1\\%2\\%3 %E"))); |
|
4517 RDebug::Print(_L("Restored home time to - %S\n"), &testString); |
|
4518 |
|
4519 CleanupStack::PopAndDestroy(); //tz |
|
4520 } |
|
4521 |
|
4522 /** |
|
4523 @SYMTestCaseID SYSLIB-LOGENG-CT-0955 |
|
4524 @SYMTestCaseDesc Tests that events can be changed to move them between recent lists |
|
4525 @SYMTestPriority High |
|
4526 @SYMTestActions Add the events to the view.Move most recent event to another recent list |
|
4527 @SYMTestExpectedResults Test must not fail |
|
4528 @SYMREQ REQ0000 |
|
4529 */ |
|
4530 LOCAL_C void TestChangeEventRecentView1L(CLogClient& aClient) |
|
4531 { |
|
4532 test.Next(_L(" @SYMTestCaseID:SYSLIB-LOGENG-CT-0955 ")); |
|
4533 CTestActive* active = new(ELeave)CTestActive(); |
|
4534 CleanupStack::PushL(active); |
|
4535 |
|
4536 CLogEvent* event = CLogEvent::NewL(); |
|
4537 CleanupStack::PushL(event); |
|
4538 |
|
4539 CLogViewRecent* recent1 = CLogViewRecent::NewL(aClient); |
|
4540 CleanupStack::PushL(recent1); |
|
4541 |
|
4542 CLogViewDuplicate* duplicate1 = CLogViewDuplicate::NewL(aClient); |
|
4543 CleanupStack::PushL(duplicate1); |
|
4544 |
|
4545 CLogViewRecent* recent2 = CLogViewRecent::NewL(aClient); |
|
4546 CleanupStack::PushL(recent2); |
|
4547 |
|
4548 CLogViewDuplicate* duplicate2 = CLogViewDuplicate::NewL(aClient); |
|
4549 CleanupStack::PushL(duplicate2); |
|
4550 |
|
4551 // Make sure there are no entries in any recent lists |
|
4552 active->StartL(); |
|
4553 aClient.ClearLog(KLogNullRecentList, active->iStatus); |
|
4554 CActiveScheduler::Start(); |
|
4555 TEST2(active->iStatus.Int(), KErrNone); |
|
4556 |
|
4557 // Incoming call event |
|
4558 TBuf<KLogMaxDirectionLength> incoming; |
|
4559 aClient.GetString(incoming, R_LOG_DIR_IN); |
|
4560 |
|
4561 // Missed call event |
|
4562 TBuf<KLogMaxDirectionLength> missed; |
|
4563 aClient.GetString(missed, R_LOG_DIR_MISSED); |
|
4564 |
|
4565 event->SetEventType(KLogCallEventTypeUid); |
|
4566 event->SetDirection(missed); |
|
4567 event->SetContact(1); |
|
4568 |
|
4569 // Add some events |
|
4570 active->StartL(); |
|
4571 aClient.AddEvent(*event, active->iStatus); |
|
4572 CActiveScheduler::Start(); |
|
4573 TEST2(active->iStatus.Int(), KErrNone); |
|
4574 TLogId id1 = event->Id(); |
|
4575 |
|
4576 User::After(1000000); |
|
4577 |
|
4578 active->StartL(); |
|
4579 aClient.AddEvent(*event, active->iStatus); |
|
4580 CActiveScheduler::Start(); |
|
4581 TEST2(active->iStatus.Int(), KErrNone); |
|
4582 TLogId id2 = event->Id(); |
|
4583 |
|
4584 User::After(1000000); |
|
4585 |
|
4586 active->StartL(); |
|
4587 aClient.AddEvent(*event, active->iStatus); |
|
4588 CActiveScheduler::Start(); |
|
4589 TEST2(active->iStatus.Int(), KErrNone); |
|
4590 TLogId id3 = event->Id(); |
|
4591 |
|
4592 User::After(1000000); |
|
4593 |
|
4594 // Most recent |
|
4595 active->StartL(); |
|
4596 aClient.AddEvent(*event, active->iStatus); |
|
4597 CActiveScheduler::Start(); |
|
4598 TEST2(active->iStatus.Int(), KErrNone); |
|
4599 TLogId id4 = event->Id(); |
|
4600 |
|
4601 // Check there's a recent event in the list |
|
4602 active->StartL(); |
|
4603 TEST(recent1->SetRecentListL(KLogRecentMissedCalls, active->iStatus)); |
|
4604 CActiveScheduler::Start(); |
|
4605 TEST2(active->iStatus.Int(), KErrNone); |
|
4606 TEST2(recent1->CountL(), 1); |
|
4607 TEST2(recent1->Event().Id(), id4); |
|
4608 |
|
4609 // Check it has duplicates |
|
4610 active->StartL(); |
|
4611 TEST(recent1->DuplicatesL(*duplicate1, active->iStatus)); |
|
4612 CActiveScheduler::Start(); |
|
4613 TEST2(active->iStatus.Int(), KErrNone); |
|
4614 TEST2(duplicate1->CountL(), 3); |
|
4615 TEST2(duplicate1->Event().Id(), id3); |
|
4616 |
|
4617 // Check id |
|
4618 active->StartL(); |
|
4619 TEST(duplicate1->NextL(active->iStatus)); |
|
4620 CActiveScheduler::Start(); |
|
4621 TEST2(active->iStatus.Int(), KErrNone); |
|
4622 TEST2(duplicate1->Event().Id(), id2); |
|
4623 |
|
4624 // Check id |
|
4625 active->StartL(); |
|
4626 TEST(duplicate1->NextL(active->iStatus)); |
|
4627 CActiveScheduler::Start(); |
|
4628 TEST2(active->iStatus.Int(), KErrNone); |
|
4629 TEST2(duplicate1->Event().Id(), id1); |
|
4630 |
|
4631 // Other recent list should be empty |
|
4632 TEST(!recent2->SetRecentListL(KLogRecentIncomingCalls, active->iStatus)); |
|
4633 |
|
4634 // Now move most recent event to another recent list |
|
4635 event->SetDirection(incoming); |
|
4636 active->StartL(); |
|
4637 aClient.ChangeEvent(*event, active->iStatus); |
|
4638 CActiveScheduler::Start(); |
|
4639 TEST2(active->iStatus.Int(), KErrNone); |
|
4640 |
|
4641 // Most recent duplicate should now be the latest |
|
4642 active->StartL(); |
|
4643 TEST(recent1->SetRecentListL(KLogRecentMissedCalls, active->iStatus)); |
|
4644 CActiveScheduler::Start(); |
|
4645 TEST2(active->iStatus.Int(), KErrNone); |
|
4646 TEST2(recent1->CountL(), 1); |
|
4647 TEST2(recent1->Event().Id(), id3); |
|
4648 event->CopyL(recent1->Event()); // for later |
|
4649 |
|
4650 // There should still be some duplicates |
|
4651 active->StartL(); |
|
4652 TEST(recent1->DuplicatesL(*duplicate1, active->iStatus)); |
|
4653 CActiveScheduler::Start(); |
|
4654 TEST2(active->iStatus.Int(), KErrNone); |
|
4655 TEST2(duplicate1->CountL(), 2); |
|
4656 TEST2(duplicate1->Event().Id(), id2); |
|
4657 |
|
4658 // Check id |
|
4659 active->StartL(); |
|
4660 TEST(duplicate1->NextL(active->iStatus)); |
|
4661 CActiveScheduler::Start(); |
|
4662 TEST2(active->iStatus.Int(), KErrNone); |
|
4663 TEST2(duplicate1->Event().Id(), id1); |
|
4664 |
|
4665 // Now the event should have moved to another recent list |
|
4666 active->StartL(); |
|
4667 TEST(recent2->SetRecentListL(KLogRecentIncomingCalls, active->iStatus)); |
|
4668 CActiveScheduler::Start(); |
|
4669 TEST2(active->iStatus.Int(), KErrNone); |
|
4670 TEST2(recent2->CountL(), 1); |
|
4671 TEST2(recent2->Event().Id(), id4); |
|
4672 |
|
4673 // No duplicates yet |
|
4674 TEST(!recent2->DuplicatesL(*duplicate2, active->iStatus)); |
|
4675 |
|
4676 // Now move most recent event to another recent list |
|
4677 event->SetDirection(incoming); |
|
4678 active->StartL(); |
|
4679 aClient.ChangeEvent(*event, active->iStatus); |
|
4680 CActiveScheduler::Start(); |
|
4681 TEST2(active->iStatus.Int(), KErrNone); |
|
4682 |
|
4683 // Most recent duplicate should now be the latest |
|
4684 active->StartL(); |
|
4685 TEST(recent1->SetRecentListL(KLogRecentMissedCalls, active->iStatus)); |
|
4686 CActiveScheduler::Start(); |
|
4687 TEST2(active->iStatus.Int(), KErrNone); |
|
4688 TEST2(recent1->CountL(), 1); |
|
4689 TEST2(recent1->Event().Id(), id2); |
|
4690 event->CopyL(recent1->Event()); // for later |
|
4691 |
|
4692 // There should still be some duplicates |
|
4693 active->StartL(); |
|
4694 TEST(recent1->DuplicatesL(*duplicate1, active->iStatus)); |
|
4695 CActiveScheduler::Start(); |
|
4696 TEST2(active->iStatus.Int(), KErrNone); |
|
4697 TEST2(duplicate1->CountL(), 1); |
|
4698 TEST2(duplicate1->Event().Id(), id1); |
|
4699 |
|
4700 // Now the event should have moved to another recent list |
|
4701 active->StartL(); |
|
4702 TEST(recent2->SetRecentListL(KLogRecentIncomingCalls, active->iStatus)); |
|
4703 CActiveScheduler::Start(); |
|
4704 TEST2(active->iStatus.Int(), KErrNone); |
|
4705 TEST2(recent2->CountL(), 1); |
|
4706 TEST2(recent2->Event().Id(), id4); |
|
4707 |
|
4708 // There should still be some duplicates |
|
4709 active->StartL(); |
|
4710 TEST(recent2->DuplicatesL(*duplicate2, active->iStatus)); |
|
4711 CActiveScheduler::Start(); |
|
4712 TEST2(active->iStatus.Int(), KErrNone); |
|
4713 TEST2(duplicate2->CountL(), 1); |
|
4714 TEST2(duplicate2->Event().Id(), id3); |
|
4715 |
|
4716 // Now move most recent event to another recent list |
|
4717 event->SetDirection(incoming); |
|
4718 active->StartL(); |
|
4719 aClient.ChangeEvent(*event, active->iStatus); |
|
4720 CActiveScheduler::Start(); |
|
4721 TEST2(active->iStatus.Int(), KErrNone); |
|
4722 |
|
4723 // Most recent duplicate should now be the latest |
|
4724 active->StartL(); |
|
4725 TEST(recent1->SetRecentListL(KLogRecentMissedCalls, active->iStatus)); |
|
4726 CActiveScheduler::Start(); |
|
4727 TEST2(active->iStatus.Int(), KErrNone); |
|
4728 TEST2(recent1->CountL(), 1); |
|
4729 TEST2(recent1->Event().Id(), id1); |
|
4730 event->CopyL(recent1->Event()); // for later |
|
4731 |
|
4732 // Should be no more duplicates |
|
4733 TEST(!recent1->DuplicatesL(*duplicate1, active->iStatus)); |
|
4734 |
|
4735 // Now the event should have moved to another recent list |
|
4736 active->StartL(); |
|
4737 TEST(recent2->SetRecentListL(KLogRecentIncomingCalls, active->iStatus)); |
|
4738 CActiveScheduler::Start(); |
|
4739 TEST2(active->iStatus.Int(), KErrNone); |
|
4740 TEST2(recent2->CountL(), 1); |
|
4741 TEST2(recent2->Event().Id(), id4); |
|
4742 |
|
4743 // There should still be some duplicates |
|
4744 active->StartL(); |
|
4745 TEST(recent2->DuplicatesL(*duplicate2, active->iStatus)); |
|
4746 CActiveScheduler::Start(); |
|
4747 TEST2(active->iStatus.Int(), KErrNone); |
|
4748 TEST2(duplicate2->CountL(), 2); |
|
4749 TEST2(duplicate2->Event().Id(), id3); |
|
4750 |
|
4751 // Check id |
|
4752 active->StartL(); |
|
4753 TEST(duplicate2->NextL(active->iStatus)); |
|
4754 CActiveScheduler::Start(); |
|
4755 TEST2(active->iStatus.Int(), KErrNone); |
|
4756 TEST2(duplicate2->Event().Id(), id2); |
|
4757 |
|
4758 // Now move most recent event to another recent list |
|
4759 event->SetDirection(incoming); |
|
4760 active->StartL(); |
|
4761 aClient.ChangeEvent(*event, active->iStatus); |
|
4762 CActiveScheduler::Start(); |
|
4763 TEST2(active->iStatus.Int(), KErrNone); |
|
4764 |
|
4765 // No more recent events |
|
4766 TEST(!recent1->SetRecentListL(KLogRecentMissedCalls, active->iStatus)); |
|
4767 |
|
4768 // Now the event should have moved to another recent list |
|
4769 active->StartL(); |
|
4770 TEST(recent2->SetRecentListL(KLogRecentIncomingCalls, active->iStatus)); |
|
4771 CActiveScheduler::Start(); |
|
4772 TEST2(active->iStatus.Int(), KErrNone); |
|
4773 TEST2(recent2->CountL(), 1); |
|
4774 TEST2(recent2->Event().Id(), id4); |
|
4775 |
|
4776 // There should still be some duplicates |
|
4777 active->StartL(); |
|
4778 TEST(recent2->DuplicatesL(*duplicate2, active->iStatus)); |
|
4779 CActiveScheduler::Start(); |
|
4780 TEST2(active->iStatus.Int(), KErrNone); |
|
4781 TEST2(duplicate2->CountL(), 3); |
|
4782 TEST2(duplicate2->Event().Id(), id3); |
|
4783 |
|
4784 // Check id |
|
4785 active->StartL(); |
|
4786 TEST(duplicate2->NextL(active->iStatus)); |
|
4787 CActiveScheduler::Start(); |
|
4788 TEST2(active->iStatus.Int(), KErrNone); |
|
4789 TEST2(duplicate2->Event().Id(), id2); |
|
4790 |
|
4791 // Check id |
|
4792 active->StartL(); |
|
4793 TEST(duplicate2->NextL(active->iStatus)); |
|
4794 CActiveScheduler::Start(); |
|
4795 TEST2(active->iStatus.Int(), KErrNone); |
|
4796 TEST2(duplicate2->Event().Id(), id1); |
|
4797 |
|
4798 CleanupStack::PopAndDestroy(6); // active, event, recent1, duplicate1, recent2, duplicate2 |
|
4799 } |
|
4800 |
|
4801 /** |
|
4802 Test that events can be changed to move them between recent lists |
|
4803 The same as TestChangeEventRecentView1L, but the events are transferred in reverse order |
|
4804 |
|
4805 @SYMTestCaseID SYSLIB-LOGENG-CT-0956 |
|
4806 @SYMTestCaseDesc Tests that events can be changed to move them between recent lists |
|
4807 @SYMTestPriority High |
|
4808 @SYMTestActions Add the events to the view.Move most recent event to another recent list in reverse order |
|
4809 @SYMTestExpectedResults Test must not fail |
|
4810 @SYMREQ REQ0000 |
|
4811 */ |
|
4812 LOCAL_C void TestChangeEventRecentView2L(CLogClient& aClient) |
|
4813 { |
|
4814 test.Next(_L(" @SYMTestCaseID:SYSLIB-LOGENG-CT-0956 ")); |
|
4815 CTestActive* active = new(ELeave)CTestActive(); |
|
4816 CleanupStack::PushL(active); |
|
4817 |
|
4818 CLogEvent* event = CLogEvent::NewL(); |
|
4819 CleanupStack::PushL(event); |
|
4820 |
|
4821 CLogViewRecent* recent1 = CLogViewRecent::NewL(aClient); |
|
4822 CleanupStack::PushL(recent1); |
|
4823 |
|
4824 CLogViewDuplicate* duplicate1 = CLogViewDuplicate::NewL(aClient); |
|
4825 CleanupStack::PushL(duplicate1); |
|
4826 |
|
4827 CLogViewRecent* recent2 = CLogViewRecent::NewL(aClient); |
|
4828 CleanupStack::PushL(recent2); |
|
4829 |
|
4830 CLogViewDuplicate* duplicate2 = CLogViewDuplicate::NewL(aClient); |
|
4831 CleanupStack::PushL(duplicate2); |
|
4832 |
|
4833 // Make sure there are no entries in any recent lists |
|
4834 active->StartL(); |
|
4835 aClient.ClearLog(KLogNullRecentList, active->iStatus); |
|
4836 CActiveScheduler::Start(); |
|
4837 TEST2(active->iStatus.Int(), KErrNone); |
|
4838 |
|
4839 // Incoming call event |
|
4840 TBuf<KLogMaxDirectionLength> incoming; |
|
4841 aClient.GetString(incoming, R_LOG_DIR_IN); |
|
4842 |
|
4843 // Missed call event |
|
4844 TBuf<KLogMaxDirectionLength> missed; |
|
4845 aClient.GetString(missed, R_LOG_DIR_MISSED); |
|
4846 |
|
4847 event->SetEventType(KLogCallEventTypeUid); |
|
4848 event->SetDirection(missed); |
|
4849 event->SetContact(1); |
|
4850 |
|
4851 // Add some events |
|
4852 active->StartL(); |
|
4853 aClient.AddEvent(*event, active->iStatus); |
|
4854 CActiveScheduler::Start(); |
|
4855 TEST2(active->iStatus.Int(), KErrNone); |
|
4856 TLogId id1 = event->Id(); |
|
4857 |
|
4858 User::After(1000000); |
|
4859 |
|
4860 active->StartL(); |
|
4861 aClient.AddEvent(*event, active->iStatus); |
|
4862 CActiveScheduler::Start(); |
|
4863 TEST2(active->iStatus.Int(), KErrNone); |
|
4864 TLogId id2 = event->Id(); |
|
4865 |
|
4866 User::After(1000000); |
|
4867 |
|
4868 active->StartL(); |
|
4869 aClient.AddEvent(*event, active->iStatus); |
|
4870 CActiveScheduler::Start(); |
|
4871 TEST2(active->iStatus.Int(), KErrNone); |
|
4872 TLogId id3 = event->Id(); |
|
4873 |
|
4874 User::After(1000000); |
|
4875 |
|
4876 // Most recent |
|
4877 active->StartL(); |
|
4878 aClient.AddEvent(*event, active->iStatus); |
|
4879 CActiveScheduler::Start(); |
|
4880 TEST2(active->iStatus.Int(), KErrNone); |
|
4881 TLogId id4 = event->Id(); |
|
4882 |
|
4883 // Check there's a recent event in the list |
|
4884 active->StartL(); |
|
4885 TEST(recent1->SetRecentListL(KLogRecentMissedCalls, active->iStatus)); |
|
4886 CActiveScheduler::Start(); |
|
4887 TEST2(active->iStatus.Int(), KErrNone); |
|
4888 TEST2(recent1->CountL(), 1); |
|
4889 TEST2(recent1->Event().Id(), id4); |
|
4890 |
|
4891 // Check it has duplicates |
|
4892 active->StartL(); |
|
4893 TEST(recent1->DuplicatesL(*duplicate1, active->iStatus)); |
|
4894 CActiveScheduler::Start(); |
|
4895 TEST2(active->iStatus.Int(), KErrNone); |
|
4896 TEST2(duplicate1->CountL(), 3); |
|
4897 TEST2(duplicate1->Event().Id(), id3); |
|
4898 |
|
4899 // Check id |
|
4900 active->StartL(); |
|
4901 TEST(duplicate1->NextL(active->iStatus)); |
|
4902 CActiveScheduler::Start(); |
|
4903 TEST2(active->iStatus.Int(), KErrNone); |
|
4904 TEST2(duplicate1->Event().Id(), id2); |
|
4905 |
|
4906 // Check id |
|
4907 active->StartL(); |
|
4908 TEST(duplicate1->NextL(active->iStatus)); |
|
4909 CActiveScheduler::Start(); |
|
4910 TEST2(active->iStatus.Int(), KErrNone); |
|
4911 TEST2(duplicate1->Event().Id(), id1); |
|
4912 event->CopyL(duplicate1->Event()); // for later |
|
4913 |
|
4914 // Other recent list should be empty |
|
4915 TEST(!recent2->SetRecentListL(KLogRecentIncomingCalls, active->iStatus)); |
|
4916 |
|
4917 // Now move latest recent event to another recent list |
|
4918 event->SetDirection(incoming); |
|
4919 active->StartL(); |
|
4920 aClient.ChangeEvent(*event, active->iStatus); |
|
4921 CActiveScheduler::Start(); |
|
4922 TEST2(active->iStatus.Int(), KErrNone); |
|
4923 |
|
4924 // Most recent duplicate should still be the latest |
|
4925 active->StartL(); |
|
4926 TEST(recent1->SetRecentListL(KLogRecentMissedCalls, active->iStatus)); |
|
4927 CActiveScheduler::Start(); |
|
4928 TEST2(active->iStatus.Int(), KErrNone); |
|
4929 TEST2(recent1->CountL(), 1); |
|
4930 TEST2(recent1->Event().Id(), id4); |
|
4931 |
|
4932 // There should still be some duplicates |
|
4933 active->StartL(); |
|
4934 TEST(recent1->DuplicatesL(*duplicate1, active->iStatus)); |
|
4935 CActiveScheduler::Start(); |
|
4936 TEST2(active->iStatus.Int(), KErrNone); |
|
4937 TEST2(duplicate1->CountL(), 2); |
|
4938 TEST2(duplicate1->Event().Id(), id3); |
|
4939 |
|
4940 // Check id |
|
4941 active->StartL(); |
|
4942 TEST(duplicate1->NextL(active->iStatus)); |
|
4943 CActiveScheduler::Start(); |
|
4944 TEST2(active->iStatus.Int(), KErrNone); |
|
4945 TEST2(duplicate1->Event().Id(), id2); |
|
4946 event->CopyL(duplicate1->Event()); // for later |
|
4947 |
|
4948 // Now the event should have moved to another recent list |
|
4949 active->StartL(); |
|
4950 TEST(recent2->SetRecentListL(KLogRecentIncomingCalls, active->iStatus)); |
|
4951 CActiveScheduler::Start(); |
|
4952 TEST2(active->iStatus.Int(), KErrNone); |
|
4953 TEST2(recent2->CountL(), 1); |
|
4954 TEST2(recent2->Event().Id(), id1); |
|
4955 |
|
4956 // No duplicates yet |
|
4957 TEST(!recent2->DuplicatesL(*duplicate2, active->iStatus)); |
|
4958 |
|
4959 // Now move most recent event to another recent list |
|
4960 event->SetDirection(incoming); |
|
4961 active->StartL(); |
|
4962 aClient.ChangeEvent(*event, active->iStatus); |
|
4963 CActiveScheduler::Start(); |
|
4964 TEST2(active->iStatus.Int(), KErrNone); |
|
4965 |
|
4966 // Most recent duplicate should still be the latest |
|
4967 active->StartL(); |
|
4968 TEST(recent1->SetRecentListL(KLogRecentMissedCalls, active->iStatus)); |
|
4969 CActiveScheduler::Start(); |
|
4970 TEST2(active->iStatus.Int(), KErrNone); |
|
4971 TEST2(recent1->CountL(), 1); |
|
4972 TEST2(recent1->Event().Id(), id4); |
|
4973 |
|
4974 // There should still be some duplicates |
|
4975 active->StartL(); |
|
4976 TEST(recent1->DuplicatesL(*duplicate1, active->iStatus)); |
|
4977 CActiveScheduler::Start(); |
|
4978 TEST2(active->iStatus.Int(), KErrNone); |
|
4979 TEST2(duplicate1->CountL(), 1); |
|
4980 TEST2(duplicate1->Event().Id(), id3); |
|
4981 event->CopyL(duplicate1->Event()); // for later |
|
4982 |
|
4983 // Now the event should have moved to another recent list |
|
4984 active->StartL(); |
|
4985 TEST(recent2->SetRecentListL(KLogRecentIncomingCalls, active->iStatus)); |
|
4986 CActiveScheduler::Start(); |
|
4987 TEST2(active->iStatus.Int(), KErrNone); |
|
4988 TEST2(recent2->CountL(), 1); |
|
4989 TEST2(recent2->Event().Id(), id2); |
|
4990 |
|
4991 // There should still be some duplicates |
|
4992 active->StartL(); |
|
4993 TEST(recent2->DuplicatesL(*duplicate2, active->iStatus)); |
|
4994 CActiveScheduler::Start(); |
|
4995 TEST2(active->iStatus.Int(), KErrNone); |
|
4996 TEST2(duplicate2->CountL(), 1); |
|
4997 TEST2(duplicate2->Event().Id(), id1); |
|
4998 |
|
4999 // Now move most recent event to another recent list |
|
5000 event->SetDirection(incoming); |
|
5001 active->StartL(); |
|
5002 aClient.ChangeEvent(*event, active->iStatus); |
|
5003 CActiveScheduler::Start(); |
|
5004 TEST2(active->iStatus.Int(), KErrNone); |
|
5005 |
|
5006 // Most recent duplicate should still be the latest |
|
5007 active->StartL(); |
|
5008 TEST(recent1->SetRecentListL(KLogRecentMissedCalls, active->iStatus)); |
|
5009 CActiveScheduler::Start(); |
|
5010 TEST2(active->iStatus.Int(), KErrNone); |
|
5011 TEST2(recent1->CountL(), 1); |
|
5012 TEST2(recent1->Event().Id(), id4); |
|
5013 event->CopyL(recent1->Event()); // for later |
|
5014 |
|
5015 // Should be no more duplicates |
|
5016 TEST(!recent1->DuplicatesL(*duplicate1, active->iStatus)); |
|
5017 |
|
5018 // Now the event should have moved to another recent list |
|
5019 active->StartL(); |
|
5020 TEST(recent2->SetRecentListL(KLogRecentIncomingCalls, active->iStatus)); |
|
5021 CActiveScheduler::Start(); |
|
5022 TEST2(active->iStatus.Int(), KErrNone); |
|
5023 TEST2(recent2->CountL(), 1); |
|
5024 TEST2(recent2->Event().Id(), id3); |
|
5025 |
|
5026 // There should still be some duplicates |
|
5027 active->StartL(); |
|
5028 TEST(recent2->DuplicatesL(*duplicate2, active->iStatus)); |
|
5029 CActiveScheduler::Start(); |
|
5030 TEST2(active->iStatus.Int(), KErrNone); |
|
5031 TEST2(duplicate2->CountL(), 2); |
|
5032 TEST2(duplicate2->Event().Id(), id2); |
|
5033 |
|
5034 // Check id |
|
5035 active->StartL(); |
|
5036 TEST(duplicate2->NextL(active->iStatus)); |
|
5037 CActiveScheduler::Start(); |
|
5038 TEST2(active->iStatus.Int(), KErrNone); |
|
5039 TEST2(duplicate2->Event().Id(), id1); |
|
5040 |
|
5041 // Now move most recent event to another recent list |
|
5042 event->SetDirection(incoming); |
|
5043 active->StartL(); |
|
5044 aClient.ChangeEvent(*event, active->iStatus); |
|
5045 CActiveScheduler::Start(); |
|
5046 TEST2(active->iStatus.Int(), KErrNone); |
|
5047 |
|
5048 // No more recent events |
|
5049 TEST(!recent1->SetRecentListL(KLogRecentMissedCalls, active->iStatus)); |
|
5050 |
|
5051 // Now the event should have moved to another recent list |
|
5052 active->StartL(); |
|
5053 TEST(recent2->SetRecentListL(KLogRecentIncomingCalls, active->iStatus)); |
|
5054 CActiveScheduler::Start(); |
|
5055 TEST2(active->iStatus.Int(), KErrNone); |
|
5056 TEST2(recent2->CountL(), 1); |
|
5057 TEST2(recent2->Event().Id(), id4); |
|
5058 |
|
5059 // There should still be some duplicates |
|
5060 active->StartL(); |
|
5061 TEST(recent2->DuplicatesL(*duplicate2, active->iStatus)); |
|
5062 CActiveScheduler::Start(); |
|
5063 TEST2(active->iStatus.Int(), KErrNone); |
|
5064 TEST2(duplicate2->CountL(), 3); |
|
5065 TEST2(duplicate2->Event().Id(), id3); |
|
5066 |
|
5067 // Check id |
|
5068 active->StartL(); |
|
5069 TEST(duplicate2->NextL(active->iStatus)); |
|
5070 CActiveScheduler::Start(); |
|
5071 TEST2(active->iStatus.Int(), KErrNone); |
|
5072 TEST2(duplicate2->Event().Id(), id2); |
|
5073 |
|
5074 // Check id |
|
5075 active->StartL(); |
|
5076 TEST(duplicate2->NextL(active->iStatus)); |
|
5077 CActiveScheduler::Start(); |
|
5078 TEST2(active->iStatus.Int(), KErrNone); |
|
5079 TEST2(duplicate2->Event().Id(), id1); |
|
5080 |
|
5081 CleanupStack::PopAndDestroy(6); // active, event, recent1, duplicate1, recent2, duplicate2 |
|
5082 } |
|
5083 |
|
5084 /** |
|
5085 @SYMTestCaseID SYSLIB-LOGENG-CT-0957 |
|
5086 @SYMTestCaseDesc Tests that change in log view after moving an event |
|
5087 @SYMTestPriority High |
|
5088 @SYMTestActions Check recent views are purged if necessary after moving an event |
|
5089 @SYMTestExpectedResults Test must not fail |
|
5090 @SYMREQ REQ0000 |
|
5091 */ |
|
5092 LOCAL_C void TestChangeEventRecentViewAndPurgeL(CLogClient& aClient) |
|
5093 { |
|
5094 test.Next(_L(" @SYMTestCaseID:SYSLIB-LOGENG-CT-0957 ")); |
|
5095 CTestActive* active = new(ELeave)CTestActive(); |
|
5096 CleanupStack::PushL(active); |
|
5097 |
|
5098 CLogEvent* event = CLogEvent::NewL(); |
|
5099 CleanupStack::PushL(event); |
|
5100 |
|
5101 CLogViewRecent* recent1 = CLogViewRecent::NewL(aClient); |
|
5102 CleanupStack::PushL(recent1); |
|
5103 |
|
5104 CLogViewRecent* recent2 = CLogViewRecent::NewL(aClient); |
|
5105 CleanupStack::PushL(recent2); |
|
5106 |
|
5107 // Make sure there are no entries in any recent lists |
|
5108 active->StartL(); |
|
5109 aClient.ClearLog(KLogNullRecentList, active->iStatus); |
|
5110 CActiveScheduler::Start(); |
|
5111 TEST2(active->iStatus.Int(), KErrNone); |
|
5112 |
|
5113 // Get log config |
|
5114 TLogConfig config; |
|
5115 active->StartL(); |
|
5116 aClient.GetConfig(config, active->iStatus); |
|
5117 CActiveScheduler::Start(); |
|
5118 TEST2(active->iStatus.Int(), KErrNone); |
|
5119 |
|
5120 // Set the max recent list size to something small |
|
5121 config.iMaxRecentLogSize = 3; |
|
5122 active->StartL(); |
|
5123 aClient.ChangeConfig(config, active->iStatus); |
|
5124 CActiveScheduler::Start(); |
|
5125 TEST2(active->iStatus.Int(), KErrNone); |
|
5126 |
|
5127 // Incoming call event |
|
5128 TBuf<KLogMaxDirectionLength> incoming; |
|
5129 aClient.GetString(incoming, R_LOG_DIR_IN); |
|
5130 |
|
5131 // Missed call event |
|
5132 TBuf<KLogMaxDirectionLength> missed; |
|
5133 aClient.GetString(missed, R_LOG_DIR_MISSED); |
|
5134 |
|
5135 event->SetEventType(KLogCallEventTypeUid); |
|
5136 event->SetDirection(missed); |
|
5137 |
|
5138 // Add an event |
|
5139 event->SetContact(1); |
|
5140 active->StartL(); |
|
5141 aClient.AddEvent(*event, active->iStatus); |
|
5142 CActiveScheduler::Start(); |
|
5143 TEST2(active->iStatus.Int(), KErrNone); |
|
5144 TLogId id1 = event->Id(); |
|
5145 |
|
5146 User::After(1000000); |
|
5147 event->SetDirection(incoming); |
|
5148 |
|
5149 // Add an event |
|
5150 event->SetContact(2); |
|
5151 active->StartL(); |
|
5152 aClient.AddEvent(*event, active->iStatus); |
|
5153 CActiveScheduler::Start(); |
|
5154 TEST2(active->iStatus.Int(), KErrNone); |
|
5155 TLogId id2 = event->Id(); |
|
5156 |
|
5157 User::After(1000000); |
|
5158 |
|
5159 // Add an event |
|
5160 event->SetContact(3); |
|
5161 active->StartL(); |
|
5162 aClient.AddEvent(*event, active->iStatus); |
|
5163 CActiveScheduler::Start(); |
|
5164 TEST2(active->iStatus.Int(), KErrNone); |
|
5165 TLogId id3 = event->Id(); |
|
5166 |
|
5167 User::After(1000000); |
|
5168 |
|
5169 // Add an event |
|
5170 event->SetContact(4); |
|
5171 active->StartL(); |
|
5172 aClient.AddEvent(*event, active->iStatus); |
|
5173 CActiveScheduler::Start(); |
|
5174 TEST2(active->iStatus.Int(), KErrNone); |
|
5175 TLogId id4 = event->Id(); |
|
5176 |
|
5177 // Check the views |
|
5178 active->StartL(); |
|
5179 TEST(recent1->SetRecentListL(KLogRecentMissedCalls, active->iStatus)); |
|
5180 CActiveScheduler::Start(); |
|
5181 TEST2(active->iStatus.Int(), KErrNone); |
|
5182 TEST2(recent1->CountL(), 1); |
|
5183 |
|
5184 active->StartL(); |
|
5185 TEST(recent2->SetRecentListL(KLogRecentIncomingCalls, active->iStatus)); |
|
5186 CActiveScheduler::Start(); |
|
5187 TEST2(active->iStatus.Int(), KErrNone); |
|
5188 TEST2(recent2->CountL(), 3); |
|
5189 |
|
5190 // Retrieve event |
|
5191 event->SetId(id1); |
|
5192 active->StartL(); |
|
5193 aClient.GetEvent(*event, active->iStatus); |
|
5194 CActiveScheduler::Start(); |
|
5195 TEST2(active->iStatus.Int(), KErrNone); |
|
5196 |
|
5197 // Now move the oldest event to another recent list - it should be purged |
|
5198 event->SetDirection(incoming); |
|
5199 active->StartL(); |
|
5200 aClient.ChangeEvent(*event, active->iStatus); |
|
5201 CActiveScheduler::Start(); |
|
5202 TEST2(active->iStatus.Int(), KErrNone); |
|
5203 |
|
5204 // Missed call list now empty |
|
5205 TEST(!recent1->SetRecentListL(KLogRecentMissedCalls, active->iStatus)); |
|
5206 |
|
5207 // Incoming view should be unchanged |
|
5208 active->StartL(); |
|
5209 TEST(recent2->SetRecentListL(KLogRecentIncomingCalls, active->iStatus)); |
|
5210 CActiveScheduler::Start(); |
|
5211 TEST2(active->iStatus.Int(), KErrNone); |
|
5212 TEST2(recent2->CountL(), 3); |
|
5213 TEST2(recent2->Event().Id(), id4); |
|
5214 |
|
5215 // Check id |
|
5216 active->StartL(); |
|
5217 TEST(recent2->NextL(active->iStatus)); |
|
5218 CActiveScheduler::Start(); |
|
5219 TEST2(active->iStatus.Int(), KErrNone); |
|
5220 TEST2(recent2->Event().Id(), id3); |
|
5221 |
|
5222 // Check id |
|
5223 active->StartL(); |
|
5224 TEST(recent2->NextL(active->iStatus)); |
|
5225 CActiveScheduler::Start(); |
|
5226 TEST2(active->iStatus.Int(), KErrNone); |
|
5227 TEST2(recent2->Event().Id(), id2); |
|
5228 |
|
5229 TTime now; |
|
5230 now.UniversalTime(); |
|
5231 |
|
5232 // This should have no effect |
|
5233 event->SetTime(now); |
|
5234 active->StartL(); |
|
5235 aClient.ChangeEvent(*event, active->iStatus); |
|
5236 CActiveScheduler::Start(); |
|
5237 TEST2(active->iStatus.Int(), KErrNone); |
|
5238 |
|
5239 // Incoming view should be unchanged |
|
5240 active->StartL(); |
|
5241 TEST(recent2->SetRecentListL(KLogRecentIncomingCalls, active->iStatus)); |
|
5242 CActiveScheduler::Start(); |
|
5243 TEST2(active->iStatus.Int(), KErrNone); |
|
5244 TEST2(recent2->CountL(), 3); |
|
5245 TEST2(recent2->Event().Id(), id4); |
|
5246 |
|
5247 // Check id |
|
5248 active->StartL(); |
|
5249 TEST(recent2->NextL(active->iStatus)); |
|
5250 CActiveScheduler::Start(); |
|
5251 TEST2(active->iStatus.Int(), KErrNone); |
|
5252 TEST2(recent2->Event().Id(), id3); |
|
5253 |
|
5254 // Check id |
|
5255 active->StartL(); |
|
5256 TEST(recent2->NextL(active->iStatus)); |
|
5257 CActiveScheduler::Start(); |
|
5258 TEST2(active->iStatus.Int(), KErrNone); |
|
5259 TEST2(recent2->Event().Id(), id2); |
|
5260 |
|
5261 // Now add a new event to missed view (the latest) |
|
5262 User::After(1000000); |
|
5263 event->SetDirection(missed); |
|
5264 active->StartL(); |
|
5265 aClient.AddEvent(*event, active->iStatus); |
|
5266 CActiveScheduler::Start(); |
|
5267 TEST2(active->iStatus.Int(), KErrNone); |
|
5268 |
|
5269 User::After(1000000); |
|
5270 now.UniversalTime(); |
|
5271 |
|
5272 // This should have no effect |
|
5273 event->SetTime(now); |
|
5274 active->StartL(); |
|
5275 aClient.ChangeEvent(*event, active->iStatus); |
|
5276 CActiveScheduler::Start(); |
|
5277 TEST2(active->iStatus.Int(), KErrNone); |
|
5278 |
|
5279 // Check the views |
|
5280 active->StartL(); |
|
5281 TEST(recent1->SetRecentListL(KLogRecentMissedCalls, active->iStatus)); |
|
5282 CActiveScheduler::Start(); |
|
5283 TEST2(active->iStatus.Int(), KErrNone); |
|
5284 TEST2(recent1->CountL(), 1); |
|
5285 |
|
5286 active->StartL(); |
|
5287 TEST(recent2->SetRecentListL(KLogRecentIncomingCalls, active->iStatus)); |
|
5288 CActiveScheduler::Start(); |
|
5289 TEST2(active->iStatus.Int(), KErrNone); |
|
5290 TEST2(recent2->CountL(), 3); |
|
5291 |
|
5292 // Now move the latest event to another recent list - oldest should be purged |
|
5293 event->SetDirection(incoming); |
|
5294 active->StartL(); |
|
5295 aClient.ChangeEvent(*event, active->iStatus); |
|
5296 CActiveScheduler::Start(); |
|
5297 TEST2(active->iStatus.Int(), KErrNone); |
|
5298 |
|
5299 TEST(!recent1->SetRecentListL(KLogRecentMissedCalls, active->iStatus)); |
|
5300 |
|
5301 active->StartL(); |
|
5302 TEST(recent2->SetRecentListL(KLogRecentIncomingCalls, active->iStatus)); |
|
5303 CActiveScheduler::Start(); |
|
5304 TEST2(active->iStatus.Int(), KErrNone); |
|
5305 TEST2(recent2->CountL(), 3); |
|
5306 TEST2(recent2->Event().Id(), event->Id()); |
|
5307 |
|
5308 // Check id |
|
5309 active->StartL(); |
|
5310 TEST(recent2->NextL(active->iStatus)); |
|
5311 CActiveScheduler::Start(); |
|
5312 TEST2(active->iStatus.Int(), KErrNone); |
|
5313 TEST2(recent2->Event().Id(), id4); |
|
5314 |
|
5315 // Check id |
|
5316 active->StartL(); |
|
5317 TEST(recent2->NextL(active->iStatus)); |
|
5318 CActiveScheduler::Start(); |
|
5319 TEST2(active->iStatus.Int(), KErrNone); |
|
5320 TEST2(recent2->Event().Id(), id3); |
|
5321 |
|
5322 CleanupStack::PopAndDestroy(4); // active, event, recent1, recent2 |
|
5323 } |
|
5324 |
|
5325 /** |
|
5326 @SYMTestCaseID SYSLIB-LOGENG-CT-0958 |
|
5327 @SYMTestCaseDesc Tests for the log view,on changing an event |
|
5328 @SYMTestPriority High |
|
5329 @SYMTestActions Check an event can be removed from recent lists by changing it |
|
5330 @SYMTestExpectedResults Test must not fail |
|
5331 @SYMREQ REQ0000 |
|
5332 */ |
|
5333 LOCAL_C void TestChangeEventRecentViewRemoveL(CLogClient& aClient) |
|
5334 { |
|
5335 test.Next(_L(" @SYMTestCaseID:SYSLIB-LOGENG-CT-0958 ")); |
|
5336 CTestActive* active = new(ELeave)CTestActive(); |
|
5337 CleanupStack::PushL(active); |
|
5338 |
|
5339 CLogEvent* event = CLogEvent::NewL(); |
|
5340 CleanupStack::PushL(event); |
|
5341 |
|
5342 CLogViewRecent* recent = CLogViewRecent::NewL(aClient); |
|
5343 CleanupStack::PushL(recent); |
|
5344 |
|
5345 CLogViewDuplicate* duplicate = CLogViewDuplicate::NewL(aClient); |
|
5346 CleanupStack::PushL(duplicate); |
|
5347 |
|
5348 // Missed call event |
|
5349 TBuf<KLogMaxDirectionLength> missed; |
|
5350 aClient.GetString(missed, R_LOG_DIR_MISSED); |
|
5351 |
|
5352 event->SetEventType(KLogCallEventTypeUid); |
|
5353 event->SetDirection(missed); |
|
5354 |
|
5355 // Add an event |
|
5356 event->SetContact(1); |
|
5357 active->StartL(); |
|
5358 aClient.AddEvent(*event, active->iStatus); |
|
5359 CActiveScheduler::Start(); |
|
5360 TEST2(active->iStatus.Int(), KErrNone); |
|
5361 TLogId id1 = event->Id(); |
|
5362 |
|
5363 User::After(1000000); |
|
5364 |
|
5365 // Add some duplicates |
|
5366 active->StartL(); |
|
5367 aClient.AddEvent(*event, active->iStatus); |
|
5368 CActiveScheduler::Start(); |
|
5369 TEST2(active->iStatus.Int(), KErrNone); |
|
5370 TLogId id2 = event->Id(); |
|
5371 |
|
5372 User::After(1000000); |
|
5373 |
|
5374 active->StartL(); |
|
5375 aClient.AddEvent(*event, active->iStatus); |
|
5376 CActiveScheduler::Start(); |
|
5377 TEST2(active->iStatus.Int(), KErrNone); |
|
5378 TLogId id3 = event->Id(); |
|
5379 |
|
5380 User::After(1000000); |
|
5381 |
|
5382 active->StartL(); |
|
5383 aClient.AddEvent(*event, active->iStatus); |
|
5384 CActiveScheduler::Start(); |
|
5385 TEST2(active->iStatus.Int(), KErrNone); |
|
5386 TLogId id4 = event->Id(); |
|
5387 |
|
5388 // Check views |
|
5389 active->StartL(); |
|
5390 TEST(recent->SetRecentListL(KLogRecentMissedCalls, active->iStatus)); |
|
5391 CActiveScheduler::Start(); |
|
5392 TEST2(active->iStatus.Int(), KErrNone); |
|
5393 TEST2(recent->CountL(), 1); |
|
5394 TEST2(recent->Event().Id(), id4); |
|
5395 |
|
5396 active->StartL(); |
|
5397 TEST(recent->DuplicatesL(*duplicate, active->iStatus)); |
|
5398 CActiveScheduler::Start(); |
|
5399 TEST2(active->iStatus.Int(), KErrNone); |
|
5400 TEST2(duplicate->CountL(), 3); |
|
5401 TEST2(duplicate->Event().Id(), id3); |
|
5402 |
|
5403 // Check id |
|
5404 active->StartL(); |
|
5405 TEST(duplicate->NextL(active->iStatus)); |
|
5406 CActiveScheduler::Start(); |
|
5407 TEST2(active->iStatus.Int(), KErrNone); |
|
5408 TEST2(duplicate->Event().Id(), id2); |
|
5409 |
|
5410 // Check id |
|
5411 active->StartL(); |
|
5412 TEST(duplicate->NextL(active->iStatus)); |
|
5413 CActiveScheduler::Start(); |
|
5414 TEST2(active->iStatus.Int(), KErrNone); |
|
5415 TEST2(duplicate->Event().Id(), id1); |
|
5416 |
|
5417 // Fetched call event |
|
5418 TBuf<KLogMaxDirectionLength> fetched; |
|
5419 aClient.GetString(missed, R_LOG_DIR_FETCHED); |
|
5420 |
|
5421 // Now change the event to remove it from recent lists |
|
5422 event->SetDirection(fetched); |
|
5423 active->StartL(); |
|
5424 aClient.ChangeEvent(*event, active->iStatus); |
|
5425 CActiveScheduler::Start(); |
|
5426 TEST2(active->iStatus.Int(), KErrNone); |
|
5427 |
|
5428 // Check views |
|
5429 active->StartL(); |
|
5430 TEST(recent->SetRecentListL(KLogRecentMissedCalls, active->iStatus)); |
|
5431 CActiveScheduler::Start(); |
|
5432 TEST2(active->iStatus.Int(), KErrNone); |
|
5433 TEST2(recent->CountL(), 1); |
|
5434 TEST2(recent->Event().Id(), id3); |
|
5435 |
|
5436 active->StartL(); |
|
5437 TEST(recent->DuplicatesL(*duplicate, active->iStatus)); |
|
5438 CActiveScheduler::Start(); |
|
5439 TEST2(active->iStatus.Int(), KErrNone); |
|
5440 TEST2(duplicate->CountL(), 2); |
|
5441 TEST2(duplicate->Event().Id(), id2); |
|
5442 event->CopyL(duplicate->Event()); // For later |
|
5443 |
|
5444 // Check id |
|
5445 active->StartL(); |
|
5446 TEST(duplicate->NextL(active->iStatus)); |
|
5447 CActiveScheduler::Start(); |
|
5448 TEST2(active->iStatus.Int(), KErrNone); |
|
5449 TEST2(duplicate->Event().Id(), id1); |
|
5450 |
|
5451 // Now change the event to remove it from recent lists |
|
5452 event->SetDirection(fetched); |
|
5453 active->StartL(); |
|
5454 aClient.ChangeEvent(*event, active->iStatus); |
|
5455 CActiveScheduler::Start(); |
|
5456 TEST2(active->iStatus.Int(), KErrNone); |
|
5457 |
|
5458 // Check views |
|
5459 active->StartL(); |
|
5460 TEST(recent->SetRecentListL(KLogRecentMissedCalls, active->iStatus)); |
|
5461 CActiveScheduler::Start(); |
|
5462 TEST2(active->iStatus.Int(), KErrNone); |
|
5463 TEST2(recent->CountL(), 1); |
|
5464 TEST2(recent->Event().Id(), id3); |
|
5465 |
|
5466 active->StartL(); |
|
5467 TEST(recent->DuplicatesL(*duplicate, active->iStatus)); |
|
5468 CActiveScheduler::Start(); |
|
5469 TEST2(active->iStatus.Int(), KErrNone); |
|
5470 TEST2(duplicate->CountL(), 1); |
|
5471 TEST2(duplicate->Event().Id(), id1); |
|
5472 event->CopyL(duplicate->Event()); // For later |
|
5473 |
|
5474 // Now change the event to remove it from recent lists |
|
5475 event->SetDirection(fetched); |
|
5476 active->StartL(); |
|
5477 aClient.ChangeEvent(*event, active->iStatus); |
|
5478 CActiveScheduler::Start(); |
|
5479 TEST2(active->iStatus.Int(), KErrNone); |
|
5480 |
|
5481 // Check views |
|
5482 active->StartL(); |
|
5483 TEST(recent->SetRecentListL(KLogRecentMissedCalls, active->iStatus)); |
|
5484 CActiveScheduler::Start(); |
|
5485 TEST2(active->iStatus.Int(), KErrNone); |
|
5486 TEST2(recent->CountL(), 1); |
|
5487 TEST2(recent->Event().Id(), id3); |
|
5488 event->CopyL(recent->Event()); // For later |
|
5489 |
|
5490 // No more duplicates |
|
5491 TEST(!recent->DuplicatesL(*duplicate, active->iStatus)); |
|
5492 |
|
5493 // Now change the event to remove it from recent lists |
|
5494 event->SetDirection(fetched); |
|
5495 active->StartL(); |
|
5496 aClient.ChangeEvent(*event, active->iStatus); |
|
5497 CActiveScheduler::Start(); |
|
5498 TEST2(active->iStatus.Int(), KErrNone); |
|
5499 |
|
5500 TEST(!recent->SetRecentListL(KLogRecentMissedCalls, active->iStatus)); |
|
5501 |
|
5502 CleanupStack::PopAndDestroy(4); // active, event, recent, duplicate |
|
5503 } |
|
5504 |
|
5505 CBaBackupSessionWrapper* theBackup = NULL; |
|
5506 |
|
5507 LOCAL_C TBool IsLogOpenL() |
|
5508 { |
|
5509 return TestUtils::IsDatabaseOpenL(); |
|
5510 } |
|
5511 |
|
5512 LOCAL_C void TestLogOpenL() |
|
5513 { |
|
5514 test(IsLogOpenL()); |
|
5515 } |
|
5516 |
|
5517 LOCAL_C void TestLogClosedL() |
|
5518 { |
|
5519 test(!IsLogOpenL()); |
|
5520 } |
|
5521 |
|
5522 LOCAL_C void StartBackupL() |
|
5523 { |
|
5524 User::InfoPrint(_L("Backup")); |
|
5525 |
|
5526 TDriveUnit driveUnit(EDriveC); |
|
5527 TDriveName name = driveUnit.Name(); |
|
5528 |
|
5529 TParse parse; |
|
5530 LEAVE_IF_ERROR(parse.Set(KLogDatabaseName, &name, NULL)); |
|
5531 |
|
5532 delete theBackup; |
|
5533 theBackup = NULL; |
|
5534 theBackup = CBaBackupSessionWrapper::NewL(); |
|
5535 |
|
5536 theBackup->CloseFileL(parse.FullName(), MBackupObserver::EReleaseLockNoAccess); |
|
5537 User::After(1000000); |
|
5538 } |
|
5539 |
|
5540 LOCAL_C void EndBackupL() |
|
5541 { |
|
5542 delete theBackup; |
|
5543 theBackup = NULL; |
|
5544 User::After(1000000); |
|
5545 } |
|
5546 |
|
5547 LOCAL_C void DelayL(TInt aDelay) |
|
5548 { |
|
5549 CTestTimer* timer = CTestTimer::NewL(); |
|
5550 timer->After(aDelay); |
|
5551 CActiveScheduler::Start(); |
|
5552 delete timer; |
|
5553 } |
|
5554 |
|
5555 /** |
|
5556 @SYMTestCaseID SYSLIB-LOGENG-CT-0959 |
|
5557 @SYMTestCaseDesc Tests for log view change observer |
|
5558 Test change stuff with backup |
|
5559 @SYMTestPriority High |
|
5560 @SYMTestActions Check that a view doesn't get change events when clearing duplicates even after backup |
|
5561 @SYMTestExpectedResults Test must not fail |
|
5562 @SYMREQ REQ0000 |
|
5563 */ |
|
5564 LOCAL_C void TestHiddenChangeEvents1aL(CLogClient& aClient) |
|
5565 { |
|
5566 test.Next(_L(" @SYMTestCaseID:SYSLIB-LOGENG-CT-0959 ")); |
|
5567 TLogId logId; |
|
5568 TInt viewIndex; |
|
5569 TLogDatabaseChangeType type; |
|
5570 |
|
5571 CLogViewChangeObserver* changeObs1 = CLogViewChangeObserver::NewLC(); |
|
5572 changeObs1->StartCollectingChanges(); |
|
5573 |
|
5574 |
|
5575 CLogViewEvent* view = CLogViewEvent::NewL(aClient, *changeObs1); |
|
5576 CleanupStack::PushL(view); |
|
5577 |
|
5578 CLogFilter* filter = CLogFilter::NewL(); |
|
5579 CleanupStack::PushL(filter); |
|
5580 |
|
5581 CLogEvent* event = CLogEvent::NewL(); |
|
5582 CleanupStack::PushL(event); |
|
5583 |
|
5584 CTestActive* active = new(ELeave)CTestActive(); |
|
5585 CleanupStack::PushL(active); |
|
5586 |
|
5587 TTime now; |
|
5588 now.UniversalTime(); |
|
5589 now += (TTimeIntervalDays)+1; |
|
5590 |
|
5591 // Get rid of all the events in the log |
|
5592 active->StartL(); |
|
5593 aClient.ClearLog(now, active->iStatus); |
|
5594 CActiveScheduler::Start(); |
|
5595 test(active->iStatus.Int() == KErrNone); |
|
5596 |
|
5597 // Incoming call event |
|
5598 event->SetEventType(KLogCallEventTypeUid); |
|
5599 TBuf<KLogMaxDirectionLength> buf; |
|
5600 aClient.GetString(buf, R_LOG_DIR_IN); |
|
5601 event->SetDirection(buf); |
|
5602 |
|
5603 // Add an event |
|
5604 active->StartL(); |
|
5605 aClient.AddEvent(*event, active->iStatus); |
|
5606 CActiveScheduler::Start(); |
|
5607 test(active->iStatus == KErrNone); |
|
5608 |
|
5609 // Setup normal event view |
|
5610 active->StartL(); |
|
5611 test(view->SetFilterL(*filter, active->iStatus)); |
|
5612 CActiveScheduler::Start(); |
|
5613 test(active->iStatus == KErrNone); |
|
5614 |
|
5615 CLogViewChangeObserver* changeObs2 = CLogViewChangeObserver::NewLC(); |
|
5616 changeObs2->StartCollectingChanges(); |
|
5617 |
|
5618 CLogViewRecent* recent = CLogViewRecent::NewL(aClient, *changeObs2); |
|
5619 CleanupStack::PushL(recent); |
|
5620 |
|
5621 // Check recent view |
|
5622 active->StartL(); |
|
5623 test(recent->SetRecentListL(KLogRecentIncomingCalls, active->iStatus)); |
|
5624 CActiveScheduler::Start(); |
|
5625 test(active->iStatus == KErrNone); |
|
5626 test(recent->CountL() == 1); |
|
5627 |
|
5628 // Add a new event |
|
5629 active->StartL(); |
|
5630 aClient.AddEvent(*event, active->iStatus); |
|
5631 CActiveScheduler::Start(); |
|
5632 test(active->iStatus == KErrNone); |
|
5633 |
|
5634 // Check that changes work after a backup |
|
5635 StartBackupL(); |
|
5636 DelayL(1000000); |
|
5637 TestLogClosedL(); |
|
5638 EndBackupL(); |
|
5639 DelayL(1000000); |
|
5640 TestLogOpenL(); |
|
5641 |
|
5642 test(changeObs2->Changes().Count() == 2); |
|
5643 type = changeObs2->Changes().At(0, logId, viewIndex); |
|
5644 test(type == ELogChangeTypeEventAdded); |
|
5645 type = changeObs2->Changes().At(1, logId, viewIndex); |
|
5646 test(type == ELogChangeTypeEventDeleted); |
|
5647 |
|
5648 // Check recent view |
|
5649 active->StartL(); |
|
5650 test(recent->SetRecentListL(KLogRecentIncomingCalls, active->iStatus)); |
|
5651 CActiveScheduler::Start(); |
|
5652 test(active->iStatus == KErrNone); |
|
5653 test(recent->CountL() == 1); |
|
5654 |
|
5655 CLogViewDuplicate* duplicate = CLogViewDuplicate::NewL(aClient); |
|
5656 CleanupStack::PushL(duplicate); |
|
5657 |
|
5658 // Check duplicate count |
|
5659 active->StartL(); |
|
5660 test(recent->DuplicatesL(*duplicate, active->iStatus)); |
|
5661 CActiveScheduler::Start(); |
|
5662 test(active->iStatus.Int() == KErrNone); |
|
5663 test(duplicate->CountL() == 1); |
|
5664 |
|
5665 // Check that changes work after a backup |
|
5666 StartBackupL(); |
|
5667 DelayL(1000000); |
|
5668 TestLogClosedL(); |
|
5669 EndBackupL(); |
|
5670 TestLogOpenL(); |
|
5671 |
|
5672 // Check change events |
|
5673 User::After(100000); |
|
5674 test(changeObs1->Changes().Count() == 1); |
|
5675 type = changeObs1->Changes().At(0, logId, viewIndex); |
|
5676 test(type == ELogChangeTypeEventAdded); |
|
5677 |
|
5678 CleanupStack::PopAndDestroy(8, changeObs1); // changeObs1, changeObs2, view, filter, event, active, recent, duplicate |
|
5679 } |
|
5680 |
|
5681 /** |
|
5682 Check that a view doesn't get change events when recent list purged |
|
5683 |
|
5684 @SYMTestCaseID SYSLIB-LOGENG-CT-0960 |
|
5685 @SYMTestCaseDesc Tests for log view change observer |
|
5686 @SYMTestPriority High |
|
5687 @SYMTestActions Check that a view doesn't get change events when recent list purged,even after backup |
|
5688 @SYMTestExpectedResults Test must not fail |
|
5689 @SYMREQ REQ0000 |
|
5690 */ |
|
5691 LOCAL_C void TestHiddenChangeEvents2aL(CLogClient& aClient) |
|
5692 { |
|
5693 test.Next(_L(" @SYMTestCaseID:SYSLIB-LOGENG-CT-0960 ")); |
|
5694 TLogId logId; |
|
5695 TInt viewIndex; |
|
5696 TLogDatabaseChangeType type; |
|
5697 |
|
5698 CLogViewChangeObserver* changeObs1 = CLogViewChangeObserver::NewLC(); |
|
5699 changeObs1->StartCollectingChanges(); |
|
5700 |
|
5701 CLogViewEvent* view = CLogViewEvent::NewL(aClient, *changeObs1); |
|
5702 CleanupStack::PushL(view); |
|
5703 |
|
5704 CLogFilter* filter = CLogFilter::NewL(); |
|
5705 CleanupStack::PushL(filter); |
|
5706 |
|
5707 CLogEvent* event = CLogEvent::NewL(); |
|
5708 CleanupStack::PushL(event); |
|
5709 |
|
5710 CTestActive* active = new(ELeave)CTestActive(); |
|
5711 CleanupStack::PushL(active); |
|
5712 |
|
5713 TTime now; |
|
5714 now.UniversalTime(); |
|
5715 now += (TTimeIntervalDays)+1; |
|
5716 |
|
5717 // Get rid of all the events in the log |
|
5718 active->StartL(); |
|
5719 aClient.ClearLog(now, active->iStatus); |
|
5720 CActiveScheduler::Start(); |
|
5721 test(active->iStatus.Int() == KErrNone); |
|
5722 |
|
5723 // Get config |
|
5724 TLogConfig config; |
|
5725 active->StartL(); |
|
5726 aClient.GetConfig(config, active->iStatus); |
|
5727 CActiveScheduler::Start(); |
|
5728 test(active->iStatus == KErrNone); |
|
5729 |
|
5730 // Incoming call event |
|
5731 event->SetEventType(KLogCallEventTypeUid); |
|
5732 TBuf<KLogMaxDirectionLength> buf; |
|
5733 aClient.GetString(buf, R_LOG_DIR_IN); |
|
5734 event->SetDirection(buf); |
|
5735 |
|
5736 // Add max allowed events |
|
5737 TInt count = config.iMaxRecentLogSize; |
|
5738 while(count--) |
|
5739 { |
|
5740 event->SetContact(count+1); |
|
5741 active->StartL(); |
|
5742 aClient.AddEvent(*event, active->iStatus); |
|
5743 CActiveScheduler::Start(); |
|
5744 test(active->iStatus == KErrNone); |
|
5745 } |
|
5746 |
|
5747 // Setup normal event view |
|
5748 active->StartL(); |
|
5749 test(view->SetFilterL(*filter, active->iStatus)); |
|
5750 CActiveScheduler::Start(); |
|
5751 test(active->iStatus == KErrNone); |
|
5752 |
|
5753 CLogViewChangeObserver* changeObs2 = CLogViewChangeObserver::NewLC(); |
|
5754 changeObs2->StartCollectingChanges(); |
|
5755 |
|
5756 CLogViewRecent* recent = CLogViewRecent::NewL(aClient, *changeObs2); |
|
5757 CleanupStack::PushL(recent); |
|
5758 |
|
5759 // Check recent view |
|
5760 active->StartL(); |
|
5761 test(recent->SetRecentListL(KLogRecentIncomingCalls, active->iStatus)); |
|
5762 CActiveScheduler::Start(); |
|
5763 test(active->iStatus == KErrNone); |
|
5764 test(recent->CountL() == config.iMaxRecentLogSize); |
|
5765 |
|
5766 // Add a new event, will cause one to be purged from recent view |
|
5767 event->SetContact(1234); |
|
5768 active->StartL(); |
|
5769 aClient.AddEvent(*event, active->iStatus); |
|
5770 CActiveScheduler::Start(); |
|
5771 test(active->iStatus == KErrNone); |
|
5772 |
|
5773 // Check that changes work after a backup |
|
5774 StartBackupL(); |
|
5775 DelayL(1000000); |
|
5776 TestLogClosedL(); |
|
5777 EndBackupL(); |
|
5778 TestLogOpenL(); |
|
5779 DelayL(1000000); |
|
5780 |
|
5781 test(changeObs2->Changes().Count() == 2); |
|
5782 type = changeObs2->Changes().At(0, logId, viewIndex); |
|
5783 test(type == ELogChangeTypeEventAdded); |
|
5784 type = changeObs2->Changes().At(1, logId, viewIndex); |
|
5785 test(type == ELogChangeTypeEventDeleted); |
|
5786 |
|
5787 // Check recent view |
|
5788 active->StartL(); |
|
5789 test(recent->SetRecentListL(KLogRecentIncomingCalls, active->iStatus)); |
|
5790 CActiveScheduler::Start(); |
|
5791 test(active->iStatus == KErrNone); |
|
5792 test(recent->CountL() == config.iMaxRecentLogSize); |
|
5793 |
|
5794 CLogViewDuplicate* duplicate = CLogViewDuplicate::NewL(aClient); |
|
5795 CleanupStack::PushL(duplicate); |
|
5796 |
|
5797 // Check duplicate count |
|
5798 test(!recent->DuplicatesL(*duplicate, active->iStatus)); |
|
5799 |
|
5800 // Check that changes work after a backup |
|
5801 StartBackupL(); |
|
5802 DelayL(1000000); |
|
5803 TestLogClosedL(); |
|
5804 EndBackupL(); |
|
5805 TestLogOpenL(); |
|
5806 |
|
5807 // Check change events |
|
5808 User::After(100000); |
|
5809 test(changeObs1->Changes().Count() == 1); |
|
5810 type = changeObs1->Changes().At(0, logId, viewIndex); |
|
5811 test(type == ELogChangeTypeEventAdded); |
|
5812 |
|
5813 CleanupStack::PopAndDestroy(8, changeObs1); // changeObs1, changeObs2, view, filter, event, active, recent, duplicate |
|
5814 } |
|
5815 |
|
5816 /** |
|
5817 Check that a view doesn't get change events when recent list purged after changing config |
|
5818 |
|
5819 @SYMTestCaseID SYSLIB-LOGENG-CT-0961 |
|
5820 @SYMTestCaseDesc Tests for log view change observer |
|
5821 @SYMTestPriority High |
|
5822 @SYMTestActions Check that a view doesn't get change events when recent list purged after changing config,even after backup |
|
5823 @SYMTestExpectedResults Test must not fail |
|
5824 @SYMREQ REQ0000 |
|
5825 */ |
|
5826 LOCAL_C void TestHiddenChangeEvents3aL(CLogClient& aClient) |
|
5827 { |
|
5828 test.Next(_L(" @SYMTestCaseID:SYSLIB-LOGENG-CT-0961 ")); |
|
5829 TLogId logId; |
|
5830 TInt viewIndex; |
|
5831 TLogDatabaseChangeType type; |
|
5832 |
|
5833 CLogViewChangeObserver* changeObs1 = CLogViewChangeObserver::NewLC(); |
|
5834 changeObs1->StartCollectingChanges(); |
|
5835 |
|
5836 CLogViewEvent* view = CLogViewEvent::NewL(aClient, *changeObs1); |
|
5837 CleanupStack::PushL(view); |
|
5838 |
|
5839 CLogFilter* filter = CLogFilter::NewL(); |
|
5840 CleanupStack::PushL(filter); |
|
5841 |
|
5842 CLogEvent* event = CLogEvent::NewL(); |
|
5843 CleanupStack::PushL(event); |
|
5844 |
|
5845 CTestActive* active = new(ELeave)CTestActive(); |
|
5846 CleanupStack::PushL(active); |
|
5847 |
|
5848 TTime now; |
|
5849 now.UniversalTime(); |
|
5850 now += (TTimeIntervalDays)+1; |
|
5851 |
|
5852 // Get rid of all the events in the log |
|
5853 active->StartL(); |
|
5854 aClient.ClearLog(now, active->iStatus); |
|
5855 CActiveScheduler::Start(); |
|
5856 test(active->iStatus.Int() == KErrNone); |
|
5857 |
|
5858 // Get and set config |
|
5859 TLogConfig config; |
|
5860 active->StartL(); |
|
5861 aClient.GetConfig(config, active->iStatus); |
|
5862 CActiveScheduler::Start(); |
|
5863 test(active->iStatus == KErrNone); |
|
5864 config.iMaxRecentLogSize = 2; |
|
5865 active->StartL(); |
|
5866 aClient.ChangeConfig(config, active->iStatus); |
|
5867 CActiveScheduler::Start(); |
|
5868 test(active->iStatus == KErrNone); |
|
5869 |
|
5870 // Incoming call event |
|
5871 event->SetEventType(KLogCallEventTypeUid); |
|
5872 TBuf<KLogMaxDirectionLength> buf; |
|
5873 aClient.GetString(buf, R_LOG_DIR_IN); |
|
5874 event->SetDirection(buf); |
|
5875 |
|
5876 // Add max allowed events |
|
5877 TInt count = config.iMaxRecentLogSize; |
|
5878 while(count--) |
|
5879 { |
|
5880 event->SetContact(count+1); |
|
5881 active->StartL(); |
|
5882 aClient.AddEvent(*event, active->iStatus); |
|
5883 CActiveScheduler::Start(); |
|
5884 test(active->iStatus == KErrNone); |
|
5885 } |
|
5886 |
|
5887 // Setup normal event view |
|
5888 active->StartL(); |
|
5889 test(view->SetFilterL(*filter, active->iStatus)); |
|
5890 CActiveScheduler::Start(); |
|
5891 test(active->iStatus == KErrNone); |
|
5892 |
|
5893 CLogViewChangeObserver* changeObs2 = CLogViewChangeObserver::NewLC(); |
|
5894 changeObs2->StartCollectingChanges(); |
|
5895 |
|
5896 CLogViewRecent* recent = CLogViewRecent::NewL(aClient, *changeObs2); |
|
5897 CleanupStack::PushL(recent); |
|
5898 |
|
5899 // Check recent view |
|
5900 active->StartL(); |
|
5901 test(recent->SetRecentListL(KLogRecentIncomingCalls, active->iStatus)); |
|
5902 CActiveScheduler::Start(); |
|
5903 test(active->iStatus == KErrNone); |
|
5904 test(recent->CountL() == config.iMaxRecentLogSize); |
|
5905 |
|
5906 // Change config, will cause one event to be purged from recent view |
|
5907 config.iMaxRecentLogSize = 1; |
|
5908 active->StartL(); |
|
5909 aClient.ChangeConfig(config, active->iStatus); |
|
5910 CActiveScheduler::Start(); |
|
5911 test(active->iStatus == KErrNone); |
|
5912 |
|
5913 // Check that changes work after a backup |
|
5914 StartBackupL(); |
|
5915 DelayL(1000000); |
|
5916 TestLogClosedL(); |
|
5917 EndBackupL(); |
|
5918 TestLogOpenL(); |
|
5919 DelayL(1000000); |
|
5920 |
|
5921 // Check change events |
|
5922 User::After(100000); |
|
5923 test(changeObs2->Changes().Count() == 1); |
|
5924 type = changeObs2->Changes().At(0, logId, viewIndex); |
|
5925 test(type == ELogChangeTypeEventDeleted); |
|
5926 |
|
5927 // Check recent view |
|
5928 active->StartL(); |
|
5929 test(recent->SetRecentListL(KLogRecentIncomingCalls, active->iStatus)); |
|
5930 CActiveScheduler::Start(); |
|
5931 test(active->iStatus == KErrNone); |
|
5932 test(recent->CountL() == config.iMaxRecentLogSize); |
|
5933 |
|
5934 CLogViewDuplicate* duplicate = CLogViewDuplicate::NewL(aClient); |
|
5935 CleanupStack::PushL(duplicate); |
|
5936 |
|
5937 // Check duplicate count |
|
5938 test(!recent->DuplicatesL(*duplicate, active->iStatus)); |
|
5939 |
|
5940 // Check that changes work after a backup |
|
5941 StartBackupL(); |
|
5942 DelayL(1000000); |
|
5943 TestLogClosedL(); |
|
5944 EndBackupL(); |
|
5945 TestLogOpenL(); |
|
5946 |
|
5947 // Check change events |
|
5948 User::After(100000); |
|
5949 test(!changeObs1->HaveChanges()); |
|
5950 |
|
5951 CleanupStack::PopAndDestroy(8, changeObs1); // changeObs1, changeObs2, view, filter, event, active, recent, duplicate |
|
5952 } |
|
5953 |
|
5954 /** |
|
5955 Check that when deleting an event causing recent lists to be updated, views don't get unnecessary change events |
|
5956 |
|
5957 @SYMTestCaseID SYSLIB-LOGENG-CT-0962 |
|
5958 @SYMTestCaseDesc Tests for log view change observer |
|
5959 @SYMTestPriority High |
|
5960 @SYMTestActions Check that when deleting an event causing recent lists to be updated,views don't get unnecessary change events. |
|
5961 Check the test work even after backup operations |
|
5962 @SYMTestExpectedResults Test must not fail |
|
5963 @SYMREQ REQ0000 |
|
5964 */ |
|
5965 LOCAL_C void TestHiddenChangeEvents4aL(CLogClient& aClient) |
|
5966 { |
|
5967 test.Next(_L(" @SYMTestCaseID:SYSLIB-LOGENG-CT-0962 ")); |
|
5968 TLogId logId; |
|
5969 TInt viewIndex; |
|
5970 TLogDatabaseChangeType type; |
|
5971 |
|
5972 CLogViewChangeObserver* changeObs1 = CLogViewChangeObserver::NewLC(); |
|
5973 changeObs1->StartCollectingChanges(); |
|
5974 |
|
5975 CLogViewEvent* view = CLogViewEvent::NewL(aClient, *changeObs1); |
|
5976 CleanupStack::PushL(view); |
|
5977 |
|
5978 CLogFilter* filter = CLogFilter::NewL(); |
|
5979 CleanupStack::PushL(filter); |
|
5980 filter->SetFlags(1); // Need to hide an event from the view |
|
5981 |
|
5982 CLogEvent* event = CLogEvent::NewL(); |
|
5983 CleanupStack::PushL(event); |
|
5984 |
|
5985 CTestActive* active = new(ELeave)CTestActive(); |
|
5986 CleanupStack::PushL(active); |
|
5987 |
|
5988 TTime now; |
|
5989 now.UniversalTime(); |
|
5990 now += (TTimeIntervalDays)+1; |
|
5991 |
|
5992 // Get rid of all the events in the log |
|
5993 active->StartL(); |
|
5994 aClient.ClearLog(now, active->iStatus); |
|
5995 CActiveScheduler::Start(); |
|
5996 test(active->iStatus.Int() == KErrNone); |
|
5997 |
|
5998 // Incoming call event |
|
5999 event->SetEventType(KLogCallEventTypeUid); |
|
6000 TBuf<KLogMaxDirectionLength> buf; |
|
6001 aClient.GetString(buf, R_LOG_DIR_IN); |
|
6002 event->SetDirection(buf); |
|
6003 |
|
6004 event->SetFlags(1); |
|
6005 |
|
6006 // Add an event |
|
6007 active->StartL(); |
|
6008 aClient.AddEvent(*event, active->iStatus); |
|
6009 CActiveScheduler::Start(); |
|
6010 test(active->iStatus == KErrNone); |
|
6011 |
|
6012 // Add an event |
|
6013 active->StartL(); |
|
6014 aClient.AddEvent(*event, active->iStatus); |
|
6015 CActiveScheduler::Start(); |
|
6016 test(active->iStatus == KErrNone); |
|
6017 |
|
6018 event->ClearFlags(0xF); |
|
6019 |
|
6020 // Add an event |
|
6021 active->StartL(); |
|
6022 aClient.AddEvent(*event, active->iStatus); |
|
6023 CActiveScheduler::Start(); |
|
6024 test(active->iStatus == KErrNone); |
|
6025 |
|
6026 // Setup normal event view |
|
6027 active->StartL(); |
|
6028 test(view->SetFilterL(*filter, active->iStatus)); |
|
6029 CActiveScheduler::Start(); |
|
6030 test(active->iStatus == KErrNone); |
|
6031 test(view->CountL() == 2); |
|
6032 |
|
6033 CLogViewChangeObserver* changeObs2 = CLogViewChangeObserver::NewLC(); |
|
6034 changeObs2->StartCollectingChanges(); |
|
6035 |
|
6036 CLogViewRecent* recent = CLogViewRecent::NewL(aClient, *changeObs2); |
|
6037 CleanupStack::PushL(recent); |
|
6038 |
|
6039 // Check recent view |
|
6040 active->StartL(); |
|
6041 test(recent->SetRecentListL(KLogRecentIncomingCalls, active->iStatus)); |
|
6042 CActiveScheduler::Start(); |
|
6043 test(active->iStatus == KErrNone); |
|
6044 test(recent->CountL() == 1); |
|
6045 |
|
6046 changeObs1->StartCollectingChanges(); |
|
6047 changeObs2->StartCollectingChanges(); |
|
6048 |
|
6049 // Delete the event in recent list |
|
6050 active->StartL(); |
|
6051 aClient.DeleteEvent(event->Id(), active->iStatus); |
|
6052 CActiveScheduler::Start(); |
|
6053 test(active->iStatus == KErrNone); |
|
6054 |
|
6055 // Check that changes work after a backup |
|
6056 StartBackupL(); |
|
6057 DelayL(1000000); |
|
6058 TestLogClosedL(); |
|
6059 EndBackupL(); |
|
6060 TestLogOpenL(); |
|
6061 |
|
6062 // Check change events |
|
6063 test(changeObs2->Changes().Count() == 2); |
|
6064 type = changeObs2->Changes().At(0, logId, viewIndex); |
|
6065 test(type == ELogChangeTypeEventAdded); |
|
6066 type = changeObs2->Changes().At(1, logId, viewIndex); |
|
6067 test(type == ELogChangeTypeEventDeleted); |
|
6068 |
|
6069 test(!changeObs1->HaveChanges()); |
|
6070 |
|
6071 CleanupStack::PopAndDestroy(7, changeObs1); // changeObs1, changeObs2, view, filter, event, active, recent |
|
6072 } |
|
6073 |
|
6074 /** |
|
6075 @SYMTestCaseID SYSLIB-LOGENG-CT-0963 |
|
6076 @SYMTestCaseDesc Tests for log view change observer |
|
6077 @SYMTestPriority High |
|
6078 @SYMTestActions Check that a view doesn't get change events when recent list cleared |
|
6079 Check the test work even after backup operations |
|
6080 @SYMTestExpectedResults Test must not fail |
|
6081 @SYMREQ REQ0000 |
|
6082 */ |
|
6083 LOCAL_C void TestHiddenChangeEvents5aL(CLogClient& aClient) |
|
6084 { |
|
6085 test.Next(_L(" @SYMTestCaseID:SYSLIB-LOGENG-CT-0963 ")); |
|
6086 TLogId logId; |
|
6087 TInt viewIndex; |
|
6088 TLogDatabaseChangeType type; |
|
6089 |
|
6090 CLogViewChangeObserver* changeObs1 = CLogViewChangeObserver::NewLC(); |
|
6091 changeObs1->StartCollectingChanges(); |
|
6092 |
|
6093 CLogViewEvent* view = CLogViewEvent::NewL(aClient, *changeObs1); |
|
6094 CleanupStack::PushL(view); |
|
6095 |
|
6096 CLogFilter* filter = CLogFilter::NewL(); |
|
6097 CleanupStack::PushL(filter); |
|
6098 |
|
6099 CLogEvent* event = CLogEvent::NewL(); |
|
6100 CleanupStack::PushL(event); |
|
6101 |
|
6102 CTestActive* active = new(ELeave)CTestActive(); |
|
6103 CleanupStack::PushL(active); |
|
6104 |
|
6105 TTime now; |
|
6106 now.UniversalTime(); |
|
6107 now += (TTimeIntervalDays)+1; |
|
6108 |
|
6109 // Get rid of all the events in the log |
|
6110 active->StartL(); |
|
6111 aClient.ClearLog(now, active->iStatus); |
|
6112 CActiveScheduler::Start(); |
|
6113 test(active->iStatus.Int() == KErrNone); |
|
6114 |
|
6115 // Get config |
|
6116 TLogConfig config; |
|
6117 active->StartL(); |
|
6118 aClient.GetConfig(config, active->iStatus); |
|
6119 CActiveScheduler::Start(); |
|
6120 test(active->iStatus == KErrNone); |
|
6121 |
|
6122 // Incoming call event |
|
6123 event->SetEventType(KLogCallEventTypeUid); |
|
6124 TBuf<KLogMaxDirectionLength> buf; |
|
6125 aClient.GetString(buf, R_LOG_DIR_IN); |
|
6126 event->SetDirection(buf); |
|
6127 |
|
6128 // Add max allowed events |
|
6129 TInt count = config.iMaxRecentLogSize; |
|
6130 while(count--) |
|
6131 { |
|
6132 event->SetContact(count+1); |
|
6133 active->StartL(); |
|
6134 aClient.AddEvent(*event, active->iStatus); |
|
6135 CActiveScheduler::Start(); |
|
6136 test(active->iStatus == KErrNone); |
|
6137 } |
|
6138 |
|
6139 // Setup normal event view |
|
6140 active->StartL(); |
|
6141 test(view->SetFilterL(*filter, active->iStatus)); |
|
6142 CActiveScheduler::Start(); |
|
6143 test(active->iStatus == KErrNone); |
|
6144 |
|
6145 CLogViewChangeObserver* changeObs2 = CLogViewChangeObserver::NewLC(); |
|
6146 changeObs2->StartCollectingChanges(); |
|
6147 |
|
6148 CLogViewRecent* recent = CLogViewRecent::NewL(aClient, *changeObs2); |
|
6149 CleanupStack::PushL(recent); |
|
6150 |
|
6151 // Check recent view |
|
6152 active->StartL(); |
|
6153 test(recent->SetRecentListL(KLogRecentIncomingCalls, active->iStatus)); |
|
6154 CActiveScheduler::Start(); |
|
6155 test(active->iStatus == KErrNone); |
|
6156 test(recent->CountL() == config.iMaxRecentLogSize); |
|
6157 |
|
6158 // Clear recent view |
|
6159 active->StartL(); |
|
6160 aClient.ClearLog(KLogRecentIncomingCalls, active->iStatus); |
|
6161 CActiveScheduler::Start(); |
|
6162 test(active->iStatus == KErrNone); |
|
6163 |
|
6164 // Check that changes work after a backup |
|
6165 StartBackupL(); |
|
6166 DelayL(1000000); |
|
6167 TestLogClosedL(); |
|
6168 EndBackupL(); |
|
6169 TestLogOpenL(); |
|
6170 |
|
6171 count = config.iMaxRecentLogSize; |
|
6172 test(changeObs2->Changes().Count() == count); |
|
6173 while(count--) |
|
6174 { |
|
6175 type = changeObs2->Changes().At(count, logId, viewIndex); |
|
6176 test(type == ELogChangeTypeEventDeleted); |
|
6177 } |
|
6178 |
|
6179 // Check recent view |
|
6180 test(!recent->SetRecentListL(KLogRecentIncomingCalls, active->iStatus)); |
|
6181 |
|
6182 // Check that changes work after a backup |
|
6183 StartBackupL(); |
|
6184 DelayL(1000000); |
|
6185 TestLogClosedL(); |
|
6186 EndBackupL(); |
|
6187 TestLogOpenL(); |
|
6188 |
|
6189 // Check change events |
|
6190 User::After(100000); |
|
6191 test(!changeObs1->HaveChanges()); |
|
6192 |
|
6193 CleanupStack::PopAndDestroy(7, changeObs1); // changeObs1, changeObs2, view, filter, event, active, recent |
|
6194 } |
|
6195 |
|
6196 /** |
|
6197 @SYMTestCaseID SYSLIB-LOGENG-CT-0964 |
|
6198 @SYMTestCaseDesc Tests for log view change observer |
|
6199 @SYMTestPriority High |
|
6200 @SYMTestActions Check that a view doesn't get change events when removing events from a recent or duplicate view |
|
6201 Check the test work even after backup operations |
|
6202 @SYMTestExpectedResults Test must not fail |
|
6203 @SYMREQ REQ0000 |
|
6204 */ |
|
6205 LOCAL_C void TestHiddenChangeEvents6aL(CLogClient& aClient) |
|
6206 { |
|
6207 test.Next(_L(" @SYMTestCaseID:SYSLIB-LOGENG-CT-0964 ")); |
|
6208 CLogViewChangeObserver* changeObs1 = CLogViewChangeObserver::NewLC(); |
|
6209 changeObs1->StartCollectingChanges(); |
|
6210 |
|
6211 CLogViewEvent* view = CLogViewEvent::NewL(aClient, *changeObs1); |
|
6212 CleanupStack::PushL(view); |
|
6213 |
|
6214 CLogFilter* filter = CLogFilter::NewL(); |
|
6215 CleanupStack::PushL(filter); |
|
6216 |
|
6217 CLogEvent* event = CLogEvent::NewL(); |
|
6218 CleanupStack::PushL(event); |
|
6219 |
|
6220 CTestActive* active = new(ELeave)CTestActive(); |
|
6221 CleanupStack::PushL(active); |
|
6222 |
|
6223 TTime now; |
|
6224 now.UniversalTime(); |
|
6225 now += (TTimeIntervalDays)+1; |
|
6226 |
|
6227 // Get rid of all the events in the log |
|
6228 active->StartL(); |
|
6229 aClient.ClearLog(now, active->iStatus); |
|
6230 CActiveScheduler::Start(); |
|
6231 test(active->iStatus.Int() == KErrNone); |
|
6232 |
|
6233 // Incoming call event |
|
6234 event->SetEventType(KLogCallEventTypeUid); |
|
6235 TBuf<KLogMaxDirectionLength> buf; |
|
6236 aClient.GetString(buf, R_LOG_DIR_IN); |
|
6237 event->SetDirection(buf); |
|
6238 |
|
6239 // Add an event |
|
6240 active->StartL(); |
|
6241 aClient.AddEvent(*event, active->iStatus); |
|
6242 CActiveScheduler::Start(); |
|
6243 test(active->iStatus == KErrNone); |
|
6244 |
|
6245 // Add a duplicate |
|
6246 active->StartL(); |
|
6247 aClient.AddEvent(*event, active->iStatus); |
|
6248 CActiveScheduler::Start(); |
|
6249 test(active->iStatus == KErrNone); |
|
6250 |
|
6251 // Setup normal event view |
|
6252 active->StartL(); |
|
6253 test(view->SetFilterL(*filter, active->iStatus)); |
|
6254 CActiveScheduler::Start(); |
|
6255 test(active->iStatus == KErrNone); |
|
6256 test(view->CountL() == 2); |
|
6257 |
|
6258 CLogViewChangeObserver* changeObs2 = CLogViewChangeObserver::NewLC(); |
|
6259 changeObs2->StartCollectingChanges(); |
|
6260 |
|
6261 CLogViewRecent* recent = CLogViewRecent::NewL(aClient, *changeObs2); |
|
6262 CleanupStack::PushL(recent); |
|
6263 |
|
6264 // Check recent view |
|
6265 active->StartL(); |
|
6266 test(recent->SetRecentListL(KLogRecentIncomingCalls, active->iStatus)); |
|
6267 CActiveScheduler::Start(); |
|
6268 test(active->iStatus == KErrNone); |
|
6269 test(recent->CountL() == 1); |
|
6270 |
|
6271 CLogViewDuplicate* duplicate = CLogViewDuplicate::NewL(aClient); |
|
6272 CleanupStack::PushL(duplicate); |
|
6273 |
|
6274 // Check duplicate count |
|
6275 active->StartL(); |
|
6276 test(recent->DuplicatesL(*duplicate, active->iStatus)); |
|
6277 CActiveScheduler::Start(); |
|
6278 test(active->iStatus == KErrNone); |
|
6279 test(recent->CountL() == 1); |
|
6280 |
|
6281 // Remove duplicate |
|
6282 duplicate->RemoveL(duplicate->Event().Id()); |
|
6283 |
|
6284 // Check that changes work after a backup |
|
6285 StartBackupL(); |
|
6286 DelayL(1000000); |
|
6287 TestLogClosedL(); |
|
6288 EndBackupL(); |
|
6289 TestLogOpenL(); |
|
6290 |
|
6291 // Check change events |
|
6292 test(!changeObs1->HaveChanges()); |
|
6293 test(!changeObs2->HaveChanges()); |
|
6294 |
|
6295 // Remove recent |
|
6296 recent->RemoveL(recent->Event().Id()); |
|
6297 |
|
6298 // Check that changes work after a backup |
|
6299 StartBackupL(); |
|
6300 DelayL(1000000); |
|
6301 TestLogClosedL(); |
|
6302 EndBackupL(); |
|
6303 TestLogOpenL(); |
|
6304 |
|
6305 test(!changeObs1->HaveChanges()); |
|
6306 test(!changeObs2->HaveChanges()); // No event because we should know we called Remove on ourselves |
|
6307 |
|
6308 CleanupStack::PopAndDestroy(8, changeObs1); // changeObs1, changeObs2, view, filter, event, active, recent, duplicate |
|
6309 } |
|
6310 |
|
6311 /** |
|
6312 @SYMTestCaseID SYSLIB-LOGENG-CT-0965 |
|
6313 @SYMTestCaseDesc Tests for log view change observer |
|
6314 @SYMTestPriority High |
|
6315 @SYMTestActions Check that a view doesn't get change events when clearing duplicates |
|
6316 Check the test work even after backup operations |
|
6317 @SYMTestExpectedResults Test must not fail |
|
6318 @SYMREQ REQ0000 |
|
6319 */ |
|
6320 LOCAL_C void TestHiddenChangeEvents7aL(CLogClient& aClient) |
|
6321 { |
|
6322 test.Next(_L(" @SYMTestCaseID:SYSLIB-LOGENG-CT-0965 ")); |
|
6323 CLogViewChangeObserver* changeObs1 = CLogViewChangeObserver::NewLC(); |
|
6324 changeObs1->StartCollectingChanges(); |
|
6325 |
|
6326 CLogViewEvent* view = CLogViewEvent::NewL(aClient, *changeObs1); |
|
6327 CleanupStack::PushL(view); |
|
6328 |
|
6329 CLogFilter* filter = CLogFilter::NewL(); |
|
6330 CleanupStack::PushL(filter); |
|
6331 |
|
6332 CLogEvent* event = CLogEvent::NewL(); |
|
6333 CleanupStack::PushL(event); |
|
6334 |
|
6335 CTestActive* active = new(ELeave)CTestActive(); |
|
6336 CleanupStack::PushL(active); |
|
6337 |
|
6338 TTime now; |
|
6339 now.UniversalTime(); |
|
6340 now += (TTimeIntervalDays)+1; |
|
6341 |
|
6342 // Get rid of all the events in the log |
|
6343 active->StartL(); |
|
6344 aClient.ClearLog(now, active->iStatus); |
|
6345 CActiveScheduler::Start(); |
|
6346 test(active->iStatus.Int() == KErrNone); |
|
6347 |
|
6348 // Incoming call event |
|
6349 event->SetEventType(KLogCallEventTypeUid); |
|
6350 TBuf<KLogMaxDirectionLength> buf; |
|
6351 aClient.GetString(buf, R_LOG_DIR_IN); |
|
6352 event->SetDirection(buf); |
|
6353 |
|
6354 // Add an event |
|
6355 active->StartL(); |
|
6356 aClient.AddEvent(*event, active->iStatus); |
|
6357 CActiveScheduler::Start(); |
|
6358 test(active->iStatus == KErrNone); |
|
6359 |
|
6360 // Add a duplicate |
|
6361 active->StartL(); |
|
6362 aClient.AddEvent(*event, active->iStatus); |
|
6363 CActiveScheduler::Start(); |
|
6364 test(active->iStatus == KErrNone); |
|
6365 |
|
6366 // Setup normal event view |
|
6367 active->StartL(); |
|
6368 test(view->SetFilterL(*filter, active->iStatus)); |
|
6369 CActiveScheduler::Start(); |
|
6370 test(active->iStatus == KErrNone); |
|
6371 test(view->CountL() == 2); |
|
6372 |
|
6373 CLogViewChangeObserver* changeObs2 = CLogViewChangeObserver::NewLC(); |
|
6374 changeObs2->StartCollectingChanges(); |
|
6375 |
|
6376 CLogViewRecent* recent = CLogViewRecent::NewL(aClient, *changeObs2); |
|
6377 CleanupStack::PushL(recent); |
|
6378 |
|
6379 // Check recent view |
|
6380 active->StartL(); |
|
6381 test(recent->SetRecentListL(KLogRecentIncomingCalls, active->iStatus)); |
|
6382 CActiveScheduler::Start(); |
|
6383 test(active->iStatus == KErrNone); |
|
6384 test(recent->CountL() == 1); |
|
6385 |
|
6386 CLogViewDuplicate* duplicate = CLogViewDuplicate::NewL(aClient); |
|
6387 CleanupStack::PushL(duplicate); |
|
6388 |
|
6389 // Check duplicate count |
|
6390 active->StartL(); |
|
6391 test(recent->DuplicatesL(*duplicate, active->iStatus)); |
|
6392 CActiveScheduler::Start(); |
|
6393 test(active->iStatus == KErrNone); |
|
6394 test(recent->CountL() == 1); |
|
6395 |
|
6396 // Remove duplicate |
|
6397 recent->ClearDuplicatesL(); |
|
6398 |
|
6399 // Check that changes work after a backup |
|
6400 StartBackupL(); |
|
6401 DelayL(1000000); |
|
6402 TestLogClosedL(); |
|
6403 EndBackupL(); |
|
6404 TestLogOpenL(); |
|
6405 |
|
6406 // Check change events |
|
6407 test(!changeObs1->HaveChanges()); |
|
6408 test(!changeObs2->HaveChanges()); |
|
6409 |
|
6410 CleanupStack::PopAndDestroy(8, changeObs1); // changeObs1, changeObs2, view, filter, event, active, recent, duplicate |
|
6411 } |
|
6412 |
|
6413 /** |
|
6414 @SYMTestCaseID SYSLIB-LOGENG-CT-3511 |
|
6415 @SYMTestCaseDesc Tests an error condition for adding an event. |
|
6416 @SYMTestPriority High |
|
6417 @SYMTestActions A leave will be caused in an observer when a specific event is added. This test |
|
6418 ensures by successful test completion that there are no panics in this |
|
6419 situation. |
|
6420 @SYMTestExpectedResults Test must not fail |
|
6421 @SYMDEF DEF108741 |
|
6422 */ |
|
6423 LOCAL_C void DEF108741L(CLogClient& aClient) |
|
6424 { |
|
6425 test.Next(_L(" @SYMTestCaseID:SYSLIB-LOGENG-CT-3511 ")); |
|
6426 // Perform clean up |
|
6427 TestUtils::DeleteDatabaseL(); |
|
6428 |
|
6429 // Create a new event |
|
6430 CLogEvent* event = CLogEvent::NewL(); |
|
6431 CleanupStack::PushL(event); |
|
6432 event->SetEventType(KLogCallEventTypeUid); |
|
6433 |
|
6434 CTestActive* active = new(ELeave) CTestActive(); |
|
6435 CleanupStack::PushL(active); |
|
6436 |
|
6437 // Create a change observer. This observer will cause errors in order to verify that |
|
6438 // the system handles them properly. |
|
6439 CLogViewChangeObserverErrorTest* changeObs = CLogViewChangeObserverErrorTest::NewLC(); |
|
6440 |
|
6441 // Create a view for the event log |
|
6442 CLogViewEvent* view = CLogViewEvent::NewL(aClient, *changeObs); |
|
6443 CleanupStack::PushL(view); |
|
6444 |
|
6445 // Create a filter to specify what events appear in the view |
|
6446 CLogFilter* filter = CLogFilter::NewL(); |
|
6447 CleanupStack::PushL(filter); |
|
6448 TEST(!view->SetFilterL(*filter, active->iStatus)); |
|
6449 |
|
6450 TInt count; |
|
6451 TLogId logId; |
|
6452 TInt viewIndex; |
|
6453 |
|
6454 // This code adds 3 events with ids 0,1 and 2. |
|
6455 // The observer add event handler : |
|
6456 // CLogViewChangeObserverErrorTest::HandleLogViewChangeEventAddedL |
|
6457 // has been written so that it will leave if an event with log id 1 is added. |
|
6458 // The test completion proves that the leave is dealt with gracefully without |
|
6459 // any panics. |
|
6460 for(count = 0; count < KTestErrorEventNum; count++) |
|
6461 { |
|
6462 // Add an event to the log database |
|
6463 aClient.AddEvent(*event, changeObs->iStatus); |
|
6464 CLogChangeDefinition* changes = changeObs->WaitForChangesLC(CLogViewChangeObserver::EStopOnBoth); |
|
6465 |
|
6466 // Check the results/notifications are as expected |
|
6467 TEST2(changeObs->iStatus.Int(), KErrNone); |
|
6468 TEST(event->Id() == (TLogId) count); |
|
6469 User::After(1); |
|
6470 TEST2(changes->Count(), 1); |
|
6471 TEST2(changes->At(0, logId, viewIndex), ELogChangeTypeEventAdded); |
|
6472 TEST(logId == (TLogId) count); |
|
6473 TEST2(viewIndex, 0); |
|
6474 CleanupStack::PopAndDestroy(changes); |
|
6475 } |
|
6476 |
|
6477 CleanupStack::PopAndDestroy(5, event); // filter, view, changeObs, active, event |
|
6478 } |
|
6479 |
|
6480 /** |
|
6481 @SYMTestCaseID SYSLIB-LOGENG-CT-3716 |
|
6482 @SYMTestCaseDesc Tests for the defect INC108225 |
|
6483 @SYMTestPriority High |
|
6484 @SYMTestActions Tests for the count of out call list & the duplicates for CS & PS calls |
|
6485 The fields to be considered while finding duplicates records are set in the resource file named LOGWRAP.RSS |
|
6486 i.e. duplicate = ELogRemotePartyField|ELogContactField|ELogNumberField; |
|
6487 Considering this duplicate value, the where clause in the query is made to find duplicate records. |
|
6488 @SYMTestExpectedResults Test must not fail |
|
6489 @SYMDEF INC108225 |
|
6490 */ |
|
6491 LOCAL_C void TestNumberFieldINC108225L(CLogClient& aClient) |
|
6492 { |
|
6493 test.Next(_L(" @SYMTestCaseID:SYSLIB-LOGENG-CT-3716 ")); |
|
6494 CLogEvent* event = CLogEvent::NewL(); |
|
6495 CleanupStack::PushL(event); |
|
6496 |
|
6497 CLogEvent* event1 = CLogEvent::NewL(); |
|
6498 CleanupStack::PushL(event1); |
|
6499 |
|
6500 CTestActive* active = new(ELeave)CTestActive(); |
|
6501 CleanupStack::PushL(active); |
|
6502 |
|
6503 CLogViewRecent* view = CLogViewRecent::NewL(aClient); |
|
6504 CleanupStack::PushL(view); |
|
6505 |
|
6506 CLogViewDuplicate* duplicate = CLogViewDuplicate::NewL(aClient); |
|
6507 CleanupStack::PushL(duplicate); |
|
6508 |
|
6509 // Make sure there are no entries in any recent lists |
|
6510 active->StartL(); |
|
6511 aClient.ClearLog(KLogRecentOutgoingCalls, active->iStatus); |
|
6512 CActiveScheduler::Start(); |
|
6513 TEST2(active->iStatus.Int(), KErrNone); |
|
6514 |
|
6515 TLogString buf1; |
|
6516 aClient.GetString(buf1, R_LOG_DIR_OUT); |
|
6517 |
|
6518 event->SetEventType(KLogCallEventTypeUid); |
|
6519 event->SetDirection(buf1); |
|
6520 event->SetDurationType(KLogDurationNone); |
|
6521 event->SetContact(KTestContact1); |
|
6522 event->SetRemoteParty(KTestRemote1); |
|
6523 event->SetNumber(KTestNumber1); |
|
6524 |
|
6525 // Add event 1st CS Call with contact as KTestContact & number as KTestNumber1 |
|
6526 active->StartL(); |
|
6527 aClient.AddEvent(*event, active->iStatus); |
|
6528 CActiveScheduler::Start(); |
|
6529 TEST2(active->iStatus.Int(), KErrNone); |
|
6530 |
|
6531 active->StartL(); |
|
6532 TBool res = view->SetRecentListL(KLogRecentOutgoingCalls, active->iStatus); |
|
6533 CActiveScheduler::Start(); |
|
6534 TEST2(active->iStatus.Int(), KErrNone); |
|
6535 TEST2(view->CountL(), 1); |
|
6536 |
|
6537 // Set new event with the same contact details (i.e. KTestContact) and |
|
6538 //...event type as KLogCallEventTypeUid & no number field |
|
6539 event1->SetEventType(KLogCallEventTypeUid); |
|
6540 event1->SetDirection(buf1); |
|
6541 event1->SetDurationType(KLogDurationNone); |
|
6542 event1->SetContact(KTestContact1); |
|
6543 event1->SetRemoteParty(KTestRemote1); |
|
6544 |
|
6545 // Add event 1st PS Call with contact as KTestContact1 & Number as Null |
|
6546 active->StartL(); |
|
6547 aClient.AddEvent(*event1, active->iStatus); |
|
6548 CActiveScheduler::Start(); |
|
6549 TEST2(active->iStatus.Int(), KErrNone); |
|
6550 |
|
6551 active->StartL(); |
|
6552 TEST(view->SetRecentListL(KLogRecentOutgoingCalls, active->iStatus)); |
|
6553 CActiveScheduler::Start(); |
|
6554 TEST2(active->iStatus.Int(), KErrNone); |
|
6555 TEST2(view->CountL(), 2); |
|
6556 |
|
6557 // Add event 2nd CS Call |
|
6558 active->StartL(); |
|
6559 aClient.AddEvent(*event, active->iStatus); |
|
6560 CActiveScheduler::Start(); |
|
6561 TEST2(active->iStatus.Int(), KErrNone); |
|
6562 |
|
6563 active->StartL(); |
|
6564 TEST(view->SetRecentListL(KLogRecentOutgoingCalls, active->iStatus)); |
|
6565 CActiveScheduler::Start(); |
|
6566 TEST2(active->iStatus.Int(), KErrNone); |
|
6567 TEST2(view->CountL(), 2); |
|
6568 |
|
6569 // Check duplicate count for the last call made i.e. CS call |
|
6570 active->StartL(); |
|
6571 TEST(view->DuplicatesL(*duplicate, active->iStatus)); |
|
6572 CActiveScheduler::Start(); |
|
6573 TEST2(duplicate->CountL(), 1); |
|
6574 |
|
6575 // Add event 2nd PS Call |
|
6576 active->StartL(); |
|
6577 aClient.AddEvent(*event1, active->iStatus); |
|
6578 CActiveScheduler::Start(); |
|
6579 TEST2(active->iStatus.Int(), KErrNone); |
|
6580 |
|
6581 active->StartL(); |
|
6582 TEST(view->SetRecentListL(KLogRecentOutgoingCalls, active->iStatus)); |
|
6583 CActiveScheduler::Start(); |
|
6584 TEST2(active->iStatus.Int(), KErrNone); |
|
6585 TEST2(view->CountL(), 2); |
|
6586 |
|
6587 // Check duplicate count for the last call made i.e. PS call |
|
6588 active->StartL(); |
|
6589 TEST(view->DuplicatesL(*duplicate, active->iStatus)); |
|
6590 CActiveScheduler::Start(); |
|
6591 TEST2(duplicate->CountL(), 1); |
|
6592 |
|
6593 // Add event 3rd CS Call |
|
6594 active->StartL(); |
|
6595 aClient.AddEvent(*event, active->iStatus); |
|
6596 CActiveScheduler::Start(); |
|
6597 TEST2(active->iStatus.Int(), KErrNone); |
|
6598 |
|
6599 active->StartL(); |
|
6600 TEST(view->SetRecentListL(KLogRecentOutgoingCalls, active->iStatus)); |
|
6601 CActiveScheduler::Start(); |
|
6602 TEST2(active->iStatus.Int(), KErrNone); |
|
6603 TEST2(view->CountL(), 2); |
|
6604 |
|
6605 // Check duplicate count for the last call made i.e. CS call |
|
6606 active->StartL(); |
|
6607 TEST(view->DuplicatesL(*duplicate, active->iStatus)); |
|
6608 CActiveScheduler::Start(); |
|
6609 TEST2(duplicate->CountL(), 2); |
|
6610 |
|
6611 // Add event 3rd PS Call |
|
6612 active->StartL(); |
|
6613 aClient.AddEvent(*event1, active->iStatus); |
|
6614 CActiveScheduler::Start(); |
|
6615 TEST2(active->iStatus.Int(), KErrNone); |
|
6616 |
|
6617 active->StartL(); |
|
6618 TEST(view->SetRecentListL(KLogRecentOutgoingCalls, active->iStatus)); |
|
6619 CActiveScheduler::Start(); |
|
6620 TEST2(active->iStatus.Int(), KErrNone); |
|
6621 TEST2(view->CountL(), 2); |
|
6622 |
|
6623 // Check duplicate count for the last call made i.e. PS call |
|
6624 active->StartL(); |
|
6625 TEST(view->DuplicatesL(*duplicate, active->iStatus)); |
|
6626 CActiveScheduler::Start(); |
|
6627 TEST2(duplicate->CountL(), 2); |
|
6628 |
|
6629 CleanupStack::PopAndDestroy(5); |
|
6630 } |
|
6631 |
|
6632 /** |
|
6633 @SYMTestCaseID SYSLIB-LOGENG-CT-3755 |
|
6634 @SYMTestCaseDesc Tests for the changes made in defect INC108225 for other fields |
|
6635 @SYMTestPriority High |
|
6636 @SYMTestActions Tests for the count of out call list & the duplicates for CS calls referring other fields |
|
6637 The fields to be considered while finding duplicates records are set in the resource file named LOGWRAP.RSS |
|
6638 i.e. duplicate = ELogRemotePartyField|ELogContactField|ELogNumberField; |
|
6639 Considering this duplicate value, the where clause in the query is made to find duplicate records. |
|
6640 @SYMTestExpectedResults Test must not fail |
|
6641 @SYMDEF INC108225 |
|
6642 */ |
|
6643 LOCAL_C void TestOtherFieldsINC108225L(CLogClient& aClient) |
|
6644 { |
|
6645 test.Next(_L(" @SYMTestCaseID:SYSLIB-LOGENG-CT-3755 ")); |
|
6646 CLogEvent* event = CLogEvent::NewL(); |
|
6647 CleanupStack::PushL(event); |
|
6648 |
|
6649 CTestActive* active = new(ELeave)CTestActive(); |
|
6650 CleanupStack::PushL(active); |
|
6651 |
|
6652 CLogViewRecent* view = CLogViewRecent::NewL(aClient); |
|
6653 CleanupStack::PushL(view); |
|
6654 |
|
6655 CLogViewDuplicate* duplicate = CLogViewDuplicate::NewL(aClient); |
|
6656 CleanupStack::PushL(duplicate); |
|
6657 |
|
6658 // Make sure there are no entries in any recent lists |
|
6659 active->StartL(); |
|
6660 aClient.ClearLog(KLogRecentOutgoingCalls, active->iStatus); |
|
6661 CActiveScheduler::Start(); |
|
6662 TEST2(active->iStatus.Int(), KErrNone); |
|
6663 |
|
6664 TLogString buf1; |
|
6665 aClient.GetString(buf1, R_LOG_DIR_OUT); |
|
6666 |
|
6667 event->SetEventType(KLogCallEventTypeUid); |
|
6668 event->SetDirection(buf1); |
|
6669 event->SetContact(KTestContact1); |
|
6670 event->SetRemoteParty(KTestRemote1); |
|
6671 event->SetNumber(KTestNumber1); |
|
6672 event->SetDurationType(KLogDurationNone); |
|
6673 |
|
6674 // Add event 1st CS Call with contact as KTestContact & number as KTestNumber1 & |
|
6675 //.. durationtype as KLogDurationNone |
|
6676 active->StartL(); |
|
6677 aClient.AddEvent(*event, active->iStatus); |
|
6678 CActiveScheduler::Start(); |
|
6679 TEST2(active->iStatus.Int(), KErrNone); |
|
6680 |
|
6681 active->StartL(); |
|
6682 TBool res = view->SetRecentListL(KLogRecentOutgoingCalls, active->iStatus); |
|
6683 CActiveScheduler::Start(); |
|
6684 TEST2(active->iStatus.Int(), KErrNone); |
|
6685 TEST2(view->CountL(), 1); |
|
6686 |
|
6687 // Add event 2nd CS Call with duration type as KLogDurationValid |
|
6688 event->SetDurationType(KLogDurationValid); |
|
6689 |
|
6690 active->StartL(); |
|
6691 aClient.AddEvent(*event, active->iStatus); |
|
6692 CActiveScheduler::Start(); |
|
6693 TEST2(active->iStatus.Int(), KErrNone); |
|
6694 |
|
6695 active->StartL(); |
|
6696 TEST(view->SetRecentListL(KLogRecentOutgoingCalls, active->iStatus)); |
|
6697 CActiveScheduler::Start(); |
|
6698 TEST2(active->iStatus.Int(), KErrNone); |
|
6699 TEST2(view->CountL(), 1); |
|
6700 |
|
6701 // Check duplicate count for the last call made |
|
6702 active->StartL(); |
|
6703 TEST(view->DuplicatesL(*duplicate, active->iStatus)); |
|
6704 CActiveScheduler::Start(); |
|
6705 TEST2(duplicate->CountL(), 1); |
|
6706 |
|
6707 // Add event 3rd CS Call with Flag as KLogNullFlags |
|
6708 event->SetFlags(KLogNullFlags); |
|
6709 |
|
6710 active->StartL(); |
|
6711 aClient.AddEvent(*event, active->iStatus); |
|
6712 CActiveScheduler::Start(); |
|
6713 TEST2(active->iStatus.Int(), KErrNone); |
|
6714 |
|
6715 active->StartL(); |
|
6716 TEST(view->SetRecentListL(KLogRecentOutgoingCalls, active->iStatus)); |
|
6717 CActiveScheduler::Start(); |
|
6718 TEST2(active->iStatus.Int(), KErrNone); |
|
6719 TEST2(view->CountL(), 1); |
|
6720 |
|
6721 // Check duplicate count for the last call made |
|
6722 active->StartL(); |
|
6723 TEST(view->DuplicatesL(*duplicate, active->iStatus)); |
|
6724 CActiveScheduler::Start(); |
|
6725 TEST2(duplicate->CountL(), 2); |
|
6726 |
|
6727 // Add event 4th CS Call with Flag as KLogFlagsMask |
|
6728 event->SetFlags(KLogFlagsMask); |
|
6729 |
|
6730 active->StartL(); |
|
6731 aClient.AddEvent(*event, active->iStatus); |
|
6732 CActiveScheduler::Start(); |
|
6733 TEST2(active->iStatus.Int(), KErrNone); |
|
6734 |
|
6735 active->StartL(); |
|
6736 TEST(view->SetRecentListL(KLogRecentOutgoingCalls, active->iStatus)); |
|
6737 CActiveScheduler::Start(); |
|
6738 TEST2(active->iStatus.Int(), KErrNone); |
|
6739 TEST2(view->CountL(), 1); |
|
6740 |
|
6741 // Check duplicate count for the last call made |
|
6742 active->StartL(); |
|
6743 TEST(view->DuplicatesL(*duplicate, active->iStatus)); |
|
6744 CActiveScheduler::Start(); |
|
6745 TEST2(duplicate->CountL(), 3); |
|
6746 |
|
6747 // Add event 5th CS Call with Status as KNullDesC |
|
6748 event->SetStatus(KNullDesC); |
|
6749 |
|
6750 active->StartL(); |
|
6751 aClient.AddEvent(*event, active->iStatus); |
|
6752 CActiveScheduler::Start(); |
|
6753 TEST2(active->iStatus.Int(), KErrNone); |
|
6754 |
|
6755 active->StartL(); |
|
6756 TEST(view->SetRecentListL(KLogRecentOutgoingCalls, active->iStatus)); |
|
6757 CActiveScheduler::Start(); |
|
6758 TEST2(active->iStatus.Int(), KErrNone); |
|
6759 TEST2(view->CountL(), 1); |
|
6760 |
|
6761 // Check duplicate count for the last call made |
|
6762 active->StartL(); |
|
6763 TEST(view->DuplicatesL(*duplicate, active->iStatus)); |
|
6764 CActiveScheduler::Start(); |
|
6765 TEST2(duplicate->CountL(), 4); |
|
6766 |
|
6767 // Add event 6th CS Call with Status as KTestStatus1 |
|
6768 event->SetStatus(KTestStatus1); |
|
6769 |
|
6770 active->StartL(); |
|
6771 aClient.AddEvent(*event, active->iStatus); |
|
6772 CActiveScheduler::Start(); |
|
6773 TEST2(active->iStatus.Int(), KErrNone); |
|
6774 |
|
6775 active->StartL(); |
|
6776 TEST(view->SetRecentListL(KLogRecentOutgoingCalls, active->iStatus)); |
|
6777 CActiveScheduler::Start(); |
|
6778 TEST2(active->iStatus.Int(), KErrNone); |
|
6779 TEST2(view->CountL(), 1); |
|
6780 |
|
6781 // Check duplicate count for the last call made |
|
6782 active->StartL(); |
|
6783 TEST(view->DuplicatesL(*duplicate, active->iStatus)); |
|
6784 CActiveScheduler::Start(); |
|
6785 TEST2(duplicate->CountL(), 5); |
|
6786 |
|
6787 CleanupStack::PopAndDestroy(4); |
|
6788 } |
|
6789 |
|
6790 void doTestsL() |
|
6791 { |
|
6792 TestUtils::Initialize(_L("T_LOGVIEW2")); |
|
6793 TestUtils::DeleteDatabaseL(); |
|
6794 |
|
6795 CLogClient* client = CLogClient::NewL(theFs); |
|
6796 CleanupStack::PushL(client); |
|
6797 |
|
6798 CLogChangeNotifier* notifier = CLogChangeNotifier::NewL(); |
|
6799 CleanupStack::PushL(notifier); |
|
6800 |
|
6801 test.Start(_L("Event View With Filter List")); |
|
6802 TestEventViewWithFilterListL(*client); |
|
6803 theLog.Write(_L8("Test 1 OK\n")); |
|
6804 |
|
6805 test.Next(_L("View change observer")); |
|
6806 TestViewChangeEventsL(*client); |
|
6807 theLog.Write(_L8("Test 2 OK\n")); |
|
6808 |
|
6809 test.Next(_L("Recent View With Filter")); |
|
6810 TestRecentViewWithFilterL(*client); |
|
6811 theLog.Write(_L8("Test 3 OK\n")); |
|
6812 |
|
6813 test.Next(_L("Recent View With Filter List")); |
|
6814 TestRecentViewWithFilterListL(*client); |
|
6815 theLog.Write(_L8("Test 4 OK\n")); |
|
6816 |
|
6817 test.Next(_L("Duplicate View With Filter")); |
|
6818 TestDuplicateViewWithFilterL(*client); |
|
6819 theLog.Write(_L8("Test 5 OK\n")); |
|
6820 |
|
6821 test.Next(_L("Duplicate View With Filter List")); |
|
6822 TestDuplicateViewWithFilterListL(*client); |
|
6823 theLog.Write(_L8("Test 6 OK\n")); |
|
6824 |
|
6825 test.Next(_L("Querying Event View For Null Fields")); |
|
6826 TestEventViewForNullFieldsL(*client); |
|
6827 theLog.Write(_L8("Test 7 OK\n")); |
|
6828 |
|
6829 test.Next(_L("Querying Recent View For Null Fields")); |
|
6830 TestRecentViewForNullFieldsL(*client); |
|
6831 theLog.Write(_L8("Test 8 OK\n")); |
|
6832 |
|
6833 test.Next(_L("Querying Duplicate View For Null Fields")); |
|
6834 TestDuplicateViewForNullFieldsL(*client); |
|
6835 theLog.Write(_L8("Test 9 OK\n")); |
|
6836 |
|
6837 test.Next(_L("Querying Event View For Flags")); |
|
6838 TestEventViewForFlagsL(*client); |
|
6839 theLog.Write(_L8("Test 10 OK\n")); |
|
6840 |
|
6841 test.Next(_L("Querying Recent View For Flags")); |
|
6842 TestRecentViewForFlagsL(*client); |
|
6843 theLog.Write(_L8("Test 11 OK\n")); |
|
6844 |
|
6845 test.Next(_L("Querying Duplicate View For Flags")); |
|
6846 TestDuplicateViewForFlagsL(*client); |
|
6847 theLog.Write(_L8("Test 12 OK\n")); |
|
6848 |
|
6849 test.Next(_L("Removing Recent Events")); |
|
6850 TestRemovingRecentEventsL(*client); |
|
6851 theLog.Write(_L8("Test 13 OK\n")); |
|
6852 |
|
6853 test.Next(_L("Removing Duplicate Events")); |
|
6854 TestRemovingDuplicateEventsL(*client); |
|
6855 theLog.Write(_L8("Test 14 OK\n")); |
|
6856 |
|
6857 test.Next(_L("Multiple Views")); |
|
6858 TestMultipleViews1L(*client); |
|
6859 TestMultipleViews2L(*client); |
|
6860 theLog.Write(_L8("Test 15 OK\n")); |
|
6861 |
|
6862 test.Next(_L("Test _ALT Events In Recent List")); |
|
6863 TestAltEventsInRecentListL(*client); |
|
6864 theLog.Write(_L8("Test 16 OK\n")); |
|
6865 |
|
6866 test.Next(_L("Test filtering Events by time")); |
|
6867 // This TEST sets system's 'Home Time' |
|
6868 TestFilterByTimeL(*client); |
|
6869 theLog.Write(_L8("Test 17 OK\n")); |
|
6870 |
|
6871 test.Next(_L("Test hidden change events")); |
|
6872 TestUtils::DeleteDatabaseL(); |
|
6873 TestHiddenChangeEvents1L(*client); |
|
6874 TestHiddenChangeEvents1aL(*client); |
|
6875 TestHiddenChangeEvents2L(*client); |
|
6876 TestHiddenChangeEvents2aL(*client); |
|
6877 TestHiddenChangeEvents3L(*client); |
|
6878 TestHiddenChangeEvents3aL(*client); |
|
6879 TestHiddenChangeEvents4L(*client); |
|
6880 TestHiddenChangeEvents4aL(*client); |
|
6881 TestHiddenChangeEvents5L(*client); |
|
6882 TestHiddenChangeEvents5aL(*client); |
|
6883 TestHiddenChangeEvents6L(*client); |
|
6884 TestHiddenChangeEvents6aL(*client); |
|
6885 TestHiddenChangeEvents7L(*client); |
|
6886 TestHiddenChangeEvents7aL(*client); |
|
6887 theLog.Write(_L8("Test 18 OK\n")); |
|
6888 |
|
6889 test.Next(_L("Changing events and recent views")); |
|
6890 TestChangeEventRecentView1L(*client); |
|
6891 TestChangeEventRecentView2L(*client); |
|
6892 TestChangeEventRecentViewAndPurgeL(*client); |
|
6893 TestChangeEventRecentViewRemoveL(*client); |
|
6894 theLog.Write(_L8("Test 19 OK\n")); |
|
6895 |
|
6896 test.Next(_L("Test for DEF066296")); |
|
6897 DEF066296L(*client); |
|
6898 test.Next(_L("Test for DEF087459")); |
|
6899 DEF087459L(*client); |
|
6900 theLog.Write(_L8("Test 20 OK\n")); |
|
6901 |
|
6902 test.Next(_L("Event View With Filter List containing StartTime and EndTime")); |
|
6903 TestEventViewWithTimestampsInFilterListL(*client); |
|
6904 theLog.Write(_L8("Test 21 OK\n")); |
|
6905 |
|
6906 test.Next(_L("Test for DEF108741 - View change observer, error condition")); |
|
6907 DEF108741L(*client); |
|
6908 theLog.Write(_L8("Test 22 OK\n")); |
|
6909 |
|
6910 test.Next(_L("Test Defect INC108225: Call history check for the CS & PS(VOIP) calls ")); |
|
6911 TestNumberFieldINC108225L(*client); |
|
6912 TestOtherFieldsINC108225L(*client); |
|
6913 theLog.Write(_L8("Test 23 OK\n")); |
|
6914 |
|
6915 CleanupStack::PopAndDestroy(2); // client, notifier |
|
6916 } |