Windows NT 4.0 source code leak
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

543 lines
18 KiB

/*++
Copyright (c) 1995 Microsoft Corporation
Module Name:
uline.c
Abstract:
This module contains the test functions for all uninitialize
phone APIs test
Author:
Palamalai Gopalakrishnan (pgopi) 3-8-96
Revision History:
--*/
#include "windows.h"
#include "malloc.h"
#include "string.h"
#include "tapi.h"
#include "trapper.h"
#include "ttest.h"
#include "dophone.h"
#include "tphone.h"
#define DWNUMCALLS 1
#define DWNUMAPIS 29
char szApiName[DWNUMAPIS][48] =
{
"phoneClose",
"phoneConfigDialog",
"phoneDevSpecific",
"phoneGetButtonInfo",
"phoneGetData",
"phoneGetDevCaps",
"phoneGetDisplay",
"phoneGetGain",
"phoneGetHookSwitch",
"phoneGetIcon",
"phoneGetId",
"phoneGetLamp",
"phoneGetRing",
"phoneGetStatus",
"phoneGetStatusMessages",
"phoneGetVolume",
"phoneNegotiateAPIVersion",
"phoneNegotiateExtVersion",
"phoneOpen",
"phoneSetButtonInfo",
"phoneSetData",
"phoneSetDisplay",
"phoneSetGain",
"phoneSetHookSwitch",
"phoneSetLamp",
"phoneSetRing",
"phoneSetStatusMessages",
"phoneSetVolume",
"phoneShutdown"
};
BOOL TestPhoneUninit(BOOL fQuietMode, BOOL fStandAlone)
{
LPTAPIPHONETESTINFO lpTapiPhoneTestInfo;
LPCALLBACKPARAMS lpCallbackParams;
BOOL fTestPassed = TRUE;
INT i=0;
dwTestCasePassed = 0;
dwTestCaseFailed = 0;
dwTestCase = 0;
OutputTAPIDebugInfo(
DBUG_SHOW_PASS,
"***************************************************************");
OutputTAPIDebugInfo(
DBUG_SHOW_PASS,
">>>>>>>>>> Test phoneXXX Unintialize tests <<<<<<<<<<<<<<<");
//
// Test for UNINITIALIZED if this is the only TAPI app running
//
if (fStandAlone)
{
for(i = 0; i < DWNUMAPIS; i++)
{
TapiPhoneTestInit();
lpTapiPhoneTestInfo = GetPhoneTestInfo();
lpCallbackParams = GetCallbackParams();
lpTapiPhoneTestInfo->dwCallbackInstance =
(DWORD) GetCallbackParams();
fTestPassed = TRUE;
TapiLogDetail(
DBUG_SHOW_PASS,
">> Test Case %ld: Uninitialized %s",
dwTestCase + 1, szApiName[i]);
switch (i)
{
case 0:
if(! DoPhoneClose(lpTapiPhoneTestInfo,
PHONEERR_UNINITIALIZED))
{
TPHONE_FAIL();
}
break;
case 1:
lpTapiPhoneTestInfo->dwDeviceID =
(*(lpTapiPhoneTestInfo->lpdwNumDevs)== 0 ?
0 : *(lpTapiPhoneTestInfo->lpdwNumDevs)-1);
lpTapiPhoneTestInfo->hwndOwner = (HWND) GetTopWindow(NULL);
#ifdef WUNICODE
lpTapiPhoneTestInfo->lpwszDeviceClass = L"tapi/phone";
#else
lpTapiPhoneTestInfo->lpszDeviceClass = "tapi/phone";
#endif
if(! DoPhoneConfigDialog(lpTapiPhoneTestInfo,
PHONEERR_UNINITIALIZED))
{
TPHONE_FAIL();
}
break;
case 2:
{
PHONEBUTTONINFO TapiTestPhoneButtonInfo;
lpTapiPhoneTestInfo->lpParams =
(LPVOID)&TapiTestPhoneButtonInfo;
lpTapiPhoneTestInfo->dwSize = sizeof(PHONEBUTTONINFO);
if (! DoPhoneDevSpecific(lpTapiPhoneTestInfo,
PHONEERR_UNINITIALIZED,
TRUE))
{
TPHONE_FAIL();
}
}
break;
case 3:
lpTapiPhoneTestInfo->dwButtonLampID = 0;
lpTapiPhoneTestInfo->lpButtonInfo =
(LPPHONEBUTTONINFO) AllocFromTestHeap(
sizeof(PHONEBUTTONINFO)
);
lpTapiPhoneTestInfo->lpButtonInfo->dwTotalSize =
sizeof(PHONEBUTTONINFO);
if (! DoPhoneGetButtonInfo(lpTapiPhoneTestInfo,
PHONEERR_UNINITIALIZED))
{
TPHONE_FAIL();
}
break;
case 4:
lpTapiPhoneTestInfo->dwDataID = 0;
lpTapiPhoneTestInfo->lpData = (LPVOID) AllocFromTestHeap(
sizeof(DWORD));
lpTapiPhoneTestInfo->dwSize = sizeof(DWORD);
if (! DoPhoneGetData(lpTapiPhoneTestInfo,
PHONEERR_UNINITIALIZED))
{
TPHONE_FAIL();
}
break;
case 5:
lpTapiPhoneTestInfo->lpPhoneCaps =
(LPPHONECAPS) AllocFromTestHeap(sizeof(PHONECAPS));
lpTapiPhoneTestInfo->lpPhoneCaps->dwTotalSize =
sizeof(PHONECAPS);
if (! DoPhoneGetDevCaps(lpTapiPhoneTestInfo,
PHONEERR_UNINITIALIZED))
{
TPHONE_FAIL();
}
break;
case 6:
lpTapiPhoneTestInfo->lpDisplay =
(LPVARSTRING) AllocFromTestHeap(sizeof(VARSTRING));
lpTapiPhoneTestInfo->lpDisplay->dwTotalSize =
sizeof(VARSTRING);
if (! DoPhoneGetDisplay(lpTapiPhoneTestInfo,
PHONEERR_UNINITIALIZED))
{
TPHONE_FAIL();
}
break;
case 7:
lpTapiPhoneTestInfo->dwHookSwitchDev =
PHONEHOOKSWITCHDEV_HANDSET;
lpTapiPhoneTestInfo->lpdwGain = &(lpTapiPhoneTestInfo->dwGain);
if (! DoPhoneGetGain(lpTapiPhoneTestInfo,
PHONEERR_UNINITIALIZED))
{
TPHONE_FAIL();
}
break;
case 8:
lpTapiPhoneTestInfo->lpdwHookSwitchDevs =
&(lpTapiPhoneTestInfo->dwHookSwitchDevs);
if (! DoPhoneGetHookSwitch(lpTapiPhoneTestInfo,
PHONEERR_UNINITIALIZED))
{
TPHONE_FAIL();
}
break;
case 9:
lpTapiPhoneTestInfo->lphIcon = &lpTapiPhoneTestInfo->hIcon;
#ifdef WUNICODE
lpTapiPhoneTestInfo->lpwszDeviceClass = L"tapi/phone";
#else
lpTapiPhoneTestInfo->lpszDeviceClass = "tapi/phone";
#endif
if (! DoPhoneGetIcon(lpTapiPhoneTestInfo,
PHONEERR_UNINITIALIZED))
{
TPHONE_FAIL();
}
break;
case 10:
#ifdef WUNICODE
lpTapiPhoneTestInfo->lpwszDeviceClass = L"tapi/phone";
#else
lpTapiPhoneTestInfo->lpszDeviceClass = "tapi/phone";
#endif
lpTapiPhoneTestInfo->lpDeviceID =
&(lpTapiPhoneTestInfo->DeviceID);
lpTapiPhoneTestInfo->lpDeviceID->dwTotalSize =
sizeof(VARSTRING);
if (! DoPhoneGetID(lpTapiPhoneTestInfo,
PHONEERR_UNINITIALIZED))
{
TPHONE_FAIL();
}
break;
case 11:
lpTapiPhoneTestInfo->dwButtonLampID = 0;
lpTapiPhoneTestInfo->lpdwLampMode =
&(lpTapiPhoneTestInfo->dwLampMode);
if (! DoPhoneGetLamp(lpTapiPhoneTestInfo,
PHONEERR_UNINITIALIZED))
{
TPHONE_FAIL();
}
break;
case 12:
lpTapiPhoneTestInfo->lpdwRingMode =
&(lpTapiPhoneTestInfo->dwRingMode);
lpTapiPhoneTestInfo->lpdwVolume =
&(lpTapiPhoneTestInfo->dwVolume);
if (! DoPhoneGetRing(lpTapiPhoneTestInfo,
PHONEERR_UNINITIALIZED))
{
TPHONE_FAIL();
}
break;
case 13:
lpTapiPhoneTestInfo->lpPhoneStatus =
(LPPHONESTATUS) AllocFromTestHeap(sizeof(PHONESTATUS));
lpTapiPhoneTestInfo->lpPhoneStatus->dwTotalSize =
sizeof(PHONESTATUS);
if (! DoPhoneGetStatus(lpTapiPhoneTestInfo,
PHONEERR_UNINITIALIZED))
{
TPHONE_FAIL();
}
break;
case 14:
lpTapiPhoneTestInfo->lpdwPhoneStates =
&(lpTapiPhoneTestInfo->dwPhoneStates);
lpTapiPhoneTestInfo->lpdwButtonModes =
&(lpTapiPhoneTestInfo->dwButtonModes);
lpTapiPhoneTestInfo->lpdwButtonStates =
&(lpTapiPhoneTestInfo->dwButtonStates);
if (! DoPhoneGetStatusMessages(lpTapiPhoneTestInfo,
PHONEERR_UNINITIALIZED))
{
TPHONE_FAIL();
}
break;
case 15:
lpTapiPhoneTestInfo->dwHookSwitchDev =
PHONEHOOKSWITCHDEV_HANDSET;
lpTapiPhoneTestInfo->lpdwVolume =
&(lpTapiPhoneTestInfo->dwVolume);
if (! DoPhoneGetVolume(lpTapiPhoneTestInfo,
PHONEERR_UNINITIALIZED))
{
TPHONE_FAIL();
}
break;
case 16:
lpTapiPhoneTestInfo->dwDeviceID = 0;
lpTapiPhoneTestInfo->dwAPILowVersion = LOW_APIVERSION;
lpTapiPhoneTestInfo->dwAPIHighVersion = HIGH_APIVERSION;
if (! DoPhoneNegotiateAPIVersion(lpTapiPhoneTestInfo,
PHONEERR_UNINITIALIZED))
{
TPHONE_FAIL();
}
break;
case 17:
lpTapiPhoneTestInfo->lpdwExtVersion =
&(lpTapiPhoneTestInfo->dwExtVersion);
if (! DoPhoneNegotiateExtVersion(lpTapiPhoneTestInfo,
PHONEERR_UNINITIALIZED))
{
TPHONE_FAIL();
}
break;
case 18:
lpTapiPhoneTestInfo->dwPrivilege = PHONEPRIVILEGE_OWNER;
if (! DoPhoneOpen(lpTapiPhoneTestInfo, PHONEERR_UNINITIALIZED))
{
TPHONE_FAIL();
}
break;
case 19:
lpTapiPhoneTestInfo->dwButtonLampID = 0;
lpTapiPhoneTestInfo->lpButtonInfo =
(LPPHONEBUTTONINFO) AllocFromTestHeap(
sizeof(PHONEBUTTONINFO));
// Do set all field in ButtonInfo here
lpTapiPhoneTestInfo->lpButtonInfo->dwTotalSize =
sizeof(PHONEBUTTONINFO);
lpTapiPhoneTestInfo->lpButtonInfo->dwButtonMode =
PHONEBUTTONMODE_CALL;
if (! DoPhoneSetButtonInfo(lpTapiPhoneTestInfo,
PHONEERR_UNINITIALIZED,
TRUE))
{
TPHONE_FAIL();
}
break;
case 20:
{
ULONG dwData = 0x5;
lpTapiPhoneTestInfo->dwDataID = 0;
lpTapiPhoneTestInfo->lpData = (LPVOID) AllocFromTestHeap(
sizeof(DWORD));
lpTapiPhoneTestInfo->lpData = (LPVOID) &dwData;
lpTapiPhoneTestInfo->dwSize = sizeof(DWORD);
if (! DoPhoneSetData(lpTapiPhoneTestInfo,
PHONEERR_UNINITIALIZED,
TRUE))
{
TPHONE_FAIL();
}
}
break;
case 21:
{
ULONG dwNumRows = lpTapiPhoneTestInfo->dwRow = 2;
ULONG dwNumColumns = lpTapiPhoneTestInfo->dwColumn = 10;
lpTapiPhoneTestInfo->lpsDisplay = (LPSTR)AllocFromTestHeap(
sizeof(dwNumRows*dwNumColumns));
lpTapiPhoneTestInfo->lpsDisplay = "this is a test";
lpTapiPhoneTestInfo->dwSize =
sizeof(lpTapiPhoneTestInfo->lpsDisplay);
if (! DoPhoneSetDisplay(lpTapiPhoneTestInfo,
PHONEERR_UNINITIALIZED,
TRUE))
{
TPHONE_FAIL();
}
}
break;
case 22:
lpTapiPhoneTestInfo->dwHookSwitchDev =
PHONEHOOKSWITCHDEV_HANDSET;
lpTapiPhoneTestInfo->dwGain = 0x2;
if (! DoPhoneSetGain(lpTapiPhoneTestInfo,
PHONEERR_UNINITIALIZED,
TRUE))
{
TPHONE_FAIL();
}
break;
case 23:
lpTapiPhoneTestInfo->lpdwHookSwitchDevs =
&(lpTapiPhoneTestInfo->dwHookSwitchDevs);
lpTapiPhoneTestInfo->dwHookSwitchDevs =
PHONEHOOKSWITCHDEV_HANDSET;
lpTapiPhoneTestInfo->dwHookSwitchMode =
PHONEHOOKSWITCHMODE_ONHOOK;
if (! DoPhoneSetHookSwitch(lpTapiPhoneTestInfo,
PHONEERR_UNINITIALIZED,
TRUE))
{
TPHONE_FAIL();
}
break;
case 24:
lpTapiPhoneTestInfo->dwButtonLampID = 0;
lpTapiPhoneTestInfo->lpdwLampMode =
&(lpTapiPhoneTestInfo->dwLampMode);
lpTapiPhoneTestInfo->dwLampMode = PHONELAMPMODE_FLUTTER;
if (! DoPhoneSetLamp(lpTapiPhoneTestInfo,
PHONEERR_UNINITIALIZED,
TRUE))
{
TPHONE_FAIL();
}
break;
case 25:
lpTapiPhoneTestInfo->lpdwRingMode =
&(lpTapiPhoneTestInfo->dwRingMode);
lpTapiPhoneTestInfo->lpdwVolume =
&(lpTapiPhoneTestInfo->dwVolume);
lpTapiPhoneTestInfo->lpPhoneCaps =
(LPPHONECAPS) AllocFromTestHeap(sizeof(PHONECAPS));
lpTapiPhoneTestInfo->lpPhoneCaps->dwTotalSize =
sizeof(PHONECAPS);
lpTapiPhoneTestInfo->dwRingMode =
lpTapiPhoneTestInfo->lpPhoneCaps->dwNumRingModes;
lpTapiPhoneTestInfo->dwVolume = 0x3;
if (! DoPhoneSetRing(lpTapiPhoneTestInfo,
PHONEERR_UNINITIALIZED,
TRUE))
{
TPHONE_FAIL();
}
break;
case 26:
lpTapiPhoneTestInfo->lpdwPhoneStates =
&(lpTapiPhoneTestInfo->dwPhoneStates);
lpTapiPhoneTestInfo->lpdwButtonModes =
&(lpTapiPhoneTestInfo->dwButtonModes);
lpTapiPhoneTestInfo->lpdwButtonStates =
&(lpTapiPhoneTestInfo->dwButtonStates);
lpTapiPhoneTestInfo->dwPhoneStates = PHONESTATE_CONNECTED;
lpTapiPhoneTestInfo->dwButtonModes = PHONEBUTTONMODE_CALL;
lpTapiPhoneTestInfo->dwButtonStates = PHONEBUTTONSTATE_UP;
if (! DoPhoneSetStatusMessages(lpTapiPhoneTestInfo,
PHONEERR_UNINITIALIZED))
{
TPHONE_FAIL();
}
break;
case 27:
lpTapiPhoneTestInfo->dwHookSwitchDev =
PHONEHOOKSWITCHDEV_HANDSET;
lpTapiPhoneTestInfo->lpdwVolume =
&(lpTapiPhoneTestInfo->dwVolume);
lpTapiPhoneTestInfo->dwVolume = 0x7;
if (! DoPhoneSetVolume(lpTapiPhoneTestInfo,
PHONEERR_UNINITIALIZED,
TRUE))
{
TPHONE_FAIL();
}
break;
case 28:
if (! DoPhoneShutdown(lpTapiPhoneTestInfo,
PHONEERR_UNINITIALIZED))
{
TPHONE_FAIL();
}
break;
default:
TapiLogDetail(
DBUG_SHOW_DETAIL,
"TestPhoneUninit -- error in FOR loop limits");
break;
} // switch
fTestPassed = ShowTestCase(fTestPassed);
FreeTestHeap();
} // for
} // if
TapiLogDetail(
DBUG_SHOW_PASS,
"@@ Phone Uninitialize: Total Test Case = %ld, Passed = %ld, Failed = %ld",
dwTestCase, dwTestCasePassed, dwTestCaseFailed);
TapiLogDetail(
DBUG_SHOW_PASS,
"@@ Total Test Case = %ld, Passed = %ld, Failed = %ld",
dwglTestCase, dwglTestCasePassed, dwglTestCaseFailed);
if(dwTestCaseFailed > 0)
fTestPassed = FALSE;
TapiLogDetail(
DBUG_SHOW_PASS,
">>>>>>>> End testing PhoneUninitialize <<<<<<<<"
);
return fTestPassed;
}