contentstorage/castorage/tsrc/t_castorage/src/castoragetestlocalization.cpp
changeset 117 c63ee96dbe5f
--- /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<CCaLocalizationEntry> 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<TInt> idArray;
+         CleanupClosePushL(idArray);
+         idArray.AppendL(KOfficeId);
+         innerQuery->SetIdsL(idArray);
+
+         RPointerArray<CCaInnerEntry> 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;
+}