X-Git-Url: https://git.reactos.org/?p=reactos.git;a=blobdiff_plain;f=rostests%2Fapitests%2Flocalspl%2Fdll%2FfpEnumPrinters.c;h=7b1bf584af9e9f6b25de0db7e3dd64345694db0b;hp=82cb5e7a8a60b691253320cd7c5ba19e6f2ac446;hb=cb609f0b17a4b73e7bcaa1881b420a4e1becdf1b;hpb=c860e2b80d195ace6a3ddc2f4203148974a82d1d diff --git a/rostests/apitests/localspl/dll/fpEnumPrinters.c b/rostests/apitests/localspl/dll/fpEnumPrinters.c index 82cb5e7a8a6..7b1bf584af9 100644 --- a/rostests/apitests/localspl/dll/fpEnumPrinters.c +++ b/rostests/apitests/localspl/dll/fpEnumPrinters.c @@ -2,7 +2,7 @@ * PROJECT: ReactOS Local Spooler API Tests Injected DLL * LICENSE: GNU GPLv2 or any later version as published by the Free Software Foundation * PURPOSE: Tests for fpEnumPrinters - * COPYRIGHT: Copyright 2015 Colin Finck + * COPYRIGHT: Copyright 2015-2017 Colin Finck */ #include @@ -22,6 +22,8 @@ extern BOOL GetLocalsplFuncs(LPPRINTPROVIDOR pp); START_TEST(fpEnumPrinters) { + BYTE TempBuffer[50]; + BYTE ZeroBuffer[50]; DWORD cbNeeded; DWORD cbTemp; DWORD dwReturned; @@ -33,18 +35,30 @@ START_TEST(fpEnumPrinters) if (!GetLocalsplFuncs(&pp)) return; + // Verify that fpEnumPrinters returns success and zeros cbNeeded and dwReturned (but not TempBuffer!) if no flag has been specified. + memset(TempBuffer, 0xDE, sizeof(TempBuffer)); + memset(ZeroBuffer, 0, sizeof(ZeroBuffer)); + cbNeeded = 0xDEADBEEF; + dwReturned = 0xDEADBEEF; + SetLastError(0xDEADBEEF); + ok(pp.fpEnumPrinters(0, NULL, 1, TempBuffer, sizeof(TempBuffer), &cbNeeded, &dwReturned), "fpEnumPrinters returns FALSE\n"); + ok(GetLastError() == ERROR_SUCCESS, "fpEnumPrinters returns error %lu!\n", GetLastError()); + ok(memcmp(TempBuffer, ZeroBuffer, sizeof(TempBuffer)) != 0, "TempBuffer has been zeroed!\n"); + ok(cbNeeded == 0, "cbNeeded is %lu!\n", cbNeeded); + ok(dwReturned == 0, "dwReturned is %lu!\n", dwReturned); + // Verify that localspl only returns information about a single print provider (namely itself). cbNeeded = 0xDEADBEEF; dwReturned = 0xDEADBEEF; SetLastError(0xDEADBEEF); - ok(!pp.fpEnumPrinters(PRINTER_ENUM_LOCAL | PRINTER_ENUM_NAME, NULL, 1, NULL, 0, &cbNeeded, &dwReturned), "fpEnumPrinters returns TRUE\n"); + ok(!pp.fpEnumPrinters(PRINTER_ENUM_NAME, NULL, 1, NULL, 0, &cbNeeded, &dwReturned), "fpEnumPrinters returns TRUE\n"); ok(GetLastError() == ERROR_INSUFFICIENT_BUFFER, "fpEnumPrinters returns error %lu!\n", GetLastError()); ok(cbNeeded > 0, "cbNeeded is 0!\n"); ok(dwReturned == 0, "dwReturned is %lu!\n", dwReturned); SetLastError(0xDEADBEEF); pPrinterInfo1 = HeapAlloc(GetProcessHeap(), 0, cbNeeded); - ok(pp.fpEnumPrinters(PRINTER_ENUM_LOCAL | PRINTER_ENUM_NAME, NULL, 1, (PBYTE)pPrinterInfo1, cbNeeded, &cbNeeded, &dwReturned), "fpEnumPrinters returns FALSE\n"); + ok(pp.fpEnumPrinters(PRINTER_ENUM_NAME, NULL, 1, (PBYTE)pPrinterInfo1, cbNeeded, &cbNeeded, &dwReturned), "fpEnumPrinters returns FALSE\n"); ok(GetLastError() == ERROR_SUCCESS, "fpEnumPrinters returns error %lu!\n", GetLastError()); ok(cbNeeded > 0, "cbNeeded is 0!\n"); ok(dwReturned == 1, "dwReturned is %lu!\n", dwReturned);