Signed-off-by: Michael Stefaniuc mstefani@winehq.org --- dlls/dmime/tests/dmime.c | 38 ++++++++++++++++++++++++++++++++------ 1 file changed, 32 insertions(+), 6 deletions(-)
diff --git a/dlls/dmime/tests/dmime.c b/dlls/dmime/tests/dmime.c index e8fa6a596d..2e0626cde4 100644 --- a/dlls/dmime/tests/dmime.c +++ b/dlls/dmime/tests/dmime.c @@ -543,14 +543,17 @@ static void _add_track(IDirectMusicSegment8 *seg, REFCLSID class, const char *na #define add_track(seg, class, group) _add_track(seg, &CLSID_DirectMusic ## class, #class, group)
static void _expect_track(IDirectMusicSegment8 *seg, REFCLSID expect, const char *name, DWORD group, - DWORD index) + DWORD index, BOOL ignore_guid) { IDirectMusicTrack *track; IPersistStream *ps; CLSID class; HRESULT hr;
- hr = IDirectMusicSegment8_GetTrack(seg, &GUID_NULL, group, index, &track); + if (ignore_guid) + hr = IDirectMusicSegment8_GetTrack(seg, &GUID_NULL, group, index, &track); + else + hr = IDirectMusicSegment8_GetTrack(seg, expect, group, index, &track); if (!expect) { ok(hr == DMUS_E_NOT_FOUND, "GetTrack failed: %08x, expected DMUS_E_NOT_FOUND\n", hr); return; @@ -568,9 +571,12 @@ static void _expect_track(IDirectMusicSegment8 *seg, REFCLSID expect, const char IDirectMusicTrack_Release(track); }
-#define expect_track(seg, class, group, index) _expect_track(seg, &CLSID_DirectMusic ## class, #class, group, index) +#define expect_track(seg, class, group, index) \ + _expect_track(seg, &CLSID_DirectMusic ## class, #class, group, index, TRUE) +#define expect_guid_track(seg, class, group, index) \ + _expect_track(seg, &CLSID_DirectMusic ## class, #class, group, index, FALSE)
-static void test_track_identify(void) +static void test_gettrack(void) { IDirectMusicSegment8 *seg; IDirectMusicTrack *track; @@ -586,7 +592,9 @@ static void test_track_identify(void) add_track(seg, SegmentTriggerTrack, 0x2); /* idx 1 group 2 */ add_track(seg, SeqTrack, 0x1); /* idx 2 group 1 */ add_track(seg, TempoTrack, 0x7); /* idx 3 group 1, idx 2 group 2, idx 0 group 3 */ + add_track(seg, WaveTrack, 0xffffffff); /* idx 4 group 1, idx 3 group 2, idx 1 group 3 */
+ /* Ignore GUID in GetTrack */ hr = IDirectMusicSegment8_GetTrack(seg, &GUID_NULL, 0, 0, &track); ok(hr == DMUS_E_NOT_FOUND, "GetTrack failed: %08x, expected DMUS_E_NOT_FOUND\n", hr);
@@ -594,12 +602,30 @@ static void test_track_identify(void) expect_track(seg, ParamControlTrack, 0x1, 1); expect_track(seg, SeqTrack, 0x1, 2); expect_track(seg, TempoTrack, 0x1, 3); - _expect_track(seg, NULL, "", 0x1, 4); + expect_track(seg, WaveTrack, 0x1, 4); + _expect_track(seg, NULL, "", 0x1, 5, TRUE); + _expect_track(seg, NULL, "", 0x1, DMUS_SEG_ANYTRACK, TRUE); expect_track(seg, ParamControlTrack, 0x2, 0); + expect_track(seg, WaveTrack, 0x80000000, 0); expect_track(seg, SegmentTriggerTrack, 0x3, 2); /* groups 1+2 combined index */ expect_track(seg, SeqTrack, 0x3, 3); /* groups 1+2 combined index */ expect_track(seg, TempoTrack, 0x7, 4); /* groups 1+2+3 combined index */ expect_track(seg, TempoTrack, 0xffffffff, 4); /* all groups combined index */ + _expect_track(seg, NULL, "", 0xffffffff, DMUS_SEG_ANYTRACK, TRUE); + + /* Use the GUID in GetTrack */ + hr = IDirectMusicSegment8_GetTrack(seg, &CLSID_DirectMusicLyricsTrack, 0, 0, &track); + ok(hr == DMUS_E_NOT_FOUND, "GetTrack failed: %08x, expected DMUS_E_NOT_FOUND\n", hr); + + expect_guid_track(seg, LyricsTrack, 0x1, 0); + expect_guid_track(seg, ParamControlTrack, 0x1, 0); + expect_guid_track(seg, SeqTrack, 0x1, 0); + expect_guid_track(seg, TempoTrack, 0x1, 0); + expect_guid_track(seg, ParamControlTrack, 0x2, 0); + expect_guid_track(seg, SegmentTriggerTrack, 0x3, 0); + expect_guid_track(seg, SeqTrack, 0x3, 0); + expect_guid_track(seg, TempoTrack, 0x7, 0); + expect_guid_track(seg, TempoTrack, 0xffffffff, 0);
IDirectMusicSegment8_Release(seg); } @@ -1090,7 +1116,7 @@ START_TEST(dmime) test_audiopathconfig(); test_graph(); test_segment(); - test_track_identify(); + test_gettrack(); test_track(); test_parsedescriptor();