From ebaf247c9e9910ec44d674bb57aecc3efb885256 Mon Sep 17 00:00:00 2001 From: Amine Khaldi Date: Sat, 7 Dec 2019 13:11:29 +0100 Subject: [PATCH] [WMVCORE_WINETEST] Sync with Wine Staging 4.18. CORE-16441 --- modules/rostests/winetests/wmvcore/wmvcore.c | 110 ++++++++++++++++++- 1 file changed, 109 insertions(+), 1 deletion(-) diff --git a/modules/rostests/winetests/wmvcore/wmvcore.c b/modules/rostests/winetests/wmvcore/wmvcore.c index b11a5bf7dea..8af34e22b6b 100644 --- a/modules/rostests/winetests/wmvcore/wmvcore.c +++ b/modules/rostests/winetests/wmvcore/wmvcore.c @@ -1,5 +1,6 @@ /* * Copyright 2017 Alistair Leslie-Hughes + * Copyright 2019 Vijay Kiran Kamuju * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -18,7 +19,7 @@ #define COBJMACROS #define WIN32_LEAN_AND_MEAN #include "initguid.h" -#include "wmsdkidl.h" +#include "wmsdk.h" #include "wine/test.h" @@ -201,6 +202,91 @@ static void test_wmreader_interfaces(void) IWMReader_Release(reader); } +static void test_wmsyncreader_interfaces(void) +{ + HRESULT hr; + IWMSyncReader *reader; + IWMHeaderInfo *header; + IWMHeaderInfo2 *header2; + IWMHeaderInfo3 *header3; + IWMProfile *profile; + IWMProfile2 *profile2; + IWMProfile3 *profile3; + IWMPacketSize *packet; + IWMPacketSize2 *packet2; + IWMReaderTimecode *timecode; + IWMReaderPlaylistBurn *playlist; + IWMLanguageList *langlist; + + hr = WMCreateSyncReader( NULL, 0, &reader ); + ok(hr == S_OK, "WMCreateSyncReader failed 0x%08x\n", hr); + if(FAILED(hr)) + { + win_skip("Failed to create IWMSyncReader\n"); + return; + } + + hr = IWMSyncReader_QueryInterface(reader, &IID_IWMHeaderInfo, (void **)&header); + todo_wine ok(hr == S_OK, "Failed 0x%08x\n", hr); + + hr = IWMSyncReader_QueryInterface(reader, &IID_IWMHeaderInfo2, (void **)&header2); + todo_wine ok(hr == S_OK, "Failed 0x%08x\n", hr); + + hr = IWMSyncReader_QueryInterface(reader, &IID_IWMHeaderInfo3, (void **)&header3); + todo_wine ok(hr == S_OK, "Failed 0x%08x\n", hr); + + hr = IWMSyncReader_QueryInterface(reader, &IID_IWMProfile, (void **)&profile); + todo_wine ok(hr == S_OK, "Failed 0x%08x\n", hr); + + hr = IWMSyncReader_QueryInterface(reader, &IID_IWMProfile2, (void **)&profile2); + todo_wine ok(hr == S_OK, "Failed 0x%08x\n", hr); + + hr = IWMSyncReader_QueryInterface(reader, &IID_IWMProfile3, (void **)&profile3); + todo_wine ok(hr == S_OK, "Failed 0x%08x\n", hr); + + hr = IWMSyncReader_QueryInterface(reader, &IID_IWMPacketSize, (void **)&packet); + todo_wine ok(hr == S_OK, "Failed 0x%08x\n", hr); + + hr = IWMSyncReader_QueryInterface(reader, &IID_IWMPacketSize2, (void **)&packet2); + todo_wine ok(hr == S_OK, "Failed 0x%08x\n", hr); + + hr = IWMSyncReader_QueryInterface(reader, &IID_IWMReaderTimecode, (void **)&timecode); + todo_wine ok(hr == S_OK, "Failed 0x%08x\n", hr); + + hr = IWMSyncReader_QueryInterface(reader, &IID_IWMReaderPlaylistBurn, (void **)&playlist); + todo_wine ok(hr == S_OK, "Failed 0x%08x\n", hr); + + hr = IWMSyncReader_QueryInterface(reader, &IID_IWMLanguageList, (void **)&langlist); + todo_wine ok(hr == S_OK, "Failed 0x%08x\n", hr); + + if(packet) + IWMPacketSize_Release(packet); + if(packet2) + IWMPacketSize2_Release(packet2); + if(profile) + IWMProfile_Release(profile); + if(profile2) + IWMProfile2_Release(profile2); + if(profile3) + IWMProfile3_Release(profile3); + if(header) + IWMHeaderInfo_Release(header); + if(header2) + IWMHeaderInfo2_Release(header2); + if(header3) + IWMHeaderInfo3_Release(header3); + if(timecode) + IWMReaderTimecode_Release(timecode); + if(playlist) + IWMReaderPlaylistBurn_Release(playlist); + if(langlist) + IWMLanguageList_Release(langlist); + + + IWMSyncReader_Release(reader); +} + + static void test_profile_manager_interfaces(void) { HRESULT hr; @@ -232,6 +318,26 @@ static void test_WMCreateWriterPriv(void) IWMWriter_Release(writer2); } +static void test_urlextension(void) +{ + HRESULT hr; + const WCHAR mp3file[] = {'t','e','s','t','.','m','p','3',0}; + const WCHAR mkvfile[] = {'t','e','s','t','.','m','k','v',0}; + const WCHAR urlfile[] = {'a','b','c','d',':','/','/','t','e','s','t','/','t','e','s','t','.','w','m','v',0}; + const WCHAR testurl[] = {'h','t','t','p',':','/','/','t','e','s','t','/','t','.','a','s','f','?','a','l','t','=','t','.','m','k','v',0}; + + hr = WMCheckURLExtension(NULL); + ok(hr == E_INVALIDARG, "WMCheckURLExtension failed 0x%08x\n", hr); + hr = WMCheckURLExtension(mkvfile); + ok(hr == NS_E_INVALID_NAME, "WMCheckURLExtension failed 0x%08x\n", hr); + hr = WMCheckURLExtension(mp3file); + todo_wine ok(hr == S_OK, "WMCheckURLExtension failed 0x%08x\n", hr); + hr = WMCheckURLExtension(urlfile); + todo_wine ok(hr == S_OK, "WMCheckURLExtension failed 0x%08x\n", hr); + hr = WMCheckURLExtension(testurl); + todo_wine ok(hr == S_OK, "WMCheckURLExtension failed 0x%08x\n", hr); +} + START_TEST(wmvcore) { HRESULT hr; @@ -242,9 +348,11 @@ START_TEST(wmvcore) return; test_wmreader_interfaces(); + test_wmsyncreader_interfaces(); test_wmwriter_interfaces(); test_profile_manager_interfaces(); test_WMCreateWriterPriv(); + test_urlextension(); CoUninitialize(); }