/*++ 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; }