Module: wine Branch: master Commit: 999bc5bcb292a796454d081abf0ca1d868a00090 URL: http://source.winehq.org/git/wine.git/?a=commit;h=999bc5bcb292a796454d081abf...
Author: Dan Hipschman dsh@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