ole32/tests: Tests that show the consumer data object isn't a singleton.

This commit is contained in:
Huw Davies 2009-04-16 12:14:19 +01:00 committed by Alexandre Julliard
parent 4311691a88
commit f8a1b7e5a5
1 changed files with 51 additions and 0 deletions

View File

@ -862,8 +862,59 @@ static void test_set_clipboard(void)
OleUninitialize();
}
static void test_consumer_refs(void)
{
HRESULT hr;
IDataObject *src, *get1, *get2, *get3;
LONG refs;
OleInitialize(NULL);
hr = DataObjectImpl_CreateText("data1", &src);
ok(hr == S_OK, "got %08x\n", hr);
hr = OleSetClipboard(src);
ok(hr == S_OK, "got %08x\n", hr);
hr = OleGetClipboard(&get1);
ok(hr == S_OK, "got %08x\n", hr);
hr = OleGetClipboard(&get2);
ok(hr == S_OK, "got %08x\n", hr);
ok(get1 == get2, "data objects differ\n");
refs = IDataObject_Release(get2);
todo_wine
ok(refs == 1, "got %d\n", refs);
OleFlushClipboard();
hr = OleGetClipboard(&get2);
ok(hr == S_OK, "got %08x\n", hr);
todo_wine
ok(get1 != get2, "data objects match\n");
OleSetClipboard(NULL);
hr = OleGetClipboard(&get3);
ok(hr == S_OK, "got %08x\n", hr);
todo_wine {
ok(get1 != get3, "data objects match\n");
ok(get2 != get3, "data objects match\n");
}
IDataObject_Release(get3);
IDataObject_Release(get2);
IDataObject_Release(get1);
IDataObject_Release(src);
OleUninitialize();
}
START_TEST(clipboard)
{
test_set_clipboard();
test_consumer_refs();
}