diff -r 3ab5c078b490 -r c63ee96dbe5f contentstorage/castorage/tsrc/t_castorage/src/castoragetestlocalization.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/contentstorage/castorage/tsrc/t_castorage/src/castoragetestlocalization.cpp Thu Sep 16 12:11:40 2010 +0100 @@ -0,0 +1,244 @@ +/* +* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ +/* + * castoragetestlocalization.cpp + * + * Created on: Dec 2, 2009 + * Author: michal.wojcik + */ + + +#include "castoragetest.h" +#include "castoragefactory.h" +#include "castorage.h" +#include "caarraycleanup.inl" +#include "cainnerentry.h" +#include "calocalizationentry.h" +#include "casqlquery.h" +#include "casqlitestorage.h" +#include "castoragetestsqlcommands.h" +#include "casqlcommands.h" + +// ============================ MEMBER FUNCTIONS =============================== + +// --------------------------------------------------------------------------- +// +// --------------------------------------------------------------------------- +// +void CCAStorageTest::testRemoveFromLocalizationAfterNameChange() +{ + TInt err(KErrGeneral); + + __UHEAP_MARK; + TRAP(err, + // Check before test + CCaSqlQuery *query = CCaSqlQuery::NewL(((CCaSqLiteStorage *)mStorage)->iSqlDb); + CleanupStack::PushL(query); + query->SetQueryL(KSQLCountFromLocalizationTable); + query->PrepareL(); + TInt countLocalizationBefore(0); + query->ExecuteL(countLocalizationBefore); + CleanupStack::PopAndDestroy(query); + + // Update Collection Name; + // CCaInnerEntry* innerEntry = CCaInnerEntry::NewLC(); + // innerEntry->SetId( 5 ); + // innerEntry->SetTextL( KTestName ); + // mStorage->AddL( innerEntry ); + // CleanupStack::PopAndDestroy( innerEntry ); + + mStorage->RemoveFromLocalizationL(5); + + + // Check result after name entry name update + query = CCaSqlQuery::NewLC(((CCaSqLiteStorage *)mStorage)->iSqlDb); + query->SetQueryL(KSQLCountFromLocalizationTable); + query->PrepareL(); + TInt countLocalizationAfter(0); + query->ExecuteL(countLocalizationAfter); + CleanupStack::PopAndDestroy(query); + if ((countLocalizationBefore - countLocalizationAfter) == 1) { + err = KErrNone; +} + ); + __UHEAP_MARKEND; + + QCOMPARE(err, KErrNone); +} + +void CCAStorageTest::testGetLocalizations() +{ + TInt err(KErrGeneral); + + __UHEAP_MARK; + TRAP(err, + // Check before test + CCaSqlQuery *query = CCaSqlQuery::NewL(((CCaSqLiteStorage *)mStorage)->iSqlDb); + CleanupStack::PushL(query); + query->SetQueryL(KSQLCountFromLocalizationTable); + query->PrepareL(); + TInt countLocalization(0); + query->ExecuteL(countLocalization); + CleanupStack::PopAndDestroy(query); + + // Get Localizations from db + RPointerArray resultContainer; + CleanupResetAndDestroyPushL(resultContainer); + mStorage->GetLocalizationsL(resultContainer); + + if (resultContainer.Count() == countLocalization) { + err = KErrNone; + } + + CleanupStack::PopAndDestroy(&resultContainer); + ); + __UHEAP_MARKEND; + + QCOMPARE(err, KErrNone); +} + +void CCAStorageTest::testLocalizeEntry() +{ + TInt err(KErrGeneral); + + __UHEAP_MARK; + TRAP(err, + CCaLocalizationEntry *localizationEntry = CCaLocalizationEntry::NewLC(); + + const TInt KOfficeId = 5; + + _LIT(KAttributeName, "EN_TEXT"); + localizationEntry->SetAttributeNameL(KAttributeName); + _LIT(KNewLocalizedString, "Biurowe smietnisko"); + localizationEntry->SetLocalizedStringL(KNewLocalizedString); + localizationEntry->SetRowId(KOfficeId); // office + _LIT(KTableName, "CA_ENTRY"); + localizationEntry->SetTableNameL(KTableName); + localizationEntry->SetTextId(KOfficeId); // office + + // test localize entry + mStorage->LocalizeEntryL(*localizationEntry); + + // get this entry from db - office + CCaInnerQuery *innerQuery = CCaInnerQuery::NewLC(); + RArray idArray; + CleanupClosePushL(idArray); + idArray.AppendL(KOfficeId); + innerQuery->SetIdsL(idArray); + + RPointerArray resultArray; + CleanupResetAndDestroyPushL(resultArray); + mStorage->GetEntriesL(innerQuery, resultArray); + + // check results + if (!resultArray[0]->GetText().CompareC(KNewLocalizedString)) { + err = KErrNone; +} + +CleanupStack::PopAndDestroy(&resultArray); +CleanupStack::PopAndDestroy(&idArray); +CleanupStack::PopAndDestroy(innerQuery); + +CleanupStack::PopAndDestroy(localizationEntry); + ); + __UHEAP_MARKEND; + + QCOMPARE(err, KErrNone); +} + + +//------------------------------------------------------------------------- +void CCAStorageTest::testAddLocalizationEntry() +{ + TInt err(KErrGeneral); + TInt countLocalization1(0); + TInt countLocalization2(0); + + __UHEAP_MARK; + TRAP(err, + // Check before test + + countLocalization1 = locEntriesCount(); + // Get Localizations from db + CCaLocalizationEntry* locEntry = CCaLocalizationEntry::NewLC(); + locEntry->SetTableNameL(_L("TestTable")); + locEntry->SetAttributeNameL(_L("TestAttName")); + locEntry->SetStringIdL(_L("TestStrId")); + locEntry->SetQmFilenameL(_L("TestQmFilename")); + locEntry->SetRowId(6667); + mStorage->AddLocalizationL(*locEntry); + countLocalization2 =locEntriesCount(); + CleanupStack::PopAndDestroy(locEntry); + + ); + QCOMPARE(err, KErrNone); + QCOMPARE(countLocalization1+1 , countLocalization2); + + __UHEAP_MARKEND; + +} + +//------------------------------------------------------------------------- +void CCAStorageTest::testUpdateLocalizationEntry() +{ + TInt err(KErrGeneral); + TInt countLocalization1(0); + TInt countLocalization2(0); + + __UHEAP_MARK; + TRAP(err, + // Get Localizations from db + CCaLocalizationEntry* locEntry = CCaLocalizationEntry::NewLC(); + locEntry->SetTableNameL(_L("TestTable")); + locEntry->SetAttributeNameL(_L("TestAttName")); + locEntry->SetStringIdL(_L("TestStrId")); + locEntry->SetQmFilenameL(_L("TestQmFilename")); + locEntry->SetRowId(6668); + mStorage->AddLocalizationL(*locEntry); + + countLocalization1 = locEntriesCount(); + + locEntry->SetTableNameL(_L("TestTable")); + locEntry->SetAttributeNameL(_L("TestAttName")); + locEntry->SetStringIdL(_L("TestStrId2")); + locEntry->SetQmFilenameL(_L("TestQmFilename2")); + locEntry->SetRowId(6668); + mStorage->AddLocalizationL(*locEntry); + + countLocalization2 = locEntriesCount(); + + CleanupStack::PopAndDestroy(locEntry); + + ); + QCOMPARE(err, KErrNone); + QCOMPARE(countLocalization1 , countLocalization2); + + __UHEAP_MARKEND; + +} +//------------------------------------------------------------------------- +TInt CCAStorageTest::locEntriesCount() +{ + TInt count(0); + CCaSqlQuery *query = CCaSqlQuery::NewL(((CCaSqLiteStorage *)mStorage)->iSqlDb); + CleanupStack::PushL(query); + query->SetQueryL(KSQLCountFromLocalizationTable); + query->PrepareL(); + query->ExecuteL(count); + CleanupStack::PopAndDestroy(query); + return count; +}