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
5267f8b7
Commit
5267f8b7
authored
Nov 13, 2012
by
Christian Costa
Committed by
Alexandre Julliard
Nov 14, 2012
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
user32: Add tests for MapWindowPoints, ClientToScreen and ScreenToClient.
Based on a patch by Rico Schüller.
parent
7fc61f6f
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
223 additions
and
0 deletions
+223
-0
win.c
dlls/user32/tests/win.c
+223
-0
No files found.
dlls/user32/tests/win.c
View file @
5267f8b7
...
...
@@ -7104,6 +7104,228 @@ todo_wine
ok
(
ret
,
"UnregisterClass(my_window) failed
\n
"
);
}
static
void
test_map_points
(
void
)
{
BOOL
ret
;
POINT
p
;
HWND
wnd
,
wnd0
,
dwnd
;
INT
n
;
DWORD
err
;
POINT
pos
=
{
100
,
200
};
int
width
=
150
;
int
height
=
150
;
RECT
window_rect
;
RECT
client_rect
;
/* Create test windows */
wnd
=
CreateWindow
(
"static"
,
"test1"
,
WS_POPUP
,
pos
.
x
,
pos
.
y
,
width
,
height
,
NULL
,
NULL
,
NULL
,
NULL
);
ok
(
wnd
!=
NULL
,
"Failed %p
\n
"
,
wnd
);
wnd0
=
CreateWindow
(
"static"
,
"test2"
,
WS_POPUP
,
0
,
0
,
width
,
height
,
NULL
,
NULL
,
NULL
,
NULL
);
ok
(
wnd0
!=
NULL
,
"Failed %p
\n
"
,
wnd
);
dwnd
=
CreateWindow
(
"static"
,
"test3"
,
0
,
200
,
300
,
150
,
150
,
NULL
,
NULL
,
NULL
,
NULL
);
DestroyWindow
(
dwnd
);
ok
(
dwnd
!=
NULL
,
"Failed %p
\n
"
,
dwnd
);
/* Verify window rect and client rect (they should have the same width and height) */
GetWindowRect
(
wnd
,
&
window_rect
);
ok
(
window_rect
.
left
==
pos
.
x
,
"left is %d instead of %d
\n
"
,
window_rect
.
left
,
pos
.
x
);
ok
(
window_rect
.
top
==
pos
.
y
,
"top is %d instead of %d
\n
"
,
window_rect
.
top
,
pos
.
y
);
ok
(
window_rect
.
right
==
pos
.
x
+
width
,
"right is %d instead of %d
\n
"
,
window_rect
.
right
,
pos
.
x
+
width
);
ok
(
window_rect
.
bottom
==
pos
.
y
+
height
,
"bottom is %d instead of %d
\n
"
,
window_rect
.
bottom
,
pos
.
y
+
height
);
GetClientRect
(
wnd
,
&
client_rect
);
ok
(
client_rect
.
left
==
0
,
"left is %d instead of 0
\n
"
,
client_rect
.
left
);
ok
(
client_rect
.
top
==
0
,
"top is %d instead of 0
\n
"
,
client_rect
.
top
);
ok
(
client_rect
.
right
==
width
,
"right is %d instead of %d
\n
"
,
client_rect
.
right
,
width
);
ok
(
client_rect
.
bottom
==
height
,
"bottom is %d instead of %d
\n
"
,
client_rect
.
bottom
,
height
);
/* Test MapWindowPoints */
/* MapWindowPoints(NULL or wnd, NULL or wnd, NULL, 1); crashes on Windows */
SetLastError
(
0xdeadbeef
);
n
=
MapWindowPoints
(
NULL
,
NULL
,
NULL
,
0
);
err
=
GetLastError
();
ok
(
n
==
0
,
"Got %d, expected %d
\n
"
,
n
,
0
);
ok
(
err
==
0xdeadbeef
,
"Got %x, expected %x
\n
"
,
err
,
0xdeadbeef
);
SetLastError
(
0xdeadbeef
);
n
=
MapWindowPoints
(
wnd
,
wnd
,
NULL
,
0
);
err
=
GetLastError
();
ok
(
n
==
0
,
"Got %d, expected %d
\n
"
,
n
,
0
);
ok
(
err
==
0xdeadbeef
,
"Got %x, expected %x
\n
"
,
err
,
0xdeadbeef
);
n
=
MapWindowPoints
(
wnd
,
NULL
,
NULL
,
0
);
ok
(
n
==
MAKELONG
(
window_rect
.
left
,
window_rect
.
top
),
"Got %x, expected %x
\n
"
,
n
,
MAKELONG
(
window_rect
.
left
,
window_rect
.
top
));
n
=
MapWindowPoints
(
NULL
,
wnd
,
NULL
,
0
);
ok
(
n
==
MAKELONG
(
-
window_rect
.
left
,
-
window_rect
.
top
),
"Got %x, expected %x
\n
"
,
n
,
MAKELONG
(
-
window_rect
.
left
,
-
window_rect
.
top
));
SetLastError
(
0xdeadbeef
);
p
.
x
=
p
.
y
=
100
;
n
=
MapWindowPoints
(
dwnd
,
NULL
,
&
p
,
1
);
err
=
GetLastError
();
ok
(
n
==
0
,
"Got %d, expected %d
\n
"
,
n
,
0
);
ok
(
p
.
x
==
100
&&
p
.
y
==
100
,
"Failed got(%d, %d), expected (%d, %d)
\n
"
,
p
.
x
,
p
.
y
,
100
,
100
);
ok
(
err
==
ERROR_INVALID_WINDOW_HANDLE
,
"Got %x, expected %x
\n
"
,
err
,
ERROR_INVALID_WINDOW_HANDLE
);
SetLastError
(
0xdeadbeef
);
p
.
x
=
p
.
y
=
100
;
n
=
MapWindowPoints
(
dwnd
,
wnd
,
&
p
,
1
);
err
=
GetLastError
();
ok
(
n
==
0
,
"Got %d, expected %d
\n
"
,
n
,
0
);
ok
(
p
.
x
==
100
&&
p
.
y
==
100
,
"Failed got(%d, %d), expected (%d, %d)
\n
"
,
p
.
x
,
p
.
y
,
100
,
100
);
ok
(
err
==
ERROR_INVALID_WINDOW_HANDLE
,
"Got %x, expected %x
\n
"
,
err
,
ERROR_INVALID_WINDOW_HANDLE
);
SetLastError
(
0xdeadbeef
);
p
.
x
=
p
.
y
=
100
;
n
=
MapWindowPoints
(
NULL
,
dwnd
,
&
p
,
1
);
err
=
GetLastError
();
ok
(
n
==
0
,
"Got %d, expected %d
\n
"
,
n
,
0
);
ok
(
p
.
x
==
100
&&
p
.
y
==
100
,
"Failed got(%d, %d), expected (%d, %d)
\n
"
,
p
.
x
,
p
.
y
,
100
,
100
);
ok
(
err
==
ERROR_INVALID_WINDOW_HANDLE
,
"Got %x, expected %x
\n
"
,
err
,
ERROR_INVALID_WINDOW_HANDLE
);
SetLastError
(
0xdeadbeef
);
p
.
x
=
p
.
y
=
100
;
n
=
MapWindowPoints
(
wnd
,
dwnd
,
&
p
,
1
);
err
=
GetLastError
();
ok
(
n
==
0
,
"Got %d, expected %d
\n
"
,
n
,
0
);
ok
(
p
.
x
==
100
&&
p
.
y
==
100
,
"Failed got(%d, %d), expected (%d, %d)
\n
"
,
p
.
x
,
p
.
y
,
100
,
100
);
ok
(
err
==
ERROR_INVALID_WINDOW_HANDLE
,
"Got %x, expected %x
\n
"
,
err
,
ERROR_INVALID_WINDOW_HANDLE
);
SetLastError
(
0xdeadbeef
);
p
.
x
=
p
.
y
=
100
;
n
=
MapWindowPoints
(
dwnd
,
dwnd
,
&
p
,
1
);
err
=
GetLastError
();
ok
(
n
==
0
,
"Got %d, expected %d
\n
"
,
n
,
0
);
ok
(
p
.
x
==
100
&&
p
.
y
==
100
,
"Failed got(%d, %d), expected (%d, %d)
\n
"
,
p
.
x
,
p
.
y
,
100
,
100
);
ok
(
err
==
ERROR_INVALID_WINDOW_HANDLE
,
"Got %x, expected %x
\n
"
,
err
,
ERROR_INVALID_WINDOW_HANDLE
);
SetLastError
(
0xdeadbeef
);
p
.
x
=
p
.
y
=
100
;
n
=
MapWindowPoints
(
NULL
,
NULL
,
&
p
,
1
);
err
=
GetLastError
();
ok
(
n
==
0
,
"Got %d, expected %d
\n
"
,
n
,
0
);
ok
(
p
.
x
==
100
&&
p
.
y
==
100
,
"Failed got(%d, %d), expected (%d, %d)
\n
"
,
p
.
x
,
p
.
y
,
100
,
100
);
ok
(
err
==
0xdeadbeef
,
"Got %x, expected %x
\n
"
,
err
,
0xdeadbeef
);
SetLastError
(
0xdeadbeef
);
p
.
x
=
p
.
y
=
100
;
n
=
MapWindowPoints
(
wnd
,
wnd
,
&
p
,
1
);
err
=
GetLastError
();
ok
(
n
==
0
,
"Got %d, expected %d
\n
"
,
n
,
0
);
ok
(
p
.
x
==
100
&&
p
.
y
==
100
,
"Failed got(%d, %d), expected (%d, %d)
\n
"
,
p
.
x
,
p
.
y
,
100
,
100
);
ok
(
err
==
0xdeadbeef
,
"Got %x, expected %x
\n
"
,
err
,
0xdeadbeef
);
p
.
x
=
p
.
y
=
100
;
n
=
MapWindowPoints
(
wnd
,
NULL
,
&
p
,
1
);
ok
(
n
==
MAKELONG
(
window_rect
.
left
,
window_rect
.
top
),
"Got %x, expected %x
\n
"
,
n
,
MAKELONG
(
window_rect
.
left
,
window_rect
.
top
));
ok
((
p
.
x
==
(
window_rect
.
left
+
100
))
&&
(
p
.
y
==
(
window_rect
.
top
+
100
)),
"Failed got (%d, %d), expected (%d, %d)
\n
"
,
p
.
x
,
p
.
y
,
window_rect
.
left
+
100
,
window_rect
.
top
+
100
);
p
.
x
=
p
.
y
=
100
;
n
=
MapWindowPoints
(
NULL
,
wnd
,
&
p
,
1
);
ok
(
n
==
MAKELONG
(
-
window_rect
.
left
,
-
window_rect
.
top
),
"Got %x, expected %x
\n
"
,
n
,
MAKELONG
(
-
window_rect
.
left
,
-
window_rect
.
top
));
ok
((
p
.
x
==
(
-
window_rect
.
left
+
100
))
&&
(
p
.
y
==
(
-
window_rect
.
top
+
100
)),
"Failed got (%d, %d), expected (%d, %d)
\n
"
,
p
.
x
,
p
.
y
,
-
window_rect
.
left
+
100
,
-
window_rect
.
top
+
100
);
SetLastError
(
0xdeadbeef
);
p
.
x
=
p
.
y
=
0
;
n
=
MapWindowPoints
(
wnd0
,
NULL
,
&
p
,
1
);
err
=
GetLastError
();
ok
(
n
==
0
,
"Got %x, expected 0
\n
"
,
n
);
ok
((
p
.
x
==
0
)
&&
(
p
.
y
==
0
),
"Failed got (%d, %d), expected (0, 0)
\n
"
,
p
.
x
,
p
.
y
);
ok
(
err
==
0xdeadbeef
,
"Got %x, expected %x
\n
"
,
err
,
0xdeadbeef
);
SetLastError
(
0xdeadbeef
);
p
.
x
=
p
.
y
=
0
;
n
=
MapWindowPoints
(
NULL
,
wnd0
,
&
p
,
1
);
err
=
GetLastError
();
ok
(
n
==
0
,
"Got %x, expected 0
\n
"
,
n
);
ok
((
p
.
x
==
0
)
&&
(
p
.
y
==
0
),
"Failed got (%d, %d), expected (0, 0)
\n
"
,
p
.
x
,
p
.
y
);
ok
(
err
==
0xdeadbeef
,
"Got %x, expected %x
\n
"
,
err
,
0xdeadbeef
);
/* Test ClientToScreen */
/* ClientToScreen(wnd, NULL); crashes on Windows */
SetLastError
(
0xdeadbeef
);
ret
=
ClientToScreen
(
NULL
,
NULL
);
err
=
GetLastError
();
ok
(
!
ret
,
"Should fail
\n
"
);
ok
(
err
==
ERROR_INVALID_WINDOW_HANDLE
,
"Got %x, expected %x
\n
"
,
err
,
ERROR_INVALID_WINDOW_HANDLE
);
SetLastError
(
0xdeadbeef
);
p
.
x
=
p
.
y
=
100
;
ret
=
ClientToScreen
(
NULL
,
&
p
);
err
=
GetLastError
();
ok
(
!
ret
,
"Should fail
\n
"
);
ok
(
p
.
x
==
100
&&
p
.
y
==
100
,
"Failed got(%d, %d), expected (%d, %d)
\n
"
,
p
.
x
,
p
.
y
,
100
,
100
);
ok
(
err
==
ERROR_INVALID_WINDOW_HANDLE
,
"Got %x, expected %x
\n
"
,
err
,
ERROR_INVALID_WINDOW_HANDLE
);
SetLastError
(
0xdeadbeef
);
p
.
x
=
p
.
y
=
100
;
ret
=
ClientToScreen
(
dwnd
,
&
p
);
err
=
GetLastError
();
ok
(
!
ret
,
"Should fail
\n
"
);
ok
(
p
.
x
==
100
&&
p
.
y
==
100
,
"Failed got(%d, %d), expected (%d, %d)
\n
"
,
p
.
x
,
p
.
y
,
100
,
100
);
ok
(
err
==
ERROR_INVALID_WINDOW_HANDLE
,
"Got %x, expected %x
\n
"
,
err
,
ERROR_INVALID_WINDOW_HANDLE
);
p
.
x
=
p
.
y
=
100
;
ret
=
ClientToScreen
(
wnd
,
&
p
);
ok
(
ret
,
"Failed with error %u
\n
"
,
GetLastError
());
ok
((
p
.
x
==
(
window_rect
.
left
+
100
))
&&
(
p
.
y
==
(
window_rect
.
top
+
100
)),
"Failed got (%d, %d), expected (%d, %d)
\n
"
,
p
.
x
,
p
.
y
,
window_rect
.
left
+
100
,
window_rect
.
top
+
100
);
p
.
x
=
p
.
y
=
0
;
ret
=
ClientToScreen
(
wnd0
,
&
p
);
ok
(
ret
,
"Failed with error %u
\n
"
,
GetLastError
());
ok
((
p
.
x
==
0
)
&&
(
p
.
y
==
0
),
"Failed got (%d, %d), expected (0, 0)
\n
"
,
p
.
x
,
p
.
y
);
/* Test ScreenToClient */
/* ScreenToClient(wnd, NULL); crashes on Windows */
SetLastError
(
0xdeadbeef
);
ret
=
ScreenToClient
(
NULL
,
NULL
);
err
=
GetLastError
();
ok
(
!
ret
,
"Should fail
\n
"
);
ok
(
err
==
ERROR_INVALID_WINDOW_HANDLE
,
"Got %x, expected %x
\n
"
,
err
,
ERROR_INVALID_WINDOW_HANDLE
);
SetLastError
(
0xdeadbeef
);
p
.
x
=
p
.
y
=
100
;
ret
=
ScreenToClient
(
NULL
,
&
p
);
err
=
GetLastError
();
ok
(
!
ret
,
"Should fail
\n
"
);
ok
(
p
.
x
==
100
&&
p
.
y
==
100
,
"Failed got(%d, %d), expected (%d, %d)
\n
"
,
p
.
x
,
p
.
y
,
100
,
100
);
ok
(
err
==
ERROR_INVALID_WINDOW_HANDLE
,
"Got %x, expected %x
\n
"
,
err
,
ERROR_INVALID_WINDOW_HANDLE
);
SetLastError
(
0xdeadbeef
);
p
.
x
=
p
.
y
=
100
;
ret
=
ScreenToClient
(
dwnd
,
&
p
);
err
=
GetLastError
();
ok
(
!
ret
,
"Should fail
\n
"
);
ok
(
p
.
x
==
100
&&
p
.
y
==
100
,
"Failed got(%d, %d), expected (%d, %d)
\n
"
,
p
.
x
,
p
.
y
,
100
,
100
);
ok
(
err
==
ERROR_INVALID_WINDOW_HANDLE
,
"Got %x, expected %x
\n
"
,
err
,
ERROR_INVALID_WINDOW_HANDLE
);
p
.
x
=
p
.
y
=
100
;
ret
=
ScreenToClient
(
wnd
,
&
p
);
ok
(
ret
,
"Failed with error %u
\n
"
,
GetLastError
());
ok
((
p
.
x
==
(
-
window_rect
.
left
+
100
))
&&
(
p
.
y
==
(
-
window_rect
.
top
+
100
)),
"Failed got(%d, %d), expected (%d, %d)
\n
"
,
p
.
x
,
p
.
y
,
-
window_rect
.
left
+
100
,
-
window_rect
.
top
+
100
);
p
.
x
=
p
.
y
=
0
;
ret
=
ScreenToClient
(
wnd0
,
&
p
);
ok
(
ret
,
"Failed with error %u
\n
"
,
GetLastError
());
ok
((
p
.
x
==
0
)
&&
(
p
.
y
==
0
),
"Failed got (%d, %d), expected (0, 0)
\n
"
,
p
.
x
,
p
.
y
);
DestroyWindow
(
wnd
);
DestroyWindow
(
wnd0
);
}
START_TEST
(
win
)
{
HMODULE
user32
=
GetModuleHandleA
(
"user32.dll"
);
...
...
@@ -7212,6 +7434,7 @@ START_TEST(win)
test_shell_window
();
test_handles
(
hwndMain
);
test_winregion
();
test_map_points
();
/* add the tests above this line */
if
(
hhook
)
UnhookWindowsHookEx
(
hhook
);
...
...
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