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