sl@0
|
1 |
// Copyright (c) 2001-2009 Nokia Corporation and/or its subsidiary(-ies).
|
sl@0
|
2 |
// All rights reserved.
|
sl@0
|
3 |
// This component and the accompanying materials are made available
|
sl@0
|
4 |
// under the terms of "Eclipse Public License v1.0"
|
sl@0
|
5 |
// which accompanies this distribution, and is available
|
sl@0
|
6 |
// at the URL "http://www.eclipse.org/legal/epl-v10.html".
|
sl@0
|
7 |
//
|
sl@0
|
8 |
// Initial Contributors:
|
sl@0
|
9 |
// Nokia Corporation - initial contribution.
|
sl@0
|
10 |
//
|
sl@0
|
11 |
// Contributors:
|
sl@0
|
12 |
//
|
sl@0
|
13 |
// Description:
|
sl@0
|
14 |
//
|
sl@0
|
15 |
|
sl@0
|
16 |
#include "CEscapeUtilsTest.h"
|
sl@0
|
17 |
|
sl@0
|
18 |
#include <e32base.h>
|
sl@0
|
19 |
|
sl@0
|
20 |
#include "EscapeUtilsTestCommon.h"
|
sl@0
|
21 |
#include "EscapeUtilsTests.h"
|
sl@0
|
22 |
#include <tconvbase64.h>
|
sl@0
|
23 |
|
sl@0
|
24 |
CEscapeUtilsTest* CEscapeUtilsTest::NewLC(CIpuTestHarness* aTestHarness)
|
sl@0
|
25 |
{
|
sl@0
|
26 |
CEscapeUtilsTest* self = new (ELeave) CEscapeUtilsTest(aTestHarness);
|
sl@0
|
27 |
CleanupStack::PushL(self);
|
sl@0
|
28 |
self->ConstructL();
|
sl@0
|
29 |
return self;
|
sl@0
|
30 |
}
|
sl@0
|
31 |
|
sl@0
|
32 |
CEscapeUtilsTest* CEscapeUtilsTest::NewL(CIpuTestHarness* aTestHarness)
|
sl@0
|
33 |
{
|
sl@0
|
34 |
CEscapeUtilsTest* self = CEscapeUtilsTest::NewLC(aTestHarness);
|
sl@0
|
35 |
CleanupStack::Pop(self);
|
sl@0
|
36 |
return self;
|
sl@0
|
37 |
}
|
sl@0
|
38 |
|
sl@0
|
39 |
CEscapeUtilsTest::CEscapeUtilsTest(CIpuTestHarness* aTestHarness)
|
sl@0
|
40 |
: iTestHarness(aTestHarness)
|
sl@0
|
41 |
{
|
sl@0
|
42 |
}
|
sl@0
|
43 |
|
sl@0
|
44 |
void CEscapeUtilsTest::ConstructL()
|
sl@0
|
45 |
{
|
sl@0
|
46 |
}
|
sl@0
|
47 |
|
sl@0
|
48 |
CEscapeUtilsTest::~CEscapeUtilsTest()
|
sl@0
|
49 |
{
|
sl@0
|
50 |
}
|
sl@0
|
51 |
|
sl@0
|
52 |
void CEscapeUtilsTest::DoTestsL()
|
sl@0
|
53 |
{
|
sl@0
|
54 |
TestEscapeUtilsEscapeEncodeL(KEscapeDecoded0, KEscapeEncoded0_auth, EscapeUtils::EEscapeAuth);
|
sl@0
|
55 |
TestEscapeUtilsEscapeEncodeL(KEscapeDecoded0, KEscapeEncoded0_path, EscapeUtils::EEscapePath);
|
sl@0
|
56 |
TestEscapeUtilsEscapeEncodeL(KEscapeDecoded0, KEscapeEncoded0_query, EscapeUtils::EEscapeQuery);
|
sl@0
|
57 |
TestEscapeUtilsEscapeEncodeL(KEscapeDecoded0, KEscapeEncoded0_normal, EscapeUtils::EEscapeNormal);
|
sl@0
|
58 |
TestEscapeUtilsEscapeEncodeL(KEscapeDecoded0, KEscapeEncoded0_url, EscapeUtils::EEscapeUrlEncoded);
|
sl@0
|
59 |
|
sl@0
|
60 |
TestEscapeUtilsEscapeEncodeL(KEscapeDecoded1, KEscapeEncoded1_auth, EscapeUtils::EEscapeAuth);
|
sl@0
|
61 |
TestEscapeUtilsEscapeEncodeL(KEscapeDecoded1, KEscapeEncoded1_path, EscapeUtils::EEscapePath);
|
sl@0
|
62 |
TestEscapeUtilsEscapeEncodeL(KEscapeDecoded1, KEscapeEncoded1_query, EscapeUtils::EEscapeQuery);
|
sl@0
|
63 |
TestEscapeUtilsEscapeEncodeL(KEscapeDecoded1, KEscapeEncoded1_normal, EscapeUtils::EEscapeNormal);
|
sl@0
|
64 |
TestEscapeUtilsEscapeEncodeL(KEscapeDecoded1, KEscapeEncoded1_url, EscapeUtils::EEscapeUrlEncoded);
|
sl@0
|
65 |
|
sl@0
|
66 |
|
sl@0
|
67 |
TestEscapeUtilsEscapeDecodeL(KEscapeEncoded0_auth, KEscapeDecoded0);
|
sl@0
|
68 |
TestEscapeUtilsEscapeDecodeL(KEscapeEncoded0_path, KEscapeDecoded0);
|
sl@0
|
69 |
TestEscapeUtilsEscapeDecodeL(KEscapeEncoded0_query, KEscapeDecoded0);
|
sl@0
|
70 |
TestEscapeUtilsEscapeDecodeL(KEscapeEncoded0_normal, KEscapeDecoded0);
|
sl@0
|
71 |
|
sl@0
|
72 |
TestEscapeUtilsEscapeDecodeL(KEscapeEncoded1_auth, KEscapeDecoded1);
|
sl@0
|
73 |
TestEscapeUtilsEscapeDecodeL(KEscapeEncoded1_path, KEscapeDecoded1);
|
sl@0
|
74 |
TestEscapeUtilsEscapeDecodeL(KEscapeEncoded1_query, KEscapeDecoded1);
|
sl@0
|
75 |
TestEscapeUtilsEscapeDecodeL(KEscapeEncoded1_normal, KEscapeDecoded1);
|
sl@0
|
76 |
|
sl@0
|
77 |
// Test cases for section 2.9.1.2 //
|
sl@0
|
78 |
|
sl@0
|
79 |
TestEscapeUtilsEscapeEncodeL(KEscapeDecoded2, KEscapeEncoded2_auth, EscapeUtils::EEscapeAuth);
|
sl@0
|
80 |
TestEscapeUtilsEscapeEncodeL(KEscapeDecoded2, KEscapeEncoded2_path, EscapeUtils::EEscapePath);
|
sl@0
|
81 |
TestEscapeUtilsEscapeEncodeL(KEscapeDecoded2, KEscapeEncoded2_query, EscapeUtils::EEscapeQuery);
|
sl@0
|
82 |
TestEscapeUtilsEscapeEncodeL(KEscapeDecoded2, KEscapeEncoded2_normal, EscapeUtils::EEscapeNormal);
|
sl@0
|
83 |
TestEscapeUtilsEscapeEncodeL(KEscapeDecoded2, KEscapeEncoded2_url, EscapeUtils::EEscapeUrlEncoded);
|
sl@0
|
84 |
|
sl@0
|
85 |
TestEscapeUtilsEscapeEncodeL(KEscapeDecoded3, KEscapeEncoded3_auth, EscapeUtils::EEscapeAuth);
|
sl@0
|
86 |
TestEscapeUtilsEscapeEncodeL(KEscapeDecoded3, KEscapeEncoded3_path, EscapeUtils::EEscapePath);
|
sl@0
|
87 |
TestEscapeUtilsEscapeEncodeL(KEscapeDecoded3, KEscapeEncoded3_query, EscapeUtils::EEscapeQuery);
|
sl@0
|
88 |
TestEscapeUtilsEscapeEncodeL(KEscapeDecoded3, KEscapeEncoded3_normal, EscapeUtils::EEscapeNormal);
|
sl@0
|
89 |
TestEscapeUtilsEscapeEncodeL(KEscapeDecoded3, KEscapeEncoded3_url, EscapeUtils::EEscapeUrlEncoded);
|
sl@0
|
90 |
|
sl@0
|
91 |
TestEscapeUtilsEscapeEncodeL(KEscapeDecoded4, KEscapeEncoded4_auth, EscapeUtils::EEscapeAuth);
|
sl@0
|
92 |
TestEscapeUtilsEscapeEncodeL(KEscapeDecoded4, KEscapeEncoded4_path, EscapeUtils::EEscapePath);
|
sl@0
|
93 |
TestEscapeUtilsEscapeEncodeL(KEscapeDecoded4, KEscapeEncoded4_query, EscapeUtils::EEscapeQuery);
|
sl@0
|
94 |
TestEscapeUtilsEscapeEncodeL(KEscapeDecoded4, KEscapeEncoded4_normal, EscapeUtils::EEscapeNormal);
|
sl@0
|
95 |
TestEscapeUtilsEscapeEncodeL(KEscapeDecoded4, KEscapeEncoded4_url, EscapeUtils::EEscapeUrlEncoded);
|
sl@0
|
96 |
|
sl@0
|
97 |
TestEscapeUtilsEscapeEncodeL(KEscapeDecoded5, KEscapeEncoded5_auth, EscapeUtils::EEscapeAuth);
|
sl@0
|
98 |
TestEscapeUtilsEscapeEncodeL(KEscapeDecoded5, KEscapeEncoded5_path, EscapeUtils::EEscapePath);
|
sl@0
|
99 |
TestEscapeUtilsEscapeEncodeL(KEscapeDecoded5, KEscapeEncoded5_query, EscapeUtils::EEscapeQuery);
|
sl@0
|
100 |
TestEscapeUtilsEscapeEncodeL(KEscapeDecoded5, KEscapeEncoded5_normal, EscapeUtils::EEscapeNormal);
|
sl@0
|
101 |
TestEscapeUtilsEscapeEncodeL(KEscapeDecoded5, KEscapeEncoded5_url, EscapeUtils::EEscapeUrlEncoded);
|
sl@0
|
102 |
|
sl@0
|
103 |
TestEscapeUtilsEscapeEncodeL(KEscapeDecoded6, KEscapeEncoded6_auth, EscapeUtils::EEscapeAuth);
|
sl@0
|
104 |
TestEscapeUtilsEscapeEncodeL(KEscapeDecoded6, KEscapeEncoded6_path, EscapeUtils::EEscapePath);
|
sl@0
|
105 |
TestEscapeUtilsEscapeEncodeL(KEscapeDecoded6, KEscapeEncoded6_query, EscapeUtils::EEscapeQuery);
|
sl@0
|
106 |
TestEscapeUtilsEscapeEncodeL(KEscapeDecoded6, KEscapeEncoded6_normal, EscapeUtils::EEscapeNormal);
|
sl@0
|
107 |
TestEscapeUtilsEscapeEncodeL(KEscapeDecoded6, KEscapeEncoded6_url, EscapeUtils::EEscapeUrlEncoded);
|
sl@0
|
108 |
|
sl@0
|
109 |
TestEscapeUtilsEscapeEncodeL(KEscapeDecoded7, KEscapeEncoded7_auth, EscapeUtils::EEscapeAuth);
|
sl@0
|
110 |
TestEscapeUtilsEscapeEncodeL(KEscapeDecoded7, KEscapeEncoded7_path, EscapeUtils::EEscapePath);
|
sl@0
|
111 |
TestEscapeUtilsEscapeEncodeL(KEscapeDecoded7, KEscapeEncoded7_query, EscapeUtils::EEscapeQuery);
|
sl@0
|
112 |
TestEscapeUtilsEscapeEncodeL(KEscapeDecoded7, KEscapeEncoded7_normal, EscapeUtils::EEscapeNormal);
|
sl@0
|
113 |
TestEscapeUtilsEscapeEncodeL(KEscapeDecoded7, KEscapeEncoded7_url, EscapeUtils::EEscapeUrlEncoded);
|
sl@0
|
114 |
|
sl@0
|
115 |
|
sl@0
|
116 |
TestEscapeUtilsEscapeDecodeL(KEscapeEncoded2_auth, KEscapeDecoded2);
|
sl@0
|
117 |
TestEscapeUtilsEscapeDecodeL(KEscapeEncoded2_path, KEscapeDecoded2);
|
sl@0
|
118 |
TestEscapeUtilsEscapeDecodeL(KEscapeEncoded2_query, KEscapeDecoded2);
|
sl@0
|
119 |
TestEscapeUtilsEscapeDecodeL(KEscapeEncoded2_normal, KEscapeDecoded2);
|
sl@0
|
120 |
TestEscapeUtilsEscapeDecodeL(KEscapeEncoded2_url, KEscapeDecoded2);
|
sl@0
|
121 |
|
sl@0
|
122 |
TestEscapeUtilsEscapeDecodeL(KEscapeEncoded3_auth, KEscapeDecoded3);
|
sl@0
|
123 |
TestEscapeUtilsEscapeDecodeL(KEscapeEncoded3_path, KEscapeDecoded3);
|
sl@0
|
124 |
TestEscapeUtilsEscapeDecodeL(KEscapeEncoded3_query, KEscapeDecoded3);
|
sl@0
|
125 |
TestEscapeUtilsEscapeDecodeL(KEscapeEncoded3_normal, KEscapeDecoded3);
|
sl@0
|
126 |
TestEscapeUtilsEscapeDecodeL(KEscapeEncoded3_url, KEscapeDecoded3);
|
sl@0
|
127 |
|
sl@0
|
128 |
TestEscapeUtilsEscapeDecodeL(KEscapeEncoded4_auth, KEscapeDecoded4);
|
sl@0
|
129 |
TestEscapeUtilsEscapeDecodeL(KEscapeEncoded4_path, KEscapeDecoded4);
|
sl@0
|
130 |
TestEscapeUtilsEscapeDecodeL(KEscapeEncoded4_query, KEscapeDecoded4);
|
sl@0
|
131 |
TestEscapeUtilsEscapeDecodeL(KEscapeEncoded4_normal, KEscapeDecoded4);
|
sl@0
|
132 |
TestEscapeUtilsEscapeDecodeL(KEscapeEncoded4_url, KEscapeDecoded4);
|
sl@0
|
133 |
|
sl@0
|
134 |
TestEscapeUtilsEscapeDecodeL(KEscapeEncoded5_auth, KEscapeDecoded5);
|
sl@0
|
135 |
TestEscapeUtilsEscapeDecodeL(KEscapeEncoded5_path, KEscapeDecoded5);
|
sl@0
|
136 |
TestEscapeUtilsEscapeDecodeL(KEscapeEncoded5_query, KEscapeDecoded5);
|
sl@0
|
137 |
TestEscapeUtilsEscapeDecodeL(KEscapeEncoded5_normal, KEscapeDecoded5);
|
sl@0
|
138 |
TestEscapeUtilsEscapeDecodeL(KEscapeEncoded5_url, KEscapeDecoded5);
|
sl@0
|
139 |
|
sl@0
|
140 |
TestEscapeUtilsEscapeDecodeL(KEscapeEncoded6_auth, KEscapeDecoded6);
|
sl@0
|
141 |
TestEscapeUtilsEscapeDecodeL(KEscapeEncoded6_path, KEscapeDecoded6);
|
sl@0
|
142 |
TestEscapeUtilsEscapeDecodeL(KEscapeEncoded6_query, KEscapeDecoded6);
|
sl@0
|
143 |
TestEscapeUtilsEscapeDecodeL(KEscapeEncoded6_normal, KEscapeDecoded6);
|
sl@0
|
144 |
TestEscapeUtilsEscapeDecodeL(KEscapeEncoded6_url, KEscapeDecoded6);
|
sl@0
|
145 |
|
sl@0
|
146 |
TestEscapeUtilsEscapeDecodeL(KEscapeEncoded7_auth, KEscapeDecoded7);
|
sl@0
|
147 |
TestEscapeUtilsEscapeDecodeL(KEscapeEncoded7_path, KEscapeDecoded7);
|
sl@0
|
148 |
TestEscapeUtilsEscapeDecodeL(KEscapeEncoded7_query, KEscapeDecoded7);
|
sl@0
|
149 |
TestEscapeUtilsEscapeDecodeL(KEscapeEncoded7_normal, KEscapeDecoded7);
|
sl@0
|
150 |
TestEscapeUtilsEscapeDecodeL(KEscapeEncoded7_url, KEscapeDecoded7);
|
sl@0
|
151 |
|
sl@0
|
152 |
//
|
sl@0
|
153 |
|
sl@0
|
154 |
TestEscapeUtilsUnicodeUtf8ConversionsL(KUnicode_0, KUtf8_0);
|
sl@0
|
155 |
|
sl@0
|
156 |
TestEscapeUtilsIsExcludedCharL(KExcludedChar0, KExcludedChar0_excluded);
|
sl@0
|
157 |
TestEscapeUtilsIsExcludedCharL(KExcludedChar1, KExcludedChar1_excluded);
|
sl@0
|
158 |
TestEscapeUtilsIsExcludedCharL(KExcludedChar2, KExcludedChar2_excluded);
|
sl@0
|
159 |
TestEscapeUtilsIsExcludedCharL(KExcludedChar3, KExcludedChar3_excluded);
|
sl@0
|
160 |
TestEscapeUtilsIsExcludedCharL(KExcludedChar4, KExcludedChar4_excluded);
|
sl@0
|
161 |
|
sl@0
|
162 |
TestEscapeUtilsIsEscapeTripleL(KEscapeTriple0(), KEscapeTriple0_valid, KEscapeTriple0_value);
|
sl@0
|
163 |
TestEscapeUtilsIsEscapeTripleL(KEscapeTriple1(), KEscapeTriple1_valid, KEscapeTriple1_value);
|
sl@0
|
164 |
TestEscapeUtilsIsEscapeTripleL(KEscapeTriple2(), KEscapeTriple2_valid, KEscapeTriple2_value);
|
sl@0
|
165 |
|
sl@0
|
166 |
//TConvBase64 Test
|
sl@0
|
167 |
TestEscapeUtilsBase64ConversionL(KEscapeDecoded2);
|
sl@0
|
168 |
}
|
sl@0
|
169 |
|
sl@0
|
170 |
void CEscapeUtilsTest::TestEscapeUtilsEscapeEncodeL(const TDesC& aData, const TDesC& aExpected, EscapeUtils::TEscapeMode aEscapeMode)
|
sl@0
|
171 |
{
|
sl@0
|
172 |
iTestHarness->StartTestL(_L("Test EscapeUtils EscapeEncode (16-bit)"));
|
sl@0
|
173 |
|
sl@0
|
174 |
TInt error = DoTestEscapeUtilsEscapeEncode<HBufC16>(aData, aExpected, aEscapeMode);
|
sl@0
|
175 |
|
sl@0
|
176 |
iTestHarness->EndTest(error);
|
sl@0
|
177 |
|
sl@0
|
178 |
// Make 8-bit copy
|
sl@0
|
179 |
HBufC8* dataBuf = HBufC8::NewLC(aData.Length());
|
sl@0
|
180 |
TPtr8 data8Bit = dataBuf->Des();
|
sl@0
|
181 |
data8Bit.Copy(aData);
|
sl@0
|
182 |
|
sl@0
|
183 |
HBufC8* expectedBuf = HBufC8::NewLC(aExpected.Length());
|
sl@0
|
184 |
TPtr8 expected8Bit = expectedBuf->Des();
|
sl@0
|
185 |
expected8Bit.Copy(aExpected);
|
sl@0
|
186 |
|
sl@0
|
187 |
iTestHarness->StartTestL(_L("Test EscapeUtils EscapeEncode (8-bit)"));
|
sl@0
|
188 |
|
sl@0
|
189 |
error = DoTestEscapeUtilsEscapeEncode<HBufC8>(data8Bit, expected8Bit, aEscapeMode);
|
sl@0
|
190 |
|
sl@0
|
191 |
iTestHarness->EndTest(error);
|
sl@0
|
192 |
|
sl@0
|
193 |
CleanupStack::PopAndDestroy(2, dataBuf); // dataBuf, expectedBuf
|
sl@0
|
194 |
}
|
sl@0
|
195 |
|
sl@0
|
196 |
void CEscapeUtilsTest::TestEscapeUtilsEscapeDecodeL(const TDesC& aData, const TDesC& aExpected)
|
sl@0
|
197 |
{
|
sl@0
|
198 |
iTestHarness->StartTestL(_L("Test EscapeUtils EscapeDecode (16-bit)"));
|
sl@0
|
199 |
|
sl@0
|
200 |
TInt error = DoTestEscapeUtilsEscapeDecode<HBufC16>(aData, aExpected);
|
sl@0
|
201 |
|
sl@0
|
202 |
iTestHarness->EndTest(error);
|
sl@0
|
203 |
|
sl@0
|
204 |
// Make 8-bit copy
|
sl@0
|
205 |
HBufC8* dataBuf = HBufC8::NewLC(aData.Length());
|
sl@0
|
206 |
TPtr8 data8Bit = dataBuf->Des();
|
sl@0
|
207 |
data8Bit.Copy(aData);
|
sl@0
|
208 |
|
sl@0
|
209 |
HBufC8* expectedBuf = HBufC8::NewLC(aExpected.Length());
|
sl@0
|
210 |
TPtr8 expected8Bit = expectedBuf->Des();
|
sl@0
|
211 |
expected8Bit.Copy(aExpected);
|
sl@0
|
212 |
|
sl@0
|
213 |
iTestHarness->StartTestL(_L("Test EscapeUtils EscapeDecode (8-bit)"));
|
sl@0
|
214 |
|
sl@0
|
215 |
error = DoTestEscapeUtilsEscapeDecode<HBufC8>(data8Bit, expected8Bit);
|
sl@0
|
216 |
|
sl@0
|
217 |
iTestHarness->EndTest(error);
|
sl@0
|
218 |
|
sl@0
|
219 |
CleanupStack::PopAndDestroy(2, dataBuf); // dataBuf, expectedBuf
|
sl@0
|
220 |
}
|
sl@0
|
221 |
|
sl@0
|
222 |
void CEscapeUtilsTest::TestEscapeUtilsUnicodeUtf8ConversionsL(const TDesC& aUnicode, const TDesC& aUtf8)
|
sl@0
|
223 |
{
|
sl@0
|
224 |
// Make 8-bit copy of utf8
|
sl@0
|
225 |
HBufC8* utf8Buf = HBufC8::NewLC(aUtf8.Length());
|
sl@0
|
226 |
utf8Buf->Des().Copy(aUtf8);
|
sl@0
|
227 |
|
sl@0
|
228 |
// Escape decode
|
sl@0
|
229 |
HBufC8* unescapedUtf8Buf = EscapeUtils::EscapeDecodeL(*utf8Buf);
|
sl@0
|
230 |
CleanupStack::PushL(unescapedUtf8Buf);
|
sl@0
|
231 |
TPtr8 unescapedUtf8 = unescapedUtf8Buf->Des();
|
sl@0
|
232 |
|
sl@0
|
233 |
iTestHarness->StartTestL(_L("Test EscapeUtils ConvertFromUnicodeToUtf8"));
|
sl@0
|
234 |
|
sl@0
|
235 |
HBufC8* convertedUtf8 = NULL;
|
sl@0
|
236 |
TRAPD(error, convertedUtf8 = EscapeUtils::ConvertFromUnicodeToUtf8L(aUnicode));
|
sl@0
|
237 |
if( error == KErrNone )
|
sl@0
|
238 |
{
|
sl@0
|
239 |
// Check is expected
|
sl@0
|
240 |
if( convertedUtf8->Compare(unescapedUtf8) != 0 )
|
sl@0
|
241 |
{
|
sl@0
|
242 |
error = KErrNotFound;
|
sl@0
|
243 |
}
|
sl@0
|
244 |
delete convertedUtf8;
|
sl@0
|
245 |
}
|
sl@0
|
246 |
iTestHarness->EndTest(error);
|
sl@0
|
247 |
|
sl@0
|
248 |
iTestHarness->StartTestL(_L("Test EscapeUtils ConvertToUnicodeFromUtf8"));
|
sl@0
|
249 |
|
sl@0
|
250 |
HBufC16* convertedUnicode = NULL;
|
sl@0
|
251 |
TRAP(error, convertedUnicode = EscapeUtils::ConvertToUnicodeFromUtf8L(unescapedUtf8));
|
sl@0
|
252 |
if( error == KErrNone )
|
sl@0
|
253 |
{
|
sl@0
|
254 |
// Check is expected
|
sl@0
|
255 |
if( convertedUnicode->Compare(aUnicode) != 0 )
|
sl@0
|
256 |
{
|
sl@0
|
257 |
error = KErrNotFound;
|
sl@0
|
258 |
}
|
sl@0
|
259 |
delete convertedUnicode;
|
sl@0
|
260 |
}
|
sl@0
|
261 |
iTestHarness->EndTest(error);
|
sl@0
|
262 |
|
sl@0
|
263 |
CleanupStack::PopAndDestroy(2, utf8Buf); // utf8Buf, unescapedUtf8Buf
|
sl@0
|
264 |
}
|
sl@0
|
265 |
|
sl@0
|
266 |
void CEscapeUtilsTest::TestEscapeUtilsIsExcludedCharL(TChar aChar, TBool aIsExcluded)
|
sl@0
|
267 |
{
|
sl@0
|
268 |
iTestHarness->StartTestL(_L("Test EscapeUtils IsExcludedChar"));
|
sl@0
|
269 |
|
sl@0
|
270 |
TBool excluded = EscapeUtils::IsExcludedChar(aChar);
|
sl@0
|
271 |
|
sl@0
|
272 |
TInt error = KErrNone;
|
sl@0
|
273 |
if( (!excluded && aIsExcluded) | (excluded && !aIsExcluded) )
|
sl@0
|
274 |
{
|
sl@0
|
275 |
error = KErrNotFound;
|
sl@0
|
276 |
}
|
sl@0
|
277 |
iTestHarness->EndTest(error);
|
sl@0
|
278 |
}
|
sl@0
|
279 |
|
sl@0
|
280 |
void CEscapeUtilsTest::TestEscapeUtilsIsEscapeTripleL(const TDesC& aData, TBool aIsTriple, TInt aValue)
|
sl@0
|
281 |
{
|
sl@0
|
282 |
iTestHarness->StartTestL(_L("Test EscapeUtils IsEscapeTriple (16-Bit)"));
|
sl@0
|
283 |
|
sl@0
|
284 |
TInt error = DoTestEscapeUtilsIsEscapeTriple(aData, aIsTriple, aValue);
|
sl@0
|
285 |
|
sl@0
|
286 |
iTestHarness->EndTest(error);
|
sl@0
|
287 |
|
sl@0
|
288 |
// Make 8-bit copy
|
sl@0
|
289 |
HBufC8* dataBuf = HBufC8::NewLC(aData.Length());
|
sl@0
|
290 |
TPtr8 data8Bit = dataBuf->Des();
|
sl@0
|
291 |
data8Bit.Copy(aData);
|
sl@0
|
292 |
|
sl@0
|
293 |
iTestHarness->StartTestL(_L("Test EscapeUtils IsEscapeTriple (8-Bit)"));
|
sl@0
|
294 |
|
sl@0
|
295 |
error = DoTestEscapeUtilsIsEscapeTriple(data8Bit, aIsTriple, aValue);
|
sl@0
|
296 |
|
sl@0
|
297 |
iTestHarness->EndTest(error);
|
sl@0
|
298 |
|
sl@0
|
299 |
CleanupStack::PopAndDestroy(dataBuf); // dataBuf
|
sl@0
|
300 |
}
|
sl@0
|
301 |
|
sl@0
|
302 |
void CEscapeUtilsTest::TestEscapeUtilsBase64ConversionL(const TDesC& aData)
|
sl@0
|
303 |
{
|
sl@0
|
304 |
iTestHarness->StartTestL(_L("Test EscapeUtils Base64 Conversion Check"));
|
sl@0
|
305 |
|
sl@0
|
306 |
TInt error = KErrNotFound;
|
sl@0
|
307 |
HBufC8* dataBuf = HBufC8::NewMaxLC (aData.Length());
|
sl@0
|
308 |
TPtr8 dataPtr(dataBuf->Des());
|
sl@0
|
309 |
|
sl@0
|
310 |
HBufC8* encodedBuf = HBufC8::NewMaxLC(aData.Length() * 2);
|
sl@0
|
311 |
TPtr8 encodedPtr(encodedBuf->Des());
|
sl@0
|
312 |
|
sl@0
|
313 |
TBase64 codec;
|
sl@0
|
314 |
codec.Encode(dataPtr, encodedPtr);
|
sl@0
|
315 |
|
sl@0
|
316 |
HBufC8* decodedBuf = HBufC8::NewMaxLC(aData.Length());
|
sl@0
|
317 |
TPtr8 decodedPtr(decodedBuf->Des());
|
sl@0
|
318 |
|
sl@0
|
319 |
codec.Decode(encodedPtr, decodedPtr);
|
sl@0
|
320 |
if(decodedPtr.Compare(dataPtr) == 0)
|
sl@0
|
321 |
{
|
sl@0
|
322 |
error = KErrNone;
|
sl@0
|
323 |
}
|
sl@0
|
324 |
iTestHarness->EndTest(error);
|
sl@0
|
325 |
|
sl@0
|
326 |
CleanupStack::PopAndDestroy(decodedBuf); // decodedBuf
|
sl@0
|
327 |
CleanupStack::PopAndDestroy(encodedBuf); // encodedBuf
|
sl@0
|
328 |
CleanupStack::PopAndDestroy(dataBuf); // dataBuf
|
sl@0
|
329 |
}
|
sl@0
|
330 |
|
sl@0
|
331 |
//
|
sl@0
|
332 |
//
|
sl@0
|
333 |
// Implementation of LOCAL functions
|
sl@0
|
334 |
//
|
sl@0
|
335 |
//
|
sl@0
|
336 |
|
sl@0
|
337 |
template<class HBufCType, class TDesCType>
|
sl@0
|
338 |
LOCAL_C TInt DoTestEscapeUtilsEscapeEncode(const TDesCType& aData, const TDesCType& aExpected, EscapeUtils::TEscapeMode aEscapeMode)
|
sl@0
|
339 |
{
|
sl@0
|
340 |
// Do escaping
|
sl@0
|
341 |
HBufCType* escaped = NULL;
|
sl@0
|
342 |
TRAPD(error, escaped = EscapeUtils::EscapeEncodeL(aData, aEscapeMode));
|
sl@0
|
343 |
if( error != KErrNone )
|
sl@0
|
344 |
{
|
sl@0
|
345 |
return KErrNotFound;
|
sl@0
|
346 |
}
|
sl@0
|
347 |
// Check with expected
|
sl@0
|
348 |
if( escaped->Compare(aExpected) != 0 )
|
sl@0
|
349 |
{
|
sl@0
|
350 |
delete escaped;
|
sl@0
|
351 |
return KErrNotFound;
|
sl@0
|
352 |
}
|
sl@0
|
353 |
delete escaped;
|
sl@0
|
354 |
return KErrNone;
|
sl@0
|
355 |
}
|
sl@0
|
356 |
|
sl@0
|
357 |
template<class HBufCType, class TDesCType>
|
sl@0
|
358 |
LOCAL_C TInt DoTestEscapeUtilsEscapeDecode(const TDesCType& aData, const TDesCType& aExpected)
|
sl@0
|
359 |
{
|
sl@0
|
360 |
// Do unescaping
|
sl@0
|
361 |
HBufCType* unescaped = NULL;
|
sl@0
|
362 |
TRAPD(error, unescaped = EscapeUtils::EscapeDecodeL(aData));
|
sl@0
|
363 |
if( error != KErrNone )
|
sl@0
|
364 |
{
|
sl@0
|
365 |
return KErrNotFound;
|
sl@0
|
366 |
}
|
sl@0
|
367 |
// Check with expected
|
sl@0
|
368 |
if( unescaped->Compare(aExpected) != 0 )
|
sl@0
|
369 |
{
|
sl@0
|
370 |
delete unescaped;
|
sl@0
|
371 |
return KErrNotFound;
|
sl@0
|
372 |
}
|
sl@0
|
373 |
delete unescaped;
|
sl@0
|
374 |
return KErrNone;
|
sl@0
|
375 |
}
|
sl@0
|
376 |
|
sl@0
|
377 |
template<class TDesCType>
|
sl@0
|
378 |
LOCAL_C TInt DoTestEscapeUtilsIsEscapeTriple(const TDesCType& aData, TBool aIsTriple, TInt aValue)
|
sl@0
|
379 |
{
|
sl@0
|
380 |
// Check for the triple
|
sl@0
|
381 |
TInt value;
|
sl@0
|
382 |
TBool triple = EscapeUtils::IsEscapeTriple(aData, value);
|
sl@0
|
383 |
if( (!triple && aIsTriple) | (triple && !aIsTriple) )
|
sl@0
|
384 |
{
|
sl@0
|
385 |
return KErrNotFound;
|
sl@0
|
386 |
}
|
sl@0
|
387 |
if( triple && value != aValue )
|
sl@0
|
388 |
{
|
sl@0
|
389 |
return KErrNotFound;
|
sl@0
|
390 |
}
|
sl@0
|
391 |
return KErrNone;
|
sl@0
|
392 |
}
|