From 999bc5bcb292a796454d081abf0ca1d868a00090 Mon Sep 17 00:00:00 2001 From: Dan Hipschman Date: Fri, 4 Apr 2008 15:59:08 -0700 Subject: [PATCH] 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 deletion(-) create mode 100644 dlls/qedit/tests/qedit.rc create mode 100644 dlls/qedit/tests/test.avi diff --git a/dlls/qedit/tests/Makefile.in b/dlls/qedit/tests/Makefile.in index 523697555e6..94c5e60dbb4 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 b550c8e113a..b9ea9c0f43c 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 00000000000..b138624eaa6 --- /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 0000000000000000000000000000000000000000..8756c64348e3bfda3eba384280f71aae7b9edf7c GIT binary patch literal 5676 zcmWIYbaPV?V_ z+t)QOIX@+}NWsX;K+n=r+fdJ-peWV6q^QzJJGrdb$iTqNz|hcK*Pt}1G_R!8LJ#O; zuTVel349C;(Y6Y{0Xd14K;2oTdD#jni6x1O3bwJM;-ld(njS{;#b`M&S`Lhs1Eb}@ zXgM%i4vdxqqvgP8IWSrd(6Sr=_xXW+?%e#cOap_IWCkGn|0oy@fzc2cu_4ef3PyAY WWTsRY3INABLG=NM1`n|U>jeM>>Gwha literal 0 HcmV?d00001