From 9c19b2e225ad5f10bd83e79dbc2eb630add35528 Mon Sep 17 00:00:00 2001 From: Sebastian Lackner Date: Wed, 26 Dec 2018 13:43:02 -0600 Subject: [PATCH] urlmon/tests: Add test for opening cache file with DELETE access. Signed-off-by: Zebediah Figura Signed-off-by: Alexandre Julliard --- dlls/urlmon/tests/url.c | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/dlls/urlmon/tests/url.c b/dlls/urlmon/tests/url.c index 893632fd2e3..ada78c930b9 100644 --- a/dlls/urlmon/tests/url.c +++ b/dlls/urlmon/tests/url.c @@ -182,6 +182,7 @@ static HRESULT abort_hres; static BOOL have_IHttpNegotiate2, use_bscex, is_async_prot; static BOOL test_redirect, use_cache_file, callback_read, no_callback, test_abort; static WCHAR cache_file_name[MAX_PATH]; +static WCHAR http_cache_file[MAX_PATH]; static BOOL only_check_prot_args = FALSE; static BOOL invalid_cn_accepted = FALSE; static BOOL abort_start = FALSE; @@ -1927,6 +1928,14 @@ static HRESULT WINAPI statusclb_OnStopBinding(IBindStatusCallbackEx *iface, HRES ok( WaitForSingleObject(complete_event2, 90000) == WAIT_OBJECT_0, "wait timed out\n" ); } + if(test_protocol == HTTP_TEST && !emulate_protocol && http_cache_file[0]) { + HANDLE file = CreateFileW(http_cache_file, DELETE, FILE_SHARE_READ | FILE_SHARE_WRITE | FILE_SHARE_DELETE, + NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL); + ok(file == INVALID_HANDLE_VALUE, "expected INVALID_HANDLE_VALUE, got %p\n", file); + ok(GetLastError() == ERROR_SHARING_VIOLATION, "expected ERROR_SHARING_VIOLATION, got %u\n", GetLastError()); + http_cache_file[0] = 0; + } + return S_OK; } @@ -2083,6 +2092,8 @@ static HRESULT WINAPI statusclb_OnDataAvailable(IBindStatusCallbackEx *iface, DW else if(emulate_protocol) ok(!lstrcmpW(pstgmed->u.lpszFileName, cache_fileW), "unexpected file name %s\n", wine_dbgstr_w(pstgmed->u.lpszFileName)); + else if(test_protocol == HTTP_TEST) + lstrcpyW(http_cache_file, pstgmed->u.lpszFileName); else ok(pstgmed->u.lpszFileName != NULL, "lpszFileName == NULL\n"); }