Dan Hipschman : qedit/tests: Add test framework and test for IMediaDet_put_Filename.

Alexandre Julliard julliard at winehq.org
Mon Apr 7 06:50:10 CDT 2008


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

Author: Dan Hipschman <dsh at linux.ucla.edu>
Date:   Fri Apr  4 15:59:08 2008 -0700

qedit/tests: Add test framework and test for IMediaDet_put_Filename.

---

 dlls/qedit/tests/Makefile.in |    4 ++-
 dlls/qedit/tests/mediadet.c  |   66 ++++++++++++++++++++++++++++++++++++++++++
 dlls/qedit/tests/qedit.rc    |   22 ++++++++++++++
 dlls/qedit/tests/test.avi    |  Bin 0 -> 5676 bytes
 4 files changed, 91 insertions(+), 1 deletions(-)

diff --git a/dlls/qedit/tests/Makefile.in b/dlls/qedit/tests/Makefile.in
index 5236975..94c5e60 100644
--- a/dlls/qedit/tests/Makefile.in
+++ b/dlls/qedit/tests/Makefile.in
@@ -3,12 +3,14 @@ TOPOBJDIR = ../../..
 SRCDIR    = @srcdir@
 VPATH     = @srcdir@
 TESTDLL   = qedit.dll
-IMPORTS   = ole32 kernel32
+IMPORTS   = oleaut32 ole32 kernel32
 EXTRALIBS = -lstrmiids -luuid
 
 CTESTS = \
 	mediadet.c
 
+RC_SRCS = qedit.rc
+
 @MAKE_TEST_RULES@
 
 @DEPENDENCIES@  # everything below this line is overwritten by make depend
diff --git a/dlls/qedit/tests/mediadet.c b/dlls/qedit/tests/mediadet.c
index b550c8e..b9ea9c0 100644
--- a/dlls/qedit/tests/mediadet.c
+++ b/dlls/qedit/tests/mediadet.c
@@ -25,22 +25,88 @@
 #include "wine/test.h"
 #include "qedit.h"
 
+static WCHAR test_avi_filename[MAX_PATH];
+
+static BOOL init_tests(void)
+{
+    static WCHAR temp_path[MAX_PATH];
+    static WCHAR prefix[] = {'D','E','S',0};
+    static WCHAR avi[] = {'a','v','i',0};
+    HRSRC res;
+    HGLOBAL data;
+    char *mem;
+    DWORD size, written;
+    HANDLE fh;
+
+    res = FindResourceW(NULL, (LPWSTR) 1, (LPWSTR) 256);
+    if (!res)
+        return FALSE;
+
+    data = LoadResource(NULL, res);
+    if (!data)
+        return FALSE;
+
+    mem = LockResource(data);
+    if (!mem)
+        return FALSE;
+
+    size = SizeofResource(NULL, res);
+    if (size == 0)
+        return FALSE;
+
+    if (!GetTempPathW(sizeof temp_path, temp_path))
+        return FALSE;
+
+    /* We might end up relying on the extension here, so .TMP is no good.  */
+    if (!GetTempFileNameW(temp_path, prefix, 0, test_avi_filename))
+        return FALSE;
+
+    DeleteFileW(test_avi_filename);
+    lstrcpyW(test_avi_filename + lstrlenW(test_avi_filename) - 3, avi);
+
+    fh = CreateFileW(test_avi_filename, GENERIC_WRITE, 0, NULL,
+                     CREATE_NEW, FILE_ATTRIBUTE_NORMAL, NULL);
+    if (fh == INVALID_HANDLE_VALUE)
+        return FALSE;
+
+    if (!WriteFile(fh, mem, size, &written, NULL) || written != size)
+        return FALSE;
+
+    CloseHandle(fh);
+
+    return TRUE;
+}
+
 static void test_mediadet(void)
 {
     HRESULT hr;
     IMediaDet *pM = NULL;
+    BSTR filename = NULL;
 
     hr = CoCreateInstance(&CLSID_MediaDet, NULL, CLSCTX_INPROC_SERVER,
             &IID_IMediaDet, (LPVOID*)&pM);
     ok(hr == S_OK, "CoCreateInstance failed with %x\n", hr);
     ok(pM != NULL, "pM is NULL\n");
 
+    filename = SysAllocString(test_avi_filename);
+    hr = IMediaDet_put_Filename(pM, filename);
+    todo_wine ok(hr == S_OK, "IMediaDet_put_Filename -> %x\n", hr);
+    SysFreeString(filename);
+
     hr = IMediaDet_Release(pM);
     ok(hr == 0, "IMediaDet_Release returned: %x\n", hr);
+
+    DeleteFileW(test_avi_filename);
 }
 
 START_TEST(mediadet)
 {
+    if (!init_tests())
+    {
+        skip("Couldn't initialize tests!\n");
+        return;
+    }
+
     CoInitialize(NULL);
     test_mediadet();
     CoUninitialize();
diff --git a/dlls/qedit/tests/qedit.rc b/dlls/qedit/tests/qedit.rc
new file mode 100644
index 0000000..b138624
--- /dev/null
+++ b/dlls/qedit/tests/qedit.rc
@@ -0,0 +1,22 @@
+/*
+ * Resource file for qedit tests.
+ *
+ * Copyright 2008 Google (Dan Hipschman)
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+ */
+
+/* @makedep: test.avi */
+1 256 test.avi
diff --git a/dlls/qedit/tests/test.avi b/dlls/qedit/tests/test.avi
new file mode 100644
index 0000000..8756c64
Binary files /dev/null and b/dlls/qedit/tests/test.avi differ




More information about the wine-cvs mailing list