AXActionFilter and AXExtension

AXExtension

This is the extension that the running CUIT recorder and playback interface with. It both provides the actual AXActionFilter and the name and description of the extension.

AXActionFilter

This defers filtering requested by the CUIT recording system to Filter systems.

static AXActionFilter()
{
    // Order does matter, so be careful about
    // where you put new filters.
    group = new FilterGroup(
        new RemoveRedundancyFilter(),
        //new TracerFilter(),
        new SegmentedEntryFilter(),
        new DropdownLookupFilter(),
        new NavigationPaneFilter(),
        new GridFilter(),
        new DropdownUncachingFilter(),
        new WindowTitleFilter());
}

This section of code initializes the FilterGroup. This prescribes the order of execution of the filters, as well as which ones are run. When making a new filter, make sure to have some understanding of the other filters, so that you can more easily decide where to put it. Almost any filter will go after the RemoveRedundancyFilter, for instance.

public override bool ProcessRule(IUITestActionStack actionStack)
{
    group.Run(actionStack);
    
    return false;
}

This actually runs the initialized FilterGroup, whenever the CUIT Extension system tells the AXActionFilter that an action has been added to the actions stack.

Last edited Jul 29, 2014 at 4:24 PM by wgoodin, version 6