textandlocutils/nearestlangutils/tsrc/T_LangUtilsImp.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
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
    16
#include "t_langutilsimp.h"
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
    17
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
    18
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
    19
#define test(cond)                                          \
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
    20
    {                                                       \
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
    21
    TBool __bb = (cond);                                    \
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
    22
    TEST(__bb);                                             \
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
    23
    if (!__bb)                                              \
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
    24
        {                                                   \
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
    25
        ERR_PRINTF1(_L("ERROR: Test Failed"));              \
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
    26
        User::Leave(1);                                     \
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
    27
        }                                                   \
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
    28
    }
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
    29
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
    30
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
    31
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
    32
void CT_LANGUTILSIMP::TestPath(const TLanguagePath& aPath, const TLanguage* aExpected, TInt aExpectedCount)
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
    33
    {
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
    34
    for (int i = 0; i != aExpectedCount; ++i)
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
    35
        test(aPath[i] == *aExpected++);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
    36
    test(aPath[aExpectedCount] == ELangNone);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
    37
    }
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
    38
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
    39
const TLanguage ExpectedPath[] = { ELangFrench, ELangJapanese, ELangGerman, ELangGreek,
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
    40
    ELangArabic, ELangEnglish, ELangItalian, ELangHebrew };
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
    41
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
    42
/**
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
    43
@SYMTestCaseID          SYSLIB-BAFL-CT-0443
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
    44
@SYMTestCaseDesc        Tests TLanguagePath class
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
    45
@SYMTestPriority        High
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
    46
@SYMTestActions         Test for adding different language paths
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
    47
@SYMTestExpectedResults Test must not fail
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
    48
@SYMREQ                 REQ0000
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
    49
*/
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
    50
