quartz/tests: Add tests for querying VMR7 pin information.

Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
stable
Zebediah Figura 2019-04-02 20:59:37 -05:00 committed by Alexandre Julliard
parent 42f70a79d6
commit 3fb152ab39
1 changed files with 65 additions and 0 deletions

View File

@ -459,6 +459,70 @@ static void test_find_pin(void)
ok(!ref, "Got outstanding refcount %d.\n", ref);
}
static void test_pin_info(void)
{
WCHAR sink_id[] = {'V','M','R',' ','I','n','p','u','t','0',0};
IBaseFilter *filter = create_vmr7(0);
PIN_DIRECTION dir;
ULONG count, ref;
PIN_INFO info;
HRESULT hr;
WCHAR *id;
IPin *pin;
IBaseFilter_FindPin(filter, sink_id, &pin);
hr = IPin_QueryPinInfo(pin, &info);
ok(info.pFilter == filter, "Expected filter %p, got %p.\n", filter, info.pFilter);
ok(info.dir == PINDIR_INPUT, "Got direction %d.\n", info.dir);
ok(!lstrcmpW(info.achName, sink_id), "Got name %s.\n", wine_dbgstr_w(info.achName));
IBaseFilter_Release(info.pFilter);
hr = IPin_QueryDirection(pin, &dir);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(dir == PINDIR_INPUT, "Got direction %d.\n", dir);
hr = IPin_QueryId(pin, &id);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(!lstrcmpW(id, sink_id), "Got id %s.\n", wine_dbgstr_w(id));
CoTaskMemFree(id);
hr = IPin_QueryInternalConnections(pin, NULL, &count);
ok(hr == E_NOTIMPL, "Got hr %#x.\n", hr);
IPin_Release(pin);
if (SUCCEEDED(set_mixing_mode(filter)))
{
sink_id[9] = '1';
IBaseFilter_FindPin(filter, sink_id, &pin);
hr = IPin_QueryPinInfo(pin, &info);
ok(info.pFilter == filter, "Expected filter %p, got %p.\n", filter, info.pFilter);
ok(info.dir == PINDIR_INPUT, "Got direction %d.\n", info.dir);
ok(!lstrcmpW(info.achName, sink_id), "Got name %s.\n", wine_dbgstr_w(info.achName));
IBaseFilter_Release(info.pFilter);
hr = IPin_QueryDirection(pin, &dir);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(dir == PINDIR_INPUT, "Got direction %d.\n", dir);
hr = IPin_QueryId(pin, &id);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(!lstrcmpW(id, sink_id), "Got id %s.\n", wine_dbgstr_w(id));
CoTaskMemFree(id);
hr = IPin_QueryInternalConnections(pin, NULL, &count);
ok(hr == E_NOTIMPL, "Got hr %#x.\n", hr);
IPin_Release(pin);
}
else
skip("Mixing mode is not supported.\n");
ref = IBaseFilter_Release(filter);
ok(!ref, "Got outstanding refcount %d.\n", ref);
}
START_TEST(vmr7)
{
CoInitialize(NULL);
@ -467,6 +531,7 @@ START_TEST(vmr7)
test_interfaces();
test_enum_pins();
test_find_pin();
test_pin_info();
CoUninitialize();
}