>># 
>># 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: clrar.m,v 1.8 92/06/11 16:20:40 rws Exp $
>># 
>>#      SCCS:  @(#)  EMat1.mc Rel 1.5	    (10/25/91)
>>#      SCCS:  @(#)  EVal.mc Rel 1.5	    (10/10/91)
>>#      SCCS:  @(#)  EWin.mc Rel 1.4	    (7/19/91)
>>#
>>TITLE XClearArea CH06
>>ASSERTION A XClearArea-1
A call to XClearArea paints a rectangular area in the
window specified by the w argument with the window's
background pixel or pixmap.
>>STRATEGY
For window, pixmap
	Create drawable.
	Set window background pixel to 0.
	Call XClearArea.
	Verify area is set.  Outside is untouched.

	Set window background pixel to 1.
	Call XClearArea.
	Verify area is set.  Outside is untouched.

	Set window background pixmap
	Call XClearArea.
	Verify area is set.  Outside is untouched.
>>ASSERTION A XClearArea-2
On a call to XClearArea the subwindow-mode is
ClipByChildren.
>>STRATEGY
Create window
Create child window overlapping area to be cleared
Call XClearArea.
Verify that the child has not been drawn upon.
>>ASSERTION A XClearArea-3
When width is zero, then it is replaced with the current
width of the window minus x.
>>STRATEGY
Call XClearArea with width equal to zero.
Call checkarea to verify that area set has height of width - x.
>>ASSERTION A XClearArea-4
When height is zero, then it is replaced with the current
height of the window minus y.
>>STRATEGY
Call XClearArea with height equal to zero.
Call checkarea to verify that area has height (window height - y).
>>ASSERTION - XClearArea-5
When the window has a defined background tile, then the
rectangle clipped by any children is tiled with a plane-mask
of all ones and the GXCopy function.
>>ASSERTION A XClearArea-6
When the window has a background_pixmap of None, then the
contents of the window are not changed.
>>STRATEGY
Create window.
Set background pixel to W_FG.
Set background pixmap to None.
Call XClearArea.
Check that the window is not changed.
>>ASSERTION A XClearArea-7
When the window has a background_pixmap of ParentRelative
and the parent has a background_pixmap of None, then the
contents of the window are not changed.
>>STRATEGY
Create parent window.
Create a child window covering the parent.
Set parent window background to none.
Set child window background pixmap to ParentRelative.
Clear area of child
Verify that there was no change to the child.
>>ASSERTION A XClearArea-8
When exposures is True, then one or more Expose events are
generated for regions of the rectangle that are either
visible or are being retained in backing store.
>>STRATEGY
Set exposures to True.
Call XClearArea.
Check that an expose event is received.
>>ASSERTION A XClearArea-9
When a drawable argument is an InputOnly window then a
BadMatch error occurs.
>>STRATEGY
Create an InputOnly window.
Call test function using InputOnly window as the drawable argument.
Verify that a BadMatch error occurs.
>>ASSERTION A XClearArea-10
When the value of exposures is other than True or False,
then a BadValue error occurs.
>>STRATEGY
Obtain a sequence of values which are not in the list specified by VALUE_LIST.
For each value:
  Call test function with this value in the VALUE_ARG argument.
  Verify that a BadValue error occurs.
>>ASSERTION A XClearArea-11
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.
