//*******************************************************************************
//*
//*   Copyright (C) 2002-2012, International Business Machines
//*   Corporation and others.  All Rights Reserved.
//*
//*******************************************************************************


// This is a test resource to check whether the aliasing mechanism works
// as advertised

testaliases:table(nofallback) 
{
    // This should produce an error - circular alias
    aaa:alias { "testaliases/aab" } // Test circular dependency protection
    aab:alias { "testaliases/aaa" }

    // aliasing nonexist position
    nonexisting:alias { "/ICUDATA/ja" }

    // aliasing to another resource
    simplealias:alias { "testtypes/menu/file/open" } // simple referencing

    // alias that uses another alias and references parts of the end structure
    referencingalias:alias { "testaliases/anotheralias/2" } // Referencing through another alias
    anotheralias:alias { "/ICUDATA/ja_JP/LocaleScript" } // Provoke a fallback too

    LocaleScript:alias { "/ICUDATA/ja/LocaleScript" }

    // aliasing using position
    boundaries:alias { "/ICUDATA-brkitr/th" } // Referencing corresponding resource in another bundle

    // aliasing arrays
    zoneTests {
        zoneAlias:alias { "/ICUDATA-zone/en/zoneStrings" } // Referencing by index
        zoneAlias1:alias { "/ICUDATA-zone/en/zoneStrings/3" } // Referencing by index
        zoneAlias2:alias { "/ICUDATA-zone/en/zoneStrings/3/0" } // Referencing by index
    }

    // Test aliasing parts of an array using position
    zoneStrings { 
        :alias { "/ICUDATA/en" } 
        :alias { "/ICUDATA/en" } 
    }
    // WARNING: this test assumes that on all platforms digits sort normally
    // if not, the test may fail
    testGetStringByKeyAliasing {
        KeyAlias0PST:alias { "te/zoneStrings/2/0" } //"America/Los_Angeles",
        KeyAlias1PacificStandardTime:alias { "te/zoneStrings/2/1" } //"Pacific Standard Time",
        KeyAlias2PDT:alias { "te/zoneStrings/2/4" } //"PDT",
        KeyAlias3LosAngeles:alias { "te/zoneStrings/2/5" } //"Los Angeles",
    }
    testGetStringByIndexAliasing  {
        :alias { "te/zoneStrings/2/0" } //"America/Los_Angeles",
        :alias { "te/zoneStrings/2/1" } //"Pacific Standard Time",
        :alias { "te/zoneStrings/2/4" } //"PDT",
        :alias { "te/zoneStrings/2/5" } //"Los Angeles",
    }
    testAliasToTree:alias{"/ICUDATA-coll/en/collations"}

}

//eof


