66 |
65 |
67 test.Start(_L("Test multiple PopDirs")); |
66 test.Start(_L("Test multiple PopDirs")); |
68 TParse parser; |
67 TParse parser; |
69 TInt r=parser.Set(_L("\\WWW\\XXX\\YYY\\ZZZ\\"),NULL,NULL); |
68 TInt r=parser.Set(_L("\\WWW\\XXX\\YYY\\ZZZ\\"),NULL,NULL); |
70 // TParsePtrC parser(_L("\\WWW\\XXX\\YYY\\ZZZ\\")); |
69 // TParsePtrC parser(_L("\\WWW\\XXX\\YYY\\ZZZ\\")); |
71 test_KErrNone(r); |
70 test(r==KErrNone); |
72 r=parser.PopDir(); |
71 r=parser.PopDir(); |
73 test_KErrNone(r); |
72 test(r==KErrNone); |
74 test(parser.Path()==_L("\\WWW\\XXX\\YYY\\")); |
73 test(parser.Path()==_L("\\WWW\\XXX\\YYY\\")); |
75 r=parser.PopDir(); |
74 r=parser.PopDir(); |
76 test_KErrNone(r); |
75 test(r==KErrNone); |
77 test(parser.Path()==_L("\\WWW\\XXX\\")); |
76 test(parser.Path()==_L("\\WWW\\XXX\\")); |
78 r=parser.PopDir(); |
77 r=parser.PopDir(); |
79 test_KErrNone(r); |
78 test(r==KErrNone); |
80 test(parser.Path()==_L("\\WWW\\")); |
79 test(parser.Path()==_L("\\WWW\\")); |
81 r=parser.PopDir(); |
80 r=parser.PopDir(); |
82 test_KErrNone(r); |
81 test(r==KErrNone); |
83 test(parser.Path()==_L("\\")); |
82 test(parser.Path()==_L("\\")); |
84 r=parser.PopDir(); |
83 r=parser.PopDir(); |
85 test_Value(r, r == KErrGeneral); |
84 test(r==KErrGeneral); |
86 // |
85 // |
87 test(parser.Set(_L("C:\\Documents\\.TXT"),NULL,NULL)==KErrNone); |
86 test(parser.Set(_L("C:\\Documents\\.TXT"),NULL,NULL)==KErrNone); |
88 test(parser.PopDir()==KErrNone); |
87 test(parser.PopDir()==KErrNone); |
89 test(parser.FullName()==_L("C:\\.TXT")); |
88 test(parser.FullName()==_L("C:\\.TXT")); |
90 test.End(); |
89 test.End(); |
102 TPtrC null=_L("\\"); |
101 TPtrC null=_L("\\"); |
103 TPtrC x=_L("X:"); |
102 TPtrC x=_L("X:"); |
104 TPtrC x2=_L("X:\\"); |
103 TPtrC x2=_L("X:\\"); |
105 TPtrC z=_L("Z:"); |
104 TPtrC z=_L("Z:"); |
106 TInt r=parser.Set(_L("Z:\\Hello"),&one,&null); |
105 TInt r=parser.Set(_L("Z:\\Hello"),&one,&null); |
107 test_KErrNone(r); |
106 test(r==KErrNone); |
108 test(parser.FullName()==_L("Z:\\Hello")); |
107 test(parser.FullName()==_L("Z:\\Hello")); |
109 TPtrC sht=_L("*.SHT"); |
108 TPtrC sht=_L("*.SHT"); |
110 r=parser.Set(_L("Z:"),&sht,&x); |
109 r=parser.Set(_L("Z:"),&sht,&x); |
111 test_KErrNone(r); |
110 test(r==KErrNone); |
112 test(parser.FullName()==_L("Z:*.SHT")); |
111 test(parser.FullName()==_L("Z:*.SHT")); |
113 r=parser.Set(_L("Hello"),&z,&x2); |
112 r=parser.Set(_L("Hello"),&z,&x2); |
114 test_KErrNone(r); |
113 test(r==KErrNone); |
115 test(parser.FullName()==_L("Z:\\Hello")); |
114 test(parser.FullName()==_L("Z:\\Hello")); |
116 r=parser.Set(_L("W:\\Hello"),&z,&x2); |
115 r=parser.Set(_L("W:\\Hello"),&z,&x2); |
117 test_KErrNone(r); |
116 test(r==KErrNone); |
118 test(parser.FullName()==_L("W:\\Hello")); |
117 test(parser.FullName()==_L("W:\\Hello")); |
119 TPtrC abcdefg=_L("abcdefg"); |
118 TPtrC abcdefg=_L("abcdefg"); |
120 TPtrC onetwo=_L("X:\\ONE\\TWO\\.CCC"); |
119 TPtrC onetwo=_L("X:\\ONE\\TWO\\.CCC"); |
121 r=parser.Set(_L("W:"),&abcdefg,&onetwo); |
120 r=parser.Set(_L("W:"),&abcdefg,&onetwo); |
122 test_KErrNone(r); |
121 test(r==KErrNone); |
123 test(parser.FullName()==_L("W:\\ONE\\TWO\\abcdefg.CCC")); |
122 test(parser.FullName()==_L("W:\\ONE\\TWO\\abcdefg.CCC")); |
124 TPtrC y=_L("Y:"); |
123 TPtrC y=_L("Y:"); |
125 TPtrC xhello=_L("X:\\HELLO\\"); |
124 TPtrC xhello=_L("X:\\HELLO\\"); |
126 r=parser.Set(_L("World"),&y,&xhello); |
125 r=parser.Set(_L("World"),&y,&xhello); |
127 test_KErrNone(r); |
126 test(r==KErrNone); |
128 test(parser.FullName()==_L("Y:\\HELLO\\World")); |
127 test(parser.FullName()==_L("Y:\\HELLO\\World")); |
129 TPtrC xhelloext=_L("X:\\HELLO\\.EXT"); |
128 TPtrC xhelloext=_L("X:\\HELLO\\.EXT"); |
130 r=parser.Set(_L("World"),&y,&xhelloext); |
129 r=parser.Set(_L("World"),&y,&xhelloext); |
131 test_KErrNone(r); |
130 test(r==KErrNone); |
132 test(parser.FullName()==_L("Y:\\HELLO\\World.EXT")); |
131 test(parser.FullName()==_L("Y:\\HELLO\\World.EXT")); |
133 test.End(); |
132 test.End(); |
134 } |
133 } |
135 |
134 |
136 LOCAL_C void Test4() |
135 LOCAL_C void Test4() |
142 test.Start(_L("Test conflicting relative drive letters")); |
141 test.Start(_L("Test conflicting relative drive letters")); |
143 TParse parser; |
142 TParse parser; |
144 TPtrC xone=_L("X:\\ONE\\"); |
143 TPtrC xone=_L("X:\\ONE\\"); |
145 TPtrC y=_L("Y:\\"); |
144 TPtrC y=_L("Y:\\"); |
146 TInt r=parser.Set(_L("Z:\\Hello"),&xone,&y); |
145 TInt r=parser.Set(_L("Z:\\Hello"),&xone,&y); |
147 test_KErrNone(r); |
146 test(r==KErrNone); |
148 test(parser.FullName()==_L("Z:\\Hello")); |
147 test(parser.FullName()==_L("Z:\\Hello")); |
149 TPtrC zone=_L("Z:\\ONE\\"); |
148 TPtrC zone=_L("Z:\\ONE\\"); |
150 TPtrC xnew=_L("X:\\NEW\\"); |
149 TPtrC xnew=_L("X:\\NEW\\"); |
151 r=parser.Set(_L("\\Hello"),&zone,&xnew); |
150 r=parser.Set(_L("\\Hello"),&zone,&xnew); |
152 test_KErrNone(r); |
151 test(r==KErrNone); |
153 test(parser.FullName()==_L("Z:\\Hello")); |
152 test(parser.FullName()==_L("Z:\\Hello")); |
154 TPtrC aone=_L("A:\\ONE\\"); |
153 TPtrC aone=_L("A:\\ONE\\"); |
155 TPtrC anew=_L("A:\\NEW\\"); |
154 TPtrC anew=_L("A:\\NEW\\"); |
156 r=parser.Set(_L("A:Hello"),&aone,&anew); |
155 r=parser.Set(_L("A:Hello"),&aone,&anew); |
157 test_KErrNone(r); |
156 test(r==KErrNone); |
158 test(parser.FullName()==_L("A:\\ONE\\Hello")); |
157 test(parser.FullName()==_L("A:\\ONE\\Hello")); |
159 TPtrC a=_L("A:\\"); |
158 TPtrC a=_L("A:\\"); |
160 r=parser.Set(_L("Hello"),&a,&xnew); |
159 r=parser.Set(_L("Hello"),&a,&xnew); |
161 test_KErrNone(r); |
160 test(r==KErrNone); |
162 test(parser.FullName()==_L("A:\\Hello")); |
161 test(parser.FullName()==_L("A:\\Hello")); |
163 r=parser.Set(_L("Hello"),&aone,&xnew); |
162 r=parser.Set(_L("Hello"),&aone,&xnew); |
164 test_KErrNone(r); |
163 test(r==KErrNone); |
165 test(parser.FullName()==_L("A:\\ONE\\Hello")); |
164 test(parser.FullName()==_L("A:\\ONE\\Hello")); |
166 test.End(); |
165 test.End(); |
167 } |
166 } |
168 |
167 |
169 |
168 |
302 TParse parser; |
301 TParse parser; |
303 TBuf<16> nameBuf=_L(" name.txt"); |
302 TBuf<16> nameBuf=_L(" name.txt"); |
304 TBuf<16> pathBuf=_L("\\PATH\\"); |
303 TBuf<16> pathBuf=_L("\\PATH\\"); |
305 |
304 |
306 TInt r=parser.Set(pathBuf,NULL,&nameBuf); |
305 TInt r=parser.Set(pathBuf,NULL,&nameBuf); |
307 test_KErrNone(r); |
306 test(r==KErrNone); |
308 test(parser.FullName()==_L("\\PATH\\ name.txt")); |
307 test(parser.FullName()==_L("\\PATH\\ name.txt")); |
309 r=parser.Set(_L(""),&nameBuf,&pathBuf); |
308 r=parser.Set(_L(""),&nameBuf,&pathBuf); |
310 test_KErrNone(r); |
309 test(r==KErrNone); |
311 test(parser.FullName()==_L("\\PATH\\ name.txt")); |
310 test(parser.FullName()==_L("\\PATH\\ name.txt")); |
312 r=parser.Set(_L(" name.txt"),NULL,&pathBuf); |
311 r=parser.Set(_L(" name.txt"),NULL,&pathBuf); |
313 test_KErrNone(r); |
312 test(r==KErrNone); |
314 test(parser.FullName()==_L("\\PATH\\ name.txt")); |
313 test(parser.FullName()==_L("\\PATH\\ name.txt")); |
315 r=parser.Set(nameBuf,&pathBuf,NULL); |
314 r=parser.Set(nameBuf,&pathBuf,NULL); |
316 test_KErrNone(r); |
315 test(r==KErrNone); |
317 test(parser.FullName()==_L("\\PATH\\ name.txt")); |
316 test(parser.FullName()==_L("\\PATH\\ name.txt")); |
318 |
317 |
319 TBuf<16> badPath=_L(" \\PATH\\"); |
318 TBuf<16> badPath=_L(" \\PATH\\"); |
320 r=parser.Set(_L("C:\\"),NULL,&badPath); |
319 r=parser.Set(_L("C:\\"),NULL,&badPath); |
321 test_Value(r, r == KErrBadName); |
320 test(r==KErrBadName); |
322 r=parser.Set(_L("C:\\"),&badPath,NULL); |
321 r=parser.Set(_L("C:\\"),&badPath,NULL); |
323 test_Value(r, r == KErrBadName); |
322 test(r==KErrBadName); |
324 |
323 |
325 TBuf<16> spacePath=_L("\\ PATH\\"); |
324 TBuf<16> spacePath=_L("\\ PATH\\"); |
326 r=parser.Set(_L("C:"),&nameBuf,&spacePath); |
325 r=parser.Set(_L("C:"),&nameBuf,&spacePath); |
327 test_KErrNone(r); |
326 test(r==KErrNone); |
328 test(parser.FullName()==_L("C:\\ PATH\\ name.txt")); |
327 test(parser.FullName()==_L("C:\\ PATH\\ name.txt")); |
329 |
328 |
330 TBuf<32> spacename=_L("\\ name . txt "); |
329 TBuf<32> spacename=_L("\\ name . txt "); |
331 r=parser.Set(_L("C:"),&spacename,NULL); |
330 r=parser.Set(_L("C:"),&spacename,NULL); |
332 test_KErrNone(r); |
331 test(r==KErrNone); |
333 test(parser.FullName()==_L("C:\\ name . txt")); |
332 test(parser.FullName()==_L("C:\\ name . txt")); |
334 |
333 |
335 // Illegal (?) values |
334 // Illegal (?) values |
336 |
335 |
337 TBuf<16> pureSpace=_L(" "); |
336 TBuf<16> pureSpace=_L(" "); |
338 r=parser.Set(_L("C:\\NAME\\"),NULL,&pureSpace); |
337 r=parser.Set(_L("C:\\NAME\\"),NULL,&pureSpace); |
339 test_KErrNone(r); |
338 test(r==KErrNone); |
340 test(parser.FullName()==_L("C:\\NAME\\")); // Trims right off name |
339 test(parser.FullName()==_L("C:\\NAME\\")); // Trims right off name |
341 r=parser.Set(_L("C:\\NAME\\ "),NULL,NULL); |
340 r=parser.Set(_L("C:\\NAME\\ "),NULL,NULL); |
342 test_KErrNone(r); |
341 test(r==KErrNone); |
343 test(parser.FullName()==_L("C:\\NAME\\")); |
342 test(parser.FullName()==_L("C:\\NAME\\")); |
344 |
343 |
345 TBuf<16> spacePlusExt=_L(" . ext "); |
344 TBuf<16> spacePlusExt=_L(" . ext "); |
346 r=parser.Set(_L("C:\\NAME\\"),NULL,&spacePlusExt); |
345 r=parser.Set(_L("C:\\NAME\\"),NULL,&spacePlusExt); |
347 test_KErrNone(r); |
346 test(r==KErrNone); |
348 test(parser.FullName()==_L("C:\\NAME\\ . ext")); // Trims right off ext |
347 test(parser.FullName()==_L("C:\\NAME\\ . ext")); // Trims right off ext |
349 r=parser.Set(_L("C:\\NAME\\ . ext "),NULL,NULL); |
348 r=parser.Set(_L("C:\\NAME\\ . ext "),NULL,NULL); |
350 test_KErrNone(r); |
349 test(r==KErrNone); |
351 test(parser.FullName()==_L("C:\\NAME\\ . ext")); |
350 test(parser.FullName()==_L("C:\\NAME\\ . ext")); |
352 |
351 |
353 TBuf<32> pathSpace=_L("\\asdf\\zxcv\\ \\asdf\\"); |
352 TBuf<32> pathSpace=_L("\\asdf\\zxcv\\ \\asdf\\"); |
354 r=parser.Set(_L("C:"),NULL,&pathSpace); |
353 r=parser.Set(_L("C:"),NULL,&pathSpace); |
355 test_KErrNone(r); |
354 test(r==KErrNone); |
356 test(parser.FullName()==_L("C:\\asdf\\zxcv\\ \\asdf\\")); // Leaves spaces in path |
355 test(parser.FullName()==_L("C:\\asdf\\zxcv\\ \\asdf\\")); // Leaves spaces in path |
357 r=parser.Set(_L("C:\\NAME\\ \\alt.sdf"),NULL,NULL); |
356 r=parser.Set(_L("C:\\NAME\\ \\alt.sdf"),NULL,NULL); |
358 test_KErrNone(r); |
357 test(r==KErrNone); |
359 test(parser.FullName()==_L("C:\\NAME\\ \\alt.sdf")); |
358 test(parser.FullName()==_L("C:\\NAME\\ \\alt.sdf")); |
360 |
359 |
361 |
360 |
362 TBuf<32> zeroPath=_L("\\asdf\\wqer\\\\asdf\\"); |
361 TBuf<32> zeroPath=_L("\\asdf\\wqer\\\\asdf\\"); |
363 r=parser.Set(_L("NAME.TXT"),NULL,&zeroPath); |
362 r=parser.Set(_L("NAME.TXT"),NULL,&zeroPath); |
364 test_KErrNone(r); |
363 test(r==KErrNone); |
365 test(parser.FullName()==_L("\\asdf\\wqer\\\\asdf\\NAME.TXT")); // Leaves zerolength path |
364 test(parser.FullName()==_L("\\asdf\\wqer\\\\asdf\\NAME.TXT")); // Leaves zerolength path |
366 r=parser.Set(_L("C:\\NAME\\\\alt.sdf"),NULL,NULL); |
365 r=parser.Set(_L("C:\\NAME\\\\alt.sdf"),NULL,NULL); |
367 test_KErrNone(r); |
366 test(r==KErrNone); |
368 test(parser.FullName()==_L("C:\\NAME\\\\alt.sdf")); |
367 test(parser.FullName()==_L("C:\\NAME\\\\alt.sdf")); |
369 test.End(); |
368 test.End(); |
370 } |
369 } |
371 |
370 |
372 LOCAL_C void Test10() |
371 LOCAL_C void Test10() |
382 for(TInt i=0;i<63;i++) |
381 for(TInt i=0;i<63;i++) |
383 testPath+=pathPart; |
382 testPath+=pathPart; |
384 |
383 |
385 RFs fs; |
384 RFs fs; |
386 TInt r=fs.Connect(); |
385 TInt r=fs.Connect(); |
387 test_KErrNone(r); |
386 test(r==KErrNone); |
388 TParse parse; |
387 TParse parse; |
389 r=fs.Parse(testPath,parse); |
388 r=fs.Parse(testPath,parse); |
390 test_Value(r, r == KErrBadName); |
389 test(r==KErrBadName); |
391 fs.Close(); |
390 fs.Close(); |
392 |
391 |
393 TFileName longFileName; |
392 TFileName longFileName; |
394 longFileName.SetLength(254); |
393 longFileName.SetLength(254); |
395 // Mem::Fill((TUint8*)longFileName.Ptr(),254,'A'); |
394 // Mem::Fill((TUint8*)longFileName.Ptr(),254,'A'); |
396 Mem::Fill((TUint8*)longFileName.Ptr(),254*sizeof(TText),'A'); |
395 Mem::Fill((TUint8*)longFileName.Ptr(),254*sizeof(TText),'A'); |
397 longFileName[0]='\\'; |
396 longFileName[0]='\\'; |
398 longFileName[253]='\\'; |
397 longFileName[253]='\\'; |
399 r=parse.Set(longFileName,&test_string,NULL); |
398 r=parse.Set(longFileName,&test_string,NULL); |
400 test_KErrNone(r); |
399 test(r==KErrNone); |
401 r=parse.PopDir(); |
400 r=parse.PopDir(); |
402 test_KErrNone(r); |
401 test(r==KErrNone); |
403 |
402 |
404 longFileName[123]='\\'; |
403 longFileName[123]='\\'; |
405 r=parse.Set(longFileName,&test_string,NULL); |
404 r=parse.Set(longFileName,&test_string,NULL); |
406 test_KErrNone(r); |
405 test(r==KErrNone); |
407 r=parse.PopDir(); |
406 r=parse.PopDir(); |
408 test_KErrNone(r); |
407 test(r==KErrNone); |
409 TPtrC startPath((TText*)longFileName.Ptr(),124); |
408 TPtrC startPath((TText*)longFileName.Ptr(),124); |
410 test(parse.Path()==startPath); |
409 test(parse.Path()==startPath); |
411 |
410 |
412 TPtrC endPath((TText*)longFileName.Ptr()+124,252-124+1); |
411 TPtrC endPath((TText*)longFileName.Ptr()+124,252-124+1); |
413 r=parse.AddDir(endPath); |
412 r=parse.AddDir(endPath); |
414 test_KErrNone(r); |
413 test(r==KErrNone); |
415 test(parse.Path()==longFileName); |
414 test(parse.Path()==longFileName); |
416 } |
415 } |
417 |
416 |
418 LOCAL_C void DoTestsL() |
417 LOCAL_C void DoTestsL() |
419 // |
418 // |