|
1 // Copyright (c) 2000-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 #ifndef __T_PUSHMESSAGE_H__ |
|
17 #define __T_PUSHMESSAGE_H__ |
|
18 |
|
19 class CWapLog; |
|
20 class CPushMessage; |
|
21 |
|
22 |
|
23 /** |
|
24 * Test harness for the CPushMessage class. |
|
25 * |
|
26 * Creates a header and a body pair from data files, and uses |
|
27 * each pair in turn to the pass to the constructor of a CPushMessage. |
|
28 * On each message call number of functions to check that the class |
|
29 * holds and returns the correct data |
|
30 */ |
|
31 class CPushMessageTester : public CBase |
|
32 { |
|
33 public: |
|
34 static CPushMessageTester* NewLC(CWapPushLog& aWapLog); |
|
35 static CPushMessageTester* NewL(CWapPushLog& aWapLog); |
|
36 ~CPushMessageTester(); |
|
37 |
|
38 void CreateMessagesL(); |
|
39 void OutputMessageDataL(); |
|
40 void TestMultiTextMsgFromFilesL(); |
|
41 void TestFinished(); |
|
42 private: |
|
43 CPushMessage* CreateMultiTextPushMessageL(const TDesC& aFileName, const TDesC8& aHdr); |
|
44 void GenMessageTypeL(const TDesC& aFileName, TDes8& aMsgType); |
|
45 CPushMessageTester(CWapPushLog& aWapLog); |
|
46 HBufC8* CreateMsgDataLC(const TUint8* aMessage, TInt aLength); |
|
47 private: |
|
48 CWapPushLog& iLog; //Don't own this |
|
49 CPushMessage* iPushMessage1; |
|
50 CPushMessage* iPushMessage2; |
|
51 CPushMessage* iPushMessage3; |
|
52 CPushMessage* iPushMessage4; |
|
53 CPushMessage* iPushMessage5; |
|
54 CPushMessage* iPushMessage6; |
|
55 CPushMessage* iPushMessage7; |
|
56 CPushMessage* iPushMultiMessage; |
|
57 }; |
|
58 |
|
59 |
|
60 |
|
61 |
|
62 |
|
63 |
|
64 |
|
65 |
|
66 const TUint8 KMessageHeader1[] = |
|
67 { |
|
68 0x80 //Content type is "*/*", No application id |
|
69 }; |
|
70 |
|
71 const TUint8 KMessageHeader2[] = |
|
72 { |
|
73 0xAF, //Content type "text/vnd.wap.sl" |
|
74 0x92, // Date |
|
75 0x04, // length of field |
|
76 0x39, // Monday 15 August 2000 10:41:37 GMT |
|
77 0x90, |
|
78 0x6a, |
|
79 0xd0, |
|
80 0x94, // Expires |
|
81 0x04, // length of field |
|
82 0x39, // Monday 15 August 2000 10:41:37 GMT |
|
83 0x9a, |
|
84 0x6a, |
|
85 0xd0, |
|
86 0xAF, //X-Wap-Application-ID |
|
87 0x83 // Short int - 0x03 |
|
88 }; |
|
89 |
|
90 const TUint8 KMessageHeader3[]= |
|
91 { |
|
92 0xB4, //Content type "text/vnd.wap.wml" |
|
93 0x94, // Date |
|
94 0x04, // length of field |
|
95 0x35, // Thur 23 Apr 1998 13:41:37 GMT |
|
96 0x3F, |
|
97 0x45, |
|
98 0x11, |
|
99 0xAF, // X-Wap-Application ID |
|
100 0x83 // Id is short integer 3. |
|
101 }; |
|
102 |
|
103 const TUint8 KMessageHeader4[]= |
|
104 { |
|
105 0xB4, //Content type "text/vnd.wap.wml" |
|
106 0x94, // Date |
|
107 0x04, // length of field |
|
108 0x35, // Thur 23 Apr 1998 13:41:37 GMT |
|
109 0x3F, |
|
110 0x45, |
|
111 0x11, |
|
112 0xAF, // X-Wap-Application ID |
|
113 0x77, // 'w' |
|
114 0x77, // 'w' |
|
115 0x77, // 'w' |
|
116 0x2E, // '.' |
|
117 0x62, // 'b' |
|
118 0x6C, // 'l' |
|
119 0x6F, // 'o' |
|
120 0x67, // 'g' |
|
121 0x67, // 'g' |
|
122 0x73, // 's' |
|
123 0x2E, // '.' |
|
124 0x63, // 'c' |
|
125 0x6F, // 'o; |
|
126 0x6D, // 'm' |
|
127 0x2F, // '/' |
|
128 0x69, // 'i' |
|
129 0x6E, // 'n' |
|
130 0x64, // 'd |
|
131 0x65, // 'e' |
|
132 0x78, // 'x' |
|
133 0x2E, // '.' |
|
134 0x77, // 'w |
|
135 0x6D, // 'm' |
|
136 0x6C // 'l' |
|
137 }; |
|
138 |
|
139 const TUint8 KMessageHeaderMultipart[]= |
|
140 { |
|
141 0xA3, //Content type "application/vnd.wap.multipart.mixed" |
|
142 0x94, // Date |
|
143 0x04, // length of field |
|
144 0x35, // Thur 23 Apr 1998 13:41:37 GMT |
|
145 0x3F, |
|
146 0x45, |
|
147 0x11, |
|
148 0xAF, // X-Wap-Application ID |
|
149 0x77, // 'w' |
|
150 0x77, // 'w' |
|
151 0x77, // 'w' |
|
152 0x2E, // '.' |
|
153 0x62, // 'b' |
|
154 0x6C, // 'l' |
|
155 0x6F, // 'o' |
|
156 0x67, // 'g' |
|
157 0x67, // 'g' |
|
158 0x73, // 's' |
|
159 0x2E, // '.' |
|
160 0x63, // 'c' |
|
161 0x6F, // 'o; |
|
162 0x6D, // 'm' |
|
163 0x2F, // '/' |
|
164 0x69, // 'i' |
|
165 0x6E, // 'n' |
|
166 0x64, // 'd |
|
167 0x65, // 'e' |
|
168 0x78, // 'x' |
|
169 0x2E, // '.' |
|
170 0x77, // 'w |
|
171 0x6D, // 'm' |
|
172 0x6C // 'l' |
|
173 }; |
|
174 |
|
175 const TUint8 KMessageBodyMultipart[]= |
|
176 { |
|
177 0x01, // number of parts |
|
178 0x0A, // part 1 header size |
|
179 0x1D, // part 1 body size |
|
180 0xB0, // content type application/vnd.wap.slc ... the headers: |
|
181 0x94, // Date |
|
182 0x04, // length of field |
|
183 0x35, // Thur 23 Apr 1998 13:41:37 GMT |
|
184 0x3F, |
|
185 0x45, |
|
186 0x11, |
|
187 0x3F, |
|
188 0x45, |
|
189 0x11, |
|
190 0x01, // Body - slc (mmm.schookie.com) |
|
191 0x06, |
|
192 0x6A, |
|
193 0x00, |
|
194 0x85, |
|
195 0x09, |
|
196 0x03, |
|
197 0x6D, |
|
198 0x6D, |
|
199 0x6D, |
|
200 0x2E, |
|
201 0x73, |
|
202 0x63, |
|
203 0x68, |
|
204 0x6D, |
|
205 0x6F, |
|
206 0x6F, |
|
207 0x6B, |
|
208 0x69, |
|
209 0x65, |
|
210 0x2E, |
|
211 0x63, |
|
212 0x6F, |
|
213 0x64, |
|
214 0x65, |
|
215 0x2F, |
|
216 0x00, |
|
217 0x06, |
|
218 0x01 |
|
219 }; |
|
220 |
|
221 const TUint8 KMessageHeader5[] = |
|
222 { |
|
223 'm', // Text content type 'my/type' with null terminator |
|
224 'y', |
|
225 '/', |
|
226 't', |
|
227 'y', |
|
228 'p', |
|
229 'e', |
|
230 0x00, |
|
231 0x92, // Date |
|
232 0x04, // length of field |
|
233 0x39, // Monday 15 August 2000 10:41:37 GMT |
|
234 0x90, |
|
235 0x6a, |
|
236 0xd0, |
|
237 0x94, // Expires |
|
238 0x04, // length of field |
|
239 0x39, // Monday 15 August 2000 10:41:37 GMT |
|
240 0x9a, |
|
241 0x6a, |
|
242 0xd0, |
|
243 0xAF, //X-Wap-Application-ID |
|
244 0x83 // Short int - 0x03 |
|
245 }; |
|
246 |
|
247 const TUint8 KMessageHeader6[] = |
|
248 { |
|
249 0x1F, // <Octet 31> to indicate UIntVar encoding |
|
250 0x2B, // UIntVar encoding for 43 |
|
251 'a', |
|
252 'p', |
|
253 'p', |
|
254 'l', |
|
255 'i', |
|
256 'c', |
|
257 'a', |
|
258 't', |
|
259 'i', |
|
260 'o', |
|
261 'n', |
|
262 '/', |
|
263 'x', |
|
264 '-', |
|
265 'w', |
|
266 'a', |
|
267 'p', |
|
268 '-', |
|
269 'p', |
|
270 'r', |
|
271 'o', |
|
272 'v', |
|
273 '.', |
|
274 'b', |
|
275 'r', |
|
276 'o', |
|
277 'w', |
|
278 's', |
|
279 'e', |
|
280 'r', |
|
281 '-', |
|
282 'b', |
|
283 'o', |
|
284 'o', |
|
285 'k', |
|
286 'm', |
|
287 'a', |
|
288 'r', |
|
289 'k', |
|
290 's', |
|
291 0x00, // Null terminator |
|
292 0x81, // parameter |
|
293 0xDE, |
|
294 0x92, // Date |
|
295 0x04, // length of field |
|
296 0x39, // Monday 15 August 2000 10:41:37 GMT |
|
297 0x90, |
|
298 0x6a, |
|
299 0xd0 |
|
300 }; |
|
301 |
|
302 const TUint8 KMessageHeader7[] = |
|
303 { |
|
304 0x1F, // <Octet 31> to indicate UIntVar encoding |
|
305 0x01, // UIntVar encoding for 1 |
|
306 0xAF, //Content type "text/vnd.wap.sl" |
|
307 0x92, // Date |
|
308 0x04, // length of field |
|
309 0x39, // Monday 15 August 2000 10:41:37 GMT |
|
310 0x90, |
|
311 0x6a, |
|
312 0xd0, |
|
313 }; |
|
314 |
|
315 const TUint8 KMessageHeader8[] = |
|
316 { |
|
317 0x1F, // <Octet 31> to indicate UIntVar encoding |
|
318 0x81, // UIntVar encoding for 130 (1000 0001 0000 0010) |
|
319 0x02, |
|
320 'a', |
|
321 'a', |
|
322 'a', |
|
323 'a', |
|
324 'a', |
|
325 'a', |
|
326 'a', |
|
327 'a', |
|
328 'a', |
|
329 'a', |
|
330 'a', |
|
331 'a', |
|
332 'a', |
|
333 'a', |
|
334 'a', |
|
335 '.', |
|
336 'a', |
|
337 'a', |
|
338 'a', |
|
339 'a', |
|
340 'a', |
|
341 'a', |
|
342 'a', |
|
343 'a', |
|
344 'a', |
|
345 'a', |
|
346 'a', |
|
347 'a', |
|
348 'a', |
|
349 'a', |
|
350 'a', |
|
351 'a', |
|
352 'a', |
|
353 'a', |
|
354 'a', |
|
355 'a', |
|
356 'a', |
|
357 'a', |
|
358 'a', |
|
359 'a', |
|
360 'a', |
|
361 'a', |
|
362 'a', |
|
363 'a', |
|
364 'a', |
|
365 'a', |
|
366 'a', |
|
367 'a', |
|
368 'a', |
|
369 'a', |
|
370 'a', |
|
371 'a', |
|
372 'a', |
|
373 'a', |
|
374 'a', |
|
375 'a', |
|
376 'a', |
|
377 'a', |
|
378 'a', |
|
379 'a', |
|
380 'a', |
|
381 'a', |
|
382 'a', |
|
383 '.', |
|
384 'a', |
|
385 'a', |
|
386 'a', |
|
387 'a', |
|
388 'a', |
|
389 'a', |
|
390 'a', |
|
391 'a', |
|
392 'a', |
|
393 'a', |
|
394 'a', |
|
395 'a', |
|
396 'a', |
|
397 'a', |
|
398 'a', |
|
399 'a', |
|
400 'a', |
|
401 'a', |
|
402 'a', |
|
403 'a', |
|
404 'a', |
|
405 'a', |
|
406 'a', |
|
407 'a', |
|
408 'a', |
|
409 'a', |
|
410 'a', |
|
411 'a', |
|
412 'a', |
|
413 'a', |
|
414 'a', |
|
415 'a', |
|
416 'a', |
|
417 'a', |
|
418 'a', |
|
419 'a', |
|
420 'a', |
|
421 'a', |
|
422 'a', |
|
423 'a', |
|
424 'a', |
|
425 'a', |
|
426 'a', |
|
427 'a', |
|
428 'a', |
|
429 'a', |
|
430 'a', |
|
431 'a', |
|
432 'a', |
|
433 'a', |
|
434 'a', |
|
435 'a', |
|
436 'a', |
|
437 'a', |
|
438 '/', |
|
439 'm', |
|
440 'y', |
|
441 'l', |
|
442 'o', |
|
443 'n', |
|
444 'g', |
|
445 't', |
|
446 'y', |
|
447 'p', |
|
448 'e', |
|
449 0x00, // NULL terminator |
|
450 0x92, // Date |
|
451 0x04, // length of field |
|
452 0x39, // Monday 15 August 2000 10:41:37 GMT |
|
453 0x90, |
|
454 0x6a, |
|
455 0xd0 |
|
456 }; |
|
457 |
|
458 _LIT8(KShortPushMessageBody, "A dummy WAP Push message"); |
|
459 _LIT8(KLongPushMessageBody, "A very very very long dummy message body for a WAP Push Message sent by a server somewhere"); |
|
460 _LIT8(KPushMessageServerAddress, "c:\\www.zabruga.co.uk"); |
|
461 |
|
462 #endif |