diff -r 6ffc235847d0 -r 999603a97139 common/tools/ats/smoketest/localisation/apparchitecture/tef/ORIG_T_CaptionStep.cpp --- a/common/tools/ats/smoketest/localisation/apparchitecture/tef/ORIG_T_CaptionStep.cpp Fri Dec 18 14:46:04 2009 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1016 +0,0 @@ -// Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies). -// All rights reserved. -// This component and the accompanying materials are made available -// under the terms of the License "Symbian Foundation License v1.0" -// which accompanies this distribution, and is available -// at the URL "http://www.symbianfoundation.org/legal/sfl-v10.html". -// -// Initial Contributors: -// Nokia Corporation - initial contribution. -// -// Contributors: -// -// Description: -// Test for GT0247 Bravo. -// CR0583: Apparc should allow short caption to be modified dynamically -// Test for UIKON GT0143 Typhoon Work Series 60 Changes. -// REQ758.1: Add support for short captions -// This test requires that tstapp.app has been built -// tstapp.mmp has RESOURCE tstapp_caption.rss what caption is built into the .rsc file -// tstapp_loc.rss decides what version of the caption file to include: -// tstapp01.rls -// tstapp02.rls -// tstapp03.rls -// tstapp04.rls -// tstapp05.rls -// tstappsc.rls -// -// - - - -/** - @file - @test - @internalComponent - Internal Symbian test code -*/ - -#include -#include -#include - -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include -#include "tstapp.h" // KUidTestApp defined here -#include "T_CaptionStep.h" -#include "appfwk_test_utils.h" -#include "appfwk_test.h" -#include "ticoncaptionoverride.h" //KUidTestIconCapOverride defined here -#include "TIconLoaderAndIconArrayForLeaks.h" - - -///////////////////////////////////////////////////////////////////////////////// -// -// global consts and declarations -// -///////////////////////////////////////////////////////////////////////////////// - - -_LIT(KTestTApaAppInfoCaptionEnglish,"TstCap UK"); -_LIT(KTestTApaAppInfoShortCaptionEnglish,"TC UK"); - -_LIT(KTestTApaAppInfoCaptionFrench,"TstCap FR"); -_LIT(KTestTApaAppInfoShortCaptionFrench,"TC FR"); - -_LIT(KTestTApaAppInfoCaptionGerman,"TstCap GE"); -_LIT(KTestTApaAppInfoShortCaptionGerman,"TC GE"); - -// If _loc.rss does not define Short Caption, it takes long caption -_LIT(KTestTApaAppInfoCaptionSpanish,"TstCap SP"); -_LIT(KTestTApaAppInfoShortCaptionSpanish,"TstCap SP"); - -// If _loc.rss does not define Caption, it takes app name -_LIT(KTestTApaAppInfoCaptionItalian,"tstapp"); -_LIT(KTestTApaAppInfoShortCaptionItalian,"TC IT"); - -_LIT(KTestTApaAppInfoCaptionDefault,"TstCap UK"); -_LIT(KTestTApaAppInfoShortCaptionDefault,"TC UK"); - -// Cenrep configuration details for English language -_LIT(KCenRepCaption, "CRTstCap UK"); -_LIT(KCenRepShortCaption, "CRTC UK"); -_LIT(KCenRepIconFilename, "Z:\\resource\\apps\\ticoncapoverride.mbm"); - -const TUid KUidIconCaptionRepository = {0x1028583d}; // Central Repository UID. -const TInt KTextSize = 100; - -///////////////////////////////////////////////////////////////////////////////// -// -// CT_CaptionStep -// -///////////////////////////////////////////////////////////////////////////////// - - -void CT_CaptionStep::ChangeLocaleL(TLanguage aLanguage) - { - // Change locale according to information in the HAL - _LIT(KLitLocaleDllNameBase, "ELOCL"); - _LIT(KLitLocaleDllNameExtension, ".LOC"); - RLibrary localeDll; - TBuf<16> localeDllName(KLitLocaleDllNameBase); - CleanupClosePushL(localeDll); - const TUidType uidType(TUid::Uid(0x10000079),TUid::Uid(0x100039e6)); - _LIT(TwoDigExt,".%02d"); - localeDllName.AppendFormat(TwoDigExt, aLanguage); - TInt error=localeDll.Load(localeDllName, uidType); - if (error==KErrNotFound) - { - localeDllName=KLitLocaleDllNameBase; - localeDllName.Append(KLitLocaleDllNameExtension); - error=localeDll.Load(localeDllName, uidType); - } - User::LeaveIfError(error); - User::LeaveIfError(UserSvr::ChangeLocale(localeDllName)); - CleanupStack::PopAndDestroy(&localeDll); - } - - -void CT_CaptionStep::DoLanguageTestL() - { - TLanguage language = User::Language(); // keep a copy to restore it later on. - - TInt ch = 0; - for (ch=0; ch < 6; ch++) - { - TLanguage languageToTest = ELangTest; // init to supress compiler remark - switch (ch) - { - case 0: - languageToTest=ELangEnglish; - INFO_PRINTF1(_L("--------- Testing English")); - break; - case 1: - languageToTest=ELangFrench; - INFO_PRINTF1(_L("--------- Testing French")); - break; - case 2: - languageToTest=ELangGerman; - INFO_PRINTF1(_L("--------- Testing German")); - break; - case 3: - languageToTest=ELangSpanish; - INFO_PRINTF1(_L("--------- Testing Spanish")); - break; - case 4: - languageToTest=ELangItalian; - INFO_PRINTF1(_L("--------- Testing Italian")); - break; - case 5: - languageToTest=ELangAmerican; - INFO_PRINTF1(_L("--------- Testing American")); - break; - default: - User::LeaveIfError(KErrNotSupported); - break; - }; - - // Change the locale - ChangeLocaleL(languageToTest); - TEST(User::Language() == languageToTest); - - // Force the applist to be updated (so test app gets new language settings) - RPointerArray dummy; - User::LeaveIfError(iLs.ForceRegistration(dummy)); - - // Do the same set of tests for each language - TestCApaSystemControlListL(); - TestCApaDoorL(); - TestTApaAppInfoStreamsL(); - HEAP_TEST_LS_SESSION(iLs, 0, 0, TestTApaAppInfoL(), iLs.ClearAppInfoArray() ); - - INFO_PRINTF1(_L("Test for that language finished...")); - } - - // restore original locale, just in case... - ChangeLocaleL(language); - TEST(User::Language() == language); - } - -/** - @SYMTestCaseID t_caption_TestCApaSystemControlListL - - @SYMPREQ 0 - - @SYMTestCaseDesc Check (short)caption by means of a control on the list CApaSystemControlList - - @SYMTestPriority High - - @SYMTestStatus Implemented - - @SYMTestActions The test creates a CApaSystemControlList and checks the value of (short)caption - by creating a CApaSystemControl from index 0 of CApaSystemControlList - - @SYMTestExpectedResults The (short)caption is set to a value not null (length is not zero) - */ -void CT_CaptionStep::TestCApaSystemControlListL() - { - INFO_PRINTF1(_L("Testing CApaSystemControlList... ")); - CApaSystemControlList* list=NULL; - User::LeaveIfError(FbsStartup()); - RFbsSession fbs; - User::LeaveIfError(fbs.Connect()); - TRAPD(ret, list=CApaSystemControlList::NewL(iFs)); - TEST(ret==KErrNone); - CApaSystemControl* control=list->Control(0); - TPtrC testShortCap=control->ShortCaption(); - TEST(testShortCap.Length()>0); - TPtrC testCap=control->Caption(); - TEST(testCap.Length()>0); - } - - -/** - @SYMTestCaseID t_caption_TestTApaAppInfoL - - @SYMPREQ 0 - - @SYMTestCaseDesc Check appInfo contains the right (short)caption for the current test language. - - @SYMTestPriority High - - @SYMTestStatus Implemented - - @SYMTestActions The test searches for KUidTestApp by calling GetNextApp until the UIDs match. - Once the right app is found, it retrieves its details by calling GetAppInfo(). - The (short)caption is check to ensure it matches the expected result. - - @SYMTestExpectedResults The (short)caption matches the one specified for the application, with the - american one being the default one. - */ -void CT_CaptionStep::TestTApaAppInfoL() - { - INFO_PRINTF1(_L("Testing GetAppInfo()... ")); - - // go through the list of apps until it finds KUidTestApp - TApaAppInfo appInfo; - TInt ret = iLs.GetAllApps(); - TEST(ret==KErrNone); - FOREVER - { - TApaAppInfo info; - ret=iLs.GetNextApp(info); - TEST(ret==KErrNone); - if (info.iUid==KUidTestApp) - { - iLs.GetAppInfo(appInfo, info.iUid); - break; - } - } - - switch (User::Language()) - { - case ELangEnglish: - TEST(appInfo.iCaption==KTestTApaAppInfoCaptionEnglish); - TEST(appInfo.iShortCaption==KTestTApaAppInfoShortCaptionEnglish); - break; - case ELangFrench: - TEST(appInfo.iCaption==KTestTApaAppInfoCaptionFrench); - TEST(appInfo.iShortCaption==KTestTApaAppInfoShortCaptionFrench); - break; - case ELangGerman: - TEST(appInfo.iCaption==KTestTApaAppInfoCaptionGerman); - TEST(appInfo.iShortCaption==KTestTApaAppInfoShortCaptionGerman); - break; - case ELangSpanish: - TEST(appInfo.iCaption==KTestTApaAppInfoCaptionSpanish); - TEST(appInfo.iShortCaption==KTestTApaAppInfoShortCaptionSpanish); - break; - case ELangItalian: - TEST(appInfo.iCaption==KTestTApaAppInfoCaptionItalian); - TEST(appInfo.iShortCaption==KTestTApaAppInfoShortCaptionItalian); - break; - case ELangAmerican: - TEST(appInfo.iCaption==KTestTApaAppInfoCaptionDefault); - TEST(appInfo.iShortCaption==KTestTApaAppInfoShortCaptionDefault); - break; - default: - User::Leave(KErrNotSupported); - break; - }; - } - - -/** - @SYMTestCaseID t_caption_TestCApaDoorL - - @SYMPREQ 0 - - @SYMTestCaseDesc Check the caption returned by a CApaDoor (a wrapper for an embedded document). - - @SYMTestPriority High - - @SYMTestStatus Implemented - - @SYMTestActions The test starts by creating an active scheduler. - A CApaProcess is created, and a new CApaDocument is added to it using the specified - application factory. This document is then used to create a CApaDoor object which - is used to retrieve the test app caption. - - @SYMTestExpectedResults The (short)caption matches the one specified for the application, with the - american one being the default one. - */ -void CT_CaptionStep::TestCApaDoorL() - { - INFO_PRINTF1(_L("Testing CApaDoor... ")); - - // create an active scheduler - CActiveScheduler* scheduler = new(ELeave) CActiveScheduler; - CActiveScheduler::Install(scheduler); - CleanupStack::PushL(scheduler); - - CApaProcess* process=NULL; - TRAPD(ret,process = CApaProcess::NewL(iFs)); - TEST(ret==KErrNone); - - CleanupStack::PushL(process); - - CApaDocument* doc=NULL; - TApaApplicationFactory appFact(KUidTestApp); - TRAP(ret,doc=process->AddNewDocumentL(appFact)); - TEST(ret==KErrNone); - - CApaDoor* door = NULL; - TRAP(ret,door=CApaDoor::NewL(iFs,*doc,TSize(400,400))); - TEST(ret==KErrNone); - - switch (User::Language()) - { - case ELangEnglish: - TEST(*door->Caption()==KTestTApaAppInfoCaptionEnglish); - break; - case ELangFrench: - TEST(*door->Caption()==KTestTApaAppInfoCaptionFrench); - break; - case ELangGerman: - TEST(*door->Caption()==KTestTApaAppInfoCaptionGerman); - break; - case ELangSpanish: - TEST(*door->Caption()==KTestTApaAppInfoCaptionSpanish); - break; - case ELangItalian: - TEST(*door->Caption()==KTestTApaAppInfoCaptionItalian); - break; - case ELangAmerican: - TEST(*door->Caption()==KTestTApaAppInfoCaptionDefault); - break; - default: - User::Leave(KErrNotSupported); - break; - }; - process->DestroyDocument(doc); - CleanupStack::PopAndDestroy(2); //process,scheduler - } - - -/** - @SYMTestCaseID t_caption_TestTApaAppInfoStreamsL - - @SYMPREQ 0 - - @SYMTestCaseDesc Check TApaAppInfo streaming works as expected - - @SYMTestPriority High - - @SYMTestStatus Implemented - - @SYMTestActions Create and TApaAppInfo object with the KUidTestApp test app. - Also, create a temporal file, associates the file with a write stream, - and prepares the stream for writing. - When the object is externalized to the streem, we open a file containing a - read stream and prepares the stream for reading. - - @SYMTestExpectedResults The test case is completed without any errors or panics - */ -void CT_CaptionStep::TestTApaAppInfoStreamsL() - { - INFO_PRINTF1(_L("Testing TApaAppInfo streams... ")); - - TApaAppInfo appInfoShort(KUidTestApp, _L("z:\\sys\\bin\\tstapp.exe"), _L("TstCap UK"),_L("TC UK")); - TEST(appInfoShort.iShortCaption.Compare(_L("TC UK"))==0); - - TFileName tempFile=_L("c:\\system\\test\\TC_temp.txt"); - TInt ret = iFs.MkDirAll(tempFile); - if (ret != KErrNone && ret != KErrAlreadyExists) - User::LeaveIfError(ret); - - TApaAppInfo appInfo; - - RFileWriteStream writer; - writer.PushL(); - User::LeaveIfError(writer.Replace(iFs,tempFile,EFileWrite)); - TRAP(ret, appInfo.ExternalizeL(writer)); - TEST(ret==KErrNone); - writer.CommitL(); - CleanupStack::PopAndDestroy(&writer); - - RFileReadStream reader; - reader.PushL(); - User::LeaveIfError(reader.Open(iFs,tempFile,EFileRead)); - TRAP(ret, appInfo.InternalizeL(reader)); - TEST(ret==KErrNone); - - CleanupStack::PopAndDestroy(&reader); - - User::LeaveIfError(iFs.Delete(tempFile)); - } - - - -/** - @SYMTestCaseID APPFWK-APPARC-0041 APPFWK-APPARC-0042 APPFWK-APPARC-0043 APPFWK-APPARC-0044 APPFWK-APPARC-0045 APPFWK-APPARC-0046 - - @SYMPREQ PCHY-6FTLPK - - @SYMTestCaseDesc Test the RApaLsSession::SetAppShortCaption function, used to set the app's short caption. - - @SYMTestPriority High - - @SYMTestStatus Implemented - - @SYMTestActions Call SetAppShortCaption() to set the caption and read it back using the GetApaAppInfo(). - - @SYMTestExpectedResults The returned short caption must match the one set by the SetAppShortCaption function. - */ -void CT_CaptionStep::DoShortCaptionTestL() - { - INFO_PRINTF1(_L("Testing SetAppShortCaptionL() for short caption changes... ")); - - _LIT(KShortCaption1, "SC1"); - _LIT(KShortCaption2, "SC2"); - _LIT(KShortCaption3, "SC3"); - _LIT(KShortCaption4, "SC4"); - _LIT(KShortCaption5, "SC5"); - - // keep a copy of the current language, and set it to a known one - TLanguage language = User::Language(); - ChangeLocaleL(ELangEnglish); - TEST(User::Language() == ELangEnglish); - - // Force the applist to be updated (so test app gets new language settings) - RPointerArray dummy; - User::LeaveIfError(iLs.ForceRegistration(dummy)); - - // SetAppShortCaption should return KErrNotFound if it could not find the app - INFO_PRINTF1(_L(".....setting short caption for an unknown app")); - TInt err = iLs.SetAppShortCaption(KShortCaption1, ELangNone, TUid::Uid(0xFFF34556)); - TEST(err == KErrNotFound); - - // Set the NULL short caption i.e. "", should return KErrArgument, - INFO_PRINTF1(_L(".....setting an empty short caption")); - err = iLs.SetAppShortCaption(KNullDesC, ELangNone, KUidTestApp); - TEST(err == KErrArgument); - - // SetAppShortCaption should return KErrArgument if short caption > KApaMaxAppCaption - INFO_PRINTF1(_L(".....setting short caption of more then KApaMaxAppCaption length")); - HBufC* longCaption = HBufC::NewL(KApaMaxAppCaption+1); - longCaption->Des().SetLength(KApaMaxAppCaption+1); - err = iLs.SetAppShortCaption(*longCaption, ELangNone, KUidTestApp); - TEST(err == KErrArgument); - delete longCaption; - - // SetAppShortCaption should return KErrNone if short caption == KApaMaxAppCaption - INFO_PRINTF1(_L(".....setting short caption of same size as KApaMaxAppCaption")); - longCaption = HBufC::NewL(KApaMaxAppCaption); - longCaption->Des().SetLength(KApaMaxAppCaption); - err = iLs.SetAppShortCaption(*longCaption, ELangCatalan, KUidTestApp); // just testing the arg length, not actual values - TEST(err == KErrNone); - delete longCaption; - - // Set short caption of an app for the current locale language (ELangEnglish so far) - INFO_PRINTF1(_L(".....setting short caption of an app for the current locale language")); - err = iLs.SetAppShortCaption(KShortCaption1, ELangEnglish, KUidTestApp); - TEST(err == KErrNone); - TApaAppInfo appInfo; - iLs.GetAppInfo(appInfo, KUidTestApp); - TEST(appInfo.iShortCaption == KShortCaption1); - - // Check short caption remains updated after a refresh of the applist - INFO_PRINTF1(_L(".....checking short caption remains updated after a refresh of the applist")); - User::LeaveIfError(iLs.ForceRegistration(dummy)); - iLs.GetAppInfo(appInfo, KUidTestApp); - TEST(appInfo.iShortCaption == KShortCaption1); - - // Check short caption remains updated after a locale change - INFO_PRINTF1(_L(".....checking short caption remains updated after a locale change")); - ChangeLocaleL(ELangJapanese); - TEST(User::Language() == ELangJapanese); // Japanese locale exists in epoc32 tree but not defined in test app - User::LeaveIfError(iLs.ForceRegistration(dummy)); - ChangeLocaleL(ELangEnglish); // back to English to see what happened in between - TEST(User::Language() == ELangEnglish); - User::LeaveIfError(iLs.ForceRegistration(dummy)); - iLs.GetAppInfo(appInfo, KUidTestApp); - TEST(appInfo.iShortCaption == KShortCaption1); - - // Set short caption of an app for a language which is not the current one (ELangFrench, for example) - INFO_PRINTF1(_L(".....setting short caption of an app for a language which is not the current one")); - err = iLs.SetAppShortCaption(KShortCaption2, ELangFrench, KUidTestApp); - TEST(err == KErrNone); - iLs.GetAppInfo(appInfo, KUidTestApp); - TEST(appInfo.iShortCaption == KShortCaption1); // English, the current app language, doesn't change... - ChangeLocaleL(ELangFrench); - TEST(User::Language() == ELangFrench); - User::LeaveIfError(iLs.ForceRegistration(dummy)); - iLs.GetAppInfo(appInfo, KUidTestApp); - TEST(appInfo.iShortCaption == KShortCaption2); - - // Set short caption of an app for a language which the app does not include (ELangAmerican) - INFO_PRINTF1(_L(".....setting short caption of an app for a language which the app does not include")); - ChangeLocaleL(ELangAmerican); - TEST(User::Language() == ELangAmerican); - User::LeaveIfError(iLs.ForceRegistration(dummy)); - err = iLs.SetAppShortCaption(KShortCaption2, ELangAmerican, KUidTestApp); - iLs.GetAppInfo(appInfo, KUidTestApp); - TEST(appInfo.iShortCaption == KShortCaption1); // American takes the default...so English...which has just been updated. - - // Set short caption of an app for all languages with ELangNone - INFO_PRINTF1(_L(".....setting short caption for all languages with ELangNone")); - err = iLs.SetAppShortCaption(KShortCaption3, ELangNone, KUidTestApp); - TEST(err == KErrNone); - iLs.GetAppInfo(appInfo, KUidTestApp); - TEST(appInfo.iShortCaption == KShortCaption1); // American takes the default...so English...which has just been updated. - ChangeLocaleL(ELangEnglish); - TEST(User::Language() == ELangEnglish); - User::LeaveIfError(iLs.ForceRegistration(dummy)); - iLs.GetAppInfo(appInfo, KUidTestApp); - TEST(appInfo.iShortCaption == KShortCaption1); // English set individually ===> not updated by ELangNone - ChangeLocaleL(ELangFrench); - TEST(User::Language() == ELangFrench); - User::LeaveIfError(iLs.ForceRegistration(dummy)); - iLs.GetAppInfo(appInfo, KUidTestApp); - TEST(appInfo.iShortCaption == KShortCaption2); // French set individually ===> not updated by ELangNone - ChangeLocaleL(ELangGerman); - TEST(User::Language() == ELangGerman); - User::LeaveIfError(iLs.ForceRegistration(dummy)); - iLs.GetAppInfo(appInfo, KUidTestApp); - TEST(appInfo.iShortCaption == KShortCaption3); // German takes the one set by ELangNone - ChangeLocaleL(ELangItalian); - TEST(User::Language() == ELangItalian); - User::LeaveIfError(iLs.ForceRegistration(dummy)); - iLs.GetAppInfo(appInfo, KUidTestApp); - TEST(appInfo.iShortCaption == KShortCaption3); // Italian takes the one set by ELangNone - ChangeLocaleL(ELangSpanish); - TEST(User::Language() == ELangSpanish); - User::LeaveIfError(iLs.ForceRegistration(dummy)); - iLs.GetAppInfo(appInfo, KUidTestApp); - TEST(appInfo.iShortCaption == KShortCaption3); // Spanish takes the one set by ELangNone - - // Set short caption of an app for a language which was set by the previous ELangNone - INFO_PRINTF1(_L(".....setting short caption of an app which was set by the previous ELangNone")); - ChangeLocaleL(ELangItalian); - TEST(User::Language() == ELangItalian); - User::LeaveIfError(iLs.ForceRegistration(dummy)); - err = iLs.SetAppShortCaption(KShortCaption4, ELangItalian, KUidTestApp); - iLs.GetAppInfo(appInfo, KUidTestApp); - TEST(appInfo.iShortCaption == KShortCaption4); - - // Repeat set short caption of an app for all languages with ELangNone - INFO_PRINTF1(_L(".....repeat setting short caption for all languages with ELangNone")); - err = iLs.SetAppShortCaption(KShortCaption5, ELangNone, KUidTestApp); - TEST(err == KErrNone); - iLs.GetAppInfo(appInfo, KUidTestApp); - TEST(appInfo.iShortCaption == KShortCaption4); // Italian set individually ===> not updated by ELangNone - ChangeLocaleL(ELangEnglish); - TEST(User::Language() == ELangEnglish); - User::LeaveIfError(iLs.ForceRegistration(dummy)); - iLs.GetAppInfo(appInfo, KUidTestApp); - TEST(appInfo.iShortCaption == KShortCaption1); // English set individually ===> not updated by ELangNone - ChangeLocaleL(ELangFrench); - TEST(User::Language() == ELangFrench); - User::LeaveIfError(iLs.ForceRegistration(dummy)); - iLs.GetAppInfo(appInfo, KUidTestApp); - TEST(appInfo.iShortCaption == KShortCaption2); // French set individually ===> not updated by ELangNone - ChangeLocaleL(ELangGerman); - TEST(User::Language() == ELangGerman); - User::LeaveIfError(iLs.ForceRegistration(dummy)); - iLs.GetAppInfo(appInfo, KUidTestApp); - TEST(appInfo.iShortCaption == KShortCaption5); // German takes the one set by ELangNone - ChangeLocaleL(ELangSpanish); - TEST(User::Language() == ELangSpanish); - User::LeaveIfError(iLs.ForceRegistration(dummy)); - iLs.GetAppInfo(appInfo, KUidTestApp); - TEST(appInfo.iShortCaption == KShortCaption5); // Spanish takes the one set by ELangNone - ChangeLocaleL(ELangAmerican); - TEST(User::Language() == ELangAmerican); - User::LeaveIfError(iLs.ForceRegistration(dummy)); - iLs.GetAppInfo(appInfo, KUidTestApp); - TEST(appInfo.iShortCaption == KShortCaption1); // American takes the default...so English...which has just been updated. - - // restore original settings.... - INFO_PRINTF1(_L(".....restoring original settings")); - ChangeLocaleL(language); - TEST(User::Language() == language); - // restore original short captions for all langs....(h4 doesn't perform reboots between tests) - TEST(iLs.SetAppShortCaption(KTestTApaAppInfoShortCaptionEnglish, ELangEnglish, KUidTestApp) == KErrNone); - TEST(iLs.SetAppShortCaption(KTestTApaAppInfoShortCaptionFrench, ELangFrench, KUidTestApp) == KErrNone); - TEST(iLs.SetAppShortCaption(KTestTApaAppInfoShortCaptionGerman, ELangGerman, KUidTestApp) == KErrNone); - TEST(iLs.SetAppShortCaption(KTestTApaAppInfoShortCaptionItalian, ELangItalian, KUidTestApp) == KErrNone); - TEST(iLs.SetAppShortCaption(KTestTApaAppInfoShortCaptionSpanish, ELangSpanish, KUidTestApp) == KErrNone); - } - - -CT_CaptionStep::~CT_CaptionStep() - { - iFs.Close(); - iLs.Close(); - } - -CT_CaptionStep::CT_CaptionStep() - { - SetTestStepName(KT_CaptionStep); - } - -/** -@SYMTestCaseID APPFWK-APPARC-0087 -@SYMPREQ CR1787 -@SYMREQ REQ9167 -@SYMTestCaseDesc Tests whether the captions, icon configuration details have been retrieved properly from - the central repository settings and has the precedence over its resource file information. -@SYMTestType CIT -@SYMTestPriority Critical -@SYMTestActions A test application with its captions, icon details defined in a test central repository file - as well as resource file (suitable field values have been given for both cenrep and resource - configurations to identify it clearly). - Gets the information about the test application by passing its UID. - Check the given configuration details matches with central repository entries. -@SYMTestExpectedResults The given configuration details should match with central repository entries. -*/ - -void CT_CaptionStep::TestIconCaptionOverridesL() - { - INFO_PRINTF1(_L("APPFWK-APPARC-0087:TestIconCaptionOverridesL started...")); - - //Change the system language to English before starting the tests - TRAPD(ret,ChangeLocaleL(ELangEnglish)); - TEST(ret == KErrNone); - - TApaAppInfo appInfo; - //Get test app's information - iLs.GetAppInfo(appInfo, KUidTestIconCapOverride); - - RFile file; - TBuf fileName; - //Get test app's icon information - iLs.GetAppIcon(KUidTestIconCapOverride,file); - file.FullName(fileName); - - //compare the captions, icon with values in CenRep file. - INFO_PRINTF1(_L("Compares Caption with value in CenRep...")); - TBuf cencap(KCenRepCaption); - - INFO_PRINTF2(_L("----Expected caption==>%S"), &cencap); - INFO_PRINTF2(_L("----Retrieved caption==>%S"), &appInfo.iCaption); - TEST(appInfo.iCaption == KCenRepCaption); - INFO_PRINTF1(_L("Compares ShortCaption with the value in CenRep...")); - cencap.Zero(); - cencap.Copy(KCenRepShortCaption); - - INFO_PRINTF2(_L("----Expected short caption==>%S"), &cencap); - INFO_PRINTF2(_L("----Retrieved short caption==>%S"), &appInfo.iShortCaption); - TEST(appInfo.iShortCaption == KCenRepShortCaption); - - INFO_PRINTF1(_L("Compares Icon file with the value in CenRep...")); - cencap.Zero(); - cencap.Copy(KCenRepIconFilename); - INFO_PRINTF2(_L("----Expected icon filename==>%S"), &cencap); - INFO_PRINTF2(_L("----Retrieved icon filename==>%S"), &fileName); - TEST(fileName.Compare(KCenRepIconFilename)==0); - - file.Close(); - INFO_PRINTF1(_L("APPFWK-APPARC-0087:TestIconCaptionOverridesL finished...")); - } - -/** -@SYMTestCaseID APPFWK-APPARC-0088 -@SYMPREQ CR1787 -@SYMREQ REQ9167 -@SYMTestCaseDesc Tests whether the shortcaption is set through the API has got the precedence over central - repository and resource file customisation. -@SYMTestType CIT -@SYMTestPriority Critical -@SYMTestActions A test application with its short caption defined in central repository as well as in resource file. - Update the test application's short caption through API. - Gets the information about the test application by passing its UID. - Check whether the provided short caption matches with the one which has already been set through the API. -@SYMTestExpectedResults It should retrieve the short caption set through the API and match with the given short caption value. -*/ - -void CT_CaptionStep::TestApiPrecedenceOverCenRepConfigInfoL() - { - INFO_PRINTF1(_L("APPFWK-APPARC-0088:TestApiPrecedenceOverCenRepConfigInfoL started...")); - _LIT(KTApiShortCaption,"APITC UK"); - - TInt err = iLs.SetAppShortCaption(KTApiShortCaption, ELangEnglish, KUidTestIconCapOverride); - TEST(err == KErrNone); - - TApaAppInfo appInfo; - //Get test app's information - iLs.GetAppInfo(appInfo, KUidTestIconCapOverride); - - TBuf shortCaption(KTApiShortCaption); - - //compares the short caption with the value which has been set through API. - INFO_PRINTF1(_L("Compares short caption with the value that has been set through API...")); - INFO_PRINTF2(_L("----Expected short caption==>%S"), &shortCaption); - INFO_PRINTF2(_L("----Retrieved short caption==>%S"), &appInfo.iShortCaption); - TEST(appInfo.iShortCaption == KTApiShortCaption); - - //Sets the short caption back to the actual one - INFO_PRINTF1(_L("Sets the short caption back to the actual one through API...")); - err = iLs.SetAppShortCaption(KCenRepShortCaption, ELangEnglish, KUidTestIconCapOverride); - TEST(err == KErrNone); - - INFO_PRINTF1(_L("APPFWK-APPARC-0088:TestApiPrecedenceOverCenRepConfigInfoL finished...")); - } - -/** -@SYMTestCaseID APPFWK-APPARC-0089 -@SYMPREQ CR1787 -@SYMREQ REQ9167 -@SYMTestCaseDesc Tests whether the changes made in central repository is notified by the central repository - observer (CApaIconCaptionCenrepObserver), which watches for changes in the Central Repository - and updates the overrides when they occur. -@SYMTestType CIT -@SYMTestPriority Critical -@SYMTestActions A test application with its caption, icon configuration details defined in central repository file. - Access the central repository. - Update the test application short caption's value in the settings. - Get the information about the test application by passing its UID. - Check the short caption value retrieved from the central repository matches with the given information. -@SYMTestExpectedResults The given new short caption value should match with the central repository entry. -*/ -void CT_CaptionStep::TestCenRepChangeNotificationL() - { - INFO_PRINTF1(_L("APPFWK-APPARC-0089:TestCenRepChangeNotificationL started...")); - - //access central repository - CRepository* cenRep = CRepository::NewL(KUidIconCaptionRepository); - CleanupStack::PushL(cenRep); - - _LIT(KCenRepSC,"CRNTC UK"); - TUint32 shortCapKey = 0x00000001; // for English - - //update the short caption value in central repository. - TInt error = cenRep->Set(shortCapKey,KCenRepSC); - - //tests whether the process with WriteDeviceData capability can update the configuration settings. - TEST(error == KErrNone); - - // Force the applist to be updated (so test app gets new language settings) - RPointerArray dummy; - User::LeaveIfError(iLs.ForceRegistration(dummy)); - - TApaAppInfo appInfo; - //Get test app's information - iLs.GetAppInfo(appInfo, KUidTestIconCapOverride); - - //compare the short caption with the updated value in central repository - INFO_PRINTF1(_L("Compares short caption with the updated value in CenRep...")); - TBuf shortCaption(KCenRepSC); - - INFO_PRINTF2(_L("----Expected short caption==>%S"), &shortCaption); - INFO_PRINTF2(_L("----Retrieved shortcaption==>%S"), &appInfo.iShortCaption); - TEST(appInfo.iShortCaption == KCenRepSC); - - //sets the short caption back to the actual for other tests to work - error = cenRep->Set(shortCapKey,KCenRepShortCaption); - - // Force the applist to be updated (so test app gets new language settings) - User::LeaveIfError(iLs.ForceRegistration(dummy)); - - CleanupStack::PopAndDestroy(cenRep); //cenRep object - INFO_PRINTF1(_L("APPFWK-APPARC-0089:TestCenRepChangeNotificationL finished...")); - } - -/** -@SYMTestCaseID APPFWK-APPARC-0090 -@SYMPREQ CR1787 -@SYMREQ REQ9167 -@SYMTestCaseDesc Tests whether the caption, icon configuration details have been retrieved properly from the - Central Repository with respect to change in system language. - Tests if the particular language entry is not there in the central repository file, it will - then try to get the information from the resource file. -@SYMTestType CIT -@SYMTestPriority Critical -@SYMTestActions A multilingual test application with its caption, icon configuration details defined in central repository file. - Change the system language to French. - Gets the information about the test application by passing its UID. - Checks the retrieved captions, icon from Central Repository are in French. - Change the system language to German (the settings are not there for German in Central Repository). - Again gets the information about the test application by passing its UID. - Checks the retrieved captions, icon from the Resource file are in German. - Restores the system language to English. - Again gets the information about the test application by passing its UID. - Checks the retrieved captions, icon from Central Repository are in English. -@SYMTestExpectedResults All the retrieved Central Repository configuration details should match with the given details by changing - system language. -*/ - -void CT_CaptionStep::TestIconCaptionOverridesWithChangeLangL() - { - INFO_PRINTF1(_L("APPFWK-APPARC-0090:TestIconCaptionOverridesWithChangeLangL started...")); - - TInt ret = 0; - //French - _LIT(KCaptionFrench, "CRTstCap FR"); - _LIT(KShortCaptionFrench, "CRTC FR"); - _LIT(KIconFilenameFrench, "Z:\\resource\\apps\\svg_icon.svg"); - - //German - _LIT(KCaptionGerman, "TstCap GE"); - _LIT(KShortCaptionGerman, "TC GE"); - _LIT(KIconFilenameGerman, "Z:\\resource\\apps\\ticoncapoverride.mbm"); - - TApaAppInfo appInfo; - RFile file; - TBuf fileName; - - // Change the locale to French - INFO_PRINTF1(_L("Change the locale to French...")); - TRAP(ret,ChangeLocaleL(ELangFrench)); - TEST(ret == KErrNone); - INFO_PRINTF2(_L("----System Language==>%d"), User::Language()); - - TEST(User::Language() == ELangFrench);//check language is set to French. - - // Force the applist to be updated (so test app gets new language settings) - RPointerArray dummy; - User::LeaveIfError(iLs.ForceRegistration(dummy)); - - //Get test app's information - iLs.GetAppInfo(appInfo, KUidTestIconCapOverride); - - //Get test app's icon information - iLs.GetAppIcon(KUidTestIconCapOverride,file); - file.FullName(fileName); - - TBuf printString(KCaptionFrench); - - //compare the captions, icon in French with the value in central repository - INFO_PRINTF1(_L("Compares Caption with value in CenRep...")); - INFO_PRINTF2(_L("----Exepcted Caption in French==>%S"), &printString); - INFO_PRINTF2(_L("----Retrieved Caption==>%S"), &appInfo.iCaption); - TEST(appInfo.iCaption == KCaptionFrench); - - INFO_PRINTF1(_L("Compares Short Caption with value in CenRep...")); - printString.Zero(); - printString.Copy(KShortCaptionFrench); - INFO_PRINTF2(_L("----Expected short caption in French==>%S"), &printString); - INFO_PRINTF2(_L("----Retrieved short caption==>%S"), &appInfo.iShortCaption); - TEST(appInfo.iShortCaption == KShortCaptionFrench); - - INFO_PRINTF1(_L("Compares Icon filename with value in CenRep...")); - printString.Zero(); - printString.Copy(KIconFilenameFrench); - INFO_PRINTF2(_L("----Expected icon filename in French==>%S"), &printString); - INFO_PRINTF2(_L("----Retrieved icon filename==>%S"), &fileName); - TEST(fileName.Compare(KIconFilenameFrench)==0); - - //Change the locale to German. - INFO_PRINTF1(_L("Change the locale to German...")); - TRAP(ret,ChangeLocaleL(ELangGerman)); - TEST(ret == KErrNone); - INFO_PRINTF2(_L("----System Language==>%d"), User::Language()); - TEST(User::Language() == ELangGerman);//check language is set to German. - - // Force the applist to be updated (so test app gets new language settings) - User::LeaveIfError(iLs.ForceRegistration(dummy)); - - //Get test app's information - iLs.GetAppInfo(appInfo, KUidTestIconCapOverride); - - file.Close(); - //Get test app's icon information - iLs.GetAppIcon(KUidTestIconCapOverride,file); - - fileName.Zero(); - file.FullName(fileName); - - // The entry for language German is not there in Central repository so it compares - // the captions, icon in this language with the values in resource file. - INFO_PRINTF1(_L("Compares Caption with value in Resource file...")); - printString.Zero(); - printString.Copy(KCaptionGerman); - INFO_PRINTF2(_L("----Expected caption in German==>%S"), &printString); - INFO_PRINTF2(_L("----Retrieved caption==>%S"), &appInfo.iCaption); - TEST(appInfo.iCaption == KCaptionGerman); - - INFO_PRINTF1(_L("Compares short caption with value in Resource file...")); - printString.Zero(); - printString.Copy(KShortCaptionGerman); - INFO_PRINTF2(_L("----Expected short caption in German==>%S"), &printString); - INFO_PRINTF2(_L("----Retrieved short caption==>%S"), &appInfo.iShortCaption); - TEST(appInfo.iShortCaption == KShortCaptionGerman); - - INFO_PRINTF1(_L("Compares icon filename with value in Resource file...")); - printString.Zero(); - printString.Copy(KIconFilenameGerman); - INFO_PRINTF2(_L("----Expected icon filename in German==>%S"), &printString); - INFO_PRINTF2(_L("----Retrieved icon filename==>%S"), &fileName); - TEST(fileName.Compare(KIconFilenameGerman)==0); - - // Change the locale to English for changing the settings back to the original - INFO_PRINTF1(_L("Change the locale back to English...")); - TRAP(ret,ChangeLocaleL(ELangEnglish)); - TEST(ret == KErrNone); - INFO_PRINTF2(_L("----System Language==>%d"), User::Language()); - - TEST(User::Language() == ELangEnglish);//check language is set to English. - - // Force the applist to be updated (so test app gets new language settings) - User::LeaveIfError(iLs.ForceRegistration(dummy)); - - //Get test app's information - iLs.GetAppInfo(appInfo, KUidTestIconCapOverride); - - file.Close(); - //Get test app's icon information - iLs.GetAppIcon(KUidTestIconCapOverride,file); - - fileName.Zero(); - file.FullName(fileName); - - //compare the captions, icon in English with the value in central repository - INFO_PRINTF1(_L("Compares Caption with value in CenRep...")); - printString.Zero(); - printString.Copy(KCenRepCaption); - INFO_PRINTF2(_L("----Expected caption in English==>%S"), &printString); - INFO_PRINTF2(_L("----Retrieved caption==>%S"), &appInfo.iCaption); - TEST(appInfo.iCaption == KCenRepCaption); - - INFO_PRINTF1(_L("Compares short caption with value in CenRep...")); - printString.Zero(); - printString.Copy(KCenRepShortCaption); - INFO_PRINTF2(_L("----Expected short caption==>%S"), &printString); - INFO_PRINTF2(_L("----Retrieved short caption==>%S"), &appInfo.iShortCaption); - - TEST(appInfo.iShortCaption == KCenRepShortCaption); - INFO_PRINTF1(_L("Compares icon filename with value in CenRep...")); - printString.Zero(); - printString.Copy(KCenRepIconFilename); - INFO_PRINTF2(_L("----Expected icon filename==>%S"), &printString); - INFO_PRINTF2(_L("----Retrieved icon filename==>%S"), &fileName); - TEST(fileName.Compare(KCenRepIconFilename)==0); - - INFO_PRINTF1(_L("APPFWK-APPARC-0090:TestIconCaptionOverridesWithChangeLangL finished...")); - } - -/** -@SYMTestCaseID APPFWK-APPARC-0091 -@SYMPREQ CR1787 -@SYMREQ REQ9167 -@SYMDEF DEF125262 -@SYMTestCaseDesc Checks there is no memory leaks when CApaIconCaptionOverridesForApp & CApaIconCaptionCenrepObserver - objects are created and destroyed. -@SYMTestType CIT -@SYMTestPriority Critical -@SYMTestActions Marks the Heap memory - Invokes the static method 'TestIconCaptionOverridesL()' defined in 'ticonloaderandiconarrayforleaks.dll', - that creates objects of CApaIconCaptionOverridesForApp, CApaIconCaptionCenrepObserver and deletes those. - And then tests, there is no memory leak from the creation to destruction of those objects. -@SYMTestExpectedResults There should be no memory leaks. -*/ - -void CT_CaptionStep::TestIconCaptionOverridesMemoryLeaksL() - { - INFO_PRINTF1(_L("APPFWK-APPARC-0091:TestIconCaptionOverridesMemoryLeaksL started...")); - __UHEAP_MARK; - TIconLoaderAndIconArrayForLeaks::TestIconCaptionOverridesL(); - __UHEAP_MARKEND; - INFO_PRINTF1(_L("APPFWK-APPARC-0091:TestIconCaptionOverridesMemoryLeaksL finished...")); - } - -void CT_CaptionStep::DoIconCaptionOverridesTestL() - { - TestIconCaptionOverridesL(); - TestIconCaptionOverridesWithChangeLangL(); - TestCenRepChangeNotificationL(); - TestIconCaptionOverridesMemoryLeaksL(); - TestApiPrecedenceOverCenRepConfigInfoL(); - } - -TVerdict CT_CaptionStep::doTestStepL() - { - INFO_PRINTF1(_L("Test T_Caption step started....\n")); - - // Connect to Servers - TEST(iFs.Connect() == KErrNone); - TEST(iLs.Connect() == KErrNone); - - // run language tests for the test caption - TRAPD(r, DoLanguageTestL()); - TEST(r==KErrNone); - INFO_PRINTF2(_L("DoLanguageTestL() finished with value '%d'\n"), r); - - // run icon caption overrides tests - TRAP(r, DoIconCaptionOverridesTestL()); - TEST(r==KErrNone); - INFO_PRINTF2(_L("DoIconCaptionOverridesTestL() finished with value '%d'\n"), r); - - // run shortcaption setting tests - TRAP(r, DoShortCaptionTestL()); - TEST(r==KErrNone); - INFO_PRINTF2(_L("DoShortCaptionTestL() finished with value '%d'\n"), r); - - - INFO_PRINTF1(_L("....test T_Caption step finished!")); - return TestStepResult(); - }