16f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org/********************************************************************
26f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * COPYRIGHT:
36f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Copyright (c) 1997-2013, International Business Machines Corporation and
46f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * others. All Rights Reserved.
56f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org ********************************************************************/
66f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org/********************************************************************************
76f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org*
86f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org* File CLOCTST.H
96f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org*
106f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org* Modification History:
116f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org*        Name                     Description
126f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org*     Madhu Katragadda            Converted to C
136f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org*********************************************************************************
146f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org*/
156f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#ifndef _CLOCTEST
166f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#define _CLOCTEST
176f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
186f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#include "cintltst.h"
196f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org/*C API TEST FOR LOCALE */
206f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
216f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org/**
226f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Test functions to set and get data fields
236f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org **/
246f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgstatic void TestBasicGetters(void);
256f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgstatic void TestPrefixes(void);
266f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org/**
276f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Use Locale to access Resource file data and compare against expected values
286f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org **/
296f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgstatic void TestSimpleResourceInfo(void);
306f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org/**
316f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Use Locale to access Resource file display names and compare against expected values
326f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org **/
336f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgstatic  void TestDisplayNames(void);
346f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org/**
356f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Test getAvailableLocales
366f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org **/
376f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org static  void TestGetAvailableLocales(void);
386f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org/**
396f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Test functions to set and access a custom data directory
406f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org **/
416f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org static void TestDataDirectory(void);
426f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org/**
436f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Test functions to test get ISO countries and Languages
446f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org **/
456f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org static void TestISOFunctions(void);
466f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org/**
476f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Test functions to test get ISO3 countries and Languages Fallback
486f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org **/
496f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org static void TestISO3Fallback(void);
506f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org/**
516f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Test functions to test get ISO3 countries and Languages for Uninstalled locales
526f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org **/
536f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org static void TestUninstalledISO3Names(void);
546f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org static void TestObsoleteNames(void);
556f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org/**
566f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Test functions uloc_getDisplaynames()
576f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org **/
586f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org static void TestSimpleDisplayNames(void);
596f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org/**
606f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Test functions uloc_getDisplaynames()
616f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org **/
626f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org static void TestVariantParsing(void);
636f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
646f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /* Test getting keyword enumeratin */
656f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org static void TestKeywordVariants(void);
666f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
676f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org static void TestKeywordSet(void);
686f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org static void TestKeywordSetError(void);
696f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
706f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /* Test getting keyword values */
716f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org static void TestKeywordVariantParsing(void);
726f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
736f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /* Test warning for no data in getDisplay* */
746f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org static void TestDisplayNameWarning(void);
756f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
766f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /* Test uloc_getLocaleForLCID */
776f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org static void TestGetLocaleForLCID(void);
786f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
796f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org/**
806f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * routine to perform subtests, used by TestDisplayNames
816f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */
826f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org static void doTestDisplayNames(const char* inLocale, int32_t compareIndex);
836f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
846f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org static void TestCanonicalization(void);
856f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
866f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org static void TestDisplayKeywords(void);
876f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
886f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org static void TestDisplayKeywordValues(void);
896f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
906f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org static void TestGetBaseName(void);
916f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
926f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgstatic void TestTrailingNull(void);
936f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
946f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgstatic void TestGetLocale(void);
956f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
966f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org/**
976f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * additional intialization for datatables storing expected values
986f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */
996f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgstatic void setUpDataTable(void);
1006f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgstatic void cleanUpDataTable(void);
1016f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org/*static void displayDataTable(void);*/
1026f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgstatic void TestAcceptLanguage(void);
1036f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
1046f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org/**
1056f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * test locale aliases
1066f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org*/
1076f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgstatic void TestCalendar(void);
1086f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgstatic void TestDateFormat(void);
1096f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgstatic void TestCollation(void);
1106f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgstatic void TestULocale(void);
1116f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgstatic void TestUResourceBundle(void);
1126f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgstatic void TestDisplayName(void);
1136f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
1146f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgstatic void TestAcceptLanguage(void);
1156f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
1166f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgstatic void TestOrientation(void);
1176f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
1186f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgstatic void TestLikelySubtags(void);
1196f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
1206f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org/**
1216f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * lanuage tag
1226f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */
1236f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgstatic void TestForLanguageTag(void);
1246f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgstatic void TestToLanguageTag(void);
1256f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
1266f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org/**
1276f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * locale data
1286f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */
1296f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgstatic void TestEnglishExemplarCharacters(void);
1306f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
1316f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#endif
132