void CT_LANGUTILSIMP::TestAddLanguage()
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
    51
    {
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
    52
    INFO_PRINTF1(_L(" @SYMTestCaseID:SYSLIB-BAFL-CT-0443 "));
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
    53
    TLanguagePath path;
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
    54
    path[0] = ELangNone;
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
    55
    AddLanguage(path, ELangNone);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
    56
    TestPath(path, ExpectedPath, 0);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
    57
    AddLanguage(path, ELangFrench);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
    58
    TestPath(path, ExpectedPath, 1);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
    59
    AddLanguage(path, ELangFrench);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
    60
    TestPath(path, ExpectedPath, 1);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
    61
    AddLanguage(path, ELangNone);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
    62
    TestPath(path, ExpectedPath, 1);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
    63
    AddLanguage(path, ELangFrench);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
    64
    TestPath(path, ExpectedPath, 1);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
    65
    AddLanguage(path, ELangJapanese);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
    66
    TestPath(path, ExpectedPath, 2);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
    67
    AddLanguage(path, ELangFrench);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
    68
    TestPath(path, ExpectedPath, 2);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
    69
    AddLanguage(path, ELangNone);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
    70
    TestPath(path, ExpectedPath, 2);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
    71
    AddLanguage(path, ELangGerman);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
    72
    TestPath(path, ExpectedPath, 3);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
    73
    AddLanguage(path, ELangGreek);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
    74
    TestPath(path, ExpectedPath, 4);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
    75
    AddLanguage(path, ELangArabic);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
    76
    TestPath(path, ExpectedPath, 5);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
    77
    AddLanguage(path, ELangNone);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
    78
    TestPath(path, ExpectedPath, 5);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
    79
    AddLanguage(path, ELangEnglish);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
    80
    TestPath(path, ExpectedPath, 6);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
    81
    AddLanguage(path, ELangItalian);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
    82
    TestPath(path, ExpectedPath, 7);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
    83
    AddLanguage(path, ELangNone);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
    84
    TestPath(path, ExpectedPath, 7);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
    85
    AddLanguage(path, ELangHebrew);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
    86
    TestPath(path, ExpectedPath, 8);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
    87
    AddLanguage(path, ELangHebrew);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
    88
    TestPath(path, ExpectedPath, 8);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
    89
    AddLanguage(path, ELangEnglish);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
    90
    TestPath(path, ExpectedPath, 8);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
    91
    AddLanguage(path, ELangItalian);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
    92
    TestPath(path, ExpectedPath, 8);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
    93
    AddLanguage(path, ELangNone);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
    94
    TestPath(path, ExpectedPath, 8);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
    95
    AddLanguage(path, ELangFrench);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
    96
    TestPath(path, ExpectedPath, 8);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
    97
    AddLanguage(path, ELangNone);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
    98
    TestPath(path, ExpectedPath, 8);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
    99
    AddLanguage(path, ELangGerman);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   100
    TestPath(path, ExpectedPath, 8);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   101
    }
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   102
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   103
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   104
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   105
/**
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   106
@SYMTestCaseID          SYSLIB-BAFL-CT-0444
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   107
@SYMTestCaseDesc        Tests for the functionality of TLocale class
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   108
@SYMTestPriority        High
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   109
@SYMTestActions         Test for language downgrades
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   110
@SYMTestExpectedResults Test must not fail
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   111
@SYMREQ                 REQ0000
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   112
*/
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   113
void CT_LANGUTILSIMP::TestDowngrade(SDowngradeTest& aTest)
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   114
    {
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   115
    INFO_PRINTF1(_L(" @SYMTestCaseID:SYSLIB-BAFL-CT-0444 "));
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   116
    TLocale loc;
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   117
    loc.SetLanguageDowngrade(0, aTest.iIn[1]);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   118
    loc.SetLanguageDowngrade(1, aTest.iIn[2]);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   119
    loc.SetLanguageDowngrade(2, aTest.iIn[3]);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   120
    TLanguagePath path;
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   121
    MakeLanguageDowngradePath(path, aTest.iIn[0], ELangNone, loc);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   122
    for (int i = 0; ; ++i)
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   123
        {
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   124
        test(i < 9);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   125
        test(aTest.iOut[i] == path[i]);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   126
        if (path[i] == ELangNone)
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   127
            return;
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   128
        }
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   129
    
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   130
    MakeLanguageDowngradePath(path, ELangAustralian, ELangNone, loc);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   131
    MakeLanguageDowngradePath(path, ELangNewZealand, ELangNone, loc);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   132
    MakeLanguageDowngradePath(path, ELangSouthAfricanEnglish, ELangNone, loc);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   133
    MakeLanguageDowngradePath(path, ELangInternationalEnglish, ELangNone, loc);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   134
    MakeLanguageDowngradePath(path, ELangAmerican, ELangNone, loc);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   135
    MakeLanguageDowngradePath(path, ELangEnglish_Apac, ELangNone, loc);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   136
    MakeLanguageDowngradePath(path, ELangEnglish_Taiwan, ELangNone, loc);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   137
    MakeLanguageDowngradePath(path, ELangEnglish_HongKong, ELangNone, loc);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   138
    MakeLanguageDowngradePath(path, ELangEnglish_Prc, ELangNone, loc);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   139
    MakeLanguageDowngradePath(path, ELangEnglish_Japan, ELangNone, loc);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   140
    MakeLanguageDowngradePath(path, ELangEnglish_Thailand, ELangNone, loc);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   141
    MakeLanguageDowngradePath(path, ELangSwissFrench, ELangNone, loc);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   142
    MakeLanguageDowngradePath(path, ELangBelgianFrench, ELangNone, loc);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   143
    MakeLanguageDowngradePath(path, ELangInternationalFrench, ELangNone, loc);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   144
    MakeLanguageDowngradePath(path, ELangCanadianFrench, ELangNone, loc);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   145
    MakeLanguageDowngradePath(path, ELangSwissGerman, ELangNone, loc);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   146
    MakeLanguageDowngradePath(path, ELangAustrian, ELangNone, loc);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   147
    MakeLanguageDowngradePath(path, ELangInternationalSpanish, ELangNone, loc);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   148
    MakeLanguageDowngradePath(path, ELangLatinAmericanSpanish, ELangNone, loc);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   149
    MakeLanguageDowngradePath(path, ELangSwissItalian, ELangNone, loc);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   150
    MakeLanguageDowngradePath(path, ELangFinlandSwedish, ELangNone, loc);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   151
    MakeLanguageDowngradePath(path, ELangCyprusTurkish, ELangNone, loc);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   152
    MakeLanguageDowngradePath(path, ELangBelgianFlemish, ELangNone, loc);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   153
    MakeLanguageDowngradePath(path, ELangHongKongChinese, ELangNone, loc);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   154
    MakeLanguageDowngradePath(path, ELangCyprusGreek, ELangNone, loc);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   155
    MakeLanguageDowngradePath(path, ELangMalay_Apac, ELangNone, loc);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   156
    MakeLanguageDowngradePath(path, ELangBrazilianPortuguese, ELangNone, loc);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   157
    
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   158
    }
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   159
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   160
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   161
// Test Dialect enumeration.
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   162
// Each value represents a dialect (variant) of a TLanguage language.
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   163
// E.g. AmericanSprint is represented by ELangAmerican | EDialectSprint
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   164
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   165
// The dialect location -- top six bits
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   166
const TUint KDialectFactor=0x0400;
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   167
enum TDialect
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   168
    {
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   169
    // The following are example dialects for testing only
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   170
    EDialectSprint = (1*KDialectFactor),
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   171
    EDialectOrange = (2*KDialectFactor),
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   172
    EDialectMaximum = EDialectOrange // This must always be equal to the last TDialect enum.
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   173
    // Up to 63 dialects.
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   174
    };
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   175
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   176
const TLanguage ELangEnglishOrange = static_cast<TLanguage>(ELangEnglish|EDialectOrange);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   177
const TLanguage ELangAmericanSprint = static_cast<TLanguage>(ELangAmerican|EDialectSprint);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   178
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   179
SDowngradeTest DowngradeData[] =
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   180
    {
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   181
        // 0 = test language
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   182
        // 1-3 = language downgrade for locale
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   183
        // 4- = calculated language downgrade path, terminated with ELangNone.
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   184
        {{ELangEnglishOrange, ELangNone, ELangNone, ELangNone},
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   185
            {ELangEnglishOrange, ELangEnglish, ELangNone}},
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   186
        {{ELangAmericanSprint, ELangNone, ELangNone, ELangNone},
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   187
            {ELangAmericanSprint, ELangAmerican, ELangEnglish, ELangNone}},
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   188
        {{ELangFrench, ELangNone, ELangNone, ELangNone},
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   189
            {ELangFrench, ELangNone}},
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   190
        {{ELangSwissFrench, ELangNone, ELangNone, ELangNone},
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   191
            {ELangSwissFrench, ELangFrench, ELangNone}},
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   192
        {{ELangCanadianEnglish, ELangNone, ELangNone, ELangNone},
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   193
            {ELangCanadianEnglish, ELangAmerican, ELangEnglish, ELangNone}},
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   194
        {{ELangSwissFrench, ELangNone, ELangFrench, ELangNone},
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   195
            {ELangSwissFrench, ELangFrench, ELangNone}},
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   196
        {{ELangCanadianEnglish, ELangEnglish, ELangNone, ELangAmerican},
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   197
            {ELangCanadianEnglish, ELangEnglish, ELangAmerican, ELangNone}},
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   198
        {{ELangCanadianEnglish, ELangNone, ELangNone, ELangSwissFrench},
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   199
            {ELangCanadianEnglish, ELangSwissFrench, ELangAmerican, ELangEnglish, ELangNone}},
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   200
        {{ELangCanadianEnglish, ELangFrench, ELangAmerican, ELangSwissFrench},
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   201
            {ELangCanadianEnglish, ELangFrench, ELangAmerican, ELangSwissFrench, ELangEnglish, ELangNone}},
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   202
        {{ELangCanadianEnglish, ELangNone, ELangGerman, ELangSwissFrench},
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   203
            {ELangCanadianEnglish, ELangGerman, ELangSwissFrench, ELangAmerican, ELangEnglish, ELangNone}},
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   204
        {{ELangCanadianEnglish, ELangFinlandSwedish, ELangGerman, ELangSwissFrench},
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   205
            {ELangCanadianEnglish, ELangFinlandSwedish, ELangGerman, ELangSwissFrench, ELangAmerican, ELangEnglish, ELangNone}},
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   206
        {{ELangFinlandSwedish, ELangFinlandSwedish, ELangFinlandSwedish, ELangFinlandSwedish},
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   207
            {ELangFinlandSwedish, ELangSwedish, ELangNone}},
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   208
    };
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   209
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   210
/**
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   211
@SYMTestCaseID          SYSLIB-BAFL-CT-0445
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   212
@SYMTestCaseDesc        Tests for language downgrades
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   213
@SYMTestPriority        High
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   214
@SYMTestActions         Call up downgrade path test function
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   215
@SYMTestExpectedResults Test must not fail
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   216
@SYMREQ                 REQ0000
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   217
*/
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   218
void CT_LANGUTILSIMP::TestMakeLanguageDowngradePath()
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   219
    {
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   220
    INFO_PRINTF1(_L(" @SYMTestCaseID:SYSLIB-BAFL-CT-0445 "));
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   221
    for (int i = 0; i != sizeof(DowngradeData)/sizeof(DowngradeData[0]); ++i)
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   222
        TestDowngrade(DowngradeData[i]);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   223
    }
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   224
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   225
void CT_LANGUTILSIMP::SetUpFinderForLanguageAndDriveSearchL(
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   226
    TTestNearestLanguageFileFinder& aFinder)
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   227
    {
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   228
    aFinder.iDrives = _L("ZAG");
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   229
    aFinder.iFilesSearchedFor = new(ELeave) CDesCArraySeg(10);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   230
    aFinder.iFilesSearchedFor->AppendL(_L("z:\\dir\\name.e02"));
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   231
    aFinder.iFilesSearchedFor->AppendL(_L("a:\\dir\\name.e02"));
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   232
    aFinder.iFilesSearchedFor->AppendL(_L("g:\\dir\\name.e02"));
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   233
    aFinder.iFilesSearchedFor->AppendL(_L("z:\\dir\\name.e15702")); //Extended lang
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   234
    aFinder.iFilesSearchedFor->AppendL(_L("a:\\dir\\name.e15702"));
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   235
    aFinder.iFilesSearchedFor->AppendL(_L("g:\\dir\\name.e15702"));
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   236
    aFinder.iFilesSearchedFor->AppendL(_L("z:\\dir\\name.e01"));
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   237
    aFinder.iFilesSearchedFor->AppendL(_L("a:\\dir\\name.e01"));
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   238
    aFinder.iFilesSearchedFor->AppendL(_L("g:\\dir\\name.e01"));
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   239
    aFinder.iFilesSearchedFor->AppendL(_L("z:\\dir\\name.ext"));
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   240
    aFinder.iFilesSearchedFor->AppendL(_L("a:\\dir\\name.ext"));
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   241
    aFinder.iFilesSearchedFor->AppendL(_L("g:\\dir\\name.ext"));
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   242
    aFinder.iDrivesChecked = _L("zagzagzagzagzag");
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   243
    }
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   244
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   245
_LIT(KTestFileName1, "z:\\dir\\name.ext");
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   246
//_LIT(KTestFileName2, "z:\\dir\\náme.ext");
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   247
_LIT(KTestFileName2, "z:\\dir\\n\u00c1me.ext");
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   248
_LIT(KTestFileName3, "a:\\dir\\name.ext");
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   249
_LIT(KTestFileName4, "c:\\dir\\name.ext");
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   250
_LIT(KTestFileName5, "d:\\dir\\name.ext");
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   251
_LIT(KTestFileName6, "y:\\dir\\name.ext");
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   252
_LIT(KTestFileName7, "A:\\dir\\name.ext");
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   253
_LIT(KTestFileName8, "C:\\dir\\name.ext");
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   254
_LIT(KTestFileName9, "Y:\\dir\\name.ext");
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   255
_LIT(KTestFileName11, "\\abc\\defg.hijkl");
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   256
_LIT(KTestFileName256Chars, "\
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   257
\\abcdefghijklmnopqrstuvwxyz01234\\abcdefghijklmnopqrstuvwxyz01234\
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   258
\\abcdefghijklmnopqrstuvwxyz01234\\abcdefghijklmnopqrstuvwxyz01234\
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   259
\\abcdefghijklmnopqrstuvwxyz01234\\abcdefghijklmnopqrstuvwxyz01234\
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   260
\\abcdefghijklmnopqrstuvwxyz01234\\abcdefghijklmnopqrstuvwxyz0.ext");
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   261
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   262
_LIT(KExpectedFileName256Chars, "?:\
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   263
\\abcdefghijklmnopqrstuvwxyz01234\\abcdefghijklmnopqrstuvwxyz01234\
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   264
\\abcdefghijklmnopqrstuvwxyz01234\\abcdefghijklmnopqrstuvwxyz01234\
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   265
\\abcdefghijklmnopqrstuvwxyz01234\\abcdefghijklmnopqrstuvwxyz01234\
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   266
\\abcdefghijklmnopqrstuvwxyz01234\\abcdefghijklmnopqrstuvwxyz0.e");
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   267
_LIT(KExpectedFileName1, "?:\\dir\\name.e");
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   268
_LIT(KExpectedSuffix1, "xt");
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   269
_LIT(KExpectedFileName2, "?:\\abc\\defg.hij");
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   270
_LIT(KExpectedSuffix2, "kl");
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   271
_LIT(KTestFileName1French, "z:\\dir\\name.e02");
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   272
_LIT(KTestFileName1Japanese, "z:\\dir\\name.e32");
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   273
_LIT(KTestFileName1Mongolian, "z:\\dir\\name.e54321");
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   274
_LIT(KTestFileName1AmericanSprint, "z:\\dir\\name.e1034"); //American=0x0A, Sprint=0x0400. 0x040A=1034.
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   275
_LIT(KCheckedForFrench, "?:\\dir\\name.e02");
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   276
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   277
/**
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   278
@SYMTestCaseID          SYSLIB-BAFL-CT-0446
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   279
@SYMTestCaseDesc        Nearest language finder test
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   280
@SYMTestPriority        High
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   281
@SYMTestActions         Test drive sequence construction
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   282
                        Test addition of language number
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   283
                        Test searching each drive for the specified file
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   284
                        Test searching language and drive down the language path
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   285
                        Test filename matching
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   286
                        Test searching for any language file within a drive
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   287
                        Test searching all drives for any language
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   288
@SYMTestExpectedResults Test must not fail
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   289
@SYMREQ                 REQ0000
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   290
*/
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   291
void CT_LANGUTILSIMP::TestNearestLanguageFinder()
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   292
    {
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   293
    INFO_PRINTF1(_L(" @SYMTestCaseID:SYSLIB-BAFL-CT-0446 "));
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   294
    RFs dummy;
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   295
    TTestNearestLanguageFileFinder finder(dummy);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   296
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   297
    // Test file name setting and disecting
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   298
    // SetFileName
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   299
    // RepairFileName
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   300
    TFileName fileName(KTestFileName1);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   301
    finder.SetFileName(fileName);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   302
    test(0 <= finder.iFileName->MatchF(KExpectedFileName1));
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   303
    test(0 == finder.iSuffix.Compare(KExpectedSuffix1));
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   304
    test('z' == finder.iInitialDriveLetter);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   305
    finder.RepairFileName();
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   306
    test(0 == finder.iFileName->Compare(KTestFileName1));
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   307
    fileName = KTestFileName11;
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   308
    finder.SetFileName(fileName);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   309
    test(0 <= finder.iFileName->MatchF(KExpectedFileName2));
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   310
    test(0 == finder.iSuffix.Compare(KExpectedSuffix2));
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   311
    test(-1 == finder.iInitialDriveLetter);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   312
    finder.RepairFileName();
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   313
    test(0 == finder.iFileName->Compare(KTestFileName11));
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   314
    fileName = KTestFileName256Chars;
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   315
    finder.SetFileName(fileName);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   316
    test(0 <= finder.iFileName->MatchF(KExpectedFileName256Chars));
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   317
    test(0 == finder.iSuffix.Compare(KExpectedSuffix1));
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   318
    test(-1 == finder.iInitialDriveLetter);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   319
    finder.RepairFileName();
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   320
    test(0 == finder.iFileName->Compare(KTestFileName256Chars));
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   321
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   322
    // Test drive sequence construction
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   323
    // AddCustomResourceDrive
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   324
    finder.iCustomRscDrive = static_cast<TInt>(EDriveC);    // drive c:
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   325
    fileName = KTestFileName1;
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   326
    finder.SetFileName(fileName);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   327
    test(finder.AddCustomResourceDrive() == KErrNone);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   328
    test(0 == finder.iDrives.CompareF(_L("CZ")));
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   329
    fileName = KTestFileName3;
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   330
    finder.SetFileName(fileName);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   331
    test(finder.AddCustomResourceDrive() == KErrNone);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   332
    test(0 == finder.iDrives.CompareF(_L("CA")));
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   333
    fileName = KTestFileName4;
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   334
    finder.SetFileName(fileName);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   335
    test(finder.AddCustomResourceDrive() == KErrAlreadyExists);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   336
    test(0 == finder.iDrives.CompareF(_L("C")));
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   337
    fileName = KTestFileName5;
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   338
    finder.SetFileName(fileName);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   339
    test(finder.AddCustomResourceDrive() == KErrNone);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   340
    test(0 == finder.iDrives.CompareF(_L("CD")));
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   341
    fileName = KTestFileName6;
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   342
    finder.SetFileName(fileName);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   343
    test(finder.AddCustomResourceDrive() == KErrNone);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   344
    test(0 == finder.iDrives.CompareF(_L("CY")));
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   345
    fileName = KTestFileName7;
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   346
    finder.SetFileName(fileName);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   347
    test(finder.AddCustomResourceDrive() == KErrNone);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   348
    test(0 == finder.iDrives.CompareF(_L("CA")));
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   349
    fileName = KTestFileName8;
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   350
    finder.SetFileName(fileName);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   351
    test(finder.AddCustomResourceDrive() == KErrAlreadyExists);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   352
    test(0 == finder.iDrives.CompareF(_L("C")));
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   353
    fileName = KTestFileName9;
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   354
    finder.SetFileName(fileName);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   355
    test(finder.AddCustomResourceDrive() == KErrNone);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   356
    test(0 == finder.iDrives.CompareF(_L("CY")));
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   357
    // AddAllDrives
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   358
    fileName = KTestFileName1;
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   359
    finder.SetFileName(fileName);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   360
    finder.AddAllDrives();
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   361
    test(0 == finder.iDrives.CompareF(_L("ZYXWVUTSRQPONMLKJIHGFEDCBA")));
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   362
    fileName = KTestFileName3;
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   363
    finder.SetFileName(fileName);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   364
    finder.AddAllDrives();
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   365
    test(0 == finder.iDrives.CompareF(_L("AYXWVUTSRQPONMLKJIHGFEDCBZ")));
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   366
    fileName = KTestFileName4;
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   367
    finder.SetFileName(fileName);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   368
    finder.AddAllDrives();
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   369
    test(0 == finder.iDrives.CompareF(_L("CYXWVUTSRQPONMLKJIHGFEDBAZ")));
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   370
    fileName = KTestFileName5;
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   371
    finder.SetFileName(fileName);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   372
    finder.AddAllDrives();
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   373
    test(0 == finder.iDrives.CompareF(_L("DYXWVUTSRQPONMLKJIHGFECBAZ")));
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   374
    fileName = KTestFileName6;
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   375
    finder.SetFileName(fileName);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   376
    finder.AddAllDrives();
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   377
    test(0 == finder.iDrives.CompareF(_L("YXWVUTSRQPONMLKJIHGFEDCBAZ")));
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   378
    fileName = KTestFileName7;
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   379
    finder.SetFileName(fileName);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   380
    finder.AddAllDrives();
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   381
    test(0 == finder.iDrives.CompareF(_L("AYXWVUTSRQPONMLKJIHGFEDCBZ")));
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   382
    fileName = KTestFileName8;
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   383
    finder.SetFileName(fileName);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   384
    finder.AddAllDrives();
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   385
    test(0 == finder.iDrives.CompareF(_L("CYXWVUTSRQPONMLKJIHGFEDBAZ")));
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   386
    fileName = KTestFileName9;
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   387
    finder.SetFileName(fileName);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   388
    finder.AddAllDrives();
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   389
    test(0 == finder.iDrives.CompareF(_L("YXWVUTSRQPONMLKJIHGFEDCBAZ")));
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   390
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   391
    // Test addition of language number
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   392
    // AppendLanguageCode
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   393
    fileName = KTestFileName1;
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   394
    finder.SetFileName(fileName);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   395
    finder.AppendLanguageCode(ELangFrench);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   396
    test(0 == finder.iFileName->CompareF(KTestFileName1French));
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   397
    finder.SetFileName(fileName);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   398
    finder.AppendLanguageCode(ELangJapanese);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   399
    test(0 == finder.iFileName->CompareF(KTestFileName1Japanese));
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   400
    finder.SetFileName(fileName);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   401
    finder.AppendLanguageCode(ELangAmericanSprint);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   402
    test(0 == finder.iFileName->CompareF(KTestFileName1AmericanSprint));
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   403
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   404
    fileName = KTestFileName1;
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   405
    finder.SetFileName(fileName);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   406
    finder.AppendLanguageCode(static_cast<TLanguage>(54321));
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   407
    test(0 == finder.iFileName->CompareF(KTestFileName1Mongolian));
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   408
    fileName = KTestFileName256Chars;
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   409
    finder.SetFileName(fileName);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   410
    test(!finder.AppendLanguageCode(ELangFrench));
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   411
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   412
    // Test searching each drive for the specified file
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   413
    // FindDrive
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   414
    finder.iFileCheckedFor = KCheckedForFrench;
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   415
    finder.iDrivesChecked = _L("D");
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   416
    fileName = KTestFileName5;
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   417
    finder.SetFileName(fileName);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   418
    finder.AppendLanguageCode(ELangFrench);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   419
    finder.FindDrive();
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   420
    test(finder.iDrivesChecked.Length() == 0);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   421
    finder.SetFileName(fileName);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   422
    finder.AddAllDrives();
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   423
    finder.iDrivesChecked = _L("dyxwvutsrqponmlkjihgfecbaz");
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   424
    finder.AppendLanguageCode(ELangFrench);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   425
    finder.FindDrive();
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   426
    test(finder.iDrivesChecked.Length() == 0);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   427
    fileName = KTestFileName5;
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   428
    finder.SetFileName(fileName);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   429
    finder.AddAllDrives();
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   430
    finder.iDrivesChecked = _L("dyxwvutsrqponmlkjihgfecbaz");
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   431
    finder.AppendLanguageCode(ELangFrench);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   432
    finder.iFilesThatExist = new (ELeave) CDesCArraySeg(10);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   433
    finder.iFilesThatExist->AppendL(_L("o:\\dIR\\NAmE.E02"));
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   434
    test(finder.FindDrive());
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   435
    test(0 == finder.iFileName->CompareF(_L("O:\\dir\\name.e02")));
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   436
    fileName = KTestFileName2;
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   437
    finder.SetFileName(fileName);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   438
    finder.AppendLanguageCode(ELangFrench);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   439
    finder.AddAllDrives();
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   440
    finder.iDrivesChecked = _L("zyxwvutsrqponmlkjihgfedcba");
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   441
    finder.iFilesThatExist->AppendL(_L("v:\\dIR\\NA\x301mE.E02"));
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   442
    //finder.iFileCheckedFor = _L("?:\\dir\\nÁme.e02");
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   443
    finder.iFileCheckedFor = _L("?:\\dir\\n\u00c1me.e02");
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   444
    test(finder.FindDrive());
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   445
    //test(0 == finder.iFileName->CompareF(_L("v:\\dir\\nÁme.e02")));
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   446
    test(0 == finder.iFileName->CompareF(_L("v:\\dir\\n\u00c1me.e02")));
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   447
    delete finder.iFilesThatExist;
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   448
    finder.iFilesThatExist = 0;
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   449
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   450
    // Test searching language and drive down the language path
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   451
    // FindLanguageAndDrive
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   452
    finder.iPath[0] = static_cast<TLanguage>(2);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   453
    finder.iPath[1] = static_cast<TLanguage>(15702);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   454
    finder.iPath[2] = static_cast<TLanguage>(1);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   455
    finder.iPath[3] = ELangNone;
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   456
    fileName = KTestFileName1;
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   457
    finder.SetFileName(fileName);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   458
    SetUpFinderForLanguageAndDriveSearchL(finder);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   459
    finder.iFileCheckedFor = _L("?:\\dir\\name.e*");
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   460
    test(!finder.FindLanguageAndDrive());
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   461
    // check that iFileName is undamaged
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   462
    finder.RepairFileName();
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   463
    test(0 == finder.iFileName->CompareF(KTestFileName1));
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   464
    delete finder.iFilesSearchedFor;
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   465
    finder.iFilesThatExist = new (ELeave) CDesCArraySeg(10);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   466
    finder.iFilesThatExist->AppendL(_L("a:\\dir\\name.e15702"));
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   467
    fileName = KTestFileName1;
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   468
    finder.SetFileName(fileName);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   469
    SetUpFinderForLanguageAndDriveSearchL(finder);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   470
    test(finder.FindLanguageAndDrive());
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   471
    test(0 == finder.iFileName->CompareF(_L("a:\\dir\\name.e15702")));
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   472
    delete finder.iFilesSearchedFor;
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   473
    finder.iFilesSearchedFor = 0;
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   474
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   475
    finder.iPath[0] = static_cast<TLanguage>(7);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   476
    finder.iPath[1] = ELangNone;
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   477
    finder.iFilesThatExist->AppendL(_L("g:\\dir\\name.ext"));
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   478
    fileName = KTestFileName1;
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   479
    finder.SetFileName(fileName);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   480
    finder.iDrives = _L("ZAG");
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   481
    finder.iDrivesChecked = _L("ZAGZAG");
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   482
    test(finder.FindLanguageAndDrive());
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   483
    test(0 == finder.iFileName->CompareF(_L("g:\\dir\\name.ext")));
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   484
    delete finder.iFilesThatExist;
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   485
    finder.iFilesThatExist = 0;
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   486
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   487
    // Test filename matching
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   488
    // LanguageNumberFromFile
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   489
    test(4 == TNearestLanguageFileFinder::LanguageNumberFromFile(_L("avb04"), _L("AVB")));
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   490
    //test(4 == TNearestLanguageFileFinder::LanguageNumberFromFile(_L("ávb04"), _L("A\x301VB")));
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   491
    //test(4 == TNearestLanguageFileFinder::LanguageNumberFromFile(_L("a\x301vb04"), _L("ÁVB")));
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   492
    test(4 == TNearestLanguageFileFinder::LanguageNumberFromFile(_L("\u00e1vb04"), _L("A\x301VB")));
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   493
    test(4 == TNearestLanguageFileFinder::LanguageNumberFromFile(_L("a\x301vb04"), _L("\u00c1VB")));
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   494
    test(5254 == TNearestLanguageFileFinder::LanguageNumberFromFile(_L("avb5254"), _L("aVb")));
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   495
    test(KErrNotFound == TNearestLanguageFileFinder::LanguageNumberFromFile(_L("avb04"), _L("avb04")));
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   496
    test(KErrNotFound == TNearestLanguageFileFinder::LanguageNumberFromFile(_L("avb04"), _L("av")));
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   497
    test(KErrNotFound == TNearestLanguageFileFinder::LanguageNumberFromFile(_L("avb04"), _L("")));
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   498
    test(0 == TNearestLanguageFileFinder::LanguageNumberFromFile(_L("avb0000000"), _L("AVB00000")));
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   499
    test(4 == TNearestLanguageFileFinder::LanguageNumberFromFile(_L("avb000000004"), _L("AVB0000000")));
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   500
    test(100004 == TNearestLanguageFileFinder::LanguageNumberFromFile(_L("avb000100004"), _L("AVB000")));
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   501
    test(111114 == TNearestLanguageFileFinder::LanguageNumberFromFile(_L("avb0111114"), _L("AVB0")));
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   502
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   503
    // Test searching for any language file within a drive
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   504
    // FindFirstLanguageFile
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   505
    fileName = KTestFileName3;
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   506
    finder.SetFileName(fileName);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   507
    finder.iFilesThatExist = new (ELeave) CDesCArraySeg(10);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   508
    finder.iFilesThatExist->AppendL(_L("a:\\dir\\name.e107"));
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   509
    finder.iFilesThatExist->AppendL(_L("a:\\dir\\name.e07"));
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   510
    finder.iFilesThatExist->AppendL(_L("a:\\dir\\name.e02"));
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   511
    finder.iFilesThatExist->AppendL(_L("a:\\dir\\name.ee01"));
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   512
    finder.iFilesThatExist->AppendL(_L("a:\\dir\\name.01"));
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   513
    finder.iFilesThatExist->AppendL(_L("a:\\dir\\name01"));
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   514
    finder.iFilesThatExist->AppendL(_L("a:\\dir\\name01.e01"));
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   515
    finder.iFilesThatExist->AppendL(_L("a:\\dir\\name.e15108"));
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   516
    finder.iFilesThatExist->AppendL(_L("a:\\dir\\name.e03"));
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   517
    finder.iTestScanner.iDriveError[0] = KErrNoMemory;
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   518
    fileName = KTestFileName3;
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   519
    finder.SetFileName(fileName);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   520
    test(KErrNotFound == finder.FindFirstLanguageFile(dummy));
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   521
    finder.iTestScanner.iDriveError[0] = KErrAbort;
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   522
    fileName = KTestFileName3;
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   523
    finder.SetFileName(fileName);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   524
    test(KErrNotFound == finder.FindFirstLanguageFile(dummy));
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   525
    finder.iTestScanner.iDriveError[0] = KErrNone;
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   526
    fileName = KTestFileName3;
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   527
    finder.SetFileName(fileName);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   528
    test(0 <= finder.FindFirstLanguageFile(dummy));
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   529
    test(0 == finder.iFileName->CompareF(_L("a:\\dir\\name.e02")));
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   530
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   531
    finder.iFilesThatExist->AppendL(_L("a:\\abaffafg.100"));
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   532
    finder.iFilesThatExist->AppendL(_L("a:\\abcdefg.9539"));
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   533
    finder.iFilesThatExist->AppendL(_L("a:\\abcdefg.19539"));
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   534
    finder.iFilesThatExist->AppendL(_L("a:\\abcdefg.1000"));
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   535
    finder.iFilesThatExist->AppendL(_L("a:\\abaffafg.102"));
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   536
    fileName = _L("a:\\abcdefg.xx");
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   537
    finder.SetFileName(fileName);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   538
    test(0 <= finder.FindFirstLanguageFile(dummy));
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   539
    test(0 == finder.iFileName->CompareF(_L("a:\\abcdefg.1000")));
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   540
    finder.iFilesThatExist->AppendL(_L("a:\\abaffafg.aaa100"));
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   541
    finder.iFilesThatExist->AppendL(_L("a:\\abcdefg.0523"));    // not well-formed. Will not count.
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   542
    finder.iFilesThatExist->AppendL(_L("a:\\abcdefg.1001"));
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   543
    fileName = _L("a:\\abcdefg.xx");
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   544
    finder.SetFileName(fileName);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   545
    test(0 <= finder.FindFirstLanguageFile(dummy));
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   546
    test(0 == finder.iFileName->CompareF(_L("a:\\abcdefg.1000")));
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   547
    fileName = _L("a:\\abaffafg.xx");
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   548
    finder.SetFileName(fileName);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   549
    test(0 <= finder.FindFirstLanguageFile(dummy));
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   550
    test(0 == finder.iFileName->CompareF(_L("a:\\abaffafg.100")));
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   551
    finder.iFilesThatExist->AppendL(_L("a:\\abaffafg.09"));
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   552
    fileName = _L("a:\\abaffafg.xx");
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   553
    finder.SetFileName(fileName);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   554
    test(0 <= finder.FindFirstLanguageFile(dummy));
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   555
    test(0 == finder.iFileName->CompareF(_L("a:\\abaffafg.09")));
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   556
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   557
    // Test searching all drives for any language
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   558
    // FindFirstLanguageFileAndDrive
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   559
    finder.iFilesThatExist->AppendL(_L("z:\\abcdefg.05"));
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   560
    fileName = _L("c:\\abcdefg.xx");
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   561
    finder.SetFileName(fileName);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   562
    finder.iDrives = _L("az");
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   563
    test(0 <= finder.FindFirstLanguageFileAndDrive());
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   564
    test(0 == finder.iFileName->CompareF(_L("a:\\abcdefg.1000")));
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   565
    fileName = _L("c:\\abaffafg.xx");
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   566
    finder.SetFileName(fileName);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   567
    finder.iDrives = _L("az");
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   568
    test(0 <= finder.FindFirstLanguageFileAndDrive());
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   569
    test(0 == finder.iFileName->CompareF(_L("a:\\abaffafg.09")));
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   570
    fileName = _L("c:\\abcdefg.xx");
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   571
    finder.SetFileName(fileName);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   572
    finder.iDrives = _L("za");
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   573
    test(0 <= finder.FindFirstLanguageFileAndDrive());
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   574
    test(0 == finder.iFileName->CompareF(_L("z:\\abcdefg.05")));
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   575
    fileName = _L("c:\\xxx.xx");
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   576
    finder.SetFileName(fileName);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   577
    finder.iDrives = _L("za");
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   578
    test(KErrNotFound == finder.FindFirstLanguageFileAndDrive());
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   579
    finder.iTestScanner.iDriveError[25] = KErrAbort;
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   580
    fileName = _L("c:\\abcdefg.xx");
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   581
    finder.SetFileName(fileName);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   582
    finder.iDrives = _L("za");
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   583
    test(0 <= finder.FindFirstLanguageFileAndDrive());
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   584
    test(0 == finder.iFileName->CompareF(_L("a:\\abcdefg.1000")));
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   585
    fileName = _L("c:\\abcdefg.xx");
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   586
    finder.SetFileName(fileName);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   587
    finder.iDrives = _L("za");
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   588
    finder.iTestScanner.iDriveError[0] = KErrNoMemory;
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   589
    test(KErrNotFound == finder.FindFirstLanguageFileAndDrive());
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   590
    fileName = _L("c:\\abcdefg.xx");
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   591
    finder.SetFileName(fileName);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   592
    finder.iDrives = _L("za");
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   593
    finder.iTestScanner.iDriveError[0] = KErrAbort;
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   594
    test(KErrNotFound == finder.FindFirstLanguageFileAndDrive());
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   595
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   596
    }
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   597
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   598
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   599
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   600
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   601
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   602
void CT_LANGUTILSIMP::TestLANGUTILSIMP()
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   603
    {
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   604
    __UHEAP_MARK;
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   605
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   606
    INFO_PRINTF1(_L("LangUtils Internal Tests: "));
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   607
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   608
    TestAddLanguage();
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   609
    TestMakeLanguageDowngradePath();
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   610
    TestNearestLanguageFinder();
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   611
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   612
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   613
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   614
    __UHEAP_MARKENDC(0);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   615
    }
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   616
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   617
CT_LANGUTILSIMP::CT_LANGUTILSIMP()
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   618
    {
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   619
    SetTestStepName(KTestStep_T_LANGUTILSIMP);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   620
    }
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   621
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   622
TVerdict CT_LANGUTILSIMP::doTestStepL()
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   623
    {
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   624
    SetTestStepResult(EFail);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   625
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   626
    __UHEAP_MARK;
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   627
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   628
    TRAPD(error1, TestLANGUTILSIMP());
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   629
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   630
    __UHEAP_MARKEND;
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   631
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   632
    if(error1 == KErrNone )
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   633
        {
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   634
        SetTestStepResult(EPass);
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   635
        }
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   636
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   637
    return TestStepResult();
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   638
    }
7d891bb52a7d 201033_04
hgs
parents:
diff changeset
   639