Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-winehq
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wine
wine-winehq
Commits
6245ef83
Commit
6245ef83
authored
Sep 01, 2009
by
Aric Stewart
Committed by
Alexandre Julliard
Sep 02, 2009
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
msctf/tests: Test ITfThreadMgr::AssociateFocus.
parent
81118f7f
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
139 additions
and
2 deletions
+139
-2
inputprocessor.c
dlls/msctf/tests/inputprocessor.c
+139
-2
No files found.
dlls/msctf/tests/inputprocessor.c
View file @
6245ef83
...
...
@@ -43,6 +43,7 @@ static ITextStoreACPSink *ACPSink;
#define SINK_UNEXPECTED 0
#define SINK_EXPECTED 1
#define SINK_FIRED 2
#define SINK_IGNORE 3
static
BOOL
test_ShouldActivate
=
FALSE
;
static
BOOL
test_ShouldDeactivate
=
FALSE
;
...
...
@@ -150,8 +151,11 @@ static HRESULT WINAPI TextStoreACP_RequestLock(ITextStoreACP *iface,
static
HRESULT
WINAPI
TextStoreACP_GetStatus
(
ITextStoreACP
*
iface
,
TS_STATUS
*
pdcs
)
{
ok
(
test_ACP_GetStatus
==
SINK_EXPECTED
,
"Unexpected TextStoreACP_GetStatus
\n
"
);
test_ACP_GetStatus
=
SINK_FIRED
;
ok
(
test_ACP_GetStatus
==
SINK_EXPECTED
||
test_ACP_GetStatus
==
SINK_IGNORE
,
"Unexpected TextStoreACP_GetStatus
\n
"
);
if
(
test_ACP_GetStatus
==
SINK_EXPECTED
)
test_ACP_GetStatus
=
SINK_FIRED
;
else
if
(
test_ACP_GetStatus
==
SINK_IGNORE
)
trace
(
"Ignoring fired TextStoreACP_GetStatus
\n
"
);
pdcs
->
dwDynamicFlags
=
documentStatus
;
return
S_OK
;
}
...
...
@@ -1855,6 +1859,138 @@ static void test_Compartments(void)
ITfDocumentMgr_Release
(
dm
);
}
static
void
processPendingMessages
(
void
)
{
MSG
msg
;
while
(
PeekMessage
(
&
msg
,
NULL
,
0
,
0
,
PM_REMOVE
))
{
TranslateMessage
(
&
msg
);
DispatchMessage
(
&
msg
);
}
}
static
void
test_AssociateFocus
(
void
)
{
ITfDocumentMgr
*
dm1
,
*
dm2
,
*
olddm
,
*
dmcheck
,
*
dmorig
;
HWND
wnd1
,
wnd2
,
wnd3
;
HRESULT
hr
;
ITfThreadMgr_GetFocus
(
g_tm
,
&
dmorig
);
test_CurrentFocus
=
NULL
;
test_PrevFocus
=
dmorig
;
test_OnSetFocus
=
SINK_EXPECTED
;
hr
=
ITfThreadMgr_SetFocus
(
g_tm
,
NULL
);
ok
(
test_OnSetFocus
==
SINK_FIRED
,
"OnSetFocus not fired as expected
\n
"
);
ITfDocumentMgr_Release
(
dmorig
);
hr
=
ITfThreadMgr_CreateDocumentMgr
(
g_tm
,
&
dm1
);
ok
(
SUCCEEDED
(
hr
),
"CreateDocumentMgr failed
\n
"
);
hr
=
ITfThreadMgr_CreateDocumentMgr
(
g_tm
,
&
dm2
);
ok
(
SUCCEEDED
(
hr
),
"CreateDocumentMgr failed
\n
"
);
wnd1
=
CreateWindow
(
"edit"
,
NULL
,
WS_POPUP
|
WS_VISIBLE
,
0
,
0
,
200
,
60
,
NULL
,
NULL
,
NULL
,
NULL
);
ok
(
wnd1
!=
NULL
,
"Unable to create window 1
\n
"
);
wnd2
=
CreateWindow
(
"edit"
,
NULL
,
WS_POPUP
|
WS_VISIBLE
,
0
,
0
,
200
,
60
,
NULL
,
NULL
,
NULL
,
NULL
);
ok
(
wnd2
!=
NULL
,
"Unable to create window 2
\n
"
);
wnd3
=
CreateWindow
(
"edit"
,
NULL
,
WS_POPUP
|
WS_VISIBLE
,
0
,
0
,
200
,
60
,
NULL
,
NULL
,
NULL
,
NULL
);
ok
(
wnd3
!=
NULL
,
"Unable to create window 3
\n
"
);
processPendingMessages
();
SetFocus
(
wnd1
);
processPendingMessages
();
test_CurrentFocus
=
dm1
;
test_PrevFocus
=
NULL
;
test_OnSetFocus
=
SINK_EXPECTED
;
hr
=
ITfThreadMgr_AssociateFocus
(
g_tm
,
wnd1
,
dm1
,
&
olddm
);
ok
(
SUCCEEDED
(
hr
),
"AssociateFocus failed
\n
"
);
ok
(
test_OnSetFocus
==
SINK_FIRED
,
"OnSetFocus not fired as expected
\n
"
);
ok
(
olddm
==
NULL
,
"unexpected old DocumentMgr
\n
"
);
processPendingMessages
();
ITfThreadMgr_GetFocus
(
g_tm
,
&
dmcheck
);
ok
(
dmcheck
==
dm1
,
"Expected DocumentMgr not focused
\n
"
);
ITfDocumentMgr_Release
(
dmcheck
);
hr
=
ITfThreadMgr_AssociateFocus
(
g_tm
,
wnd2
,
dm2
,
&
olddm
);
ok
(
SUCCEEDED
(
hr
),
"AssociateFocus failed
\n
"
);
processPendingMessages
();
ITfThreadMgr_GetFocus
(
g_tm
,
&
dmcheck
);
ok
(
dmcheck
==
dm1
,
"Expected DocumentMgr not focused
\n
"
);
ITfDocumentMgr_Release
(
dmcheck
);
hr
=
ITfThreadMgr_AssociateFocus
(
g_tm
,
wnd3
,
dm2
,
&
olddm
);
ok
(
SUCCEEDED
(
hr
),
"AssociateFocus failed
\n
"
);
processPendingMessages
();
ITfThreadMgr_GetFocus
(
g_tm
,
&
dmcheck
);
ok
(
dmcheck
==
dm1
,
"Expected DocumentMgr not focused
\n
"
);
ITfDocumentMgr_Release
(
dmcheck
);
test_CurrentFocus
=
dm2
;
test_PrevFocus
=
dm1
;
test_OnSetFocus
=
SINK_EXPECTED
;
SetFocus
(
wnd2
);
processPendingMessages
();
ok
(
test_OnSetFocus
==
SINK_FIRED
,
"OnSetFocus not fired as expected
\n
"
);
SetFocus
(
wnd3
);
processPendingMessages
();
test_CurrentFocus
=
dm1
;
test_PrevFocus
=
dm2
;
test_OnSetFocus
=
SINK_EXPECTED
;
SetFocus
(
wnd1
);
processPendingMessages
();
ok
(
test_OnSetFocus
==
SINK_FIRED
,
"OnSetFocus not fired as expected
\n
"
);
hr
=
ITfThreadMgr_AssociateFocus
(
g_tm
,
wnd3
,
NULL
,
&
olddm
);
ok
(
SUCCEEDED
(
hr
),
"AssociateFocus failed
\n
"
);
ok
(
olddm
==
dm2
,
"incorrect old DocumentMgr returned
\n
"
);
ITfDocumentMgr_Release
(
olddm
);
test_CurrentFocus
=
dmorig
;
test_PrevFocus
=
dm1
;
test_OnSetFocus
=
SINK_EXPECTED
;
test_ACP_GetStatus
=
SINK_EXPECTED
;
ITfThreadMgr_SetFocus
(
g_tm
,
dmorig
);
ok
(
test_OnSetFocus
==
SINK_FIRED
,
"OnSetFocus not fired as expected
\n
"
);
test_CurrentFocus
=
NULL
;
test_PrevFocus
=
dmorig
;
test_OnSetFocus
=
SINK_EXPECTED
;
SetFocus
(
wnd3
);
processPendingMessages
();
ok
(
test_OnSetFocus
==
SINK_FIRED
,
"OnSetFocus not fired as expected
\n
"
);
hr
=
ITfThreadMgr_AssociateFocus
(
g_tm
,
wnd2
,
NULL
,
&
olddm
);
ok
(
SUCCEEDED
(
hr
),
"AssociateFocus failed
\n
"
);
ok
(
olddm
==
dm2
,
"incorrect old DocumentMgr returned
\n
"
);
ITfDocumentMgr_Release
(
olddm
);
hr
=
ITfThreadMgr_AssociateFocus
(
g_tm
,
wnd1
,
NULL
,
&
olddm
);
ok
(
SUCCEEDED
(
hr
),
"AssociateFocus failed
\n
"
);
ok
(
olddm
==
dm1
,
"incorrect old DocumentMgr returned
\n
"
);
ITfDocumentMgr_Release
(
olddm
);
SetFocus
(
wnd2
);
processPendingMessages
();
SetFocus
(
wnd1
);
processPendingMessages
();
ITfDocumentMgr_Release
(
dm1
);
ITfDocumentMgr_Release
(
dm2
);
DestroyWindow
(
wnd1
);
DestroyWindow
(
wnd2
);
DestroyWindow
(
wnd3
);
test_CurrentFocus
=
dmorig
;
test_PrevFocus
=
NULL
;
test_OnSetFocus
=
SINK_EXPECTED
;
test_ACP_GetStatus
=
SINK_IGNORE
;
ITfThreadMgr_SetFocus
(
g_tm
,
dmorig
);
ok
(
test_OnSetFocus
==
SINK_FIRED
,
"OnSetFocus not fired as expected
\n
"
);
}
START_TEST
(
inputprocessor
)
{
if
(
SUCCEEDED
(
initialize
()))
...
...
@@ -1871,6 +2007,7 @@ START_TEST(inputprocessor)
test_KeystrokeMgr
();
test_TStoApplicationText
();
test_Compartments
();
test_AssociateFocus
();
test_endSession
();
test_EnumLanguageProfiles
();
test_FindClosestCategory
();
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment