>># 
>># Copyright 1990, 1991 by the Massachusetts Institute of Technology and
>># UniSoft Group Limited.
>># 
>># Permission to use, copy, modify, distribute, and sell this software and
>># its documentation for any purpose is hereby granted without fee,
>># provided that the above copyright notice appear in all copies and that
>># both that copyright notice and this permission notice appear in
>># supporting documentation, and that the names of MIT and UniSoft not be
>># used in advertising or publicity pertaining to distribution of the
>># software without specific, written prior permission.  MIT and UniSoft
>># make no representations about the suitability of this software for any
>># purpose.  It is provided "as is" without express or implied warranty.
>># 
>># $XConsortium: mvwdw.m,v 1.8 92/06/11 16:09:26 rws Exp $
>># 
>>#      SCCS:  @(#)  EWin.mc Rel 1.4	    (7/19/91)
>>#
>>TITLE XMoveWindow CH03
>>ASSERTION A XMoveWindow-1
A call to XMoveWindow moves the window so that the
coordinates of the upper-left outer corner of the window are
x, y relative to the origin of the parent window.
>>STRATEGY
Create test window with background of W_FG.
Set x and y.
Call XMoveWindow.
Verify that window has moved on screen with checkarea().
>>ASSERTION A XMoveWindow-2
When the window is moved and the window is mapped and the
window is not obscured by non-children, then the current
window contents are not lost.
>>STRATEGY
Create window.
Draw pattern in window.
Move window without a size change.
Verify that window contents are unchanged.
>>ASSERTION D XMoveWindow-3
When the window is moved and the window is mapped and
backing store is being maintained for the window, then the
current window contents are not lost.
>>STRATEGY
Report UNTESTED
>>ASSERTION A XMoveWindow-4
When a call to XMoveWindow uncovers part of any window that
was formerly obscured, then either Expose events are
generated or the contents are restored from backing store.
>>STRATEGY
Create windows.
Create second client to receive events on.
Call setforexpose() on unobscured window.
Create other windows to partially obscure this window.
Reconfigure window with XMoveWindow, ensuring that first window is now unobscured.
Verify for correct expose or backing store behaviour with exposecheck().
>>ASSERTION A XMoveWindow-5
When the window is a root window, then a call to
XMoveWindow has no effect.
>>STRATEGY
Call XMoveWindow on root window.
Touch test only.
>>ASSERTION A XMoveWindow-6
When the override-redirect flag of the window is False and
some other client has selected SubstructureRedirectMask on
the parent window, then a ConfigureRequest event is
generated, and the window position is not changed.
>>STRATEGY
Create windows.
Set override-redirect to False.
Create second client.
Select SubstructureRedirectMask for second client on parent of window.
Set some parameters.
Call XMoveWindow.
Verify that a ConfigureRequest event is generated.
Verify that window configuration has not changed on the screen.
>>ASSERTION A XMoveWindow-7
When the position actually changes, then a ConfigureNotify
event is generated.
>>STRATEGY
Create windows.
Enable SubstructureNotify events.
Call XMoveWindow such that the window configuration changes.
Verify that a ConfigureNotify event is generated.
Call XMoveWindow again with the same parameters.
Verify that no ConfigureNotify event is generated.
>>ASSERTION A XMoveWindow-8
When a window argument does not name a valid Window, then a
BadWindow error occurs.
>>STRATEGY
Create a bad window by creating and destroying a window.
Call test function using bad window as the window argument.
Verify that a BadWindow error occurs.
