Index: source/test/intltest/windttst.cpp |
diff --git a/source/test/intltest/windttst.cpp b/source/test/intltest/windttst.cpp |
deleted file mode 100644 |
index b8b0823ec135c133061aabfd22294986e56ce066..0000000000000000000000000000000000000000 |
--- a/source/test/intltest/windttst.cpp |
+++ /dev/null |
@@ -1,196 +0,0 @@ |
-/* |
-******************************************************************************** |
-* Copyright (C) 2005-2011, International Business Machines |
-* Corporation and others. All Rights Reserved. |
-******************************************************************************** |
-* |
-* File WINDTTST.CPP |
-* |
-******************************************************************************** |
-*/ |
- |
-#include "unicode/utypes.h" |
- |
-#if U_PLATFORM_HAS_WIN32_API |
- |
-#if !UCONFIG_NO_FORMATTING |
- |
-#include "unicode/format.h" |
-#include "unicode/numfmt.h" |
-#include "unicode/locid.h" |
-#include "unicode/ustring.h" |
-#include "unicode/testlog.h" |
-#include "unicode/utmscale.h" |
- |
-#include "windtfmt.h" |
-#include "winutil.h" |
-#include "windttst.h" |
- |
-#include "cmemory.h" |
-#include "cstring.h" |
-#include "locmap.h" |
-#include "wintzimpl.h" |
- |
-# define WIN32_LEAN_AND_MEAN |
-# define VC_EXTRALEAN |
-# define NOUSER |
-# define NOSERVICE |
-# define NOIME |
-# define NOMCX |
-# include <windows.h> |
- |
-#define ARRAY_SIZE(array) (sizeof array / sizeof array[0]) |
- |
-static const char *getCalendarType(int32_t type) |
-{ |
- switch (type) |
- { |
- case 1: |
- case 2: |
- return "@calendar=gregorian"; |
- |
- case 3: |
- return "@calendar=japanese"; |
- |
- case 6: |
- return "@calendar=islamic"; |
- |
- case 7: |
- return "@calendar=buddhist"; |
- |
- case 8: |
- return "@calendar=hebrew"; |
- |
- default: |
- return ""; |
- } |
-} |
- |
-void Win32DateTimeTest::testLocales(TestLog *log) |
-{ |
- SYSTEMTIME winNow; |
- UDate icuNow = 0; |
- SYSTEMTIME st; |
- FILETIME ft; |
- UnicodeString zoneID; |
- const TimeZone *tz = TimeZone::createDefault(); |
- TIME_ZONE_INFORMATION tzi; |
- |
- tz->getID(zoneID); |
- if (! uprv_getWindowsTimeZoneInfo(&tzi, zoneID.getBuffer(), zoneID.length())) { |
- UBool found = FALSE; |
- int32_t ec = TimeZone::countEquivalentIDs(zoneID); |
- |
- for (int z = 0; z < ec; z += 1) { |
- UnicodeString equiv = TimeZone::getEquivalentID(zoneID, z); |
- |
- if (found = uprv_getWindowsTimeZoneInfo(&tzi, equiv.getBuffer(), equiv.length())) { |
- break; |
- } |
- } |
- |
- if (! found) { |
- GetTimeZoneInformation(&tzi); |
- } |
- } |
- |
- GetSystemTime(&st); |
- SystemTimeToFileTime(&st, &ft); |
- SystemTimeToTzSpecificLocalTime(&tzi, &st, &winNow); |
- |
- int64_t wftNow = ((int64_t) ft.dwHighDateTime << 32) + ft.dwLowDateTime; |
- UErrorCode status = U_ZERO_ERROR; |
- |
- int64_t udtsNow = utmscale_fromInt64(wftNow, UDTS_WINDOWS_FILE_TIME, &status); |
- |
- icuNow = (UDate) utmscale_toInt64(udtsNow, UDTS_ICU4C_TIME, &status); |
- |
- int32_t lcidCount = 0; |
- Win32Utilities::LCIDRecord *lcidRecords = Win32Utilities::getLocales(lcidCount); |
- |
- for(int i = 0; i < lcidCount; i += 1) { |
- UErrorCode status = U_ZERO_ERROR; |
- WCHAR longDateFormat[81], longTimeFormat[81], wdBuffer[256], wtBuffer[256]; |
- int32_t calType = 0; |
- |
- // NULL localeID means ICU didn't recognize this locale |
- if (lcidRecords[i].localeID == NULL) { |
- continue; |
- } |
- |
- GetLocaleInfoW(lcidRecords[i].lcid, LOCALE_SLONGDATE, longDateFormat, 81); |
- GetLocaleInfoW(lcidRecords[i].lcid, LOCALE_STIMEFORMAT, longTimeFormat, 81); |
- GetLocaleInfoW(lcidRecords[i].lcid, LOCALE_RETURN_NUMBER|LOCALE_ICALENDARTYPE, (LPWSTR) calType, sizeof(int32_t)); |
- |
- char localeID[64]; |
- |
- uprv_strcpy(localeID, lcidRecords[i].localeID); |
- uprv_strcat(localeID, getCalendarType(calType)); |
- |
- UnicodeString ubBuffer, udBuffer, utBuffer; |
- Locale ulocale(localeID); |
- int32_t wdLength, wtLength; |
- |
- wdLength = GetDateFormatW(lcidRecords[i].lcid, DATE_LONGDATE, &winNow, NULL, wdBuffer, ARRAY_SIZE(wdBuffer)); |
- wtLength = GetTimeFormatW(lcidRecords[i].lcid, 0, &winNow, NULL, wtBuffer, ARRAY_SIZE(wtBuffer)); |
- |
- if (uprv_strchr(localeID, '@') > 0) { |
- uprv_strcat(localeID, ";"); |
- } else { |
- uprv_strcat(localeID, "@"); |
- } |
- |
- uprv_strcat(localeID, "compat=host"); |
- |
- Locale wlocale(localeID); |
- DateFormat *wbf = DateFormat::createDateTimeInstance(DateFormat::kFull, DateFormat::kFull, wlocale); |
- DateFormat *wdf = DateFormat::createDateInstance(DateFormat::kFull, wlocale); |
- DateFormat *wtf = DateFormat::createTimeInstance(DateFormat::kFull, wlocale); |
- |
- wbf->format(icuNow, ubBuffer); |
- wdf->format(icuNow, udBuffer); |
- wtf->format(icuNow, utBuffer); |
- |
- if (ubBuffer.indexOf(wdBuffer, wdLength - 1, 0) < 0) { |
- UnicodeString baseName(wlocale.getBaseName()); |
- UnicodeString expected(wdBuffer); |
- |
- log->errln("DateTime format error for locale " + baseName + ": expected date \"" + expected + |
- "\" got \"" + ubBuffer + "\""); |
- } |
- |
- if (ubBuffer.indexOf(wtBuffer, wtLength - 1, 0) < 0) { |
- UnicodeString baseName(wlocale.getBaseName()); |
- UnicodeString expected(wtBuffer); |
- |
- log->errln("DateTime format error for locale " + baseName + ": expected time \"" + expected + |
- "\" got \"" + ubBuffer + "\""); |
- } |
- |
- if (udBuffer.compare(wdBuffer) != 0) { |
- UnicodeString baseName(wlocale.getBaseName()); |
- UnicodeString expected(wdBuffer); |
- |
- log->errln("Date format error for locale " + baseName + ": expected \"" + expected + |
- "\" got \"" + udBuffer + "\""); |
- } |
- |
- if (utBuffer.compare(wtBuffer) != 0) { |
- UnicodeString baseName(wlocale.getBaseName()); |
- UnicodeString expected(wtBuffer); |
- |
- log->errln("Time format error for locale " + baseName + ": expected \"" + expected + |
- "\" got \"" + utBuffer + "\""); |
- } |
- delete wbf; |
- delete wdf; |
- delete wtf; |
- } |
- |
- Win32Utilities::freeLocales(lcidRecords); |
- delete tz; |
-} |
- |
-#endif /* #if !UCONFIG_NO_FORMATTING */ |
- |
-#endif /* U_PLATFORM_HAS_WIN32_API */ |