quartz: Add some IGraphBuilder related tests.

This commit is contained in:
Lei Zhang 2007-12-05 20:10:54 -08:00 committed by Alexandre Julliard
parent 4ab6fd3de0
commit 646eefaa47
1 changed files with 47 additions and 0 deletions

View File

@ -102,6 +102,52 @@ static void test_render_run(void)
releasefiltergraph();
}
static void test_graph_builder(void)
{
HRESULT hr;
IBaseFilter *pF = NULL;
IBaseFilter *pF2 = NULL;
IPin *pIn = NULL;
IEnumPins *pEnum = NULL;
PIN_DIRECTION dir;
static const WCHAR testFilterW[] = {'t','e','s','t','F','i','l','t','e','r',0};
static const WCHAR fooBarW[] = {'f','o','o','B','a','r',0};
if (!createfiltergraph())
return;
/* create video filter */
hr = CoCreateInstance(&CLSID_VideoRenderer, NULL, CLSCTX_INPROC_SERVER,
&IID_IBaseFilter, (LPVOID*)&pF);
ok(hr == S_OK, "CoCreateInstance failed with %x\n", hr);
ok(pF != NULL, "pF is NULL\n");
/* add the two filters to the graph */
hr = IGraphBuilder_AddFilter(pgraph, pF, testFilterW);
ok(hr == S_OK, "failed to add pF to the graph: %x\n", hr);
/* find the pins */
hr = IBaseFilter_EnumPins(pF, &pEnum);
ok(hr == S_OK, "IBaseFilter_EnumPins failed for pF: %x\n", hr);
ok(pEnum != NULL, "pEnum is NULL\n");
hr = IEnumPins_Next(pEnum, 1, &pIn, NULL);
ok(hr == S_OK, "IEnumPins_Next failed for pF: %x\n", hr);
ok(pIn != NULL, "pIn is NULL\n");
hr = IPin_QueryDirection(pIn, &dir);
ok(hr == S_OK, "IPin_QueryDirection failed: %x\n", hr);
ok(dir == PINDIR_INPUT, "pin has wrong direction\n");
hr = IGraphBuilder_FindFilterByName(pgraph, fooBarW, &pF2);
todo_wine {
ok(hr == VFW_E_NOT_FOUND, "IGraphBuilder_FindFilterByName returned %x\n", hr);
}
ok(pF2 == NULL, "IGraphBuilder_FindFilterByName returned %p\n", pF2);
hr = IGraphBuilder_FindFilterByName(pgraph, testFilterW, &pF2);
ok(hr == S_OK, "IGraphBuilder_FindFilterByName returned %x\n", hr);
ok(pF2 != NULL, "IGraphBuilder_FindFilterByName returned NULL\n");
releasefiltergraph();
}
static void test_filter_graph2(void)
{
HRESULT hr;
@ -119,5 +165,6 @@ START_TEST(filtergraph)
{
CoInitialize(NULL);
test_render_run();
test_graph_builder();
test_filter_graph2();
}