/* Generic test setup */ static BOOL setup(void) { HRESULT hres; GUID test_jobId; hres = CoCreateInstance(&CLSID_BackgroundCopyManager, NULL, CLSCTX_LOCAL_SERVER, &IID_IBackgroundCopyManager, (void **) &test_manager); if(hres != S_OK) return FALSE; hres = IBackgroundCopyManager_CreateJob(test_manager, test_displayName, BG_JOB_TYPE_DOWNLOAD, &test_jobId, &test_job); if(hres != S_OK) { IBackgroundCopyManager_Release(test_manager); return FALSE; } if (addFileHelper(test_job, test_localNameA, test_remoteNameA) != S_OK || addFileHelper(test_job, test_localNameB, test_remoteNameB) != S_OK || IBackgroundCopyJob_EnumFiles(test_job, &test_enumFiles) != S_OK) { IBackgroundCopyJob_Release(test_job); IBackgroundCopyManager_Release(test_manager); return FALSE; } return TRUE; }
static HRESULT test_create_manager(void) { HRESULT hres; IBackgroundCopyManager *manager = NULL; /* Creating BITS instance */ hres = CoCreateInstance(&CLSID_BackgroundCopyManager, NULL, CLSCTX_LOCAL_SERVER, &IID_IBackgroundCopyManager, (void **) &manager); if(hres == HRESULT_FROM_WIN32(ERROR_SERVICE_DISABLED)) { win_skip("Needed Service is disabled\n"); return hres; } if (hres == S_OK) { IBackgroundCopyJob *job; GUID jobId; hres = IBackgroundCopyManager_CreateJob(manager, test_displayName, BG_JOB_TYPE_DOWNLOAD, &jobId, &job); if (hres == S_OK) { hres = addFileHelper(job, test_localNameA, test_remoteNameA); if (hres != S_OK) win_skip("AddFile() with file:// protocol failed. Tests will be skipped.\n"); IBackgroundCopyJob_Release(job); } IBackgroundCopyManager_Release(manager); } return hres; }
static void test_CreateJob(void) { /* Job information */ static const WCHAR copyNameW[] = {'T', 'e', 's', 't', 0}; IBackgroundCopyJob* job = NULL; GUID tmpId; HRESULT hres; ULONG res; IBackgroundCopyManager* manager = NULL; /* 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; } /* Create bits job */ hres = IBackgroundCopyManager_CreateJob(manager, copyNameW, BG_JOB_TYPE_DOWNLOAD, &tmpId, &job); ok(hres == S_OK, "CreateJob failed: %08x\n", hres); if(hres != S_OK) skip("Unable to create bits job.\n"); else { res = IBackgroundCopyJob_Release(job); ok(res == 0, "Bad ref count on release: %u\n", res); } IBackgroundCopyManager_Release(manager); }
/* Generic test setup */ static BOOL setup(void) { HRESULT hres; test_manager = NULL; test_jobA = NULL; test_jobB = NULL; memset(&test_jobIdA, 0, sizeof test_jobIdA); memset(&test_jobIdB, 0, sizeof test_jobIdB); hres = CoCreateInstance(&CLSID_BackgroundCopyManager, NULL, CLSCTX_LOCAL_SERVER, &IID_IBackgroundCopyManager, (void **) &test_manager); if(hres != S_OK) return FALSE; hres = IBackgroundCopyManager_CreateJob(test_manager, test_displayNameA, BG_JOB_TYPE_DOWNLOAD, &test_jobIdA, &test_jobA); if(hres != S_OK) return FALSE; hres = IBackgroundCopyManager_EnumJobs(test_manager, 0, &test_enumJobsA); if(hres != S_OK) return FALSE; hres = IBackgroundCopyManager_CreateJob(test_manager, test_displayNameB, BG_JOB_TYPE_DOWNLOAD, &test_jobIdB, &test_jobB); if(hres != S_OK) return FALSE; hres = IBackgroundCopyManager_EnumJobs(test_manager, 0, &test_enumJobsB); if(hres != S_OK) return FALSE; hres = IEnumBackgroundCopyJobs_GetCount(test_enumJobsB, &test_jobCountB); if (hres != S_OK) return FALSE; return TRUE; }
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); }
static void do_child(const char *secretA) { WCHAR secretW[MAX_PATH]; IBackgroundCopyManager *manager = NULL; GUID id; IBackgroundCopyJob *job; 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; } MultiByteToWideChar(CP_ACP, 0, secretA, -1, secretW, MAX_PATH); hres = IBackgroundCopyManager_CreateJob(manager, secretW, BG_JOB_TYPE_DOWNLOAD, &id, &job); ok(hres == S_OK, "CreateJob in child process\n"); IBackgroundCopyJob_Release(job); IBackgroundCopyManager_Release(manager); }