You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@flex.apache.org by cf...@apache.org on 2012/06/18 20:10:25 UTC

svn commit: r1351437 [5/12] - in /incubator/flex/trunk/frameworks/projects: automation_agent/ automation_agent/bundles/ automation_agent/bundles/da_DK/ automation_agent/bundles/de_DE/ automation_agent/bundles/en_US/ automation_agent/bundles/es_ES/ auto...

Propchange: incubator/flex/trunk/frameworks/projects/automation_agent/src/mx/automation/AutomationManager.as
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/flex/trunk/frameworks/projects/automation_agent/src/mx/automation/AutomationManager.as
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: incubator/flex/trunk/frameworks/projects/automation_agent/src/mx/automation/AutomationMethodDescriptor.as
URL: http://svn.apache.org/viewvc/incubator/flex/trunk/frameworks/projects/automation_agent/src/mx/automation/AutomationMethodDescriptor.as?rev=1351437&view=auto
==============================================================================
--- incubator/flex/trunk/frameworks/projects/automation_agent/src/mx/automation/AutomationMethodDescriptor.as (added)
+++ incubator/flex/trunk/frameworks/projects/automation_agent/src/mx/automation/AutomationMethodDescriptor.as Mon Jun 18 18:10:20 2012
@@ -0,0 +1,225 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  Licensed to the Apache Software Foundation (ASF) under one or more
+//  contributor license agreements.  See the NOTICE file distributed with
+//  this work for additional information regarding copyright ownership.
+//  The ASF licenses this file to You under the Apache License, Version 2.0
+//  (the "License"); you may not use this file except in compliance with
+//  the License.  You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+//  Unless required by applicable law or agreed to in writing, software
+//  distributed under the License is distributed on an "AS IS" BASIS,
+//  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//  See the License for the specific language governing permissions and
+//  limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+
+package mx.automation
+{
+
+import flash.events.Event;
+import flash.system.ApplicationDomain;
+import flash.utils.describeType;
+import mx.automation.Automation;
+import mx.automation.AutomationClass;
+import mx.automation.IAutomationManager;
+import mx.automation.IAutomationMethodDescriptor;
+import mx.automation.IAutomationObject;
+import mx.core.mx_internal;
+
+use namespace mx_internal;
+
+/**
+ * Basic method descriptor class. Generates descriptor from event parameters, if necessary
+ *  
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Flex 3
+ */
+public class AutomationMethodDescriptor
+	   implements IAutomationMethodDescriptor
+{
+	//--------------------------------------------------------------------------
+	//
+	//  Constructor
+	//
+	//--------------------------------------------------------------------------
+
+    /**
+     * 
+     *  
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    public function AutomationMethodDescriptor(name:String,
+                                                      asMethodName:String,
+                                                      returnType:String,
+                                                      args:Array)
+    {
+        super();
+
+        _name = name;
+        _asMethodName = asMethodName;
+        _returnType = returnType;
+        _args = args;
+    }
+
+	//--------------------------------------------------------------------------
+	//
+	//  Variables
+	//
+	//--------------------------------------------------------------------------
+
+    /**
+     *  @private
+     */
+    private var _asMethodName:String;
+    
+    /**
+     *  @private
+     */
+	private var _args:Array;
+    
+    /**
+     *  @private
+     */
+	private var _eventArgASTypesInitialized:Boolean = false;
+
+	//--------------------------------------------------------------------------
+	//
+	//  Properties
+	//
+	//--------------------------------------------------------------------------
+
+	//----------------------------------
+	//  name
+	//----------------------------------
+
+    /**
+     *  @private
+     */
+    private var _name:String;
+
+    /**
+     *  @inheritDoc
+     *  
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    public function get name():String
+    {
+        return _name;
+    }
+
+	//----------------------------------
+	//  returnType
+	//----------------------------------
+
+    /**
+     *  @private
+     */
+    private var _returnType:String;
+
+    /**
+     *
+     *  
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    public function get returnType():String
+    {
+        return _returnType;
+    }
+
+	//--------------------------------------------------------------------------
+	//
+	//  Methods
+	//
+	//--------------------------------------------------------------------------
+
+    /**
+     *  @inheritDoc
+     *  
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    public function record(target:IAutomationObject, event:Event):Array
+    {
+        // Unsupported to record a method.
+        throw new Error();
+        return null;
+    }
+
+    /**
+     *  @inheritDoc
+     *  
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    public function replay(target:IAutomationObject, args:Array):Object
+    {
+        var retVal:Object;
+        var f:Function 
+
+    	var comp:Object = target ;
+        if (comp.hasOwnProperty(_asMethodName))
+        {
+        	f = comp[_asMethodName];
+        	retVal = f.apply(target, args);
+        }
+        else
+        {
+            var delegate:Object = target.automationDelegate;
+            f = delegate[_asMethodName];
+        	retVal = f.apply(target, args);
+        }
+        	
+		return retVal;
+    }
+
+    /**
+     *  @inheritDoc
+     *  
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+   public function getArgDescriptors(obj:IAutomationObject):Array
+    {
+        if (!_eventArgASTypesInitialized && obj != null)
+        {
+            // This could be optimized by getting this info when
+            // the properties for the object are initialized since
+            // it's the same DT object.
+            _eventArgASTypesInitialized = true;
+            var comp:Object = obj ;
+            // if the property not found in the object, get the delegate
+            if (!(comp.hasOwnProperty(_asMethodName)))
+            {
+               comp = obj.automationDelegate;    
+            }
+        	
+            var dt:XML = describeType(comp);
+            AutomationClass.fillInASTypesFromMethods(dt, _asMethodName, _args);
+        }
+
+        return _args;
+    }
+}
+
+}

Propchange: incubator/flex/trunk/frameworks/projects/automation_agent/src/mx/automation/AutomationMethodDescriptor.as
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/flex/trunk/frameworks/projects/automation_agent/src/mx/automation/AutomationMethodDescriptor.as
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: incubator/flex/trunk/frameworks/projects/automation_agent/src/mx/automation/AutomationPropertyDescriptor.as
URL: http://svn.apache.org/viewvc/incubator/flex/trunk/frameworks/projects/automation_agent/src/mx/automation/AutomationPropertyDescriptor.as?rev=1351437&view=auto
==============================================================================
--- incubator/flex/trunk/frameworks/projects/automation_agent/src/mx/automation/AutomationPropertyDescriptor.as (added)
+++ incubator/flex/trunk/frameworks/projects/automation_agent/src/mx/automation/AutomationPropertyDescriptor.as Mon Jun 18 18:10:20 2012
@@ -0,0 +1,109 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  Licensed to the Apache Software Foundation (ASF) under one or more
+//  contributor license agreements.  See the NOTICE file distributed with
+//  this work for additional information regarding copyright ownership.
+//  The ASF licenses this file to You under the Apache License, Version 2.0
+//  (the "License"); you may not use this file except in compliance with
+//  the License.  You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+//  Unless required by applicable law or agreed to in writing, software
+//  distributed under the License is distributed on an "AS IS" BASIS,
+//  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//  See the License for the specific language governing permissions and
+//  limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+
+package mx.automation
+{
+
+/**
+ * Describes a property of a test object.
+ *  
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Flex 3
+ */
+public class AutomationPropertyDescriptor implements IAutomationPropertyDescriptor
+{
+
+    private var _name:String;
+    private var _forDescription:Boolean;
+    private var _forVerification:Boolean;
+    private var _defaultValue:String;
+    private var _asType:String;
+
+    /**
+     *  Constructor
+     *  
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    public function AutomationPropertyDescriptor(name:String,
+                                                 forDescription:Boolean,
+                                                 forVerification:Boolean,
+                                                 defaultValue:String = null)
+    {
+        super();
+        _name = name;
+        _forDescription = forDescription;
+        _forVerification = forVerification;
+        _defaultValue = defaultValue;
+    }
+
+	/**
+	 * @private
+	 */
+    public function get name():String
+    {
+        return _name;
+    }
+    
+	/**
+	 * @private
+	 */
+    public function get forDescription():Boolean
+    {
+        return _forDescription;
+    }
+
+	/**
+	 * @private
+	 */
+    public function get forVerification():Boolean
+    {
+        return _forVerification;
+    }
+
+	/**
+	 * @private
+	 */
+    public function get defaultValue():String
+    {
+        return _defaultValue;
+    }
+    
+	/**
+	 * @private
+	 */
+    public function set asType(v:String):void
+    {
+    	_asType = v;
+    }
+
+	/**
+	 * @private
+	 */
+    public function get asType():String
+    {
+    	return _asType ;
+    }
+}
+
+}

Propchange: incubator/flex/trunk/frameworks/projects/automation_agent/src/mx/automation/AutomationPropertyDescriptor.as
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/flex/trunk/frameworks/projects/automation_agent/src/mx/automation/AutomationPropertyDescriptor.as
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: incubator/flex/trunk/frameworks/projects/automation_agent/src/mx/automation/IAutomationClass.as
URL: http://svn.apache.org/viewvc/incubator/flex/trunk/frameworks/projects/automation_agent/src/mx/automation/IAutomationClass.as?rev=1351437&view=auto
==============================================================================
--- incubator/flex/trunk/frameworks/projects/automation_agent/src/mx/automation/IAutomationClass.as (added)
+++ incubator/flex/trunk/frameworks/projects/automation_agent/src/mx/automation/IAutomationClass.as Mon Jun 18 18:10:20 2012
@@ -0,0 +1,151 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  Licensed to the Apache Software Foundation (ASF) under one or more
+//  contributor license agreements.  See the NOTICE file distributed with
+//  this work for additional information regarding copyright ownership.
+//  The ASF licenses this file to You under the Apache License, Version 2.0
+//  (the "License"); you may not use this file except in compliance with
+//  the License.  You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+//  Unless required by applicable law or agreed to in writing, software
+//  distributed under the License is distributed on an "AS IS" BASIS,
+//  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//  See the License for the specific language governing permissions and
+//  limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+
+package mx.automation
+{
+
+import flash.events.Event;
+
+/**
+ * The IAutomationClass interface defines the interface for a component class descriptor.
+ *  
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Flex 3
+ */
+public interface IAutomationClass
+{
+
+    //----------------------------------
+    //  name
+    //----------------------------------
+    /**
+     * The class name.
+     *  
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    function get name():String;
+
+    //----------------------------------
+    //  superClassName
+    //----------------------------------
+
+    /**
+     * The name of the class's superclass.
+     *  
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    function get superClassName():String;
+ 
+    /**
+     * Returns the list of properties this class supports.
+     *
+     *  @param objForInitialization Object which can be used to find the 
+     *  ActionScript type of the properties.
+     *
+     *  @param forVerification If <code>true</code>, indicates that properties used 
+     *  for verification should be included in the return value. 
+     *
+     *  @param forDescription If <code>true</code>, indicates that properties used 
+     *  for object identitication should be included in the return value. 
+     *
+     *  @return Array containing property descriptions.
+     *  
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    function getPropertyDescriptors(objForInitialization:Object = null,
+                                           forVerification:Boolean = true,
+                                           forDescription:Boolean = true):Array;
+    
+    /**
+     *  Returns an <code>IAutomationEventDescriptor</code> object 
+     *  for the specified event object.
+     *
+     * @param event The event for which the descriptor is required.
+     * 
+     * @param The event descriptor for the event passed if one is available.
+     * Otherwise null.
+     *  
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    function getDescriptorForEvent(
+                        event:Event):IAutomationEventDescriptor;
+
+     /**
+      *  Returns an <code>IAutomationMethodDescriptorfrom</code> object
+      *  from the method's name.
+      *
+      *  @param methodName The method name for which the descriptor is required.
+      *
+      *  @return The method descriptor for the name passed if one is available. 
+      *          Otherwise, null.
+      *  
+      *  @langversion 3.0
+      *  @playerversion Flash 9
+      *  @playerversion AIR 1.1
+      *  @productversion Flex 3
+      */
+    function getDescriptorForMethodByName(
+                        methodName:String):IAutomationMethodDescriptor;
+
+     /**
+      *  Returns an <code>IAutomationEventDescriptor</code> object from the event's name.
+      *
+      *  @param eventName The event name for which the descriptor is required.
+      *
+      *  @return The event descriptor for the name passed if one is available. 
+      *          Otherwise null.
+      *  
+      *  @langversion 3.0
+      *  @playerversion Flash 9
+      *  @playerversion AIR 1.1
+      *  @productversion Flex 3
+      */
+    function getDescriptorForEventByName(
+                        eventName:String):IAutomationEventDescriptor;
+
+    /**
+     * An Object containing a map to map a property name to descriptor.
+     * The following example uses this property:
+     *
+     * <pre>var descriptor:IAutomationPropertyDescriptor = map[propertyNameMap];</pre> 
+     *  
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    function get propertyNameMap():Object;
+
+}
+
+}

Propchange: incubator/flex/trunk/frameworks/projects/automation_agent/src/mx/automation/IAutomationClass.as
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/flex/trunk/frameworks/projects/automation_agent/src/mx/automation/IAutomationClass.as
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: incubator/flex/trunk/frameworks/projects/automation_agent/src/mx/automation/IAutomationClass2.as
URL: http://svn.apache.org/viewvc/incubator/flex/trunk/frameworks/projects/automation_agent/src/mx/automation/IAutomationClass2.as?rev=1351437&view=auto
==============================================================================
--- incubator/flex/trunk/frameworks/projects/automation_agent/src/mx/automation/IAutomationClass2.as (added)
+++ incubator/flex/trunk/frameworks/projects/automation_agent/src/mx/automation/IAutomationClass2.as Mon Jun 18 18:10:20 2012
@@ -0,0 +1,61 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  Licensed to the Apache Software Foundation (ASF) under one or more
+//  contributor license agreements.  See the NOTICE file distributed with
+//  this work for additional information regarding copyright ownership.
+//  The ASF licenses this file to You under the Apache License, Version 2.0
+//  (the "License"); you may not use this file except in compliance with
+//  the License.  You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+//  Unless required by applicable law or agreed to in writing, software
+//  distributed under the License is distributed on an "AS IS" BASIS,
+//  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//  See the License for the specific language governing permissions and
+//  limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+
+package mx.automation
+{
+
+
+/**
+ * The IAutomationClass2 interface defines the interface for a component class descriptor.
+ *  
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Flex 4
+ */
+public interface IAutomationClass2 extends IAutomationClass
+{
+	//----------------------------------
+    //  previousVersionClassNames
+    //----------------------------------
+    /**
+     * An array of names of the classes that are compatible with current class.
+     *  
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 4
+     */
+    function get previousVersionClassNames():Array;
+    
+    //----------------------------------
+    //  implementationVersion
+    //----------------------------------
+    /**
+     * Version of the implementation classes. This version is supposed to be 
+     * unique for all implementation classes of a single ClassInfo tag in XML 
+     *  
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 4
+     */
+    function get implementationVersion():int;
+}
+}
\ No newline at end of file

Propchange: incubator/flex/trunk/frameworks/projects/automation_agent/src/mx/automation/IAutomationClass2.as
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/flex/trunk/frameworks/projects/automation_agent/src/mx/automation/IAutomationClass2.as
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: incubator/flex/trunk/frameworks/projects/automation_agent/src/mx/automation/IAutomationDebugTracer.as
URL: http://svn.apache.org/viewvc/incubator/flex/trunk/frameworks/projects/automation_agent/src/mx/automation/IAutomationDebugTracer.as?rev=1351437&view=auto
==============================================================================
--- incubator/flex/trunk/frameworks/projects/automation_agent/src/mx/automation/IAutomationDebugTracer.as (added)
+++ incubator/flex/trunk/frameworks/projects/automation_agent/src/mx/automation/IAutomationDebugTracer.as Mon Jun 18 18:10:20 2012
@@ -0,0 +1,45 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  Licensed to the Apache Software Foundation (ASF) under one or more
+//  contributor license agreements.  See the NOTICE file distributed with
+//  this work for additional information regarding copyright ownership.
+//  The ASF licenses this file to You under the Apache License, Version 2.0
+//  (the "License"); you may not use this file except in compliance with
+//  the License.  You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+//  Unless required by applicable law or agreed to in writing, software
+//  distributed under the License is distributed on an "AS IS" BASIS,
+//  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//  See the License for the specific language governing permissions and
+//  limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+
+package mx.automation
+{
+	/**
+	 *  The IAutomationDebugTracer interface provides centralized methods
+	 *  that needs to be implemented in order to show detailed trace messages
+	 *  while debugging
+ 	 *  
+ 	 *  @langversion 3.0
+ 	 *  @playerversion Flash 9
+ 	 *  @playerversion AIR 1.1
+ 	 *  @productversion Flex 4
+	 * 
+	 */
+	
+	public interface IAutomationDebugTracer
+	{
+		/**
+		 * Traces the message
+		 * 
+		 * @param className Name of class from which the message is traced
+		 * @param methodName Name of class from which the message is traced
+		 * @param message Message to be traced
+		 */
+		function traceMessage(className:String, methodName:String, message:String):void;
+	}
+}
\ No newline at end of file

Propchange: incubator/flex/trunk/frameworks/projects/automation_agent/src/mx/automation/IAutomationDebugTracer.as
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/flex/trunk/frameworks/projects/automation_agent/src/mx/automation/IAutomationDebugTracer.as
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: incubator/flex/trunk/frameworks/projects/automation_agent/src/mx/automation/IAutomationEnvironment.as
URL: http://svn.apache.org/viewvc/incubator/flex/trunk/frameworks/projects/automation_agent/src/mx/automation/IAutomationEnvironment.as?rev=1351437&view=auto
==============================================================================
--- incubator/flex/trunk/frameworks/projects/automation_agent/src/mx/automation/IAutomationEnvironment.as (added)
+++ incubator/flex/trunk/frameworks/projects/automation_agent/src/mx/automation/IAutomationEnvironment.as Mon Jun 18 18:10:20 2012
@@ -0,0 +1,68 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  Licensed to the Apache Software Foundation (ASF) under one or more
+//  contributor license agreements.  See the NOTICE file distributed with
+//  this work for additional information regarding copyright ownership.
+//  The ASF licenses this file to You under the Apache License, Version 2.0
+//  (the "License"); you may not use this file except in compliance with
+//  the License.  You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+//  Unless required by applicable law or agreed to in writing, software
+//  distributed under the License is distributed on an "AS IS" BASIS,
+//  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//  See the License for the specific language governing permissions and
+//  limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+
+package mx.automation
+{
+
+/**
+ *  The IAutomationEnvironment interface provides information about the
+ *  objects and properties of automatable components needed for communicating
+ *  with agents.
+ *  
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Flex 3
+ */
+public interface IAutomationEnvironment
+{
+
+    /**
+     *  Returns the automation class corresponding to the given object.
+     *
+     *  @param obj  Instance of the delegate of a testable object.
+     * 
+     *  @return Automation class for <code>obj</code>.
+     *  
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    function getAutomationClassByInstance(obj:IAutomationObject):IAutomationClass;
+
+
+    /**
+     *  Returns the automation class for the given name.
+     *
+     *  @param Name A class name that corresponds to the value of 
+     *  the <code>AutomationClass.name</code> property.
+     * 
+     *  @return Automation class corresponding to the given name,
+     *  or <code>null</code> if none was found.
+     *  
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    function getAutomationClassByName(automationClass:String):IAutomationClass;
+}
+
+}

Propchange: incubator/flex/trunk/frameworks/projects/automation_agent/src/mx/automation/IAutomationEnvironment.as
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/flex/trunk/frameworks/projects/automation_agent/src/mx/automation/IAutomationEnvironment.as
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: incubator/flex/trunk/frameworks/projects/automation_agent/src/mx/automation/IAutomationEventDescriptor.as
URL: http://svn.apache.org/viewvc/incubator/flex/trunk/frameworks/projects/automation_agent/src/mx/automation/IAutomationEventDescriptor.as?rev=1351437&view=auto
==============================================================================
--- incubator/flex/trunk/frameworks/projects/automation_agent/src/mx/automation/IAutomationEventDescriptor.as (added)
+++ incubator/flex/trunk/frameworks/projects/automation_agent/src/mx/automation/IAutomationEventDescriptor.as Mon Jun 18 18:10:20 2012
@@ -0,0 +1,122 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  Licensed to the Apache Software Foundation (ASF) under one or more
+//  contributor license agreements.  See the NOTICE file distributed with
+//  this work for additional information regarding copyright ownership.
+//  The ASF licenses this file to You under the Apache License, Version 2.0
+//  (the "License"); you may not use this file except in compliance with
+//  the License.  You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+//  Unless required by applicable law or agreed to in writing, software
+//  distributed under the License is distributed on an "AS IS" BASIS,
+//  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//  See the License for the specific language governing permissions and
+//  limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+
+package mx.automation
+{
+
+import flash.events.Event;
+import mx.core.mx_internal;
+import mx.automation.events.AutomationReplayEvent;
+
+use namespace mx_internal;
+
+/**
+ *  The IAutomationEventDescriptor interface defines the interface 
+ *  for an event descriptor.
+ *  
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Flex 3
+ */
+public interface IAutomationEventDescriptor
+{
+    /**
+     *  The name of this event as the agent sees it.
+     *  The AutomationManager fills the <code>AutomationRecordEvent.name</code>
+     *  property with this name.
+     *  
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    function get name():String;
+     
+    /**
+     *  The name of the class implementing this event.
+     *  
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    function get eventClassName():String;
+     
+    /**
+     *  The value of the <code>type</code> property used for this event.
+     *  
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    function get eventType():String;
+
+    /**
+     *  Returns an Array of argument descriptors for this event.
+     *  
+     *  @param target Instance of the IAutomationObject that
+     *  supports this event.
+     *
+     *  @return Array of argument descriptors for this event.
+     *
+     *  
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    function getArgDescriptors(target:IAutomationObject):Array;
+
+    /**
+     *  Encodes an automation event argument into an Array.
+     *
+     *  @param target Automation object on which to record the event.
+     *
+     *  @param event Automation event that is being recorded.
+     *
+     *  @return Array of property values of the event described by the PropertyDescriptors.
+     *  
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    function record(target:IAutomationObject, event:Event):Array;
+
+    /**
+     *  Decodes an argument Array and replays the event.
+     *
+     *  @param target Automation object on which to replay the event.
+     * 
+     *  @param args Array of argument values to
+     *  be used to replay the event.
+     *
+     *  @return null
+     *  
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    function replay(target:IAutomationObject, args:Array):Object;
+}
+
+}

Propchange: incubator/flex/trunk/frameworks/projects/automation_agent/src/mx/automation/IAutomationEventDescriptor.as
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/flex/trunk/frameworks/projects/automation_agent/src/mx/automation/IAutomationEventDescriptor.as
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: incubator/flex/trunk/frameworks/projects/automation_agent/src/mx/automation/IAutomationManager.as
URL: http://svn.apache.org/viewvc/incubator/flex/trunk/frameworks/projects/automation_agent/src/mx/automation/IAutomationManager.as?rev=1351437&view=auto
==============================================================================
--- incubator/flex/trunk/frameworks/projects/automation_agent/src/mx/automation/IAutomationManager.as (added)
+++ incubator/flex/trunk/frameworks/projects/automation_agent/src/mx/automation/IAutomationManager.as Mon Jun 18 18:10:20 2012
@@ -0,0 +1,532 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  Licensed to the Apache Software Foundation (ASF) under one or more
+//  contributor license agreements.  See the NOTICE file distributed with
+//  this work for additional information regarding copyright ownership.
+//  The ASF licenses this file to You under the Apache License, Version 2.0
+//  (the "License"); you may not use this file except in compliance with
+//  the License.  You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+//  Unless required by applicable law or agreed to in writing, software
+//  distributed under the License is distributed on an "AS IS" BASIS,
+//  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//  See the License for the specific language governing permissions and
+//  limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+
+package mx.automation
+{
+
+import flash.display.DisplayObject;
+import flash.events.Event;
+import flash.events.IEventDispatcher;
+
+import mx.automation.events.AutomationRecordEvent;
+import mx.automation.events.AutomationReplayEvent;
+
+/**
+ *  The IAutomationManager interface defines the interface expected 
+ *  from an AutomationManager object by the automation module.
+ *  
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Flex 3
+ */
+public interface IAutomationManager 
+        extends IEventDispatcher
+{
+    /**
+     *  Returns the next parent that is visible within the automation hierarchy.
+     *
+     *  @param obj Automation object.
+     *
+     *  @param parentToStopAt Parent of the given automation object.
+     *
+     *  @param ignoreShowInHierarchy Boolean that determines whether object is ignored 
+     *  within the automation hierarchy. The default value is <code>false</code>.    
+     *
+     *  @return Nearest parent of the object visible within the automation 
+     *          hierarchy.
+     *  
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    function getParent(obj:IAutomationObject, 
+                       parentToStopAt:IAutomationObject = null,
+                       ignoreShowInHierarchy:Boolean = false):IAutomationObject;
+        
+    /**
+     *  Returns all children of this object that are visible within the testing
+     *  hierarchy and meet the criteria in the automation part.  
+     *  If a child is not visible within the hierarchy, this method
+     *  returns the children of the invisible child.
+     *  
+     *  @param obj Object for which to get the children.
+     * 
+     *  @param part Criteria of which children to return.
+     * 
+     *  @param ignoreShowInHierarchy Boolean that determines whether object is ignored 
+     *  within the automation hierarchy. The default value is <code>false</code>.    
+     *
+     *  @return Array of children matching the criteria.
+     *  
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    function getChildrenFromIDPart(obj:IAutomationObject,
+                                   part:AutomationIDPart = null,
+                                   ignoreShowInHierarchy:Boolean = false):Array;
+
+    /**
+     *  Returns all children of this object that are visible within the testing
+     *  hierarchy. If a child is not visible within the hierarchy, 
+     *  returns the children of the invisible child.
+     *  
+     *  @param obj Object for which to get the children.
+     *
+     *  @param ignoreShowInHierarchy
+     * 
+     *  @param ignoreShowInHierarchy Boolean that determines whether object is ignored 
+     *  within the automation hierarchy. The default value is <code>false</code>.    
+     *
+     *  @return Array of children.
+     *  
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    function getChildren(obj:IAutomationObject,
+                         ignoreShowInHierarchy:Boolean = false):Array;
+    
+    /**
+     *  Returns the text to display as the description for the object.
+     *  
+     *  @param obj Automation object.
+     * 
+     *  @return Text description of the Automation object.
+     *  
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    function getAutomationName(obj:IAutomationObject):String;
+
+    /**
+     *  Returns the text to display as the type of the object.
+     *
+     *  @param obj Automation object.
+     * 
+     *  @return Type of the object.
+     *  
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    function getAutomationClassName(obj:IAutomationObject):String;
+
+    /**
+     *  Returns the values for a set of properties.
+     *
+     *  @param obj Object for which to get the properties.
+     * 
+     *  @param names Names of the properties to evaluate on the object.
+     * 
+     *  @param forVerification If <code>true</code>, only include verification properties.
+     * 
+     *  @param forDescription If <code>true</code>, only include description properties.
+     * 
+     *  @return Array of objects that contain each property value and descriptor.
+     *  
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    function getProperties(obj:IAutomationObject, 
+                           names:Array = null, 
+                           forVerification:Boolean = true, 
+                           forDescription:Boolean = true):Array;
+    
+    /**
+     * Returns the object implementing the IAutomationTabularData interface through which
+     * the tabular data can be obtained.
+     *
+     *  @param obj An IAutomationObject.
+     * 
+     *  @return An object implementing the IAutomationTabularData interface. 
+     *  
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    function getTabularData(obj:IAutomationObject):IAutomationTabularData;
+
+    /**
+     *  Indicates whether recording is taking place.
+     *  
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    function get recording():Boolean;
+
+    /**
+     *  Indicates whether replay is taking place.
+     *  
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    function get replaying():Boolean;
+
+    /**
+     *  Sets the automation manager to record mode.
+     *  
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    function beginRecording():void;
+
+    /**
+     *  Takes the automation manager out of record mode.
+     *  
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    function endRecording():void;
+
+    /**
+     *  Returns the automation object under the given coordinate.
+     *
+     *  @param x The x coordinate.
+     * 
+     *  @param y The y coordinate.
+     * 
+     *  @return Automation object at that point.
+     *  
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */    
+    function getElementFromPoint(x:int, y:int):IAutomationObject;
+
+    /**
+     *  The display rectangle enclosing the DisplayObject.
+     *
+     *  @param obj DisplayObject whose rectangle is desired.
+     *
+     *  @return An array of four integers: top, left, width and height.
+     *  
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    function getRectangle(obj:DisplayObject):Array;
+
+    /**
+     *  Returns <code>true</code> if an object and all of its parents are visible.
+     *  
+     *  @param obj DisplayObject.
+     *
+     *  @return <code>true</code> if an object and all of its parents are visible.
+     * 
+     *  
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    function isVisible(obj:DisplayObject):Boolean;
+
+    /**
+     *  Resolves an id to an automation object.
+     *
+     *  @param rid Automation id of the automation object.
+     *
+     *  @param currentParent Current parent of the automation object.
+     * 
+     *  @return IAutomationObject which matches with the <code>rid</code>. 
+     *  If no object 
+     *  is found or multiple objects are found, this method throws an exception.
+     *  
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    function resolveIDToSingleObject(rid:AutomationID, 
+                                     currentParent:IAutomationObject = null):IAutomationObject;
+
+    /**
+     *  Resolves an id to automation objects.
+     *  
+     *  @param rid Automation id of the automation object.
+     *
+     *  @param currentParent Current parent of the automation object.
+     * 
+     *  @return An Array containing all the objects matching the <code>rid</code>.
+     *  
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    function resolveID(rid:AutomationID, 
+                       currentParent:IAutomationObject = null):Array;
+            
+    /**
+     *  Resolves an id part to an automation object within the parent.
+     *
+     *  @param parent Parent of the automation object.
+     *
+     *  @param part id part of the automation object.
+     *
+     *  @return IAutomationObject which matches with the <code>part</code>. 
+     *  If no object 
+     *  is found or multiple objects are found, throw an exception.
+     *  
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    function resolveIDPartToSingleObject(parent:IAutomationObject,
+                                         part:AutomationIDPart):IAutomationObject;
+    
+    /**
+     *  Resolves an id part to an Array of automation objects.
+     * 
+     *  @param parent Parent of the automation object.
+     *
+     *  @param part id part of the automation object.
+     *
+     *  @return Array of automation objects which match <code>part</code>.
+     *  
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    function resolveIDPart(parent:IAutomationObject,
+                           part:AutomationIDPart):Array;
+
+    /**
+     *  Returns an id for the given object that can be used 
+     *  with the <code>resolveID()</code> method.
+     *
+     *  @param obj Automation object.
+     *
+     *  @param relativeToParent Parent of the automation object.
+     *  
+     *  @return AutomationID object which represents the Automation object.
+     *  
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    function createID(obj:IAutomationObject, 
+                      relativeToParent:IAutomationObject = null):AutomationID;
+
+    /**
+     *  Returns an id part for the given object that can be used in the <code>resolveIDPart()</code> method.
+     * 
+     *  @param obj The automation object.
+     *
+     *  @param parent Parent of the automation object.
+     *  
+     *  @return AutomationIDPart object which represents the Automation object.
+     *  
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    function createIDPart(obj:IAutomationObject, 
+                          parent:IAutomationObject = null):AutomationIDPart;
+
+    /**
+     *  Indicates whether an automation object should be visible within
+     *  the hierarchy.
+     *
+     *  @param obj The automation object.
+     * 
+     *  @return <code>true</code> if the object should be shown within the
+     *  automation hierarchy.
+     *  
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    function showInHierarchy(obj:IAutomationObject):Boolean;
+
+    /**
+     *  @private
+     */
+    function set automationEnvironment(env:Object):void;
+
+    /**
+     *  The automation environment for this automation manager.
+     *  The automation environment provides information about the
+     *  objects and properties of testable components needed for communicating
+     *  with agent tools.
+     *
+     *  <p>The value of this property must implement the IAutomationEnvironment interface.</p>
+     *
+     *  @see mx.automation.IAutomationEnvironment
+     *  
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    function get automationEnvironment():Object;
+
+    /**
+     *  Increments the cache counter. The automation mechanism  
+     *  caches both an object's properties and its children. The cache
+     *  exists for both performance reasons, and so that an objects state
+     *  prior to a recording can be captured. Each call to the 
+     *  <code>incrementCacheCounter()</code> method
+     *  increments a counter and each call to the 
+     *  <code>decrementCacheCounter()</code> method 
+     *  decrements the cache counter. When the counter reaches zero the
+     *  cache is cleared. 
+     *
+     *  <p>It's important that testing tools only use the
+     *  cache when they are certain that the state of the Flex application
+     *  is frozen and the user cannot interact with it. For example,
+     *  when an automation event is recorded, a testing tool might need to make
+     *  several calls to  the <code>getChildren()</code> method or the
+     * <code>getProperties()</code> method to create a testing
+     *  script line. To do this, it would wrap all the calls up in 
+     *  start/stop cache calls.</p>
+     *
+     *  <p>Internally, the AutomationManager forcibly clears the cache
+     *  before an end-user interaction that might trigger an automation
+     *  event. It then increments the cache counter and decrements the
+     *  counter after the automation event is dispatched. Testing tools can
+     *  prevent the count from reaching zero by calling the <code>incrementCacheCounter()</code> 
+     *  method in their record handler.</p>
+     *
+     *  @return the current cache counter.
+     *  
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    function incrementCacheCounter():int;
+
+    /**
+     *  Decrement the cache counter. The cache is cleared when
+     *  the count reaches zero.
+     *
+     *  @param clearNow If <code>true</code>, clear the cache regardless of the cache counter.
+     * 
+     *  @return Current cache counter.
+     *  
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    function decrementCacheCounter(clearNow:Boolean = false):int;
+
+
+    /**
+     * Tests if the provided target needs to wait until a previous
+     * operation completes.
+     * 
+     * @param target Target to check for synchronization or
+     * <code>null</code> to synchronize on any running operations.
+     * 
+     * @return <code>true</code> if synchronization is complete, <code>false</code> otherwise.
+     *  
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    function isSynchronized(target:IAutomationObject):Boolean;
+
+    /**
+     *  Records the event.
+     *
+     *  @param recorder The automation object on which the event is to be recorded.
+     *
+     *  @param event The actual event which needs to be recorded. 
+     *
+     *  @param cacheable Controls the caching of the event that is recorded. 
+     *  During a mouse-down, mouse-up sequence, the automation mechanism tries to record the most 
+     *  important or suitable event rather than all the events. 
+     *
+     *  For example, if you have a List control which has a button in its item renderer. 
+     *  When the user clicks on the button, the automation mechanism only records 
+     *  the <code>click</code> event for the button, but ignores the <code>select</code> event 
+     *  generated from the List control.
+     *  
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    function recordAutomatableEvent(recorder:IAutomationObject, event:Event,
+                                    cacheable:Boolean = false):void;
+    
+    /**
+     *  Replays the specified event. A component author should call 
+     *  the <code>super.replayAutomatableEvent()</code> method 
+     *  in case default replay behavior has been defined in a superclass.
+     *
+     *  @param event Event to replay.
+     *
+     *  @return <code>true</code> if the replay was successful. 
+     *  
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    function replayAutomatableEvent(event:AutomationReplayEvent):Boolean;
+    
+    
+     /**
+     *  Records the  custom event.
+     *
+     *  @param recordEvent -  The AutomationRecordEvent that specifies that it is a custom evnet; the type is customRecord.
+     *
+     *  For example, if you want to record a custom event without writing a delegate and providing the details
+     *  in an environment file, you can use this interface to record the custom event. You should listen to
+     *  the AutomationPlaybackEvent, handle the replay, and prevent the default on the AutomationPlaybackEvent.
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    function recordCustomAutomationEvent(customEvent:AutomationRecordEvent):Boolean;
+
+}
+
+}

Propchange: incubator/flex/trunk/frameworks/projects/automation_agent/src/mx/automation/IAutomationManager.as
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/flex/trunk/frameworks/projects/automation_agent/src/mx/automation/IAutomationManager.as
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: incubator/flex/trunk/frameworks/projects/automation_agent/src/mx/automation/IAutomationManager2.as
URL: http://svn.apache.org/viewvc/incubator/flex/trunk/frameworks/projects/automation_agent/src/mx/automation/IAutomationManager2.as?rev=1351437&view=auto
==============================================================================
--- incubator/flex/trunk/frameworks/projects/automation_agent/src/mx/automation/IAutomationManager2.as (added)
+++ incubator/flex/trunk/frameworks/projects/automation_agent/src/mx/automation/IAutomationManager2.as Mon Jun 18 18:10:20 2012
@@ -0,0 +1,367 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  Licensed to the Apache Software Foundation (ASF) under one or more
+//  contributor license agreements.  See the NOTICE file distributed with
+//  this work for additional information regarding copyright ownership.
+//  The ASF licenses this file to You under the Apache License, Version 2.0
+//  (the "License"); you may not use this file except in compliance with
+//  the License.  You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+//  Unless required by applicable law or agreed to in writing, software
+//  distributed under the License is distributed on an "AS IS" BASIS,
+//  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//  See the License for the specific language governing permissions and
+//  limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+
+package mx.automation
+{
+
+import flash.display.DisplayObject;
+import flash.events.Event;
+import flash.geom.Point;
+
+/**
+ *  The IAutomationManager interface defines the interface expected 
+ *  from an AutomationManager object by the automation module.
+ *  
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Flex 4
+ */
+public interface IAutomationManager2 
+        extends IAutomationManager
+{
+   
+    /**
+     *  The automation environment for this automation manager.
+     *  The automation environment provides information about the
+     *  objects and properties of testable components needed for communicating
+     *  with agent tools.
+     *
+     *  The value of this property must implement the IAutomationEnvironment interface.
+     *
+     *  @see mx.automation.IAutomationEnvironment
+     *  
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 4
+     */
+    function set automationEnvironmentString(env:String):void;
+	
+	/**
+	 *  Marshalling Support(for tool): The tool class which is responsible for handling 
+	 *  the automation environment.
+	 *  
+	 *  @param className Complete qualified class name of the class in the tool that handles automation.
+	 *  
+	 *  @langversion 3.0
+	 *  @playerversion Flash 9
+	 *  @playerversion AIR 1.1
+	 *  @productversion Flex 4
+	 */
+	function set automationEnvironmentHandlingClassName(className:String):void;
+	
+	/**
+	 *  Marshalling Support(for tool): Returns unique ID of the application considering 
+	 *  the hierarchy using the SWFLoader information and the application name.
+	 *  
+	 *  @langversion 3.0
+	 *  @playerversion Flash 9
+	 *  @playerversion AIR 1.1
+	 *  @productversion Flex 4
+	 */
+	function getUniqueApplicationID():String;
+	
+	/**
+	 *  Marshalling Support(for tool): Returns name of the application from the part id.
+	 * 
+	 *  @param objectID AutomationIDPart from which the application name is obtained. 
+	 * 
+	 *  @langversion 3.0
+	 *  @playerversion Flash 9
+	 *  @playerversion AIR 1.1
+	 *  @productversion Flex 4
+	 */
+   	function getApplicationNameFromAutomationIDPart(objectID:AutomationIDPart):String;
+   
+	/**
+	 *  Marshalling Support(for tool): Returns true if the passed object is a pop up.
+	 *  
+	 *  @param obj IAutomationObject
+	 * 
+	 *  @langversion 3.0
+	 *  @playerversion Flash 9
+	 *  @playerversion AIR 1.1
+	 *  @productversion Flex 4
+	 */
+	function isObjectPopUp(obj:IAutomationObject):Boolean;
+    // passed objectlist contain the objects which has applicationName which obtained for 
+   	// identifying them uniquely in case of the marshalled application.
+   	// this method can be used to indetify the top application when there are multiple application
+   	// at the same point, get element from point.
+	/**
+	 *  Marshalling Support(for tool): Returns the index of top visible object among the passed array of objects.
+	 *  This can be used by tools to identify the topmost Application object when there are 
+	 *  multiple objects from different applications, which belong to different ApplicationDomain or
+	 *  different SecurityDomain, under the mouse. 
+	 * 
+	 *  @param objectList Array of objects
+	 *  
+	 *  @langversion 3.0
+	 *  @playerversion Flash 9
+	 *  @playerversion AIR 1.1
+	 *  @productversion Flex 4
+	 */
+   	function getTopApplicationIndex(objectList:Array):int;
+    
+	/**
+	 *  Marshalling Support(for tool): Adds the passed EventDetails objects to the probable 
+	 *  parent applications in the current ApplicationDomain.
+	 *  AutomationManager identifies the parent applications in the current ApplicationDomain
+	 *  which are responsible to listen to the events from children and adds appropriate listeners
+	 *  obtained from the passed objects.
+	 * 
+	 *  @param eventDetailsArray Array of EventDetails objects.
+	 * 
+	 *  @langversion 3.0
+	 *  @playerversion Flash 9
+	 *  @playerversion AIR 1.1
+	 *  @productversion Flex 4
+	 */
+   	function addEventListenersToAllParentApplications(eventDetailsArray:Array):void;
+	
+	/**
+	 *  Marshalling Support(for tool): Adds the passed EventDetails objects to the probable 
+	 *  child applications in the current ApplicationDomain.
+	 *  AutomationManager identifies the child applications in the current ApplicationDomain
+	 *  as and when the application is loaded, and adds appropriate listeners
+	 *  obtained from the passed objects.
+	 * 
+	 *  @param eventDetailsArray Array of EventDetails objects.
+	 * 
+	 *  @langversion 3.0
+	 *  @playerversion Flash 9
+	 *  @playerversion AIR 1.1
+	 *  @productversion Flex 4
+	 */
+   	function addEventListenersToAllChildApplications(eventDetailsArray:Array):void;
+	
+	/**
+	 *  Marshalling Support(for tool): Dispatches event to parent applications.
+	 * 
+	 *  @param event Event to be dispatched.
+	 * 
+	 *  @langversion 3.0
+	 *  @playerversion Flash 9
+	 *  @playerversion AIR 1.1
+	 *  @productversion Flex 4
+	 */
+   	function dispatchToParent(event:Event):void;
+	
+	/**
+	 *  Marshalling Support(for tool): Dispatches event to all children.
+	 * 
+	 *  @param event Event to be dispatched.
+	 *  
+	 *  @langversion 3.0
+	 *  @playerversion Flash 9
+	 *  @playerversion AIR 1.1
+	 *  @productversion Flex 4
+	 */
+	function dispatchToAllChildren(event:Event):void;
+
+
+	// these methods are for delegates to communicate to automation Manager
+	/**
+	 *  Marshalling Support(for delegates): Stores the drag proxy to enable
+	 *  inter-application drag-drop.DragProxy created in one application should be 
+	 *  accessible by another application if required. 
+	 *  
+	 *  @param DragProxy object
+	 * 
+	 *  @langversion 3.0
+	 *  @playerversion Flash 9
+	 *  @playerversion AIR 1.1
+	 *  @productversion Flex 4
+	 */	
+	function storeDragProxy(dragProxy:Object):void; // used by dragmanagerAutomationImpl
+	
+	/**
+	 *  Marshalling Support(for delegates):Returns the number of pop up children of the 
+	 *  top level application. All pop up objects created in an application are added as 
+	 *  pop up children to the top level application of its ApplicationDomain. 
+	 *  
+	 *  @return Number of pop up children
+	 * 
+	 *  @langversion 3.0
+	 *  @playerversion Flash 9
+	 *  @playerversion AIR 1.1
+	 *  @productversion Flex 4
+	 */
+	function getPopUpChildrenCount():Number;
+	
+	/**
+	 *  Marshalling Support(for delegates):Returns array of pop up objects of the top level application.
+	 *  All pop up objects created in an application are added as 
+	 *  pop up children to the top level application of its ApplicationDomain. 
+	 * 
+	 *  @return Array of pop up children
+	 * 
+	 *  @langversion 3.0
+	 *  @playerversion Flash 9
+	 *  @playerversion AIR 1.1
+	 *  @productversion Flex 4
+	 */
+	function getPopUpChildren():Array;
+  
+	/**
+	 *  Marshalling Support(for delegates):Returns array of pop up objects of the root application.
+	 *  All pop up objects created in an application are added as 
+	 *  pop up children to the top level application of its ApplicationDomain. 
+	 *  
+	 *  @param index at which the object is to be retrieved 
+	 * 
+	 *  @return IAutomationObject at the given index
+	 *  
+	 *  @langversion 3.0
+	 *  @playerversion Flash 9
+	 *  @playerversion AIR 1.1
+	 *  @productversion Flex 4
+	 */
+	function getPopUpChildObject(index:int):IAutomationObject;
+   	
+	/**
+	 *  Marshalling Support(for delegates): When a new application is added, application delegate
+	 *  registers itself so that appropriate listeners are added to that in order to support 
+	 *  Marshalling.
+	 * 
+	 *  @param DisplayObject Application object to be registered. 
+	 * 
+	 *  @langversion 3.0
+	 *  @playerversion Flash 9
+	 *  @playerversion AIR 1.1
+	 *  @productversion Flex 4
+	 */
+	function registerNewApplication(application:DisplayObject):void
+   	
+	/**
+	 *  AIR Support(for delegates): When a new window is added, WindowedApplication delegate registers
+	 *  the new window object so that a unique id is created for that window.
+	 * 
+	 *  @param newWindow Window object to be registered. 
+	 * 
+	 *  @langversion 3.0
+	 *  @playerversion Flash 9
+	 *  @playerversion AIR 1.1
+	 *  @productversion Flex 4
+	 */
+	function registerNewWindow(newWindow:DisplayObject):void
+   	
+	/**
+	 *  AIR Support(for delegates): When a FlexNativeMenu is added to a component, its delegate
+	 *  registers the new FlexNativeMenu object and creates a delegate.
+	 *  
+	 *  @param menu FlexNativeMenu object to be registered.
+	 * 
+	 *  @param sm SystemManager of the component in which FlexNativeMenu is added.  
+	 * 
+	 *  @langversion 3.0
+	 *  @playerversion Flash 9
+	 *  @playerversion AIR 1.1
+	 *  @productversion Flex 4
+	 */
+	function registerNewFlexNativeMenu(menu:Object, sm:DisplayObject):void
+   	
+	/**
+	 *  AIR support(for tool): Returns the unique id of the window object.
+	 *  
+	 *  @param DisplayObject window whose id is to required.
+	 * 
+	 *  @return String 
+	 * 
+	 *  @langversion 3.0
+	 *  @playerversion Flash 9
+	 *  @playerversion AIR 1.1
+	 *  @productversion Flex 4
+	 */
+	function getAIRWindowUniqueID(newWindow:DisplayObject):String;
+   	
+	/**
+	 *  AIR support(for tool): Returns the window with the passed id.
+	 * 
+	 *  @param windowId id of the window
+	 *  
+	 *  @return Window with passed id.
+	 * 
+	 *  @langversion 3.0
+	 *  @playerversion Flash 9
+	 *  @playerversion AIR 1.1
+	 *  @productversion Flex 4
+	 */
+	function getAIRWindow(windowId:String):DisplayObject;
+   	
+	/**
+	 *  AIR support(for tool): Returns the automation object under the given coordinate in a window.
+	 *
+	 *  @param x The x coordinate.
+	 * 
+	 *  @param y The y coordinate.
+	 *  
+	 *  @param windowId The window on which the object is to be identified.
+	 * 
+	 *  @return Automation object at that point.
+	 * 
+	 *  @langversion 3.0
+	 *  @playerversion Flash 9
+	 *  @playerversion AIR 1.1
+	 *  @productversion Flex 4
+	 */
+	function getElementFromPoint2(x:int, y:int,windowId:String ):IAutomationObject;
+   	
+	/**
+	 *  AIR support(for tool): Returns the unique ID of window from the object ID.
+	 *  Object ID has application ID and window ID.
+	 * 
+	 *  @param objectID The object ID from which unique ID of the window is to be obtained.
+	 * 
+	 *  @langversion 3.0
+	 *  @playerversion Flash 9
+	 *  @playerversion AIR 1.1
+	 *  @productversion Flex 4
+	 */
+	function getAIRWindowUniqueIDFromObjectIDString(objectId:String ):String;
+   	
+	/**
+	 *  AIR support(for tool): Returns the unique ID of window from the automation ID part.
+	 *  Automation ID part has application ID and window ID.
+	 * 
+	 *  @param objectIdPart The AutomationIDPart from which unique ID of the window is to be obtained.
+	 * 
+	 *  @langversion 3.0
+	 *  @playerversion Flash 9
+	 *  @playerversion AIR 1.1
+	 *  @productversion Flex 4
+	 */
+	function getAIRWindowUniqueIDFromAutomationIDPart(objectIdPart:AutomationIDPart):String;
+   	
+	/**
+	 *  AIR support(for tool): Used by Flex application loaded from AIR application, 
+	 *  to get the start point of main AIR application in screen coordinates
+	 *  
+	 *  @param windowId
+	 *  
+	 *  @langversion 3.0
+	 *  @playerversion Flash 9
+	 *  @playerversion AIR 1.1
+	 *  @productversion Flex 4
+	 */
+	function getStartPointInScreenCoordinates(windowId:String):Point;
+}   
+
+}

Propchange: incubator/flex/trunk/frameworks/projects/automation_agent/src/mx/automation/IAutomationManager2.as
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/flex/trunk/frameworks/projects/automation_agent/src/mx/automation/IAutomationManager2.as
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: incubator/flex/trunk/frameworks/projects/automation_agent/src/mx/automation/IAutomationMethodDescriptor.as
URL: http://svn.apache.org/viewvc/incubator/flex/trunk/frameworks/projects/automation_agent/src/mx/automation/IAutomationMethodDescriptor.as?rev=1351437&view=auto
==============================================================================
--- incubator/flex/trunk/frameworks/projects/automation_agent/src/mx/automation/IAutomationMethodDescriptor.as (added)
+++ incubator/flex/trunk/frameworks/projects/automation_agent/src/mx/automation/IAutomationMethodDescriptor.as Mon Jun 18 18:10:20 2012
@@ -0,0 +1,111 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  Licensed to the Apache Software Foundation (ASF) under one or more
+//  contributor license agreements.  See the NOTICE file distributed with
+//  this work for additional information regarding copyright ownership.
+//  The ASF licenses this file to You under the Apache License, Version 2.0
+//  (the "License"); you may not use this file except in compliance with
+//  the License.  You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+//  Unless required by applicable law or agreed to in writing, software
+//  distributed under the License is distributed on an "AS IS" BASIS,
+//  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//  See the License for the specific language governing permissions and
+//  limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+
+package mx.automation
+{
+
+import flash.events.Event;
+import mx.core.mx_internal;
+import mx.automation.events.AutomationReplayEvent;
+
+use namespace mx_internal;
+
+/**
+ *  The IAutomationMethodDescriptor interface defines the interface for a method descriptor.
+ *  
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Flex 3
+ */
+public interface IAutomationMethodDescriptor
+{
+    /**
+     *  The name of the method.
+     *
+     *  @return The method name.
+     *  
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    function get name():String;
+
+    /**
+     *  The return type of the method.
+     *
+     *  @return The return type. 
+     *  
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    function get returnType():String;
+
+    /**
+     *  Returns an Array of argument descriptors for this method.
+     *  
+     *  @param obj Instance of the IAutomationObject that
+     *         supports this method.
+     *
+     *  @return Array of argument descriptors for this method.
+     *  
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    function getArgDescriptors(obj:IAutomationObject):Array;
+
+    /**
+     *  Encodes an automation event arguments into an Array.
+     *  Not all method descriptors support recording.
+     *
+     *  @param event Automation event that is being recorded.
+     *
+     *  @return Array of argument descriptors.
+     *  
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    function record(target:IAutomationObject, event:Event):Array;
+
+    /**
+     *  Decodes an argument array and invokes a method.
+     *
+     *  @param target Automation object to replay the method on.
+     * 
+     *  @param args Array of argument values and descriptors to
+     *         be used to invoke the method.
+     *
+     *  @return Whatever the method invoked returns.
+     *  
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    function replay(target:IAutomationObject, args:Array):Object;
+}
+
+}

Propchange: incubator/flex/trunk/frameworks/projects/automation_agent/src/mx/automation/IAutomationMethodDescriptor.as
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/flex/trunk/frameworks/projects/automation_agent/src/mx/automation/IAutomationMethodDescriptor.as
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: incubator/flex/trunk/frameworks/projects/automation_agent/src/mx/automation/IAutomationMouseSimulator.as
URL: http://svn.apache.org/viewvc/incubator/flex/trunk/frameworks/projects/automation_agent/src/mx/automation/IAutomationMouseSimulator.as?rev=1351437&view=auto
==============================================================================
--- incubator/flex/trunk/frameworks/projects/automation_agent/src/mx/automation/IAutomationMouseSimulator.as (added)
+++ incubator/flex/trunk/frameworks/projects/automation_agent/src/mx/automation/IAutomationMouseSimulator.as Mon Jun 18 18:10:20 2012
@@ -0,0 +1,71 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  Licensed to the Apache Software Foundation (ASF) under one or more
+//  contributor license agreements.  See the NOTICE file distributed with
+//  this work for additional information regarding copyright ownership.
+//  The ASF licenses this file to You under the Apache License, Version 2.0
+//  (the "License"); you may not use this file except in compliance with
+//  the License.  You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+//  Unless required by applicable law or agreed to in writing, software
+//  distributed under the License is distributed on an "AS IS" BASIS,
+//  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//  See the License for the specific language governing permissions and
+//  limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+
+package mx.automation
+{
+import flash.display.DisplayObject;
+
+/**
+ * The IAutomationMouseSimulator interface describes an object 
+ * that simulates mouse movement so that components
+ * capturing the mouse use the simulated versions of the mouse
+ * cursor instead of the live Flash Player version. Implementors of
+ * the IUIComponent interface should override the 
+ * <code>mouseX</code> and <code>mouseY</code> properties and
+ * call the active simulator's version if a simulator is present.
+ *
+ *  @see mx.core.IUIComponent
+ *  
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Flex 3
+ */
+public interface IAutomationMouseSimulator
+{
+    /**
+     *  Called when a DisplayObject retrieves the <code>mouseX</code> property.
+     *
+     *  @param item DisplayObject that simulates mouse movement.
+     *
+     *  @return The x coordinate of the mouse position relative to item.
+     *  
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    function getMouseX(item:DisplayObject):Number;
+
+    /**
+     *  Called when a DisplayObject retrieves <code>mouseY</code> property.
+     *
+     *  @param item DisplayObject that simulates mouse movement.
+     *
+     *  @return The y coordinate of the mouse position relative to item.
+     *  
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    function getMouseY(item:DisplayObject):Number;
+}
+
+}

Propchange: incubator/flex/trunk/frameworks/projects/automation_agent/src/mx/automation/IAutomationMouseSimulator.as
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/flex/trunk/frameworks/projects/automation_agent/src/mx/automation/IAutomationMouseSimulator.as
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: incubator/flex/trunk/frameworks/projects/automation_agent/src/mx/automation/IAutomationObject.as
URL: http://svn.apache.org/viewvc/incubator/flex/trunk/frameworks/projects/automation_agent/src/mx/automation/IAutomationObject.as?rev=1351437&view=auto
==============================================================================
--- incubator/flex/trunk/frameworks/projects/automation_agent/src/mx/automation/IAutomationObject.as (added)
+++ incubator/flex/trunk/frameworks/projects/automation_agent/src/mx/automation/IAutomationObject.as Mon Jun 18 18:10:20 2012
@@ -0,0 +1,315 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  Licensed to the Apache Software Foundation (ASF) under one or more
+//  contributor license agreements.  See the NOTICE file distributed with
+//  this work for additional information regarding copyright ownership.
+//  The ASF licenses this file to You under the Apache License, Version 2.0
+//  (the "License"); you may not use this file except in compliance with
+//  the License.  You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+//  Unless required by applicable law or agreed to in writing, software
+//  distributed under the License is distributed on an "AS IS" BASIS,
+//  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//  See the License for the specific language governing permissions and
+//  limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+
+package mx.automation
+{
+
+import flash.events.Event;
+import flash.display.DisplayObject;
+import flash.display.DisplayObjectContainer;
+import flash.events.MouseEvent;
+
+/**
+ * The IAutomationObject interface defines the interface 
+ * for a delegate object that implements automation
+ * for a component.
+ *  
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Flex 3
+ */
+public interface IAutomationObject 
+{
+    //--------------------------------------------------------------------------
+    //
+    //  Properties
+    //
+    //--------------------------------------------------------------------------
+
+    //----------------------------------
+    //  automationDelegate
+    //----------------------------------
+
+    /**
+     *  The delegate object that is handling the automation-related functionality.
+     *  Automation sets this when it creates the delegate object.
+     *  
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    function get automationDelegate():Object;
+
+    /**
+     *  @private
+     */
+    function set automationDelegate(delegate:Object):void;
+
+    //----------------------------------
+    //  automationName
+    //----------------------------------
+
+    /**
+     *  Name that can be used as an identifier for this object.
+     *  
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    function get automationName():String;
+
+    /**
+     *  @private
+     */
+    function set automationName(name:String):void;
+
+    //----------------------------------
+    //  automationValue
+    //----------------------------------
+
+    /**
+     *  This value generally corresponds to the rendered appearance of the 
+     *  object and should be usable for correlating the identifier with
+     *  the object as it appears visually within the application.
+     *  
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    function get automationValue():Array;
+    
+    /**
+     *  The owner of this component for automation purposes.
+     * 
+     *  @see mx.core.IVisualElement#owner
+     * 
+     *  @return The owner of this component
+     *  
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 4
+     */
+    function get automationOwner():DisplayObjectContainer;
+    
+    /**
+     *  The parent of this component for automation purposes.
+     * 
+     *  @see mx.core.IVisualElement#parent
+     * 
+     *  @return The parent of this component
+     *  
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 4
+     */
+    function get automationParent():DisplayObjectContainer;
+    
+    /**
+     *  True if this component is enabled for automation, false
+     *  otherwise.
+     * 
+     *  @see mx.core.IUIComponent#enabled
+     * 
+     *  @return <code>true</code> if this component is enabled for automation,
+     *          <code>false</code> otherwise.
+     *  
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 4
+     */
+    function get automationEnabled():Boolean;
+    
+    /**
+     *  True if this component is visible for automation, false
+     *  otherwise.
+     * 
+     *  @see flash.display.DisplayObject#visible
+     * 
+     *  @return <code>true</code> if this component is visible for automation,
+     *          <code>false</code> otherwise.
+     *  
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 4
+     */
+    function get automationVisible():Boolean;
+ 
+    /**
+     *  Returns a set of properties that identify the child within 
+     *  this container.  These values should not change during the
+     *  lifespan of the application.
+     *  
+     *  @param child Child for which to provide the id.
+     * 
+     *  @return Sets of properties describing the child which can
+     *          later be used to resolve the component.
+     *  
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    function createAutomationIDPart(child:IAutomationObject):Object;
+	
+	/**
+	 *  Returns a set of properties that identify the child within 
+	 *  this container.  These values should not change during the
+	 *  lifespan of the application.
+	 *  
+	 *  @param child Child for which to provide the id.
+	 * 
+	 *  @return Sets of properties describing the child which can
+	 *          later be used to resolve the component.
+	 *  
+	 *  @langversion 3.0
+	 *  @playerversion Flash 9
+	 *  @playerversion AIR 1.1
+	 *  @productversion Flex 3
+	 */
+	function createAutomationIDPartWithRequiredProperties(child:IAutomationObject, properties:Array):Object;
+	
+
+    /**
+     *  Resolves a child by using the id provided. The id is a set 
+     *  of properties as provided by the <code>createAutomationIDPart()</code> method.
+     *
+     *  @param criteria Set of properties describing the child.
+     *         The criteria can contain regular expression values
+     *         resulting in multiple children being matched.
+     *  @return Array of children that matched the criteria
+     *          or <code>null</code> if no children could not be resolved.
+     *  
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    function resolveAutomationIDPart(criteria:Object):Array;
+
+	/** 
+	 *  Provides the automation object list .  This list
+	 *  does not include any children that are composites.
+	 *
+		 * 
+	 *  @return The children .
+	 *  
+	 *  @langversion 3.0
+	 *  @playerversion Flash 9
+	 *  @playerversion AIR 1.1
+	 *  @productversion Flex 3
+	 */
+	function getAutomationChildren():Array;
+	
+    /** 
+     *  Provides the automation object at the specified index.  This list
+     *  should not include any children that are composites.
+     *
+     *  @param index The index of the child to return
+     * 
+     *  @return The child at the specified index.
+     *  
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    function getAutomationChildAt(index:int):IAutomationObject;
+
+    /**
+     *  The number of automation children this container has.
+     *  This sum should not include any composite children, though
+     *  it does include those children not significant within the
+     *  automation hierarchy.
+     *  
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    function get numAutomationChildren():int;
+
+    /** 
+     *  A flag that determines if an automation object
+     *  shows in the automation hierarchy.
+     *  Children of containers that are not visible in the hierarchy
+     *  appear as children of the next highest visible parent.
+     *  Typically containers used for layout, such as boxes and Canvas,
+     *  do not appear in the hierarchy.
+     *
+     *  <p>Some controls force their children to appear
+     *  in the hierarchy when appropriate.
+     *  For example a List will always force item renderers,
+     *  including boxes, to appear in the hierarchy.
+     *  Implementers must support setting this property
+     *  to <code>true</code>.</p>
+     *  
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    function get showInAutomationHierarchy():Boolean;
+
+    /**
+     *  @private
+     */
+    function set showInAutomationHierarchy(value:Boolean):void;
+   
+    /**
+     * An implementation of the <code>IAutomationTabularData</code> interface, which 
+     * can be used to retrieve the data.
+     * 
+     * @return An implementation of the <code>IAutomationTabularData</code> interface.
+     *  
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    function get automationTabularData():Object;
+
+    /**
+     *  Replays the specified event.  A component author should probably call 
+     *  super.replayAutomatableEvent in case default replay behavior has been defined 
+     *  in a superclass.
+     *
+     *  @param event The event to replay.
+     *
+     *  @return <code>true</code> if a replay was successful.  
+     *  
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    function replayAutomatableEvent(event:Event):Boolean;
+	
+	
+	
+}
+
+}

Propchange: incubator/flex/trunk/frameworks/projects/automation_agent/src/mx/automation/IAutomationObject.as
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/flex/trunk/frameworks/projects/automation_agent/src/mx/automation/IAutomationObject.as
------------------------------------------------------------------------------
    svn:mime-type = text/plain