[WMVCORE_WINETEST] Sync with Wine Staging 4.18. CORE-16441
authorAmine Khaldi <amine.khaldi@reactos.org>
Sat, 7 Dec 2019 12:11:29 +0000 (13:11 +0100)
committerAmine Khaldi <amine.khaldi@reactos.org>
Sat, 7 Dec 2019 12:11:29 +0000 (13:11 +0100)
modules/rostests/winetests/wmvcore/wmvcore.c

index b11a5bf..8af34e2 100644 (file)
@@ -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();
 }