Module: wine Branch: master Commit: 6928615d5c3c786de591ff04d33a32f98e1b9381 URL: http://source.winehq.org/git/wine.git/?a=commit;h=6928615d5c3c786de591ff04d3...
Author: Huw Davies huw@codeweavers.com Date: Wed Apr 22 11:45:36 2009 +0100
ole32/tests: Add some tests to exercise the enumerator.
---
dlls/ole32/tests/clipboard.c | 28 ++++++++++++++++++++++++++++ 1 files changed, 28 insertions(+), 0 deletions(-)
diff --git a/dlls/ole32/tests/clipboard.c b/dlls/ole32/tests/clipboard.c index 4cbd88b..1b406d9 100644 --- a/dlls/ole32/tests/clipboard.c +++ b/dlls/ole32/tests/clipboard.c @@ -593,6 +593,34 @@ static void test_enum_fmtetc(IDataObject *src) hr = IEnumFORMATETC_Reset(enum_fmt); ok(hr == S_OK, "got %08x\n", hr);
+ if(src) /* Exercise the enumerator a bit */ + { + IEnumFORMATETC *clone; + FORMATETC third_fmt; + + hr = IEnumFORMATETC_Next(enum_fmt, 1, &third_fmt, NULL); + ok(hr == S_OK, "got %08x\n", hr); + hr = IEnumFORMATETC_Next(enum_fmt, 1, &third_fmt, NULL); + ok(hr == S_OK, "got %08x\n", hr); + hr = IEnumFORMATETC_Next(enum_fmt, 1, &third_fmt, NULL); + ok(hr == S_OK, "got %08x\n", hr); + + hr = IEnumFORMATETC_Reset(enum_fmt); + ok(hr == S_OK, "got %08x\n", hr); + hr = IEnumFORMATETC_Skip(enum_fmt, 2); + ok(hr == S_OK, "got %08x\n", hr); + + hr = IEnumFORMATETC_Clone(enum_fmt, &clone); + ok(hr == S_OK, "got %08x\n", hr); + hr = IEnumFORMATETC_Next(enum_fmt, 1, &fmt, NULL); + ok(hr == S_OK, "got %08x\n", hr); + ok(fmt.cfFormat == third_fmt.cfFormat, "formats don't match\n"); + hr = IEnumFORMATETC_Next(clone, 1, &fmt, NULL); + ok(hr == S_OK, "got %08x\n", hr); + ok(fmt.cfFormat == third_fmt.cfFormat, "formats don't match\n"); + IEnumFORMATETC_Release(clone); + } + IEnumFORMATETC_Release(enum_fmt); IDataObject_Release(data); }