>># 
>># 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: addtsvst.m,v 1.8 92/06/11 17:10:55 rws Exp $
>># 
>>#      SCCS:  @(#)  EWin.mc Rel 1.4	    (7/19/91)
>>#
>>TITLE XAddToSaveSet CH07
>>ASSERTION A XAddToSaveSet-1
A call to XAddToSaveSet adds the specified window to the
client's save-set.
>>STRATEGY
Create client1.
Create windows for client1.
Create client2.
Create windows for client2 that are inferiors of the windows created by
client1.
Add some of client2's windows to client1's save-set with XAddToSaveSet.
Close client1.
Verify that the inferiors that were added to the save-set still exist
and that the ones that were not have been destroyed.
>>ASSERTION A XAddToSaveSet-2
When the client's resources are destroyed, and the window
specified in the call to XAddToSaveSet is an inferior of one
of the windows created by the client, then the specified
window is reparented to the closest ancestor window such
that the save-set window is not an inferior of a window
created by the client.
>>STRATEGY
Setup windows so that they have been reparented, using setupsaveset.
Verify that each window that should have been reparented has the correct parent.
>>ASSERTION A XAddToSaveSet-3
When a save-set window is reparented as a result of
save-set processing, then the absolute coordinates of the
upper-left outer corner of the save-set window are
unchanged.
>>STRATEGY
Setup reparented windows with setupsaveset(). 
Obtain base window coordinates.
Verify the base window has not moved.
For each reparented window:
  Calculate original position relative to base window.
  Obtain new position of window.
  Verify that window has not moved relative to root window.
>>ASSERTION A XAddToSaveSet-4
When a save-set window is reparented as a result of
save-set processing and it was originally mapped, then the
window is unmapped before being reparented and UnmapNotify
events are generated.
>>STRATEGY
Create save set with setupsaveset.
Get all unmap events.
Compare event against expected values.
Verify that unmap events were received for all save-set windows that
were inferiors of client1.
>>ASSERTION A XAddToSaveSet-5
When a save-set window is reparented as a result of
save-set processing, then a ReparentNotify event is
generated on the window and the new parent window.
>>STRATEGY
Create save set with setupsaveset.
Get all reparent events.
Compare event against expected values.
Verify that reparent events were received for all save-set windows that
were inferiors of client1.
Verify that reparent events were received for the parents of all save-set
windows that were inferiors of client1.
>>ASSERTION A XAddToSaveSet-6
When a client is destroyed, then all its save-set windows
that are not mapped or that are reparented as a result of
save-set processing are mapped and MapNotify or MapRequest
events are generated.
>>STRATEGY
Create save set with setupsaveset.
Get all map events.
Compare each event against expected values.
Verify that map events were received for all save-set windows that
were inferiors of client1 or were not originally mapped.
Verify that map events were received for the parents of all save-set
windows that were inferiors of client1 or were not originally mapped.
>>ASSERTION A XAddToSaveSet-7
When the specified window was created by the same client,
then a BadMatch error occurs.
>>STRATEGY
Create a window using default client.
Call XAddToSaveSet with this client and window.
Verify that a BadMatch error occurs.
>>ASSERTION A XAddToSaveSet-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.
