textandlocutils/nearestlangutils/tsrc/T_LangUtilsLang.cpp
author hgs
Tue, 07 Sep 2010 16:39:34 +0800
changeset 59 7d891bb52a7d
permissions -rw-r--r--
201033_04
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
59
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
     1
// Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies).
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
     2
// All rights reserved.
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
     3
// This component and the accompanying materials are made available
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
     4
// under the terms of "Eclipse Public License v1.0"
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
     5
// which accompanies this distribution, and is available
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
     6
// at the URL "http://www.eclipse.org/legal/epl-v10.html".
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
     7
//
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
     8
// Initial Contributors:
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
     9
// Nokia Corporation - initial contribution.
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
    10
//
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
    11
// Contributors:
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
    12
//
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
    13
// Description:
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
    14
//
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
    15
#include <f32file.h>
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
    16
#include <hal.h>
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
    17
#include <e32std.h>
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
    18
#include <langutil.h>
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
    19
#include "LangUtilImpl.h"
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
    20
#include "T_LangUtilsTestShareFunc.h"
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
    21
#include "t_langutilslang.h"
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
    22
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
    23
#define test(cond)                                          \
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
    24
    {                                                       \
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
    25
    TBool __bb = (cond);                                    \
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
    26
    TEST(__bb);                                             \
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
    27
    if (!__bb)                                              \
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
    28
        {                                                   \
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
    29
        ERR_PRINTF1(_L("ERROR: Test Failed"));              \
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
    30
        User::Leave(1);                                     \
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
    31
        }                                                   \
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
    32
    }
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
    33
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
    34
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
    35
LOCAL_D RFs                 TheFs;
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
    36
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
    37
// Our test diectory and files...
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
    38
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
    39
_LIT (KNullFilename, "");
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
    40
_LIT (KRscFilename,  "C:\\abc.rsc");
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
    41
_LIT (KRscFilenameNoSuffix,  "C:\\abc.");
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
    42
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
    43
_LIT (KAmericanLang, "C:\\abc.r10");
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
    44
_LIT (KFrenchLang,   "C:\\abc.r02");
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
    45
_LIT (KJapanEnglishLang, "C:\\abc.r160");
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
    46
_LIT (KEnglishLang, "C:\\abc.r01");
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
    47
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
    48
LOCAL_C void DeleteTestFiles()
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
    49
{
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
    50
    User::LeaveIfError (TheFs.Connect ());
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
    51
    ::CleanupClosePushL (TheFs);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
    52
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
    53
    LangUtilsTest::DeleteFile (TheFs, KRscFilename);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
    54
    LangUtilsTest::DeleteFile (TheFs, KAmericanLang);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
    55
    LangUtilsTest::DeleteFile (TheFs, KFrenchLang);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
    56
    LangUtilsTest::DeleteFile (TheFs, KJapanEnglishLang);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
    57
    LangUtilsTest::DeleteFile (TheFs, KEnglishLang);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
    58
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
    59
    CleanupStack::PopAndDestroy (&::TheFs);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
    60
}
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
    61
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
    62
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
    63
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
    64
void CT_LANGUTILSLANG::CreateTestFiles()
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
    65
{
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
    66
    User::LeaveIfError (TheFs.Connect ());
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
    67
    ::CleanupClosePushL (TheFs);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
    68
    test (LangUtilsTest::FileExists (TheFs, KRscFilename) == EFalse);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
    69
    test (LangUtilsTest::FileExists (TheFs, KAmericanLang) == EFalse);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
    70
    test (LangUtilsTest::FileExists (TheFs, KFrenchLang) == EFalse);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
    71
    test (LangUtilsTest::FileExists (TheFs, KJapanEnglishLang) == EFalse);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
    72
    test (LangUtilsTest::FileExists (TheFs, KEnglishLang) == EFalse);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
    73
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
    74
    // Create the files...
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
    75
    RFile rFile;
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
    76
    // KFilename1 can't be created
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
    77
    rFile.Create (TheFs, KRscFilename, EFileRead);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
    78
    rFile.Close ();
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
    79
    rFile.Create (TheFs, KAmericanLang, EFileRead);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
    80
    rFile.Close ();
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
    81
    rFile.Create (TheFs, KFrenchLang, EFileRead);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
    82
    rFile.Close ();
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
    83
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
    84
    CleanupStack::PopAndDestroy (&::TheFs);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
    85
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
    86
}
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
    87
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
    88
/**
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
    89
@SYMTestCaseID SYSLIB-BAFL-CT-0070
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
    90
@SYMTestCaseDesc Tests the configuration of the ideal language.
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
    91
@SYMTestPriority High
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
    92
@SYMTestActions  Set the ideal language and look for nearest language files.
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
    93
@SYMTestExpectedResults The test must not fail.
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
    94
@SYMREQ 3770: Configurable "ideal language" in LangUtil::NearestLanguageFile.
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
    95
*/
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
    96
