--- a/stif/StifTFwIf/src/UIStore.cpp Mon Jun 21 22:45:06 2010 +0100
+++ b/stif/StifTFwIf/src/UIStore.cpp Thu Jul 22 16:50:07 2010 +0100
@@ -46,7 +46,6 @@
_LIT( KUIStoreSetStart, "[TestSetStart]" );
_LIT( KUIStoreSetEnd, "[TestSetEnd]" );
-_LIT( KUIStoreSetName, "TestSetName=" );
_LIT( KUIStoreSetCaseStart, "[TestSetCaseStart]" );
_LIT( KUIStoreSetCaseEnd, "[TestSetCaseEnd]" );
_LIT( KUIStoreCaseModuleName, "ModuleName=" );
@@ -1032,7 +1031,53 @@
*/
EXPORT_C TInt CUIStore::RemoveTestSet( const TDesC& aSetName )
{
-
+ TInt err = UnloadTestSet( aSetName );
+ if ( err != KErrNone )
+ {
+ return err;
+ }
+
+ TFileName setfile;
+ setfile.Append(KUIStoreDefaultDir);
+ setfile.Append(aSetName);
+ RFs fs;
+ err = fs.Connect();
+ if( err != KErrNone )
+ {
+ fs.Close();
+ return err;
+ }
+ err = fs.Delete( setfile );
+ if ( err != KErrNone )
+ {
+ fs.Close();
+ return err;
+ }
+
+ return KErrNone;
+ }
+
+/*
+-------------------------------------------------------------------------------
+
+ Class: CUIStore
+
+ Method: UnloadTestSet
+
+ Description: Unloads active test set.
+
+ Parameters: TDesC& aSetName: in: test set name (Max length is KMaxName)
+
+ Return Values: Symbian OS error code
+
+ Errors/Exceptions: None
+
+ Status: Draft
+
+-------------------------------------------------------------------------------
+*/
+EXPORT_C TInt CUIStore::UnloadTestSet( const TDesC& aSetName )
+ {
TPtrC setName;
TFileName tmp;
TInt ret = ParseTestSetName( aSetName, setName, tmp );
@@ -1071,9 +1116,8 @@
}
delete setInfo;
-
- return KErrNone;
-
+
+ return KErrNone;
}
/*
@@ -1321,27 +1365,65 @@
EXPORT_C TInt CUIStore::SaveTestSet2( TDes& aSetName )
{
+ RRefArray<TDesC> testsets;
+
+ GetTestSetsList(testsets);
+ TBool isexist(EFalse);
+ for(TInt i=0;i<testsets.Count();i++)
+ {
+ if(testsets[i]==aSetName)
+ {
+ isexist=ETrue;
+ break;
+ }
+
+ }
+ testsets.Reset();
+ if(!isexist)
+ {
+ TTime current;
+ TDateTime date_rep;
+ current.HomeTime();
+ date_rep = current.DateTime();
+ TBuf<32> currSetName;
+ _LIT(f_ext,".set");
+
+ //create "test set name" string
+ currSetName.AppendNum(date_rep.Year());
+ currSetName.Append('_');
+ currSetName.AppendNum(date_rep.Month()+1); // Incrimination necessary, because Day and Month fields of TDateTime class are 0 based
+ currSetName.Append('_');
+ currSetName.AppendNum(date_rep.Day()+1);
+ currSetName.Append('_');
+ currSetName.AppendNum(date_rep.Hour());
+ currSetName.Append('_');
+ currSetName.AppendNum(date_rep.Minute());
+ currSetName.Append('_');
+ currSetName.AppendNum(date_rep.Second());
+ currSetName.Append(f_ext);
+
+ for(TInt i=0;i<iTestSets.Count();i++)
+ {
+ if(iTestSets[i]->Name()==aSetName)
+ {
+ iTestSets[i]->RenameTestSet(currSetName);
+
+ }
+
+ }
+
+
+
+ aSetName.Zero();
+ aSetName.Copy(currSetName);
+
+
+
+ }
TPtrC setName;
TFileName tmp;
- TTime current;
- TDateTime date_rep;
- current.HomeTime();
- date_rep = current.DateTime();
- TBuf<32> currSetName;
- _LIT(f_ext,".set");
-
- //create "test set name" string
- currSetName.AppendNum(date_rep.Year());
- currSetName.Append('_');
- currSetName.AppendNum(date_rep.Month()+1); // Incrimination necessary, because Day and Month fields of TDateTime class are 0 based
- currSetName.Append('_');
- currSetName.AppendNum(date_rep.Day()+1);
- currSetName.Append('_');
- currSetName.AppendNum(date_rep.Hour());
- currSetName.Append('_');
- currSetName.AppendNum(date_rep.Minute());
- currSetName.Append(f_ext);
+
TInt ret = ParseTestSetName( aSetName, setName, tmp );
if( ret != KErrNone )
@@ -1357,10 +1439,10 @@
}
TRAPD( err,
- SaveTestSetL( *setInfo, currSetName );
+ SaveTestSetL( *setInfo, aSetName );
);
- aSetName.Copy(currSetName);
+
return err;
@@ -1387,7 +1469,6 @@
*/
EXPORT_C TInt CUIStore::LoadTestSet( const TDesC& aSetName )
{
-
TPtrC setName;
TFileName tmp;
TInt ret = ParseTestSetName( aSetName, setName, tmp );
@@ -1395,8 +1476,28 @@
{
return ret;
}
-
- TRAPD( err,
+ CTestSetInfo* setInfo= NULL;
+
+ FindSetByName( setName, setInfo );
+ if(setInfo != NULL)
+ {
+ return KErrNone;
+ }
+
+ TRAPD( err,
+ setInfo = CTestSetInfo::NewL( aSetName );
+ );
+ if( err != KErrNone )
+ {
+ return err;
+ }
+ if( iTestSets.Append( setInfo ) != KErrNone )
+ {
+ delete setInfo;
+ return KErrNoMemory;
+ }
+
+ TRAP( err,
LoadTestSetL( setName, aSetName );
);
@@ -1848,7 +1949,7 @@
-------------------------------------------------------------------------------
*/
-void CUIStore::LoadTestSetL( const TDesC& aSetName, const TDesC& aSetFileName )
+void CUIStore::LoadTestSetL( const TDesC& aSetName, const TDesC& /*aSetFileName*/ )
{
TPtrC tmp;
@@ -1856,15 +1957,8 @@
TInt high;
TInt64 interval;
- CStifParser* parser = NULL;
-
- TRAPD( err,
- parser = CStifParser::NewL( _L(""), aSetFileName );
- );
- if( err != KErrNone )
- {
- parser = CStifParser::NewL( KUIStoreDefaultDir, aSetName );
- }
+ CStifParser* parser = CStifParser::NewL( KUIStoreDefaultDir, aSetName );
+
CleanupStack::PushL( parser );
@@ -1872,24 +1966,8 @@
parser->SectionL( KUIStoreSetStart, KUIStoreSetEnd );
CleanupStack::PushL( section );
- CStifItemParser* item = section->GetItemLineL( KUIStoreSetName );
- CleanupStack::PushL( item );
-
- User::LeaveIfError( item->GetString( KUIStoreSetName, tmp ) );
-
- // get the standard method
- TCollationMethod method = *Mem::CollationMethodByIndex(0);
- // ignore case
- method.iFlags |= TCollationMethod::EFoldCase;
-
- TInt compare = aSetName.CompareC( tmp, 3, &method );
- if( compare != KErrNone )
- {
- User::LeaveIfError( KErrNotFound );
- }
-
- CleanupStack::PopAndDestroy( item );
-
+ CStifItemParser* item;
+
// Get started test case (if possible)
TUint lastStartedCaseIndex = 0;
item = section->GetItemLineL(KUIStoreLastStartedCaseIndex);
@@ -1908,7 +1986,6 @@
__TRACE(KInit, (_L("Could not find [%S] from test set file."), &KUIStoreLastStartedCaseIndex));
}
- User::LeaveIfError( CreateTestSet( aSetName ) );
CTestSetInfo* setInfo = NULL;
User::LeaveIfError( FindSetByName( aSetName, setInfo ) );
@@ -2048,8 +2125,6 @@
// Saving
buffer.Format(_L("%S"), &KUIStoreSetStart);
WriteLineL(file, buffer);
- buffer.Format(_L("%S %S"), &KUIStoreSetName,&aSetFileName);
- WriteLineL(file, buffer);
// Saving test set causes reset of index
aSetInfo.SetLastStartedCaseIndex(0);
@@ -4737,6 +4812,31 @@
return iLastStartedCaseIndex;
}
+/*
+-------------------------------------------------------------------------------
+
+ Class: CTestSetInfo
+
+ Method: RenameTestSet
+
+ Description: rename test set
+
+ Parameters: aTestSetName : new TestSetName
+
+ Return Values: TInt: KErrNone if success.
+
+ Errors/Exceptions: None
+
+ Status: Approved
+
+-------------------------------------------------------------------------------
+*/
+void CTestSetInfo::RenameTestSet(const TDesC& aTestSetName)
+ {
+ delete iName;
+ iName=NULL;
+ iName=aTestSetName.AllocL();
+ }
// ================= OTHER EXPORTED FUNCTIONS =================================
// End of File