sl@0: // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies). sl@0: // All rights reserved. sl@0: // This component and the accompanying materials are made available sl@0: // under the terms of "Eclipse Public License v1.0" sl@0: // which accompanies this distribution, and is available sl@0: // at the URL "http://www.eclipse.org/legal/epl-v10.html". sl@0: // sl@0: // Initial Contributors: sl@0: // Nokia Corporation - initial contribution. sl@0: // sl@0: // Contributors: sl@0: // sl@0: // Description: sl@0: // sl@0: sl@0: sl@0: #include "T_CheckLocale.h" sl@0: #include sl@0: sl@0: RTest test(_L("T_NewLocaleModel")); sl@0: sl@0: sl@0: //new locale API should work in the new locale model sl@0: void TestNewLocaleAPI() sl@0: { sl@0: TExtendedLocale firstExtendLocale; sl@0: sl@0: test.Start(_L(" @SYMTestCaseID:TI18N-EUSER-CT-4022 new LoadLocale() interface")); sl@0: firstExtendLocale.LoadSystemSettings(); sl@0: test( KErrNone == firstExtendLocale.LoadLocale(KGermanLanguage(), KGERegion(), KGECollation()) ); sl@0: test( KErrNone == firstExtendLocale.SaveSystemSettings() ); sl@0: TestLocaleDLLName(test, KGermanLanguage(), KGERegion(), KGECollation() ); sl@0: TestLocaleContent(test, KGELanguageID, KGECurrencySymbol, KGETCollationMethodID); sl@0: test( ERegDEU == User::RegionCode() ); sl@0: sl@0: firstExtendLocale.LoadSystemSettings(); sl@0: test( KErrNone == firstExtendLocale.LoadLocale(KCNLanguage(), KCNRegion(), KCNCollation()) ); sl@0: test( KErrNone == firstExtendLocale.SaveSystemSettings() ); sl@0: TestLocaleDLLName(test, KCNLanguage(), KCNRegion(), KCNCollation() ); sl@0: TestLocaleContent(test, KCNLanguageID, KCNCurrencySymbol, KCNTCollationMethodID); sl@0: sl@0: //becasue TestLocaleContent() naturally check the system locale content, we mark this test case here. sl@0: test.Start(_L(" @SYMTestCaseID:TI18N-EUSER-CT-4025 publish locale content to the system")); sl@0: test.End(); sl@0: sl@0: firstExtendLocale.LoadSystemSettings(); sl@0: test( KErrNone == firstExtendLocale.LoadLocale(KUSLanguage(), KCNRegion(), KGECollation()) ); sl@0: test( KErrNone == firstExtendLocale.SaveSystemSettings() ); sl@0: TestLocaleDLLName(test, KUSLanguage(), KCNRegion(), KGECollation() ); sl@0: TestLocaleContent(test, KUSLanguageID, KCNCurrencySymbol, KGETCollationMethodID); sl@0: test.End(); sl@0: sl@0: test.Start(_L(" @SYMTestCaseID:TI18N-EUSER-CT-4023 new LoadLocaleAspect() interface")); sl@0: firstExtendLocale.LoadSystemSettings(); sl@0: test( KErrNone == firstExtendLocale.LoadLocaleAspect(KCNLanguage)); sl@0: test( KErrNone == firstExtendLocale.LoadLocaleAspect(KUSRegion)); sl@0: test( KErrNone == firstExtendLocale.LoadLocaleAspect(KGECollation)); sl@0: test( KErrNone == firstExtendLocale.SaveSystemSettings() ); sl@0: TestLocaleDLLName(test, KCNLanguage(), KUSRegion(), KGECollation() ); sl@0: TestLocaleContent(test, KCNLanguageID, KUSCurrencySymbol, KGETCollationMethodID); sl@0: sl@0: firstExtendLocale.LoadSystemSettings(); sl@0: test( KErrNone == firstExtendLocale.LoadLocaleAspect(KEnglishLanguage)); sl@0: test( KErrNone == firstExtendLocale.LoadLocaleAspect(KUKRegion)); sl@0: test( KErrNone == firstExtendLocale.LoadLocaleAspect(KStandardCollation)); sl@0: test( KErrNone == firstExtendLocale.SaveSystemSettings() ); sl@0: TestLocaleDLLName(test, KEnglishLanguage(), KUKRegion(), KStandardCollation() ); sl@0: TestLocaleContent(test, KEnglishLanguageID, KUKCurrencySymbol, KStandardCollationID); sl@0: test.End(); sl@0: sl@0: test.Start(_L(" @SYMTestCaseID:TI18N-EUSER-CT-4020 new LoadLocale() should not work with old locale DLL")); sl@0: firstExtendLocale.LoadSystemSettings(); sl@0: test( KErrNotFound == firstExtendLocale.LoadLocale(KOldUKLocaleName(), KOldUKLocaleName(), KOldUKLocaleName()) ); sl@0: firstExtendLocale.LoadSystemSettings(); sl@0: test( KErrNotFound == firstExtendLocale.LoadLocale(KOldCNLocaleName(), KOldCNLocaleName(), KOldCNLocaleName()) ); sl@0: firstExtendLocale.LoadSystemSettings(); sl@0: test( KErrNotFound == firstExtendLocale.LoadLocale(KOldUKLocaleName(), KOldCNLocaleName(), KOldGELocaleName()) ); sl@0: test.End(); sl@0: sl@0: test.Start(_L(" @SYMTestCaseID:TI18N-EUSER-CT-4021 new LoadLocaleAspect() should not work with old locale DLL")); sl@0: firstExtendLocale.LoadSystemSettings(); sl@0: test( KErrNotFound == firstExtendLocale.LoadLocaleAspect(KOldUKLocaleName())); sl@0: firstExtendLocale.LoadSystemSettings(); sl@0: test( KErrNotFound == firstExtendLocale.LoadLocaleAspect(KOldCNLocaleName())); sl@0: firstExtendLocale.LoadSystemSettings(); sl@0: test( KErrNotFound == firstExtendLocale.LoadLocaleAspect(KOldGELocaleName())); sl@0: test.End(); sl@0: sl@0: sl@0: test.Start(_L(" @SYMTestCaseID:TI18N-EUSER-CT-4024 check DLL naming convention")); sl@0: firstExtendLocale.LoadSystemSettings(); sl@0: test( KErrNotFound == firstExtendLocale.LoadLocale(KInvalidNameLanguage(), KUKRegion(), KGECollation()) ); sl@0: firstExtendLocale.LoadSystemSettings(); sl@0: test( KErrNotFound == firstExtendLocale.LoadLocale(KEnglishLanguage(), KInvalidNameRegion(), KGECollation()) ); sl@0: firstExtendLocale.LoadSystemSettings(); sl@0: test( KErrNotFound == firstExtendLocale.LoadLocale(KEnglishLanguage(), KUKRegion(), KInvalidNameCollation()) ); sl@0: firstExtendLocale.LoadSystemSettings(); sl@0: test( KErrNotFound == firstExtendLocale.LoadLocale(KInvalidNameLanguage(), KInvalidNameRegion(), KInvalidNameCollation()) ); sl@0: sl@0: firstExtendLocale.LoadSystemSettings(); sl@0: test( KErrNotFound == firstExtendLocale.LoadLocaleAspect(KInvalidNameLanguage())); sl@0: firstExtendLocale.LoadSystemSettings(); sl@0: test( KErrNotFound == firstExtendLocale.LoadLocaleAspect(KInvalidNameRegion())); sl@0: firstExtendLocale.LoadSystemSettings(); sl@0: test( KErrNotFound == firstExtendLocale.LoadLocaleAspect(KInvalidNameCollation())); sl@0: test.End(); sl@0: } sl@0: sl@0: //Old locale API should work with the legacy old locale DLL name in the new locale model sl@0: void TestOldLocaleAPI() sl@0: { sl@0: TExtendedLocale firstExtendLocale; sl@0: sl@0: test.Start(_L(" @SYMTestCaseID:TI18N-EUSER-CIT-4018 old LoadLocale() API should work with the legacy old locale DLL name in the new locale model")); sl@0: firstExtendLocale.LoadSystemSettings(); sl@0: test( KErrNone == firstExtendLocale.LoadLocale(KOldUKLocaleName()) ); sl@0: test( KErrNone == firstExtendLocale.SaveSystemSettings() ); sl@0: TestLocaleDLLName(test, KEnglishLanguage(), KUKRegion(), KStandardCollation() ); sl@0: TestLocaleContent(test, KEnglishLanguageID, KUKCurrencySymbol, KStandardCollationID); sl@0: sl@0: firstExtendLocale.LoadSystemSettings(); sl@0: test( KErrNone == firstExtendLocale.LoadLocale(KOldCNLocaleName()) ); sl@0: test( KErrNone == firstExtendLocale.SaveSystemSettings() ); sl@0: TestLocaleDLLName(test, KCNLanguage(), KCNRegion(), KCNCollation() ); sl@0: TestLocaleContent(test, KCNLanguageID, KCNCurrencySymbol, KCNTCollationMethodID); sl@0: test.End(); sl@0: sl@0: test.Start(_L(" @SYMTestCaseID:TI18N-EUSER-CIT-4017 old LoadLocaleAspect() API should work with the legacy old locale DLL name in the new locale model")); sl@0: firstExtendLocale.LoadSystemSettings(); sl@0: test( KErrNone == firstExtendLocale.LoadLocaleAspect(ELocaleLanguageSettings, KOldGELocaleName())); sl@0: test( KErrNone == firstExtendLocale.LoadLocaleAspect(ELocaleCollateSetting, KOldGELocaleName())); sl@0: test( KErrNone == firstExtendLocale.LoadLocaleAspect(ELocaleLocaleSettings, KOldGELocaleName())); sl@0: test( KErrNone == firstExtendLocale.SaveSystemSettings() ); sl@0: TestLocaleDLLName(test, KGermanLanguage(), KGERegion(), KGECollation() ); sl@0: TestLocaleContent(test, KGELanguageID, KGECurrencySymbol, KGETCollationMethodID); sl@0: sl@0: firstExtendLocale.LoadSystemSettings(); sl@0: test( KErrNone == firstExtendLocale.LoadLocaleAspect(ELocaleLanguageSettings, KOldUKLocaleName())); sl@0: test( KErrNone == firstExtendLocale.LoadLocaleAspect(ELocaleCollateSetting, KOldCNLocaleName())); sl@0: test( KErrNone == firstExtendLocale.LoadLocaleAspect(ELocaleLocaleSettings, KOldUSLocaleName())); sl@0: test( KErrNone == firstExtendLocale.SaveSystemSettings() ); sl@0: TestLocaleDLLName(test, KEnglishLanguage(), KUSRegion(), KCNCollation() ); sl@0: TestLocaleContent(test, KEnglishLanguageID, KUSCurrencySymbol, KCNTCollationMethodID); sl@0: test.End(); sl@0: } sl@0: sl@0: sl@0: void TestNewLocaleModel() sl@0: { sl@0: TestOldLocaleAPI(); sl@0: TestNewLocaleAPI(); sl@0: } sl@0: sl@0: TInt E32Main() sl@0: { sl@0: CTrapCleanup* tc = CTrapCleanup::New(); sl@0: test(tc != NULL); sl@0: sl@0: __UHEAP_MARK; sl@0: sl@0: test.Start(_L("The test for check old API and new API behavior in new locale model")); sl@0: test.Title(); sl@0: TRAPD(err, ::TestNewLocaleModel()) sl@0: test(err == KErrNone); sl@0: sl@0: test.End(); sl@0: test.Close(); sl@0: sl@0: __UHEAP_MARKEND; sl@0: sl@0: delete tc; sl@0: sl@0: return(KErrNone); sl@0: }