>># 
>># 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: rttwdwprpr.m,v 1.11 92/06/11 16:13:57 rws Exp $
>># 
>>#      SCCS:  @(#)  EWin.mc Rel 1.4	    (7/19/91)
>>#
>>TITLE XRotateWindowProperties CH04
>>ASSERTION A XRotateWindowProperties-1
A call to XRotateWindowProperties rotates properties on the
window w and generates PropertyNotify events.
>>STRATEGY
Create a window with properties, with PropertyChangeMask events selected.
Call XRotateWindowProperties to rotate the window properties.
Verify that PropertyNotify events were genereated.
Verify that the property values were rotated as expected.
>>ASSERTION A XRotateWindowProperties-2
When npositions mod num_prop is non-zero, then a call to
XRotateWindowProperties reorders the values associated with
the properties such that the value associated with a
properties [I] becomes the value associated with the
properties [ I+ npositions] mod num_prop, and a
PropertyNotify event is generated for each member of the
properties array in the array order.
>>STRATEGY
Create a window with properties, with PropertyChangeMask events selected.
Call XRotateWindowProperties to rotate the window properties.
Verify that PropertyNotify events were genereated.
Verify that the property values were rotated as expected.
>>ASSERTION A XRotateWindowProperties-3
When an atom occurs more than once in the properties list,
then a call to XRotateWindowProperties changes no window
properties,anda BadMatch error occurs.
>>STRATEGY
Create a window with properties, and PropertyChangeMask events selected.
Ensure that the properties array contains a duplicate member.
Call XRotateWindowProperties to rotate the window properties.
Verify that a BadMatch error occurred.
Verify that no property notify events were raised.
Verify that the property values were not modified.
>>ASSERTION A XRotateWindowProperties-4
When an atom in the properties list is not a property of
the specified window w, then a call to
XRotateWindowProperties changes no window propreties, and a
BadMatch error occurs.
>>STRATEGY
Create a window with properties, and PropertyChangeMask events selected.
Ensure the properties array has a member that is not a window property.
Call XRotateWindowProperties to rotate the window properties.
Verify that a BadMatch error occurred.
Verify that no property notify events were raised.
Verify that the property values were not modified.
>>ASSERTION A XRotateWindowProperties-5
When an atom in the properties list is a bad atom, then a
call to XRotateWindowProperties changes no window property
values, and a BadAtom error occurs.
>>STRATEGY
Create a window with properties, and PropertyChangeMask events selected.
Ensure the properties array has a member that is a bad atom (-1).
Call XRotateWindowProperties to rotate the window properties.
Verify that a BadMatch error occurred.
Verify that no property notify events were raised.
Verify that the property values were not modified.
>>ASSERTION A XRotateWindowProperties-6
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.
