There are four key base proxies that you can extend to create new
proxies for a control in the .Net domain. They are ObjectProxy, ComponentProxy,
ControlProxy, and ControlWithSubobjectsProxy.
- ObjectProxy
- The ObjectProxy proxy is the base proxy for .Net domain proxies. By default
it is mapped to System.Object class objects. It contains the default implementation
of various base class methods, such as GetChildren(), GetMappableChildren(),
and GetRecognitionProperties(). This is a non-UI proxy. If your control is
derived from the System.Object class, then you can inherit the proxy for the
control from ObjectProxy.
- ComponentProxy
- The ComponentProxy proxy is the base class for dealing with objects derived
from System.ComponentModel.Component. This proxy implements TestObject methods
such as GetParent() and GetMappableChildren().
- ControlProxy
- By default, any .Net control that you derive from the System.Windows.Forms
class is mapped to the ControlProxy proxy. It provides both coordinates-based
record and playback support for mouse actions such as click, drag, and hover.
It also provides support for properties verification point, scrolling object,
and object related point into view.
- ControlWithSubobjectsProxy
- The ControlWithSubobjectsProxy proxy implements basic functionalities
for container controls such as Form and UserControl. This proxy also provides
support for controls with parts that can be clicked and addressed, for example
DataGrid control that has SubItem Cell and header. In addition, the ControlWithSubobjectsProxy
provides support for record and playback for scrollbar SubItem, scrolling
for SubItem in the control and SubItem in nested ScrollablControl parent.
Proxy hierarchy for .Net controls
The following figure
is a class diagram of the proxy hierarchy for .Net controls: