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