192 lines
7.5 KiB
C
192 lines
7.5 KiB
C
/*++
|
|
Copyright (c) 1991-1999, Microsoft Corporation All rights reserved.
|
|
|
|
Module Name:
|
|
scitest.c
|
|
|
|
Abstract:
|
|
Test module for NLS API SetCalendarInfo.
|
|
NOTE: This code was simply hacked together quickly in order to test the different code modules of the NLS component.
|
|
This is NOT meant to be a formal regression test.
|
|
|
|
Revision History:
|
|
03-10-98 JulieB Created.
|
|
--*/
|
|
|
|
// Include Files.
|
|
#include "nlstest.h"
|
|
|
|
// Constant Declarations.
|
|
#define BUFSIZE 100 // buffer size in wide chars
|
|
#define CALTYPE_INVALID 0x0000002 // invalid CALTYPE
|
|
|
|
// Global Variables.
|
|
LCID Locale;
|
|
WCHAR lpCalData[BUFSIZE];
|
|
WCHAR pTwoDigitYearMax[BUFSIZE];
|
|
|
|
// Forward Declarations.
|
|
BOOL InitSetCalInfo();
|
|
int SCI_BadParamCheck();
|
|
int SCI_NormalCase();
|
|
int SCI_Ansi();
|
|
|
|
|
|
int TestSetCalendarInfo()
|
|
// Test routine for SetCalendarInfoW API.
|
|
// 03-10-98 JulieB Created.
|
|
{
|
|
int ErrCount = 0; // error count
|
|
|
|
// Print out what's being done.
|
|
printf("\n\nTESTING SetCalendarInfoW...\n\n");
|
|
|
|
// Initialize global variables.
|
|
if (!InitSetCalInfo())
|
|
{
|
|
printf("\nABORTED TestSetCalendarInfo: Could not Initialize.\n");
|
|
return (1);
|
|
}
|
|
|
|
ErrCount += SCI_BadParamCheck();// Test bad parameters.
|
|
ErrCount += SCI_NormalCase();// Test normal cases.
|
|
ErrCount += SCI_Ansi();// Test Ansi version.
|
|
printf("\nSetCalendarInfoW: ERRORS = %d\n", ErrCount);// Print out result.
|
|
return (ErrCount);// Return total number of errors found.
|
|
}
|
|
|
|
|
|
BOOL InitSetCalInfo()
|
|
// This routine initializes the global variables.
|
|
// If no errors were encountered, then it returns TRUE. Otherwise, it returns FALSE.
|
|
// 03-10-98 JulieB Created.
|
|
{
|
|
Locale = MAKELCID(0x0409, 0);// Make a Locale.
|
|
|
|
// Save the ITWODIGITYEARMAX value to be restored later.
|
|
if (!GetCalendarInfoW( Locale, CAL_GREGORIAN, CAL_ITWODIGITYEARMAX, pTwoDigitYearMax, BUFSIZE, NULL ))
|
|
{
|
|
printf("ERROR: Initialization ITWODIGITYEARMAX - error = %d\n", GetLastError());
|
|
return (FALSE);
|
|
}
|
|
|
|
return (TRUE);// Return success.
|
|
}
|
|
|
|
|
|
int SCI_BadParamCheck()
|
|
// This routine passes in bad parameters to the API routines and checks to be sure they are handled properly.
|
|
// The number of errors encountered is returned to the caller.
|
|
// 03-10-98 JulieB Created.
|
|
{
|
|
int NumErrors = 0; // error count - to be returned
|
|
int rc; // return code
|
|
|
|
// Bad Locale.
|
|
|
|
// Variation 1 - Bad Locale
|
|
rc = SetCalendarInfoW( (LCID)333, CAL_GREGORIAN, CAL_ITWODIGITYEARMAX, L"2029" );
|
|
CheckReturnBadParam( rc, 0, ERROR_INVALID_PARAMETER, "Bad Locale", &NumErrors );
|
|
|
|
// Null Pointers.
|
|
|
|
// Variation 1 - lpCalData = NULL
|
|
rc = SetCalendarInfoW( Locale, CAL_GREGORIAN, CAL_ITWODIGITYEARMAX, NULL );
|
|
CheckReturnBadParam( rc, 0, ERROR_INVALID_PARAMETER, "lpCalData NULL", &NumErrors );
|
|
|
|
// Zero or Invalid Type.
|
|
|
|
// Variation 1 - CalType = invalid
|
|
rc = SetCalendarInfoW( Locale, CAL_GREGORIAN, CALTYPE_INVALID, L"2029" );
|
|
CheckReturnBadParam( rc, 0, ERROR_INVALID_FLAGS, "CalType invalid", &NumErrors );
|
|
|
|
// Variation 2 - CalType = 0
|
|
rc = SetCalendarInfoW( Locale, CAL_GREGORIAN, 0, L"2029" );
|
|
CheckReturnBadParam( rc, 0, ERROR_INVALID_FLAGS, "CalType zero", &NumErrors );
|
|
|
|
// Variation 1 - Use CP ACP, CalType = invalid
|
|
rc = SetCalendarInfoW( Locale, CAL_GREGORIAN, CAL_USE_CP_ACP | CALTYPE_INVALID, L"2029" );
|
|
CheckReturnBadParam( rc, 0, ERROR_INVALID_FLAGS, "Use CP ACP, CalType invalid", &NumErrors );
|
|
|
|
return (NumErrors);// Return total number of errors found.
|
|
}
|
|
|
|
|
|
int SCI_NormalCase()
|
|
// This routine tests the normal cases of the API routine.
|
|
// 03-10-98 JulieB Created.
|
|
{
|
|
int NumErrors = 0; // error count - to be returned
|
|
int rc; // return code
|
|
|
|
#ifdef PERF
|
|
DbgBreakPoint();
|
|
#endif
|
|
|
|
// Locales.
|
|
|
|
// Variation 1 - System Default Locale
|
|
rc = SetCalendarInfoW( LOCALE_SYSTEM_DEFAULT, CAL_GREGORIAN, CAL_ITWODIGITYEARMAX, L"2035" );
|
|
CheckReturnEqual( rc, FALSE, "SET - system default locale", &NumErrors );
|
|
rc = GetCalendarInfoW( LOCALE_SYSTEM_DEFAULT, CAL_GREGORIAN, CAL_ITWODIGITYEARMAX, lpCalData, BUFSIZE, NULL );
|
|
CheckReturnValidW( rc, -1, lpCalData, L"2035", "GET - system default locale", &NumErrors );
|
|
|
|
// Variation 2 - Current User Locale
|
|
rc = SetCalendarInfoW( LOCALE_USER_DEFAULT, CAL_GREGORIAN, CAL_ITWODIGITYEARMAX, L"2040" );
|
|
CheckReturnEqual( rc, FALSE, "SET - current user locale", &NumErrors );
|
|
rc = GetCalendarInfoW( LOCALE_USER_DEFAULT, CAL_GREGORIAN, CAL_ITWODIGITYEARMAX, lpCalData, BUFSIZE, NULL );
|
|
CheckReturnValidW( rc, -1, lpCalData, L"2040", "GET - current user locale", &NumErrors );
|
|
|
|
// Use CP ACP.
|
|
|
|
// Variation 1 - Use CP ACP, System Default Locale
|
|
rc = SetCalendarInfoW( LOCALE_SYSTEM_DEFAULT, CAL_GREGORIAN, CAL_USE_CP_ACP | CAL_ITWODIGITYEARMAX, L"2050" );
|
|
CheckReturnEqual( rc, FALSE, "SET - Use CP ACP, system default locale", &NumErrors );
|
|
rc = GetCalendarInfoW( LOCALE_SYSTEM_DEFAULT, CAL_GREGORIAN, CAL_USE_CP_ACP | CAL_ITWODIGITYEARMAX, lpCalData, BUFSIZE, NULL );
|
|
CheckReturnValidW( rc, -1, lpCalData, L"2050", "GET - Use CP ACP, system default locale", &NumErrors );
|
|
|
|
// CALTYPE values.
|
|
|
|
// Variation 1 - ITWODIGITYEARMAX
|
|
rc = SetCalendarInfoW( Locale, CAL_GREGORIAN, CAL_ITWODIGITYEARMAX, L"10000" );
|
|
CheckReturnEqual( rc, TRUE, "SET - MAX ITWODIGITYEARMAX", &NumErrors );
|
|
rc = SetCalendarInfoW( Locale, CAL_GREGORIAN, CAL_ITWODIGITYEARMAX, L"98" );
|
|
CheckReturnEqual( rc, TRUE, "SET - MIN ITWODIGITYEARMAX", &NumErrors );
|
|
rc = SetCalendarInfoW( Locale, CAL_GREGORIAN, CAL_ITWODIGITYEARMAX, L"3030" );
|
|
CheckReturnEqual( rc, FALSE, "SET - ITWODIGITYEARMAX", &NumErrors );
|
|
rc = GetCalendarInfoW( Locale, CAL_GREGORIAN, CAL_ITWODIGITYEARMAX, lpCalData, BUFSIZE, NULL );
|
|
CheckReturnValidW( rc, -1, lpCalData, L"3030", "GET - ITWODIGITYEARMAX", &NumErrors );
|
|
rc = SetCalendarInfoW( Locale, CAL_GREGORIAN, CAL_ITWODIGITYEARMAX, pTwoDigitYearMax );
|
|
CheckReturnEqual( rc, FALSE, "ReSET - ITWODIGITYEARMAX", &NumErrors );
|
|
|
|
return (NumErrors);// Return total number of errors found.
|
|
}
|
|
|
|
|
|
int SCI_Ansi()
|
|
// This routine tests the Ansi version of the API routine.
|
|
// 03-10-98 JulieB Created.
|
|
{
|
|
int NumErrors = 0; // error count - to be returned
|
|
int rc; // return code
|
|
|
|
// SetCalendarInfoA.
|
|
|
|
// Variation 1 - ITWODIGITYEARMAX
|
|
rc = SetCalendarInfoA( Locale, CAL_GREGORIAN, CAL_ITWODIGITYEARMAX, "4040" );
|
|
CheckReturnEqual( rc, FALSE, "SET - system default locale", &NumErrors );
|
|
rc = GetCalendarInfoW( Locale, CAL_GREGORIAN, CAL_ITWODIGITYEARMAX, lpCalData, BUFSIZE, NULL );
|
|
CheckReturnValidW( rc, -1, lpCalData, L"4040", "GET - system default locale", &NumErrors );
|
|
|
|
// Variation 2 - Use CP ACP, ITWODIGITYEARMAX
|
|
rc = SetCalendarInfoA( Locale, CAL_GREGORIAN, CAL_USE_CP_ACP | CAL_ITWODIGITYEARMAX, "4141" );
|
|
CheckReturnEqual( rc, FALSE, "SET - Use CP ACP, system default locale", &NumErrors );
|
|
rc = GetCalendarInfoW( Locale, CAL_GREGORIAN, CAL_USE_CP_ACP | CAL_ITWODIGITYEARMAX, lpCalData, BUFSIZE, NULL );
|
|
CheckReturnValidW( rc, -1, lpCalData, L"4141", "GET - Use CP ACP, system default locale", &NumErrors );
|
|
|
|
// Reset the ITWODIGITYEARMAX value.
|
|
rc = SetCalendarInfoW( Locale, CAL_GREGORIAN, CAL_ITWODIGITYEARMAX, pTwoDigitYearMax );
|
|
CheckReturnEqual( rc, FALSE, "ReSET - ITWODIGITYEARMAX", &NumErrors );
|
|
|
|
return (NumErrors);// Return total number of errors found.
|
|
} |