void CT_LANGUTILSLANG::TestIdeaLang()
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
    97
    {
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
    98
    INFO_PRINTF1 (_L (" @SYMTestCaseID SYSLIB-BAFL-CT-0070 TestIdeaLang "));
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
    99
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   100
    __UHEAP_MARK;
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   101
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   102
    User::LeaveIfError (TheFs.Connect ());
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   103
    ::CleanupClosePushL (TheFs);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   104
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   105
    TBuf <256> filename;
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   106
    TLanguage language;
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   107
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   108
    // Test ideal language code
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   109
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   110
    // Check initial value of ideal language
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   111
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   112
    language=LangUtil::IdealLanguage();
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   113
    test(language == ELangNone);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   114
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   115
    // Set and read back the ideal language
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   116
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   117
    LangUtil::SetIdealLanguage( ELangGerman);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   118
    language=LangUtil::IdealLanguage();
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   119
    test(language == ELangGerman);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   120
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   121
    LangUtil::SetIdealLanguage( ELangAmerican);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   122
    language=LangUtil::IdealLanguage();
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   123
    test(language == ELangAmerican);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   124
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   125
    // Test NearestLanguageFile with empty name
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   126
    TFileName resPath;
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   127
    LangUtil::NearestLanguageFile (TheFs, resPath);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   128
    test(resPath.Length()==0);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   129
    INFO_PRINTF3 (_L ("The NearestLanguageFile for the null file - %S - is - %S -\n"), &KNullFilename, &filename);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   130
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   131
    // Test NearestLanguageFile with no suffix
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   132
    filename.Copy (KRscFilenameNoSuffix);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   133
    LangUtil::NearestLanguageFile (TheFs, filename);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   134
    test(filename==KRscFilenameNoSuffix);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   135
    INFO_PRINTF3 (_L ("The NearestLanguageFile for %S is %S\n"), &KRscFilenameNoSuffix, &filename);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   136
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   137
    // Test NearestLanguageFile
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   138
    filename.Copy (KRscFilename);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   139
    LangUtil::NearestLanguageFile (TheFs, filename);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   140
    INFO_PRINTF3 (_L ("The NearestLanguageFile for %S is %S\n"), &KRscFilename, &filename);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   141
    test(filename == KAmericanLang);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   142
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   143
    // Set ideal language to one we don't have
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   144
    LangUtil::SetIdealLanguage( ELangGerman);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   145
    language=LangUtil::IdealLanguage();
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   146
    test(language == ELangGerman);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   147
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   148
    // Test NearestLanguageFile
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   149
    filename.Copy (KRscFilename);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   150
    LangUtil::NearestLanguageFile (TheFs, filename);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   151
    INFO_PRINTF3 (_L ("The NearestLanguageFile for %S is %S\n"), &KRscFilename, &filename);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   152
    test(filename == KRscFilename);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   153
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   154
    // Restore ideal language to default
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   155
    LangUtil::SetIdealLanguage( ELangNone);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   156
    language=LangUtil::IdealLanguage();
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   157
    test(language == ELangNone);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   158
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   159
    // Test NearestLanguageFile
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   160
    filename.Copy (KRscFilename);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   161
    LangUtil::NearestLanguageFile (TheFs, filename);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   162
    INFO_PRINTF3 (_L ("The NearestLanguageFile for %S is %S\n"), &KRscFilename, &filename);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   163
    test(filename == KRscFilename);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   164
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   165
    // Set ideal language to French
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   166
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   167
    LangUtil::SetIdealLanguage( ELangFrench);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   168
    language=LangUtil::IdealLanguage();
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   169
    test(language == ELangFrench);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   170
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   171
    // Test NearestLanguageFile
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   172
    filename.Copy (KRscFilename);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   173
    LangUtil::NearestLanguageFile (TheFs, filename);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   174
    INFO_PRINTF3 (_L ("The NearestLanguageFile for %S is %S\n"), &KRscFilename, &filename);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   175
    test(filename == KFrenchLang);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   176
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   177
    // Restore ideal language to default
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   178
    LangUtil::SetIdealLanguage( ELangNone);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   179
    language=LangUtil::IdealLanguage();
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   180
    test(language == ELangNone);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   181
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   182
    // Release ideal language - free's TLS
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   183
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   184
    LangUtil::ReleaseIdealLanguage();
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   185
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   186
    CleanupStack::PopAndDestroy (&::TheFs);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   187
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   188
    __UHEAP_MARKEND;
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   189
    }
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   190
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   191
/**
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   192
@SYMTestCaseID SYSLIB-BAFL-CT-0071
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   193
@SYMTestCaseDesc Tests the overload of LangUtil::NearestLanguageFile.
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   194
@SYMTestPriority High
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   195
@SYMTestActions  Calls the overload of LangUtil::NearestLanguageFile and checks the returned language.
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   196
@SYMTestExpectedResults The test must not fail.
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   197
@SYMREQ 3785: Overload of LangUtil::NearestLanguageFile.
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   198
*/
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   199
void CT_LANGUTILSLANG::TestNearestLang()
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   200
    {
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   201
    INFO_PRINTF1 (_L (" @SYMTestCaseID SYSLIB-BAFL-CT-0071 TestNearestLang "));
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   202
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   203
    __UHEAP_MARK;
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   204
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   205
    User::LeaveIfError (TheFs.Connect ());
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   206
    ::CleanupClosePushL (TheFs);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   207
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   208
    TBuf <256> filename;
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   209
    TLanguage language;
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   210
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   211
    // Ensure that ideal language is default
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   212
    LangUtil::SetIdealLanguage( ELangNone);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   213
    language=LangUtil::IdealLanguage();
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   214
    test(language == ELangNone);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   215
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   216
    // Test NearestLanguageFile overload with language returned
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   217
    language=ELangAmerican;
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   218
    filename.Copy (KRscFilename);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   219
    LangUtil::NearestLanguageFile (TheFs, filename, language);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   220
    INFO_PRINTF4(_L ("The NearestLanguageFile for %S is %S, language = %d\n"), &KRscFilename, &filename, language);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   221
    test(language == ELangNone);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   222
    test(filename == KRscFilename);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   223
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   224
    // Set ideal language to American
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   225
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   226
    LangUtil::SetIdealLanguage( ELangAmerican);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   227
    language=LangUtil::IdealLanguage();
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   228
    test(language == ELangAmerican);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   229
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   230
    // Test NearestLanguageFile overload with language returned
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   231
    language=ELangNone;
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   232
    filename.Copy (KRscFilename);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   233
    LangUtil::NearestLanguageFile (TheFs, filename, language);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   234
    INFO_PRINTF4 (_L ("The NearestLanguageFile for %S is %S, language = %d\n"), &KRscFilename, &filename, language);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   235
    test(language == ELangAmerican);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   236
    test(filename == KAmericanLang);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   237
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   238
    // Set ideal language to French
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   239
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   240
    LangUtil::SetIdealLanguage( ELangFrench);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   241
    language=LangUtil::IdealLanguage();
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   242
    test(language == ELangFrench);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   243
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   244
    // Test NearestLanguageFile overload with language returned
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   245
    language=ELangNone;
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   246
    filename.Copy (KRscFilename);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   247
    LangUtil::NearestLanguageFile (TheFs, filename, language);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   248
    INFO_PRINTF4 (_L ("The NearestLanguageFile for %S is %S, language = %d\n"), &KRscFilename, &filename, language);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   249
    test(language == ELangFrench);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   250
    test(filename == KFrenchLang);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   251
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   252
    // Set ideal language to one we don't have
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   253
    LangUtil::SetIdealLanguage( ELangGerman);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   254
    language=LangUtil::IdealLanguage();
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   255
    test(language == ELangGerman);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   256
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   257
    // Test NearestLanguageFile overload with language returned
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   258
    language=ELangAmerican;
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   259
    filename.Copy (KRscFilename);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   260
    LangUtil::NearestLanguageFile (TheFs, filename, language);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   261
    INFO_PRINTF4 (_L ("The NearestLanguageFile for %S is %S, language = %d\n"), &KRscFilename, &filename, language);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   262
    test(language == ELangNone);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   263
    test(filename == KRscFilename);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   264
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   265
    // Restore ideal language to default
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   266
    LangUtil::SetIdealLanguage( ELangNone);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   267
    language=LangUtil::IdealLanguage();
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   268
    test(language == ELangNone);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   269
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   270
    // Release ideal language - free's TLS
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   271
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   272
    LangUtil::ReleaseIdealLanguage();
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   273
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   274
    CleanupStack::PopAndDestroy (&::TheFs);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   275
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   276
    __UHEAP_MARKEND;
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   277
    }
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   278
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   279
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   280
void CT_LANGUTILSLANG::TestLANGUTILSLANG ()
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   281
    {
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   282
    CreateTestFiles();
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   283
    TestIdeaLang ();
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   284
    TestNearestLang ();
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   285
    DeleteTestFiles();
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   286
    }
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   287
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   288
CT_LANGUTILSLANG::CT_LANGUTILSLANG()
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   289
    {
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   290
    SetTestStepName(KTestStep_T_LANGUTILSLANG);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   291
    }
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   292
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   293
TVerdict CT_LANGUTILSLANG::doTestStepL()
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   294
    {
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   295
    SetTestStepResult(EFail);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   296
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   297
    __UHEAP_MARK;
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   298
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   299
    TRAPD(error1, TestLANGUTILSLANG());
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   300
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   301
    __UHEAP_MARKEND;
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   302
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   303
    if(error1 == KErrNone )
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   304
        {
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   305
        SetTestStepResult(EPass);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   306
        }
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   307
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   308
    return TestStepResult();
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   309
    }
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   310