Module: wine Branch: master Commit: 3d6bb38952eb0de7f895b06eae5e47a12a58eb92 URL: http://source.winehq.org/git/wine.git/?a=commit;h=3d6bb38952eb0de7f895b06eae...
Author: Aric Stewart aric@codeweavers.com Date: Fri Jul 10 07:38:45 2009 -0500
msctf/tests: Test EnumDocumentMgrs.
---
dlls/msctf/tests/inputprocessor.c | 45 +++++++++++++++++++++++++++++++++++++ 1 files changed, 45 insertions(+), 0 deletions(-)
diff --git a/dlls/msctf/tests/inputprocessor.c b/dlls/msctf/tests/inputprocessor.c index 9b266ba..d35d391 100644 --- a/dlls/msctf/tests/inputprocessor.c +++ b/dlls/msctf/tests/inputprocessor.c @@ -1142,6 +1142,39 @@ static void test_EnumContexts(ITfDocumentMgr *dm, ITfContext *search) ok(!found,"Found an ITfContext we should should not have\n"); }
+static void test_EnumDocumentMgr(ITfThreadMgr *tm, ITfDocumentMgr *search, ITfDocumentMgr *absent) +{ + HRESULT hr; + IEnumTfDocumentMgrs* pEnum; + BOOL found = FALSE; + BOOL notfound = TRUE; + + hr = ITfThreadMgr_EnumDocumentMgrs(tm,&pEnum); + ok(SUCCEEDED(hr),"EnumDocumentMgrs failed\n"); + if (SUCCEEDED(hr)) + { + ULONG fetched; + ITfDocumentMgr *dm; + while (IEnumTfDocumentMgrs_Next(pEnum, 1, &dm, &fetched) == S_OK) + { + if (!search) + found = TRUE; + else if (search == dm) + found = TRUE; + if (absent && dm == absent) + notfound = FALSE; + ITfDocumentMgr_Release(dm); + } + IEnumTfDocumentMgrs_Release(pEnum); + } + if (search) + ok(found,"Did not find proper ITfDocumentMgr\n"); + else + ok(!found,"Found an ITfDocumentMgr we should should not have\n"); + if (absent) + ok(notfound,"Found an ITfDocumentMgr we believe should be absent\n"); +} + static inline int check_context_refcount(ITfContext *iface) { IUnknown_AddRef(iface); @@ -1174,9 +1207,21 @@ static void test_startSession(void) hr = ITfThreadMgr_Deactivate(g_tm); ok(SUCCEEDED(hr),"Failed to Deactivate\n");
+ test_EnumDocumentMgr(g_tm,NULL,NULL); + hr = ITfThreadMgr_CreateDocumentMgr(g_tm,&g_dm); ok(SUCCEEDED(hr),"CreateDocumentMgr failed\n");
+ test_EnumDocumentMgr(g_tm,g_dm,NULL); + + hr = ITfThreadMgr_CreateDocumentMgr(g_tm,&dmtest); + ok(SUCCEEDED(hr),"CreateDocumentMgr failed\n"); + + test_EnumDocumentMgr(g_tm,dmtest,NULL); + + ITfDocumentMgr_Release(dmtest); + test_EnumDocumentMgr(g_tm,g_dm,dmtest); + hr = ITfThreadMgr_GetFocus(g_tm,&dmtest); ok(SUCCEEDED(hr),"GetFocus Failed\n"); ok(dmtest == NULL,"Initial focus not null\n");