Update contrib.
1 // Copyright (c) 2005-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 the License "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".
8 // Initial Contributors:
9 // Nokia Corporation - initial contribution.
14 // Test opening of hidden, replaced and newly added files belonging to multiple ROFS.
19 #include <e32std_private.h>
26 RTest test( _L("T_ROFSMULTIPLE") );
28 // Required to test multiple ROFS
29 _LIT( KTestHidden1, "Multiple\\hidden1.txt" );
30 _LIT( KTestHidden2, "Multiple\\hidden2.txt" );
31 _LIT( KTestHidden3, "Multiple\\hidden3.txt" );
32 _LIT( KTestNew1, "Multiple\\new1.txt" );
33 _LIT( KTestNew2, "Multiple\\new2.txt" );
34 _LIT( KTestNew3, "Multiple\\new3.txt" );
35 _LIT( KTestNew4, "Multiple\\new4.txt" );
36 _LIT( KTestReplaceMe1, "Multiple\\replaceme1.txt" );
37 _LIT( KTestReplaceMe2, "Multiple\\replaceme2.txt" );
38 _LIT( KTestReplaceMe3, "Multiple\\replaceme3.txt" );
39 _LIT( KTestReplaceMe4, "Multiple\\replaceme4.txt" );
40 _LIT( KTestReplaceMe5, "Multiple\\replaceme5.txt" );
41 _LIT( KTestRom, "Multiple\\rom.txt" );
42 _LIT( KTestRomHide, "Multiple\\romhide.txt" );
43 _LIT( KTestRomReplace, "Multiple\\romreplace.txt" );
44 _LIT( KTestRomReplaceFat, "Multiple\\romreplacefat.txt" );
45 _LIT8( KReplaceMe8FileContent1, "rofs1" );
46 _LIT8( KReplaceMe8FileContent2, "rofs2" );
47 _LIT8( KReplaceMe8FileContent3, "rofs3" );
48 _LIT8( KReplaceMe8FileContent5, "cfat5" );
51 _LIT( KRootFileMultiple, "Multiple\\multirofs.txt");
53 _LIT( KDriveBase, " :\\" );
55 const TInt KNewlyAddedFilesCount = 5;
56 const TDesC* const newlyAddedFilesArray[5] =
58 &KTestNew1, &KTestNew2, &KTestNew3, &KTestNew4, &KTestRom
61 const TInt KReplacedFilesCount = 7;
62 const TDesC* const replacedFilesArray[7] =
64 &KTestReplaceMe1, &KTestReplaceMe2, &KTestReplaceMe3, &KTestReplaceMe4, &KTestRomReplace, &KTestReplaceMe5, &KTestRomReplaceFat
67 const TInt KHiddenFilesCount = 4;
68 const TDesC* const hiddenFilesArray[4] =
70 &KTestHidden1, &KTestHidden2, &KTestHidden3, &KTestRomHide
73 LOCAL_C void TestMultipleRofsL(TInt aDriveToTest)
78 TFileName name(KDriveBase);
79 name[0] = TText('A' + aDriveToTest);
82 test.Next( _L("Test opening hidden files.") );
83 for( i = 0; i < KHiddenFilesCount; i++ )
85 name.SetLength( 3 ); // trim back to drive specifier
86 name.Append( *hiddenFilesArray[i] );
87 test.Printf( _L("Opening file %S\n"), &name );
89 TInt r = file.Open( TheFs, name, EFileRead );
90 TEST_FOR_MATCH( r, KErrNotFound );
95 test.Next( _L("Test opening newly added files.") );
96 for( i = 0; i < KNewlyAddedFilesCount; i++ )
99 name.Append( *newlyAddedFilesArray[i] );
100 test.Printf( _L("Opening file %S\n"), &name );
102 TInt r = file.Open( TheFs, name, EFileRead );
108 test.Next( _L("Test opening replaced files.") );
109 for( i = 0; i < KReplacedFilesCount; i++ )
112 name.Append( *replacedFilesArray[i] );
113 test.Printf( _L("Opening file %S\n"), &name );
115 TInt r = file.Open( TheFs, name, EFileRead );
118 r = file.Read( buf );
121 test(buf == KReplaceMe8FileContent2);
122 else if (i<4) // i == 1 -> 3
123 test(buf == KReplaceMe8FileContent3);
125 test(buf == KReplaceMe8FileContent1);
127 test(buf == KReplaceMe8FileContent5);
132 LOCAL_C void TestFilesInRomL(TInt aDriveToTest)
134 // Test whether files in ROFS appear to be in ROM area of Z:
137 test.Next( _L("Test if file is in ROM area of Z:") );
138 TFileName name(KDriveBase);
139 name[0] = TText('A' + aDriveToTest);
143 for( i = 0; i < KNewlyAddedFilesCount; i++ )
145 name.SetLength( 3 ); // trim back to drive specifier
146 name.Append( *newlyAddedFilesArray[i] );
147 test.Printf( _L("Testing newly added file %S\n"), &name );
150 if (i==KNewlyAddedFilesCount)
151 test( NULL != TheFs.IsFileInRom( name ) );
153 test( NULL == TheFs.IsFileInRom( name ) );
156 test.Next( _L("Test if replaced file is in ROM area of Z:") );
158 for( i = 0; i < KReplacedFilesCount; i++ )
161 name.Append( *replacedFilesArray[i] );
162 test.Printf( _L("Testing replaced file %S\n"), &name );
163 test( NULL == TheFs.IsFileInRom( name ) );
166 test.Next( _L("Test if hidden file is in ROM area of Z:") );
168 for( i = 0; i < KHiddenFilesCount; i++ )
171 name.Append( *hiddenFilesArray[i] );
172 test.Printf( _L("Testing hidden file %S\n"), &name );
173 test( NULL == TheFs.IsFileInRom( name ) );
177 LOCAL_C void TestReadFileSectionL(TInt aDriveToTest)
179 // Test reading data from a file without opening it.
182 test.Next( _L("Testing ReadFileSection()."));
187 TFileName name(KDriveBase);
188 name[0] = TText('A' + aDriveToTest);
190 for( i = 0; i < KNewlyAddedFilesCount; i++ )
192 name.SetLength( 3 ); // trim back to drive specifier
193 name.Append( *newlyAddedFilesArray[i] );
194 r=TheFs.ReadFileSection(name,0,testDes,3);
196 test(testDes.Length()==3);
197 test(testDes==_L8("hel"));
200 name.Append( *newlyAddedFilesArray[i] );
201 r=TheFs.ReadFileSection(name,0,testDes,4);
203 test(testDes.Length()==4);
204 test(testDes==_L8("hell"));
207 name.Append( *newlyAddedFilesArray[i] );
208 r=TheFs.ReadFileSection(name,1,testDes,4);
210 test(testDes.Length()==4);
211 test(testDes==_L8("ello"));
214 test.Next( _L("Testing ReadFileSection() on replaced files."));
216 for( i = 0; i < KReplacedFilesCount; i++ )
219 name.Append( *replacedFilesArray[i] );
220 r=TheFs.ReadFileSection(name,4,testDes,1);
222 test(testDes.Length()==1);
224 test(testDes==_L8("2"));
226 test(testDes==_L8("3"));
228 test(testDes==_L8("1"));
230 test(testDes==_L8("5"));
233 test.Next( _L("Testing ReadFileSection() on hidden files."));
235 for( i = 0; i < KHiddenFilesCount; i++ )
238 name.Append( *hiddenFilesArray[i] );
239 r=TheFs.ReadFileSection(name,0,testDes,1);
240 test(r==KErrNotFound);
244 LOCAL_C void TestEntryL(TInt aDriveToTest)
246 // Test accessing the entry details for a hidden file.
249 test.Next( _L("Test accessing the entry details for replaced files.") );
250 TFileName name(KDriveBase);
251 name[0] = TText('A' + aDriveToTest);
255 TTime dirtimes[4] = { TDateTime(2005,EDecember,9,2,0,3,0), // 10/12/2005
256 TDateTime(2005,EDecember,14,4,30,33,0), // 15/12/2005
257 TDateTime(2006,EJanuary,1,15,45,37,0), // 02/01/2006
258 TDateTime(2006,EAugust,10,17,47,04,0) }; // 11/08/2006
261 for( i = 0; i < KReplacedFilesCount; i++ )
263 name.SetLength( 3 ); // trim back to drive specifier
264 name.Append( *replacedFilesArray[i] );
265 r = TheFs.Entry(name, entry);
267 test (entry.iName==replacedFilesArray[i]->Right(entry.iName.Length()));
270 test(entry.iModified==dirtimes[1]);
272 test(entry.iModified==dirtimes[2]);
274 test(entry.iModified==dirtimes[0]);
276 test(entry.iModified==dirtimes[3]);
279 test.Next( _L("Test accessing the entry details for hidden files.") );
281 for ( i = 0; i < KHiddenFilesCount; i++ )
284 name.Append( *hiddenFilesArray[i] );
285 r = TheFs.Entry(name, entry);
286 test(r==KErrNotFound);
290 //************************
293 void DoTestL(TInt aDriveToTest)
296 test.Start( _L("Testing opening hidden, replaced and newly added files belonging to multiple ROFS.") );
298 test.Printf( _L("Looking for multiple ROFS..\n"));
299 TBool multipleRofs = EFalse;
300 TFileName name(KDriveBase);
301 name[0] = TText('A' + aDriveToTest);
303 name.SetLength( 3 ); // trim back to drive specifier
304 name.Append( KRootFileMultiple );
307 test.Printf( _L("Attempt to open file %S..\n"), &name );
308 TInt r = file.Open( TheFs, name, EFileRead );
313 test.Printf( _L("Multiple ROFS found. %S is present.\n"), &name);
315 else if(r==KErrNotFound)
317 test.Printf( _L("No multiple ROFS found. %S is not present.\n"), &name);
322 TestMultipleRofsL(aDriveToTest);
323 TestFilesInRomL(aDriveToTest);
324 TestReadFileSectionL(aDriveToTest);
325 TestEntryL(aDriveToTest);