Module: wine Branch: master Commit: 202e71769e82b3b3a537d5a0a61bb8c82cc47e71 URL: http://source.winehq.org/git/wine.git/?a=commit;h=202e71769e82b3b3a537d5a0a6...
Author: Nikolay Sivov nsivov@codeweavers.com Date: Sat Nov 30 14:47:19 2013 +0400
qmgr/tests: Fixed some test failures on older windows versions.
---
dlls/qmgr/tests/enum_files.c | 43 +++++++++++++++++++++++++++++++++++- dlls/qmgr/tests/file.c | 50 ++++++++++++++++++++++++++--------------- 2 files changed, 74 insertions(+), 19 deletions(-)
diff --git a/dlls/qmgr/tests/enum_files.c b/dlls/qmgr/tests/enum_files.c index 7e2ab1e..0b05920 100644 --- a/dlls/qmgr/tests/enum_files.c +++ b/dlls/qmgr/tests/enum_files.c @@ -56,7 +56,40 @@ static HRESULT addFileHelper(IBackgroundCopyJob* job, urlSize = MAX_PATH; UrlCreateFromPathW(remoteFile, remoteUrl, &urlSize, 0); UrlUnescapeW(remoteUrl, NULL, &urlSize, URL_UNESCAPE_INPLACE); - return IBackgroundCopyJob_AddFile(test_job, remoteUrl, localFile); + return IBackgroundCopyJob_AddFile(job, remoteUrl, localFile); +} + +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; }
/* Generic test setup */ @@ -251,6 +284,14 @@ START_TEST(enum_files) int i;
CoInitialize(NULL); + + if (FAILED(test_create_manager())) + { + CoUninitialize(); + win_skip("Failed to create Manager instance, skipping tests\n"); + return; + } + for (test = tests, i = 0; *test; ++test, ++i) { /* Keep state separate between tests. */ diff --git a/dlls/qmgr/tests/file.c b/dlls/qmgr/tests/file.c index f14ad3a..afe4b53 100644 --- a/dlls/qmgr/tests/file.c +++ b/dlls/qmgr/tests/file.c @@ -40,6 +40,25 @@ static IBackgroundCopyManager *test_manager; static IEnumBackgroundCopyFiles *test_enumFiles; static IBackgroundCopyFile *test_file;
+/* Helper function to add a file to a job. The helper function takes base + file name and creates properly formed path and URL strings for creation of + the file. */ +static HRESULT addFileHelper(IBackgroundCopyJob* job, + const WCHAR *localName, const WCHAR *remoteName) +{ + DWORD urlSize; + + GetCurrentDirectoryW(MAX_PATH, test_localFile); + PathAppendW(test_localFile, localName); + GetCurrentDirectoryW(MAX_PATH, test_remoteUrl); + PathAppendW(test_remoteUrl, remoteName); + urlSize = MAX_PATH; + UrlCreateFromPathW(test_remoteUrl, test_remoteUrl, &urlSize, 0); + UrlUnescapeW(test_remoteUrl, NULL, &urlSize, URL_UNESCAPE_INPLACE); + + return IBackgroundCopyJob_AddFile(job, test_remoteUrl, test_localFile); +} + static HRESULT test_create_manager(void) { HRESULT hres; @@ -55,29 +74,24 @@ static HRESULT test_create_manager(void) }
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_localName, test_remoteName); + if (hres != S_OK) + win_skip("AddFile() with file:// protocol failed. Tests will be skipped.\n"); + IBackgroundCopyJob_Release(job); + } IBackgroundCopyManager_Release(manager); + }
return hres; }
-/* Helper function to add a file to a job. The helper function takes base - file name and creates properly formed path and URL strings for creation of - the file. */ -static HRESULT addFileHelper(IBackgroundCopyJob* job, - const WCHAR *localName, const WCHAR *remoteName) -{ - DWORD urlSize; - - GetCurrentDirectoryW(MAX_PATH, test_localFile); - PathAppendW(test_localFile, localName); - GetCurrentDirectoryW(MAX_PATH, test_remoteUrl); - PathAppendW(test_remoteUrl, remoteName); - urlSize = MAX_PATH; - UrlCreateFromPathW(test_remoteUrl, test_remoteUrl, &urlSize, 0); - UrlUnescapeW(test_remoteUrl, NULL, &urlSize, URL_UNESCAPE_INPLACE); - return IBackgroundCopyJob_AddFile(test_job, test_remoteUrl, test_localFile); -} - /* Generic test setup */ static BOOL setup(void) {