Piotr Caban : scrrun/tests: Add IFileSystem3::GetFile tests.

Alexandre Julliard julliard at winehq.org
Mon Jul 29 14:01:18 CDT 2013


Module: wine
Branch: master
Commit: 45b31a9f019c013e35fee0a50f976c2b1d57a8e1
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=45b31a9f019c013e35fee0a50f976c2b1d57a8e1

Author: Piotr Caban <piotr at codeweavers.com>
Date:   Thu Jul 25 15:13:46 2013 +0200

scrrun/tests: Add IFileSystem3::GetFile tests.

---

 dlls/scrrun/tests/filesystem.c |   44 ++++++++++++++++++++++++++++++++++++++++
 1 files changed, 44 insertions(+), 0 deletions(-)

diff --git a/dlls/scrrun/tests/filesystem.c b/dlls/scrrun/tests/filesystem.c
index 801e56f..101c396 100644
--- a/dlls/scrrun/tests/filesystem.c
+++ b/dlls/scrrun/tests/filesystem.c
@@ -461,6 +461,49 @@ static void test_GetAbsolutePathName(void)
     RemoveDirectoryW(dir2);
 }
 
+static void test_GetFile(void)
+{
+    static const WCHAR get_file[] = {'g','e','t','_','f','i','l','e','.','t','s','t',0};
+
+    BSTR path = SysAllocString(get_file);
+    IFile *file;
+    HRESULT hr;
+    HANDLE hf;
+
+    hr = IFileSystem3_GetFile(fs3, path, NULL);
+    ok(hr == E_POINTER, "GetFile returned %x, expected E_POINTER\n", hr);
+    hr = IFileSystem3_GetFile(fs3, NULL, &file);
+    ok(hr == E_INVALIDARG, "GetFile returned %x, expected E_INVALIDARG\n", hr);
+
+    hf = CreateFileW(path, GENERIC_WRITE, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
+    if(hf != INVALID_HANDLE_VALUE) {
+        CloseHandle(hf);
+        skip("File already exists, skipping GetFile tests\n");
+        SysFreeString(path);
+        return;
+    }
+
+    file = (IFile*)0xdeadbeef;
+    hr = IFileSystem3_GetFile(fs3, path, &file);
+    ok(!file, "file != NULL\n");
+    ok(hr == CTL_E_FILENOTFOUND, "GetFile returned %x, expected CTL_E_FILENOTFOUND\n", hr);
+
+    hf = CreateFileW(path, GENERIC_WRITE, 0, NULL, CREATE_NEW, FILE_ATTRIBUTE_NORMAL, NULL);
+    if(hf == INVALID_HANDLE_VALUE) {
+        skip("Can't create temporary file\n");
+        SysFreeString(path);
+        return;
+    }
+    CloseHandle(hf);
+
+    hr = IFileSystem3_GetFile(fs3, path, &file);
+    ok(hr == S_OK, "GetFile returned %x, expected S_OK\n", hr);
+    IFile_Release(file);
+
+    DeleteFileW(path);
+    SysFreeString(path);
+}
+
 START_TEST(filesystem)
 {
     HRESULT hr;
@@ -482,6 +525,7 @@ START_TEST(filesystem)
     test_GetFileName();
     test_GetBaseName();
     test_GetAbsolutePathName();
+    test_GetFile();
 
     IFileSystem3_Release(fs3);
 




More information about the wine-cvs mailing list