Gijs Vermeulen : wmp/tests: Add some IWMPPlaylist tests.
Alexandre Julliard
julliard at winehq.org
Mon Aug 5 14:58:35 CDT 2019
Module: wine
Branch: master
Commit: 2384e497bae1ef2206827fa139077d7921976005
URL: https://source.winehq.org/git/wine.git/?a=commit;h=2384e497bae1ef2206827fa139077d7921976005
Author: Gijs Vermeulen <gijsvrm at codeweavers.com>
Date: Sat Aug 3 17:45:58 2019 +0200
wmp/tests: Add some IWMPPlaylist tests.
Signed-off-by: Gijs Vermeulen <gijsvrm at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>
---
dlls/wmp/tests/media.c | 73 ++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 73 insertions(+)
diff --git a/dlls/wmp/tests/media.c b/dlls/wmp/tests/media.c
index 7e76aee..fee18fd 100644
--- a/dlls/wmp/tests/media.c
+++ b/dlls/wmp/tests/media.c
@@ -666,6 +666,78 @@ static void test_player_url(void)
IWMPPlayer4_Release(player);
}
+static void test_playlist(void)
+{
+ IWMPPlayer4 *player;
+ IWMPPlaylist *playlist, *playlist2;
+ HRESULT hr;
+ BSTR str, str2;
+ LONG count;
+ static const WCHAR nameW[] = {'P','l','a','y','l','i','s','t','1',0};
+
+ hr = CoCreateInstance(&CLSID_WindowsMediaPlayer, NULL, CLSCTX_INPROC_SERVER, &IID_IWMPPlayer4, (void **)&player);
+ if (hr == REGDB_E_CLASSNOTREG)
+ {
+ win_skip("CLSID_WindowsMediaPlayer is not registered.\n");
+ return;
+ }
+ ok(hr == S_OK, "Failed to create media player instance, hr %#x.\n", hr);
+
+ playlist = NULL;
+ hr = IWMPPlayer4_get_currentPlaylist(player, &playlist);
+ ok(hr == S_OK, "IWMPPlayer4_get_currentPlaylist failed: %08x\n", hr);
+ ok(playlist != NULL, "playlist == NULL\n");
+
+ if (0) /* fails on non-English locales */
+ {
+ hr = IWMPPlaylist_get_name(playlist, &str);
+ ok(hr == S_OK, "Failed to get playlist name, hr %#x.\n", hr);
+ ok(!lstrcmpW(str, nameW), "Expected %s, got %s\n", wine_dbgstr_w(nameW), wine_dbgstr_w(str));
+ SysFreeString(str);
+ }
+
+ hr = IWMPPlaylist_get_count(playlist, NULL);
+ ok(hr == E_POINTER, "Failed to get count, hr %#x.\n", hr);
+
+ count = -1;
+ hr = IWMPPlaylist_get_count(playlist, &count);
+ ok(hr == S_OK, "Failed to get count, hr %#x.\n", hr);
+ ok(count == 0, "Expected 0, got %d\n", count);
+
+ IWMPPlaylist_Release(playlist);
+
+ /* newPlaylist doesn't change current playlist */
+ hr = IWMPPlayer4_newPlaylist(player, NULL, NULL, &playlist);
+ ok(hr == S_OK, "Failed to create a playlist, hr %#x.\n", hr);
+
+ playlist2 = NULL;
+ hr = IWMPPlayer4_get_currentPlaylist(player, &playlist2);
+ ok(hr == S_OK, "IWMPPlayer4_get_currentPlaylist failed: %08x\n", hr);
+ ok(playlist2 != NULL && playlist2 != playlist, "Unexpected playlist instance\n");
+
+ IWMPPlaylist_Release(playlist2);
+
+ /* different playlists can have the same name */
+ str = SysAllocString(nameW);
+ hr = IWMPPlaylist_put_name(playlist, str);
+ ok(hr == S_OK, "Failed to get playlist name, hr %#x.\n", hr);
+
+ playlist2 = NULL;
+ hr = IWMPPlayer4_newPlaylist(player, str, NULL, &playlist2);
+ ok(hr == S_OK, "Failed to create a playlist, hr %#x.\n", hr);
+ hr = IWMPPlaylist_get_name(playlist2, &str2);
+ ok(hr == S_OK, "Failed to get playlist name, hr %#x.\n", hr);
+ ok(playlist != playlist2, "Expected playlists to be different");
+ ok(!lstrcmpW(str, str2), "Expected names to be the same\n");
+ SysFreeString(str);
+ SysFreeString(str2);
+
+ IWMPPlaylist_Release(playlist2);
+
+ IWMPPlaylist_Release(playlist);
+ IWMPPlayer4_Release(player);
+}
+
START_TEST(media)
{
CoInitialize(NULL);
@@ -674,6 +746,7 @@ START_TEST(media)
playing_event = CreateEventW(NULL, FALSE, FALSE, NULL);
completed_event = CreateEventW(NULL, FALSE, FALSE, NULL);
+ test_playlist();
test_media_item();
test_player_url();
if (test_wmp()) {
More information about the wine-cvs
mailing list