Signed-off-by: Zebediah Figura z.figura12@gmail.com --- dlls/qcap/tests/avimux.c | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+)
diff --git a/dlls/qcap/tests/avimux.c b/dlls/qcap/tests/avimux.c index e51c6af8b22..f303783d570 100644 --- a/dlls/qcap/tests/avimux.c +++ b/dlls/qcap/tests/avimux.c @@ -23,6 +23,9 @@ #include "vfw.h" #include "wine/test.h"
+static const WCHAR source_id[] = {'A','V','I',' ','O','u','t',0}; +static const WCHAR sink0_id[] = {'I','n','p','u','t',' ','0','1',0}; + static const GUID testguid = {0xfacade};
static IBaseFilter *create_avi_mux(void) @@ -300,6 +303,38 @@ static void test_enum_pins(void) ok(!ref, "Got outstanding refcount %d.\n", ref); }
+static void test_find_pin(void) +{ + IBaseFilter *filter = create_avi_mux(); + IEnumPins *enum_pins; + IPin *pin, *pin2; + HRESULT hr; + ULONG ref; + + hr = IBaseFilter_EnumPins(filter, &enum_pins); + ok(hr == S_OK, "Got hr %#x.\n", hr); + + hr = IBaseFilter_FindPin(filter, source_id, &pin); + ok(hr == S_OK, "Got hr %#x.\n", hr); + hr = IEnumPins_Next(enum_pins, 1, &pin2, NULL); + ok(hr == S_OK, "Got hr %#x.\n", hr); + ok(pin == pin2, "Pins didn't match.\n"); + IPin_Release(pin); + IPin_Release(pin2); + + hr = IBaseFilter_FindPin(filter, sink0_id, &pin); + ok(hr == S_OK, "Got hr %#x.\n", hr); + hr = IEnumPins_Next(enum_pins, 1, &pin2, NULL); + ok(hr == S_OK, "Got hr %#x.\n", hr); + ok(pin == pin2, "Pins didn't match.\n"); + IPin_Release(pin); + IPin_Release(pin2); + + IEnumPins_Release(enum_pins); + ref = IBaseFilter_Release(filter); + ok(!ref, "Got outstanding refcount %d.\n", ref); +} + static void test_seeking(void) { IBaseFilter *filter = create_avi_mux(); @@ -441,6 +476,7 @@ START_TEST(avimux) test_interfaces(); test_aggregation(); test_enum_pins(); + test_find_pin(); test_seeking();
CoUninitialize();