/* Generic test cleanup */ static void teardown(void) { if (test_enumJobsB) IEnumBackgroundCopyJobs_Release(test_enumJobsB); test_enumJobsB = NULL; if (test_jobB) IBackgroundCopyJob_Release(test_jobB); test_jobB = NULL; if (test_enumJobsA) IEnumBackgroundCopyJobs_Release(test_enumJobsA); test_enumJobsA = NULL; if (test_jobA) IBackgroundCopyJob_Release(test_jobA); test_jobA = NULL; if (test_manager) IBackgroundCopyManager_Release(test_manager); test_manager = NULL; }
static void test_globalness(void) { static const WCHAR format[] = {'t','e','s','t','_','%','u', 0}; WCHAR secretName[MAX_PATH]; IEnumBackgroundCopyJobs* enumJobs; IBackgroundCopyManager *manager = NULL; HRESULT hres; hres = CoCreateInstance(&CLSID_BackgroundCopyManager, NULL, CLSCTX_LOCAL_SERVER, &IID_IBackgroundCopyManager, (void **) &manager); if(hres != S_OK) { skip("Unable to create bits instance required for test.\n"); return; } wsprintfW(secretName, format, GetTickCount()); run_child(secretName); hres = IBackgroundCopyManager_EnumJobs(manager, 0, &enumJobs); ok(hres == S_OK, "EnumJobs failed: %08x\n", hres); if(hres != S_OK) skip("Unable to create job enumerator.\n"); else { ULONG i, n; IBackgroundCopyJob *job; BOOL found = FALSE; hres = IEnumBackgroundCopyJobs_GetCount(enumJobs, &n); for (i = 0; i < n && !found; ++i) { LPWSTR name; IEnumBackgroundCopyJobs_Next(enumJobs, 1, &job, NULL); IBackgroundCopyJob_GetDisplayName(job, &name); if (lstrcmpW(name, secretName) == 0) found = TRUE; CoTaskMemFree(name); IBackgroundCopyJob_Release(job); } hres = IEnumBackgroundCopyJobs_Release(enumJobs); ok(found, "Adding a job in another process failed\n"); } IBackgroundCopyManager_Release(manager); }
static void test_EnumJobs(void) { /* Job Enumerator */ IEnumBackgroundCopyJobs* enumJobs; static const WCHAR copyNameW[] = {'T', 'e', 's', 't', 0}; IBackgroundCopyManager *manager = NULL; IBackgroundCopyJob *job = NULL; HRESULT hres; GUID tmpId; ULONG res; /* Setup */ hres = CoCreateInstance(&CLSID_BackgroundCopyManager, NULL, CLSCTX_LOCAL_SERVER, &IID_IBackgroundCopyManager, (void **) &manager); if(hres != S_OK) { skip("Unable to create bits instance required for test.\n"); return; } hres = IBackgroundCopyManager_CreateJob(manager, copyNameW, BG_JOB_TYPE_DOWNLOAD, &tmpId, &job); if(hres != S_OK) { skip("Unable to create bits job.\n"); IBackgroundCopyManager_Release(manager); return; } hres = IBackgroundCopyManager_EnumJobs(manager, 0, &enumJobs); ok(hres == S_OK, "EnumJobs failed: %08x\n", hres); if(hres != S_OK) skip("Unable to create job enumerator.\n"); else { res = IEnumBackgroundCopyJobs_Release(enumJobs); ok(res == 0, "Bad ref count on release: %u\n", res); } /* Tear down */ IBackgroundCopyJob_Release(job); IBackgroundCopyManager_Release(manager); }