Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-cw
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-cw
Commits
482ab27e
Commit
482ab27e
authored
Feb 11, 2006
by
Thomas Kho
Committed by
Alexandre Julliard
Feb 11, 2006
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
riched20: Added tests for EM_FINDTEXT and EM_FINDTEXTEX messages.
parent
c362d7c3
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
212 additions
and
1 deletion
+212
-1
configure
configure
+2
-1
configure.ac
configure.ac
+1
-0
Makefile.in
dlls/riched20/Makefile.in
+2
-0
.gitignore
dlls/riched20/tests/.gitignore
+3
-0
Makefile.in
dlls/riched20/tests/Makefile.in
+13
-0
editor.c
dlls/riched20/tests/editor.c
+191
-0
No files found.
configure
View file @
482ab27e
...
...
@@ -18741,7 +18741,7 @@ MAKE_LIB_RULES=libs/Makelib.rules
MAKE_PROG_RULES
=
programs/Makeprog.rules
ac_config_files
=
"
$ac_config_files
Make.rules dlls/Makedll.rules dlls/Makeimplib.rules dlls/Maketest.rules libs/Makelib.rules programs/Makeprog.rules Makefile dlls/Makefile dlls/activeds/Makefile dlls/advapi32/Makefile dlls/advapi32/tests/Makefile dlls/advpack/Makefile dlls/advpack/tests/Makefile dlls/amstream/Makefile dlls/atl/Makefile dlls/avicap32/Makefile dlls/avifil32/Makefile dlls/cabinet/Makefile dlls/cabinet/tests/Makefile dlls/capi2032/Makefile dlls/cards/Makefile dlls/cfgmgr32/Makefile dlls/comcat/Makefile dlls/comctl32/Makefile dlls/comctl32/tests/Makefile dlls/commdlg/Makefile dlls/crtdll/Makefile dlls/crypt32/Makefile dlls/crypt32/tests/Makefile dlls/cryptdll/Makefile dlls/ctl3d/Makefile dlls/d3d8/Makefile dlls/d3d9/Makefile dlls/d3d9/tests/Makefile dlls/d3dim/Makefile dlls/d3drm/Makefile dlls/d3dx8/Makefile dlls/d3dxof/Makefile dlls/dbghelp/Makefile dlls/dciman32/Makefile dlls/ddraw/Makefile dlls/ddraw/tests/Makefile dlls/devenum/Makefile dlls/dinput/Makefile dlls/dinput/tests/Makefile dlls/dinput8/Makefile dlls/dmband/Makefile dlls/dmcompos/Makefile dlls/dmime/Makefile dlls/dmloader/Makefile dlls/dmscript/Makefile dlls/dmstyle/Makefile dlls/dmsynth/Makefile dlls/dmusic/Makefile dlls/dmusic32/Makefile dlls/dplay/Makefile dlls/dplayx/Makefile dlls/dpnet/Makefile dlls/dpnhpast/Makefile dlls/dsound/Makefile dlls/dsound/tests/Makefile dlls/dswave/Makefile dlls/dxdiagn/Makefile dlls/dxerr8/Makefile dlls/dxerr9/Makefile dlls/dxguid/Makefile dlls/gdi/Makefile dlls/gdi/tests/Makefile dlls/glu32/Makefile dlls/glut32/Makefile dlls/hhctrl.ocx/Makefile dlls/iccvid/Makefile dlls/icmp/Makefile dlls/ifsmgr.vxd/Makefile dlls/imagehlp/Makefile dlls/imm32/Makefile dlls/iphlpapi/Makefile dlls/iphlpapi/tests/Makefile dlls/itss/Makefile dlls/kernel/Makefile dlls/kernel/tests/Makefile dlls/lzexpand/Makefile dlls/lzexpand/tests/Makefile dlls/mapi32/Makefile dlls/mapi32/tests/Makefile dlls/mciavi32/Makefile dlls/mcicda/Makefile dlls/mciseq/Makefile dlls/midimap/Makefile dlls/mlang/Makefile dlls/mlang/tests/Makefile dlls/mmdevldr.vxd/Makefile dlls/monodebg.vxd/Makefile dlls/mpr/Makefile dlls/msacm/Makefile dlls/msacm/imaadp32/Makefile dlls/msacm/msadp32/Makefile dlls/msacm/msg711/Makefile dlls/msacm/tests/Makefile dlls/msacm/winemp3/Makefile dlls/mscms/Makefile dlls/mscms/tests/Makefile dlls/msdmo/Makefile dlls/mshtml/Makefile dlls/mshtml/tests/Makefile dlls/msi/Makefile dlls/msi/tests/Makefile dlls/msimg32/Makefile dlls/msisys/Makefile dlls/msnet32/Makefile dlls/msrle32/Makefile dlls/msvcrt/Makefile dlls/msvcrt/tests/Makefile dlls/msvcrt20/Makefile dlls/msvcrt40/Makefile dlls/msvcrtd/Makefile dlls/msvcrtd/tests/Makefile dlls/msvidc32/Makefile dlls/msvideo/Makefile dlls/mswsock/Makefile dlls/msxml3/Makefile dlls/msxml3/tests/Makefile dlls/netapi32/Makefile dlls/netapi32/tests/Makefile dlls/newdev/Makefile dlls/ntdll/Makefile dlls/ntdll/tests/Makefile dlls/objsel/Makefile dlls/odbc32/Makefile dlls/odbccp32/Makefile dlls/ole32/Makefile dlls/ole32/tests/Makefile dlls/oleacc/Makefile dlls/oleaut32/Makefile dlls/oleaut32/tests/Makefile dlls/olecli/Makefile dlls/oledlg/Makefile dlls/olepro32/Makefile dlls/olesvr/Makefile dlls/opengl32/Makefile dlls/powrprof/Makefile dlls/psapi/Makefile dlls/psapi/tests/Makefile dlls/qcap/Makefile dlls/quartz/Makefile dlls/quartz/tests/Makefile dlls/rasapi32/Makefile dlls/riched20
/Makefile dlls/richedit/Makefile dlls/rpcrt4/Makefile dlls/rpcrt4/tests/Makefile dlls/rsabase/Makefile dlls/rsabase/tests/Makefile dlls/rsaenh/Makefile dlls/rsaenh/tests/Makefile dlls/secur32/Makefile dlls/secur32/tests/Makefile dlls/security/Makefile dlls/sensapi/Makefile dlls/serialui/Makefile dlls/setupapi/Makefile dlls/setupapi/tests/Makefile dlls/shdocvw/Makefile dlls/shdocvw/tests/Makefile dlls/shell32/Makefile dlls/shell32/tests/Makefile dlls/shfolder/Makefile dlls/shlwapi/Makefile dlls/shlwapi/tests/Makefile dlls/snmpapi/Makefile dlls/stdole2.tlb/Makefile dlls/stdole32.tlb/Makefile dlls/sti/Makefile dlls/strmiids/Makefile dlls/tapi32/Makefile dlls/twain/Makefile dlls/unicows/Makefile dlls/url/Makefile dlls/urlmon/Makefile dlls/urlmon/tests/Makefile dlls/user/Makefile dlls/user/tests/Makefile dlls/usp10/Makefile dlls/uuid/Makefile dlls/uxtheme/Makefile dlls/vdhcp.vxd/Makefile dlls/vdmdbg/Makefile dlls/version/Makefile dlls/version/tests/Makefile dlls/vmm.vxd/Makefile dlls/vnbt.vxd/Makefile dlls/vnetbios.vxd/Makefile dlls/vtdapi.vxd/Makefile dlls/vwin32.vxd/Makefile dlls/win32s/Makefile dlls/winaspi/Makefile dlls/winecrt0/Makefile dlls/wined3d/Makefile dlls/winedos/Makefile dlls/wineps/Makefile dlls/wininet/Makefile dlls/wininet/tests/Makefile dlls/winmm/Makefile dlls/winmm/joystick/Makefile dlls/winmm/mciwave/Makefile dlls/winmm/tests/Makefile dlls/winmm/wavemap/Makefile dlls/winmm/winealsa/Makefile dlls/winmm/winearts/Makefile dlls/winmm/wineaudioio/Makefile dlls/winmm/wineesd/Makefile dlls/winmm/winejack/Makefile dlls/winmm/winenas/Makefile dlls/winmm/wineoss/Makefile dlls/winnls/Makefile dlls/winsock/Makefile dlls/winsock/tests/Makefile dlls/winspool/Makefile dlls/winspool/tests/Makefile dlls/wintab32/Makefile dlls/wintrust/Makefile dlls/wldap32/Makefile dlls/wow32/Makefile dlls/wsock32/Makefile dlls/wtsapi32/Makefile dlls/x11drv/Makefile documentation/Makefile fonts/Makefile include/Makefile libs/Makefile libs/port/Makefile libs/unicode/Makefile libs/wine/Makefile libs/wpp/Makefile loader/Makefile programs/Makefile programs/avitools/Makefile programs/clock/Makefile programs/cmdlgtst/Makefile programs/control/Makefile programs/eject/Makefile programs/expand/Makefile programs/explorer/Makefile programs/hh/Makefile programs/msiexec/Makefile programs/notepad/Makefile programs/progman/Makefile programs/regedit/Makefile programs/regsvr32/Makefile programs/rpcss/Makefile programs/rundll32/Makefile programs/start/Makefile programs/taskmgr/Makefile programs/uninstaller/Makefile programs/view/Makefile programs/wcmd/Makefile programs/wineboot/Makefile programs/winebrowser/Makefile programs/winecfg/Makefile programs/wineconsole/Makefile programs/winedbg/Makefile programs/winefile/Makefile programs/winemenubuilder/Makefile programs/winemine/Makefile programs/winepath/Makefile programs/winetest/Makefile programs/winevdm/Makefile programs/winhelp/Makefile programs/winver/Makefile server/Makefile tools/Makefile tools/widl/Makefile tools/winapi/Makefile tools/winebuild/Makefile tools/winedump/Makefile tools/winegcc/Makefile tools/wmc/Makefile tools/wrc/Makefile"
ac_config_files
=
"
$ac_config_files
Make.rules dlls/Makedll.rules dlls/Makeimplib.rules dlls/Maketest.rules libs/Makelib.rules programs/Makeprog.rules Makefile dlls/Makefile dlls/activeds/Makefile dlls/advapi32/Makefile dlls/advapi32/tests/Makefile dlls/advpack/Makefile dlls/advpack/tests/Makefile dlls/amstream/Makefile dlls/atl/Makefile dlls/avicap32/Makefile dlls/avifil32/Makefile dlls/cabinet/Makefile dlls/cabinet/tests/Makefile dlls/capi2032/Makefile dlls/cards/Makefile dlls/cfgmgr32/Makefile dlls/comcat/Makefile dlls/comctl32/Makefile dlls/comctl32/tests/Makefile dlls/commdlg/Makefile dlls/crtdll/Makefile dlls/crypt32/Makefile dlls/crypt32/tests/Makefile dlls/cryptdll/Makefile dlls/ctl3d/Makefile dlls/d3d8/Makefile dlls/d3d9/Makefile dlls/d3d9/tests/Makefile dlls/d3dim/Makefile dlls/d3drm/Makefile dlls/d3dx8/Makefile dlls/d3dxof/Makefile dlls/dbghelp/Makefile dlls/dciman32/Makefile dlls/ddraw/Makefile dlls/ddraw/tests/Makefile dlls/devenum/Makefile dlls/dinput/Makefile dlls/dinput/tests/Makefile dlls/dinput8/Makefile dlls/dmband/Makefile dlls/dmcompos/Makefile dlls/dmime/Makefile dlls/dmloader/Makefile dlls/dmscript/Makefile dlls/dmstyle/Makefile dlls/dmsynth/Makefile dlls/dmusic/Makefile dlls/dmusic32/Makefile dlls/dplay/Makefile dlls/dplayx/Makefile dlls/dpnet/Makefile dlls/dpnhpast/Makefile dlls/dsound/Makefile dlls/dsound/tests/Makefile dlls/dswave/Makefile dlls/dxdiagn/Makefile dlls/dxerr8/Makefile dlls/dxerr9/Makefile dlls/dxguid/Makefile dlls/gdi/Makefile dlls/gdi/tests/Makefile dlls/glu32/Makefile dlls/glut32/Makefile dlls/hhctrl.ocx/Makefile dlls/iccvid/Makefile dlls/icmp/Makefile dlls/ifsmgr.vxd/Makefile dlls/imagehlp/Makefile dlls/imm32/Makefile dlls/iphlpapi/Makefile dlls/iphlpapi/tests/Makefile dlls/itss/Makefile dlls/kernel/Makefile dlls/kernel/tests/Makefile dlls/lzexpand/Makefile dlls/lzexpand/tests/Makefile dlls/mapi32/Makefile dlls/mapi32/tests/Makefile dlls/mciavi32/Makefile dlls/mcicda/Makefile dlls/mciseq/Makefile dlls/midimap/Makefile dlls/mlang/Makefile dlls/mlang/tests/Makefile dlls/mmdevldr.vxd/Makefile dlls/monodebg.vxd/Makefile dlls/mpr/Makefile dlls/msacm/Makefile dlls/msacm/imaadp32/Makefile dlls/msacm/msadp32/Makefile dlls/msacm/msg711/Makefile dlls/msacm/tests/Makefile dlls/msacm/winemp3/Makefile dlls/mscms/Makefile dlls/mscms/tests/Makefile dlls/msdmo/Makefile dlls/mshtml/Makefile dlls/mshtml/tests/Makefile dlls/msi/Makefile dlls/msi/tests/Makefile dlls/msimg32/Makefile dlls/msisys/Makefile dlls/msnet32/Makefile dlls/msrle32/Makefile dlls/msvcrt/Makefile dlls/msvcrt/tests/Makefile dlls/msvcrt20/Makefile dlls/msvcrt40/Makefile dlls/msvcrtd/Makefile dlls/msvcrtd/tests/Makefile dlls/msvidc32/Makefile dlls/msvideo/Makefile dlls/mswsock/Makefile dlls/msxml3/Makefile dlls/msxml3/tests/Makefile dlls/netapi32/Makefile dlls/netapi32/tests/Makefile dlls/newdev/Makefile dlls/ntdll/Makefile dlls/ntdll/tests/Makefile dlls/objsel/Makefile dlls/odbc32/Makefile dlls/odbccp32/Makefile dlls/ole32/Makefile dlls/ole32/tests/Makefile dlls/oleacc/Makefile dlls/oleaut32/Makefile dlls/oleaut32/tests/Makefile dlls/olecli/Makefile dlls/oledlg/Makefile dlls/olepro32/Makefile dlls/olesvr/Makefile dlls/opengl32/Makefile dlls/powrprof/Makefile dlls/psapi/Makefile dlls/psapi/tests/Makefile dlls/qcap/Makefile dlls/quartz/Makefile dlls/quartz/tests/Makefile dlls/rasapi32/Makefile dlls/riched20/Makefile dlls/riched20/tests
/Makefile dlls/richedit/Makefile dlls/rpcrt4/Makefile dlls/rpcrt4/tests/Makefile dlls/rsabase/Makefile dlls/rsabase/tests/Makefile dlls/rsaenh/Makefile dlls/rsaenh/tests/Makefile dlls/secur32/Makefile dlls/secur32/tests/Makefile dlls/security/Makefile dlls/sensapi/Makefile dlls/serialui/Makefile dlls/setupapi/Makefile dlls/setupapi/tests/Makefile dlls/shdocvw/Makefile dlls/shdocvw/tests/Makefile dlls/shell32/Makefile dlls/shell32/tests/Makefile dlls/shfolder/Makefile dlls/shlwapi/Makefile dlls/shlwapi/tests/Makefile dlls/snmpapi/Makefile dlls/stdole2.tlb/Makefile dlls/stdole32.tlb/Makefile dlls/sti/Makefile dlls/strmiids/Makefile dlls/tapi32/Makefile dlls/twain/Makefile dlls/unicows/Makefile dlls/url/Makefile dlls/urlmon/Makefile dlls/urlmon/tests/Makefile dlls/user/Makefile dlls/user/tests/Makefile dlls/usp10/Makefile dlls/uuid/Makefile dlls/uxtheme/Makefile dlls/vdhcp.vxd/Makefile dlls/vdmdbg/Makefile dlls/version/Makefile dlls/version/tests/Makefile dlls/vmm.vxd/Makefile dlls/vnbt.vxd/Makefile dlls/vnetbios.vxd/Makefile dlls/vtdapi.vxd/Makefile dlls/vwin32.vxd/Makefile dlls/win32s/Makefile dlls/winaspi/Makefile dlls/winecrt0/Makefile dlls/wined3d/Makefile dlls/winedos/Makefile dlls/wineps/Makefile dlls/wininet/Makefile dlls/wininet/tests/Makefile dlls/winmm/Makefile dlls/winmm/joystick/Makefile dlls/winmm/mciwave/Makefile dlls/winmm/tests/Makefile dlls/winmm/wavemap/Makefile dlls/winmm/winealsa/Makefile dlls/winmm/winearts/Makefile dlls/winmm/wineaudioio/Makefile dlls/winmm/wineesd/Makefile dlls/winmm/winejack/Makefile dlls/winmm/winenas/Makefile dlls/winmm/wineoss/Makefile dlls/winnls/Makefile dlls/winsock/Makefile dlls/winsock/tests/Makefile dlls/winspool/Makefile dlls/winspool/tests/Makefile dlls/wintab32/Makefile dlls/wintrust/Makefile dlls/wldap32/Makefile dlls/wow32/Makefile dlls/wsock32/Makefile dlls/wtsapi32/Makefile dlls/x11drv/Makefile documentation/Makefile fonts/Makefile include/Makefile libs/Makefile libs/port/Makefile libs/unicode/Makefile libs/wine/Makefile libs/wpp/Makefile loader/Makefile programs/Makefile programs/avitools/Makefile programs/clock/Makefile programs/cmdlgtst/Makefile programs/control/Makefile programs/eject/Makefile programs/expand/Makefile programs/explorer/Makefile programs/hh/Makefile programs/msiexec/Makefile programs/notepad/Makefile programs/progman/Makefile programs/regedit/Makefile programs/regsvr32/Makefile programs/rpcss/Makefile programs/rundll32/Makefile programs/start/Makefile programs/taskmgr/Makefile programs/uninstaller/Makefile programs/view/Makefile programs/wcmd/Makefile programs/wineboot/Makefile programs/winebrowser/Makefile programs/winecfg/Makefile programs/wineconsole/Makefile programs/winedbg/Makefile programs/winefile/Makefile programs/winemenubuilder/Makefile programs/winemine/Makefile programs/winepath/Makefile programs/winetest/Makefile programs/winevdm/Makefile programs/winhelp/Makefile programs/winver/Makefile server/Makefile tools/Makefile tools/widl/Makefile tools/winapi/Makefile tools/winebuild/Makefile tools/winedump/Makefile tools/winegcc/Makefile tools/wmc/Makefile tools/wrc/Makefile"
cat
>
confcache
<<
\
_ACEOF
...
...
@@ -19420,6 +19420,7 @@ do
"dlls/quartz/tests/Makefile" ) CONFIG_FILES="
$CONFIG_FILES
dlls/quartz/tests/Makefile" ;;
"dlls/rasapi32/Makefile" ) CONFIG_FILES="
$CONFIG_FILES
dlls/rasapi32/Makefile" ;;
"dlls/riched20/Makefile" ) CONFIG_FILES="
$CONFIG_FILES
dlls/riched20/Makefile" ;;
"dlls/riched20/tests/Makefile" ) CONFIG_FILES="
$CONFIG_FILES
dlls/riched20/tests/Makefile" ;;
"dlls/richedit/Makefile" ) CONFIG_FILES="
$CONFIG_FILES
dlls/richedit/Makefile" ;;
"dlls/rpcrt4/Makefile" ) CONFIG_FILES="
$CONFIG_FILES
dlls/rpcrt4/Makefile" ;;
"dlls/rpcrt4/tests/Makefile" ) CONFIG_FILES="
$CONFIG_FILES
dlls/rpcrt4/tests/Makefile" ;;
...
...
configure.ac
View file @
482ab27e
...
...
@@ -1578,6 +1578,7 @@ dlls/quartz/Makefile
dlls/quartz/tests/Makefile
dlls/rasapi32/Makefile
dlls/riched20/Makefile
dlls/riched20/tests/Makefile
dlls/richedit/Makefile
dlls/rpcrt4/Makefile
dlls/rpcrt4/tests/Makefile
...
...
dlls/riched20/Makefile.in
View file @
482ab27e
...
...
@@ -25,6 +25,8 @@ C_SRCS = \
wrap.c
\
writer.c
SUBDIRS
=
tests
@MAKE_DLL_RULES@
### Dependencies:
dlls/riched20/tests/.gitignore
0 → 100644
View file @
482ab27e
Makefile
editor.ok
testlist.c
dlls/riched20/tests/Makefile.in
0 → 100644
View file @
482ab27e
TOPSRCDIR
=
@top_srcdir@
TOPOBJDIR
=
../../..
SRCDIR
=
@srcdir@
VPATH
=
@srcdir@
TESTDLL
=
riched20.dll
IMPORTS
=
riched20 user32 gdi32 kernel32
CTESTS
=
\
editor.c
@MAKE_TEST_RULES@
### Dependencies:
dlls/riched20/tests/editor.c
0 → 100644
View file @
482ab27e
/*
* Unit test suite for rich edit control
*
* Copyright 2006 Google (Thomas Kho)
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#include <wine/test.h>
#include <windows.h>
#include <richedit.h>
#include <time.h>
static
HMODULE
hmoduleRichEdit
;
static
const
char
haystack
[]
=
"Think of Wine as a compatibility layer for "
"running Windows programs. Wine does not require Microsoft Windows, as it "
"is a completely free alternative implementation of the Windows API "
"consisting of 100% non-Microsoft code, however Wine can optionally use "
"native Windows DLLs if they are available. Wine provides both a "
"development toolkit for porting Windows source code to Unix as well as a "
"program loader, allowing many unmodified Windows programs to run on "
"x86-based Unixes, including Linux, FreeBSD, and Solaris."
;
static
HWND
new_window
(
LPCTSTR
lpClassName
,
DWORD
dwStyle
,
HWND
parent
)
{
HWND
hwnd
;
hwnd
=
CreateWindow
(
lpClassName
,
NULL
,
dwStyle
|
WS_POPUP
|
WS_HSCROLL
|
WS_VSCROLL
|
WS_VISIBLE
,
0
,
0
,
200
,
50
,
parent
,
NULL
,
hmoduleRichEdit
,
NULL
);
ok
(
hwnd
!=
NULL
,
"class: %s, error: %d
\n
"
,
lpClassName
,
(
int
)
GetLastError
());
return
hwnd
;
}
static
HWND
new_richedit
(
HWND
parent
)
{
return
new_window
(
RICHEDIT_CLASS
,
ES_MULTILINE
,
parent
);
}
static
void
check_EM_FINDTEXT
(
HWND
hwnd
,
int
start
,
int
end
,
char
needle
[],
int
flags
,
int
expected_start
)
{
int
findloc
;
FINDTEXT
ft
;
memset
(
&
ft
,
0
,
sizeof
(
ft
));
ft
.
chrg
.
cpMin
=
start
;
ft
.
chrg
.
cpMax
=
end
;
ft
.
lpstrText
=
needle
;
findloc
=
SendMessage
(
hwnd
,
EM_FINDTEXT
,
flags
,
(
LPARAM
)
&
ft
);
ok
(
findloc
==
expected_start
,
"EM_FINDTEXT '%s' in range (%d,%d), flags %08x, got start at %d
\n
"
,
needle
,
start
,
end
,
flags
,
findloc
);
}
static
void
test_EM_FINDTEXT
(
void
)
{
CHARRANGE
cr
;
GETTEXTLENGTHEX
gtl
;
int
size
;
HWND
hwndRichEdit
=
new_richedit
(
NULL
);
SendMessage
(
hwndRichEdit
,
WM_SETTEXT
,
0
,
(
LPARAM
)
haystack
);
SendMessage
(
hwndRichEdit
,
EM_EXGETSEL
,
0
,
(
LPARAM
)
&
cr
);
ok
(
cr
.
cpMin
==
cr
.
cpMax
,
"(%ld,%ld)
\n
"
,
cr
.
cpMin
,
cr
.
cpMax
);
gtl
.
flags
=
GTL_NUMCHARS
;
gtl
.
codepage
=
CP_ACP
;
size
=
SendMessage
(
hwndRichEdit
,
EM_GETTEXTLENGTHEX
,
(
WPARAM
)
&
gtl
,
0
);
ok
(
size
==
sizeof
(
haystack
)
-
1
,
"size=%d, sizeof haystack=%d
\n
"
,
size
,
sizeof
(
haystack
));
/* sizeof counts '\0' */
check_EM_FINDTEXT
(
hwndRichEdit
,
0
,
size
,
"Wine"
,
FR_DOWN
|
FR_MATCHCASE
,
9
);
check_EM_FINDTEXT
(
hwndRichEdit
,
10
,
size
,
"Wine"
,
FR_DOWN
|
FR_MATCHCASE
,
69
);
check_EM_FINDTEXT
(
hwndRichEdit
,
298
,
size
,
"Wine"
,
FR_DOWN
|
FR_MATCHCASE
,
-
1
);
check_EM_FINDTEXT
(
hwndRichEdit
,
0
,
size
,
"wine"
,
FR_DOWN
|
FR_MATCHCASE
,
-
1
);
todo_wine
{
check_EM_FINDTEXT
(
hwndRichEdit
,
0
,
size
,
"wine"
,
FR_DOWN
|
FR_WHOLEWORD
,
9
);
check_EM_FINDTEXT
(
hwndRichEdit
,
0
,
size
,
"win"
,
FR_DOWN
|
FR_WHOLEWORD
,
-
1
);
}
/* Check the case noted in bug 4479 */
SendMessage
(
hwndRichEdit
,
WM_SETTEXT
,
0
,
(
LPARAM
)
"blahblah"
);
check_EM_FINDTEXT
(
hwndRichEdit
,
0
,
8
,
"blah"
,
FR_DOWN
|
FR_MATCHCASE
,
0
);
check_EM_FINDTEXT
(
hwndRichEdit
,
4
,
8
,
"blah"
,
FR_DOWN
|
FR_MATCHCASE
,
4
);
check_EM_FINDTEXT
(
hwndRichEdit
,
4
,
9
,
"blah"
,
FR_DOWN
|
FR_MATCHCASE
,
4
);
check_EM_FINDTEXT
(
hwndRichEdit
,
0
,
8
,
"blahblah"
,
FR_DOWN
|
FR_MATCHCASE
,
0
);
DestroyWindow
(
hwndRichEdit
);
}
static
void
check_EM_FINDTEXTEX
(
HWND
hwnd
,
int
start
,
int
end
,
char
needle
[],
int
flags
,
int
expected_start
,
int
expected_end
)
{
int
findloc
;
FINDTEXTEX
ft
;
memset
(
&
ft
,
0
,
sizeof
(
ft
));
ft
.
chrg
.
cpMin
=
start
;
ft
.
chrg
.
cpMax
=
end
;
ft
.
lpstrText
=
needle
;
findloc
=
SendMessage
(
hwnd
,
EM_FINDTEXTEX
,
flags
,
(
LPARAM
)
&
ft
);
ok
(
findloc
==
expected_start
,
"EM_FINDTEXTEX '%s' in range (%d,%d), flags %08x, got start at %d
\n
"
,
needle
,
start
,
end
,
flags
,
findloc
);
if
(
findloc
!=
-
1
)
{
ok
(
ft
.
chrgText
.
cpMin
==
expected_start
,
"EM_FINDTEXTEX '%s' in range (%d,%d), flags %08x, got start at %ld
\n
"
,
needle
,
start
,
end
,
flags
,
ft
.
chrgText
.
cpMin
);
ok
(
ft
.
chrgText
.
cpMax
==
expected_end
,
"EM_FINDTEXTEX '%s' in range (%d,%d), flags %08x, got end at %ld
\n
"
,
needle
,
start
,
end
,
flags
,
ft
.
chrgText
.
cpMax
);
}
}
static
void
test_EM_FINDTEXTEX
(
void
)
{
CHARRANGE
cr
;
GETTEXTLENGTHEX
gtl
;
int
size
;
HWND
hwndRichEdit
=
new_richedit
(
NULL
);
SendMessage
(
hwndRichEdit
,
WM_SETTEXT
,
0
,
(
LPARAM
)
haystack
);
SendMessage
(
hwndRichEdit
,
EM_EXGETSEL
,
0
,
(
LPARAM
)
&
cr
);
ok
(
cr
.
cpMin
==
cr
.
cpMax
,
"(%ld,%ld)
\n
"
,
cr
.
cpMin
,
cr
.
cpMax
);
gtl
.
flags
=
GTL_NUMCHARS
;
gtl
.
codepage
=
CP_ACP
;
size
=
SendMessage
(
hwndRichEdit
,
EM_GETTEXTLENGTHEX
,
(
WPARAM
)
&
gtl
,
0
);
ok
(
size
==
sizeof
(
haystack
)
-
1
,
"size=%d, sizeof haystack=%d
\n
"
,
size
,
sizeof
(
haystack
));
/* sizeof counts '\0' */
check_EM_FINDTEXTEX
(
hwndRichEdit
,
0
,
size
,
"Wine"
,
FR_DOWN
|
FR_MATCHCASE
,
9
,
13
);
check_EM_FINDTEXTEX
(
hwndRichEdit
,
10
,
size
,
"Wine"
,
FR_DOWN
|
FR_MATCHCASE
,
69
,
73
);
check_EM_FINDTEXTEX
(
hwndRichEdit
,
298
,
size
,
"Wine"
,
FR_DOWN
|
FR_MATCHCASE
,
-
1
,
-
1
);
check_EM_FINDTEXTEX
(
hwndRichEdit
,
0
,
size
,
"wine"
,
FR_DOWN
|
FR_MATCHCASE
,
-
1
,
-
1
);
todo_wine
{
check_EM_FINDTEXTEX
(
hwndRichEdit
,
0
,
size
,
"wine"
,
FR_DOWN
|
FR_WHOLEWORD
,
9
,
13
);
check_EM_FINDTEXTEX
(
hwndRichEdit
,
0
,
size
,
"win"
,
FR_DOWN
|
FR_WHOLEWORD
,
-
1
,
-
1
);
}
DestroyWindow
(
hwndRichEdit
);
}
START_TEST
(
editor
)
{
MSG
msg
;
time_t
end
;
/* Must explicitly LoadLibrary(). The test has no references to functions in
* RICHED20.DLL, so the linker doesn't actually link to it. */
hmoduleRichEdit
=
LoadLibrary
(
"RICHED20.DLL"
);
ok
(
hmoduleRichEdit
!=
NULL
,
"error: %d
\n
"
,
(
int
)
GetLastError
());
test_EM_FINDTEXT
();
test_EM_FINDTEXTEX
();
/* Set the environment variable WINETEST_RICHED20 to keep windows
* responsive and open for 30 seconds. This is useful for debugging.
*
* The message pump uses PeekMessage() to empty the queue and then sleeps for
* 50ms before retrying the queue. */
end
=
time
(
NULL
)
+
30
;
if
(
getenv
(
"WINETEST_RICHED20"
))
{
while
(
time
(
NULL
)
<
end
)
{
if
(
PeekMessage
(
&
msg
,
NULL
,
0
,
0
,
PM_REMOVE
))
{
TranslateMessage
(
&
msg
);
DispatchMessage
(
&
msg
);
}
else
{
Sleep
(
50
);
}
}
}
ok
(
FreeLibrary
(
hmoduleRichEdit
)
!=
0
,
"error: %d
\n
"
,
(
int
)
GetLastError
());
}
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