>># 
>># 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: gtwmszhnts.m,v 1.8 92/06/11 17:29:29 rws Exp $
>># 
>>#      SCCS:  @(#)  EAto.mc Rel 1.6	    (10/4/91)
>>#      SCCS:  @(#)  EWin.mc Rel 1.4	    (7/19/91)
>>#
>>TITLE XGetWMSizeHints CH09
>>ASSERTION A XGetWMSizeHints-1
When the property specified by the property argument is set
on the window w with a type of WM_SIZE_HINTS, a format of 32
and is long enough to contain either a pre-ICCCM structure
or a new size hints structure, then a call to
XGetWMSizeHints sets the components of the XSizeHints
structure named by the hints_return clear argument and
returns non-zero.
>>STRATEGY
Create a window with XCreateWindow.
Set the property WM_NORMAL_HINTS with XSetWMSizeHints.
Obtain the value of the WM_NORMAL_HINTS property using XGetWMSizeHints.
Verify that the function did not return False.
Verify that the entire structure has been returned.
>>ASSERTION A XGetWMSizeHints-2
When the property specified by the property argument is not
set on the window w, or is not of type WM_SIZE_HINTS, or is
not of format 32, or the property is not long enough to
contain either a pre-ICCCM structure or a new size hints
structure, then a call to XGetWMSizeHints returns zero.
>>STRATEGY
Create a window with XCreateWindow.
Obtain the property WM_NORMAL_HINTS with XGetWMSizeHints.
Verify that the call returned zero.

Create a window with XCreateWindow.
Set the WM_NORMAL_HINTS property of format 32 type WM_SIZE_HINTS with OldNumPropSizeElements-1 elements XChangeProperty.
Obtain the property WM_NORMAL_HINTS with XGetWMSizeHints.
Verify that the call returned zero.

Create a window with XCreateWindow.
Set the WM_NORMAL_HINTS property of format 16 type WM_SIZE_HINTS with NumPropSizeElements elements with XChangeProperty.
Obtain the property WM_NORMAL_HINTS with XGetWMSizeHints.
Verify that the call returned zero.

Create a window with XCreateWindow.
Set the WM_NORMAL_HINTS property of format 32 type STRING with NumPropSizeElements elements with XChangeProperty.
Obtain the property WM_NORMAL_HINTS with XGetWMSizeHints.
Verify that the call returned zero.
>>ASSERTION A XGetWMSizeHints-3
When a call to XGetWMSizeHints returns successfully and a
pre-ICCCM size hints property is read, then the
supplied_return argument contains the bits (USPosition|
USSize|PPosition|PSize|PMinSize|PMaxSize|
PResizeInc|PAspect).
>>STRATEGY
Create a window with XCreateWindow.
Set the property WM_NORMAL_HINTS with size OldNumPropSizeElements using XChangeProperty.
Obtain the value of the WM_NORMAL_HINTS property using XGetWMSizeHints.
Verify that the value returned in supplied_return was (USPositionUSSize|PPosition|PSize|PMinSize|PMaxSize|PResizeInc|PAspect).
>>ASSERTION A XGetWMSizeHints-4
When the property specified by the property argument is
large enough to contain the base size and window gravity
fields, then the supplied_return argument contains the bits
(PBaseSize|PWinGravity|USPosition|USSize|PPosition|
PSize|PMinSize|PMaxSize|PResizeInc|PAspect).
>>STRATEGY
Create a window with XCreateWindow.
Set the property WM_NORMAL_HINTS with size OldNumPropSizeElements using XChangeProperty.
Obtain the value of the WM_NORMAL_HINTS property using XGetWMSizeHints.
Verify that the value returned in supplied_return was (PBaseSize|PWinGravity|USPosition|USSize|PPosition|PSize|PMinSize|PMaxSize|PResizeInc|PAspect).
>>ASSERTION A XGetWMSizeHints-5
When an atom argument does not name a valid Atom, then a
BadAtom error occurs.
>>STRATEGY
Call test function using a value with the top bits set as the atom argument.
Verify that a BadAtom error occurs.
>>ASSERTION A XGetWMSizeHints-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.
