mirror of https://github.com/lianthony/NT4.0
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
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;
|
|
}
|
|
|
|
|
|
|
|
|
|
|