Jacek Caban : msctf: Added ITfTransitoryExtensionSink tests.
Alexandre Julliard
julliard at wine.codeweavers.com
Thu May 5 10:29:34 CDT 2016
Module: wine
Branch: master
Commit: 4585687e7db342df7b6a56b06243fc3af0ee6e3d
URL: http://source.winehq.org/git/wine.git/?a=commit;h=4585687e7db342df7b6a56b06243fc3af0ee6e3d
Author: Jacek Caban <jacek at codeweavers.com>
Date: Thu May 5 13:22:50 2016 +0200
msctf: Added ITfTransitoryExtensionSink tests.
Signed-off-by: Jacek Caban <jacek at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>
---
dlls/msctf/tests/inputprocessor.c | 67 +++++++++++++++++++++++++++++++++++++++
1 file changed, 67 insertions(+)
diff --git a/dlls/msctf/tests/inputprocessor.c b/dlls/msctf/tests/inputprocessor.c
index d78509d..16df012 100644
--- a/dlls/msctf/tests/inputprocessor.c
+++ b/dlls/msctf/tests/inputprocessor.c
@@ -62,6 +62,7 @@ static BOOL test_ShouldDeactivate = FALSE;
static DWORD tmSinkCookie;
static DWORD tmSinkRefCount;
+static DWORD dmSinkCookie;
static DWORD documentStatus;
static ITfDocumentMgr *test_CurrentFocus = NULL;
static ITfDocumentMgr *test_PrevFocus = NULL;
@@ -622,6 +623,42 @@ static HRESULT ThreadMgrEventSink_Constructor(IUnknown **ppOut)
return S_OK;
}
+static HRESULT WINAPI TfTransitoryExtensionSink_QueryInterface(ITfTransitoryExtensionSink *iface, REFIID riid, void **ppv)
+{
+ if(IsEqualGUID(&IID_IUnknown, riid) || IsEqualGUID(&IID_ITfTransitoryExtensionSink, riid)) {
+ *ppv = iface;
+ return S_OK;
+ }
+
+ *ppv = NULL;
+ return E_NOINTERFACE;
+}
+
+static ULONG WINAPI TfTransitoryExtensionSink_AddRef(ITfTransitoryExtensionSink *iface)
+{
+ return 2;
+}
+
+static ULONG WINAPI TfTransitoryExtensionSink_Release(ITfTransitoryExtensionSink *iface)
+{
+ return 1;
+}
+
+static HRESULT WINAPI TfTransitoryExtensionSink_OnTransitoryExtensionUpdated(ITfTransitoryExtensionSink *iface, ITfContext *pic,
+ TfEditCookie ecReadOnly, ITfRange *pResultRange, ITfRange *pCompositionRange, BOOL *pfDeleteResultRange)
+{
+ ok(0, "unexpected call\n");
+ return E_NOTIMPL;
+}
+
+static const ITfTransitoryExtensionSinkVtbl TfTransitoryExtensionSinkVtbl = {
+ TfTransitoryExtensionSink_QueryInterface,
+ TfTransitoryExtensionSink_AddRef,
+ TfTransitoryExtensionSink_Release,
+ TfTransitoryExtensionSink_OnTransitoryExtensionUpdated
+};
+
+static ITfTransitoryExtensionSink TfTransitoryExtensionSink = { &TfTransitoryExtensionSinkVtbl };
/********************************************************************************************
* Stub text service for testing
@@ -1053,6 +1090,34 @@ static void test_ThreadMgrUnadviseSinks(void)
ITfSource_Release(source);
}
+static void test_DocumentMgrAdviseSinks(void)
+{
+ ITfSource *source;
+ HRESULT hr;
+
+ hr = ITfDocumentMgr_QueryInterface(g_dm, &IID_ITfSource, (void**)&source);
+ ok(hr == S_OK,"Failed to get IID_ITfSource for DocumentMgr\n");
+
+ dmSinkCookie = 0;
+ hr = ITfSource_AdviseSink(source, &IID_ITfTransitoryExtensionSink, (IUnknown*)&TfTransitoryExtensionSink, &dmSinkCookie);
+ ok(hr == S_OK,"Failed to Advise Sink\n");
+
+ ITfSource_Release(source);
+}
+
+static void test_DocumentMgrUnadviseSinks(void)
+{
+ ITfSource *source = NULL;
+ HRESULT hr;
+
+ hr = ITfDocumentMgr_QueryInterface(g_dm, &IID_ITfSource, (void**)&source);
+ ok(hr == S_OK,"Failed to get IID_ITfSource for DocumentMgr\n");
+
+ hr = ITfSource_UnadviseSink(source, dmSinkCookie);
+ ok(hr == S_OK,"Failed to unadvise Sink\n");
+ ITfSource_Release(source);
+}
+
/**********************************************************************
* ITfKeyEventSink
**********************************************************************/
@@ -2240,6 +2305,7 @@ START_TEST(inputprocessor)
test_ThreadMgrAdviseSinks();
test_Activate();
test_startSession();
+ test_DocumentMgrAdviseSinks();
test_TfGuidAtom();
test_ClientId();
test_KeystrokeMgr();
@@ -2250,6 +2316,7 @@ START_TEST(inputprocessor)
test_FindClosestCategory();
test_Disable();
test_ThreadMgrUnadviseSinks();
+ test_DocumentMgrUnadviseSinks();
test_UnregisterCategory();
test_Unregister();
test_profile_mgr();
More information about the wine-cvs
mailing list