MODULE DESCRIPTION: Routines and utilities to work on SQA Type=TREEVIEW objects in Data-Driven Automation with Robot V2001. SUPPORTED ACTION COMMANDS: VerifySelectedNode 'verify a Node is selected VerifyNodeUnselected 'verify a Node IS NOT SELECTED SelectStateIcon 'select a state icon according to its text value VerifyStateIcon 'verify a particular state icon is selected VerifyStateIconUnselected 'verify a particular state icon is NOT SELECTED ExpandTextNode 'Expand a Node at Text Label (deprecated for Expand) CollapseTextNode 'Collapse a Node at Text Label (deprecated for Collapse) SelectTextNode 'Select a Node at Text Label (deprecated for Select) RightClickTextNode 'Right click a Node at Text Label (deprecated for RightClick) Expand 'Expand a Node (full path specified) at Text Label ExpandPartial 'Expand a Node (full path specified) at Text Label based on a partial text match Collapse 'Collapse a Node (full path specified) at Text Label CollapsePartial 'Collapse a Node (full path specified) at Text Label based on a partial text match Select 'Select a Node (full path specified) at Text Label SelectPartial 'Select a Node (full path specified) at Text Label based on a partial text match ClickPartial 'Click a Node (full path specified) at Text Label based on a partial text match DoubleClickPartial 'DoubleClick a Node (full path specified) at Text Label based on a partial text match RightClickPartial 'RightClick a Node (full path specified) at Text Label based on a partial text match ClickTextNode 'Click a Node (full path specified) at Text Label RightClickTextNode 'RightClick a Node (full path specified) at Text Label DoubleClickTextNode 'DoubleClick a Node (full path specified) at Text Label ClickUnverifiedTextNode 'Clicks a Node (full path specified) at Text Label -- does not verify the Nodes.count property DoubleClickUnverifiedTextNode 'DoubleClicks a Node (full path specified) at Text Label -- does not verify the Nodes.count property RightClickUnverifiedTextNode 'RightClicks a Node (full path specified) at Text Label -- does not verify the Nodes.count property SelectUnverifiedTextNode 'Clicks a Node (full path specified) at Text Label -- does not verify the Nodes.count property ActivateUnverifiedTextNode 'DoubleClicks a Node (full path specified) at Text Label -- does not verify the Nodes.count property CaptureTreeDataToFile 'Captures Tree node information (full branch path specified) to a file PartialMatchTreeDataToFile 'Captures Tree node information (partial branch path specified) to a file VerifyTreeContainsNode 'Verify that a Node (full path specified) is present in a Tree VerifyTreeContainsPartialMatch 'Verify that a Node (partial path specified) is present in a Tree SetTreeContainsNode 'Set a variable to reflect that a Node (full path specified) is present in a Tree SetTreeContainsPartialMatch 'Set a variable to reflect that a Node (partial path specified) is present in a Tree Orig Author: Carl Nagle Orig Date: AUG 06, 1999 History: AUG 06, 1999 Original Release APR 27, 2000 (CANAGL) Enabled optional quoted text OCT 17, 2002 (CANAGL) Reroute fallback to GenericObjectFunctions. OCT 22, 2002 (CANAGL) Warn of unimplemented TF and TW record types. DEC 12, 2002 (CANAGL) Added support for XSLComponentActions.MAP JAN 06, 2003 (MEVENK) Added RightClickTextNode command. JAN 23, 2003 (YWANG) Added various commands that take advange of the object data functions; deprecated some old commands APR 04, 2003 (MEVENK) Added SelectUnverifiedTextNode command DEC 03, 2003 (CANAGL) Added ability to select Nth matching text item. Also added RightClickUnverified and ActivateUnverified commands. Fixed a fullpath selection problem, too. MAY 03, 2005 (BOLAWL) Added CaptureTreeDataToFile command(s) JUN 10, 2005 (CANAGL) Added branch for .NET controls in ClickFullPathNode JUL 27, 2005 (CANAGL) Differentiate .NET for V2003 support SEP 02, 2005 (bolawl) Updated TVFCaptureTreeDataToFile() to better handle not including rows without data. RJL SEP 08, 2005 (bolawl) Updated TVFCaptureTreeDataToFile() to handle partial matching of the root node. RJL Updated TVFCaptureTreeDataToFile() to improve success and failure messages. RJL Updated TVFCaptureTreeDataToFile() to trim off hidden root node in Java trees before logging success. RJL OCT 18, 2005 (CANAGL) Changed Click variants to ClickTextNode variants JAN 11, 2006 (bolawl) Updated TVFCaptureTreeDataToFile() to format output file with new optional parameter indentMark (default is tab chr(9)). RJL JAN 17, 2006 (bolawl) Added TVFVerifyTreeContainsNode commands. RJL Copyright (1999) SAS Institute GNU General Public License: http://www.opensource.org/licenses/gpl-license.phpDeclarations Constants Global Variables User-Defined Types Routine Details
Const ComponentType = "TREEVIEW" ' Valid TESTCOMMANDS Const VERIFY_SELECTED_NODE_COMMAND = "VerifySelectedNode" Const VERIFY_NODE_UNSELECTED_COMMAND = "VerifyNodeUnselected" Const EXPAND_TEXT_NODE_COMMAND = "ExpandTextNode" Const COLLAPSE_TEXT_NODE_COMMAND = "CollapseTextNode" Const SELECT_TEXT_NODE_COMMAND = "SelectTextNode" Const RIGHT_CLICK_TEXT_NODE_COMMAND_DEPRECATED = "SelectUnverifiedTextNodeRightClick" Const SELECT_STATE_ICON_COMMAND = "SelectStateIcon" Const CHECK_TEXT_NODE_COMMAND = "CheckTextNode" Const UNCHECK_TEXT_NODE_COMMAND = "UncheckTextNode" Const VERIFY_SELECTED_STATEICON_COMMAND = "VerifyStateIcon" Const VERIFY_STATEICON_UNSELECTED_COMMAND = "VerifyStateIconUnselected" Const VERIFY_TEXT_NODE_CHECKED_COMMAND = "VerifyTextNodeChecked" Const VERIFY_TEXT_NODE_UNCHECKED_COMMAND = "VerifyTextNodeUnChecked" Const EXPAND_COMMAND = "Expand" Const EXPAND_PARTIAL_COMMAND = "ExpandPartial" Const COLLAPSE_COMMAND = "Collapse" Const COLLAPSE_PARTIAL_COMMAND = "CollapsePartial" Const SELECT_COMMAND = "Select" Const SELECT_PARTIAL_COMMAND = "SelectPartial" Const CLICK_COMMAND = "ClickTextNode" Const RIGHT_CLICK_COMMAND = "RightClickTextNode" Const DOUBLE_CLICK_COMMAND = "DoubleClickTextNode" Const CLICK_PARTIAL_COMMAND = "ClickPartial" Const DOUBLE_CLICK_PARTIAL_COMMAND = "DoubleClickPartial" Const RIGHT_CLICK_PARTIAL_COMMAND = "RightClickPartial" Const CLICK_UNVERIFIED_TEXT_NODE_COMMAND = "ClickUnverifiedTextNode" Const DOUBLECLICK_UNVERIFIED_TEXT_NODE_COMMAND = "DoubleClickUnverifiedTextNode" Const RIGHTCLICK_UNVERIFIED_TEXT_NODE_COMMAND = "RightClickUnverifiedTextNode" Const SELECT_UNVERIFIED_TEXT_NODE_COMMAND = "SelectUnverifiedTextNode" Const ACTIVATE_UNVERIFIED_TEXT_NODE_COMMAND = "ActivateUnverifiedTextNode" Const TVF_CAPTURE_TREEDATA_TO_FILE_COMMAND = "CaptureTreeDataToFile" Const TVF_CAPTURE_TREEDATA_PARTIAL_TO_FILE_COMMAND = "PartialMatchTreeDataToFile" Const TVF_VERIFY_TREE_CONTAINS_NODE_COMMAND = "VerifyTreeContainsNode" Const TVF_VERIFY_TREE_CONTAINS_PARTIAL_COMMAND = "VerifyTreeContainsPartialMatch" Const TVF_SET_TREE_CONTAINS_NODE_COMMAND = "SetTreeContainsNode" Const TVF_SET_TREE_CONTAINS_PARTIAL_COMMAND = "SetTreeContainsPartialMatch" CONST EXPAND_ACTION = 1 CONST COLLAPSE_ACTION = 2 CONST SELECT_ACTION = 3 Const CLICK_ACTION = 4 Const RIGHT_CLICK_ACTION = 5 Const DOUBLE_CLICK_ACTION = 6 Const NODE_DELIMIT = "->"
(none)
(none)
Sub ExpandTextNode (Optional mode) DESCRIPTION: Routine to expand a node according to its text value. The routine now supports specifying a matchIndex for matching duplicate nodes in the tree (the same full path). PARAMETERS: mode 0 = ExpandTextNode command 1 = CollapseTextNode command ERRORS: none Orig Author: Carl Nagle Orig Date: AUG 06, 1999 History: AUG 06, 1999 Original Release MAY 24, 2000 Convert for Robot2000. JAN 23, 2002 (YWANG) Deprecated for Expand DEC 03, 2003 (CANAGL) Added Nth duplicate match capability and mode to integrate CollapseTextNode code.
Sub CollapseTextNode () Integrated into ExpandTextNode DESCRIPTION: Routine to collapse a node according to its text value. The routine now supports specifying a matchIndex for matching duplicate nodes in the tree (the same full path). ERRORS: none Orig Author: Carl Nagle Orig Date: AUG 06, 1999 History: AUG 09, 1999 Original Release MAY 24, 2000 Convert for Robot2000. JAN 23, 2002 (YWANG) Deprecated for Collapse DEC 03, 2003 (CANAGL) Integrated into ExpandTextNode as mode=1
Sub VerifySelectedNode (Optional mode) DESCRIPTION: Routine to verify a particular text is selected. PARAMETERS: mode 0 = VerifySelectedNode command 1 = VerifyNodeUnselected command ERRORS: none Orig Author: Carl Nagle Orig Date: APR 03, 2000 History: APR 03, 2000 Original Release DEC 03, 2003 (CANAGL) Integrate VerifyNodeUnselected code.
Sub VerifyStateIcon (Optional mode) DESCRIPTION: Routine to verify a particular state icon is selected. The routine now supports specifying a matchIndex for matching duplicate nodes in the tree (the same full path). PARAMETERS: mode 0 = VerifySelectedNode command 1 = VerifyNodeUnselected command ERRORS: none Orig Author: Orig Date: JUNE 13, 2002 History: JUN 13, 2002 (Monica Vong) Original Release DEC 03, 2003 (CANAGL) Added Nth duplicate match capability and mode to integrate VerifyStateIconUnselected code.
Sub VerifyStateIconUnselected () Integrated into VerifyStateIconSelected DESCRIPTION: Routine to verify a particular state icon is NOT SELECTED. The routine now supports specifying a matchIndex for matching duplicate nodes in the tree (the same full path). ERRORS: none Orig Author: Orig Date: JUNE 13, 2002 History: JUNE 13, 2002 (Monica Vong) Original Release DEC 03, 2003 (CANAGL) Integrated into VerifyStateIconSelected as mode=1
Sub VerifyNodeUnselected () Integrated into VerifySelectedNode DESCRIPTION: Routine to verify a particular text node is NOT SELECTED. The routine now supports specifying a matchIndex for matching duplicate nodes in the tree (the same full path). ERRORS: none Orig Author: Carl Nagle Orig Date: APR 03, 2000 History: APR 03, 2000 Original Release DEC 03, 2003 (CANAGL) Integrated into VerifySelectedNode as mode=1
Sub SelectTextNode (Optional location) DESCRIPTION: Routine to select a node or state icon according to its text value. The routine now supports specifying a matchIndex for matching duplicate nodes in the tree (the same full path). ERRORS: none Orig Author: Carl Nagle Orig Date: AUG 06, 1999 History: AUG 06, 1999 Original Release MAY 24, 2000 Convert for Robot2000. JUNE 13, 2002 (Monica Vong) Added the Optional location. JAN 23, 2002 (YWANG) Deprecated for Select DEC 03, 2003 (CANAGL) Added Nth duplicate match capability.
Sub RightClickUnverifiedTextNode () Integrated into SelectUnverifiedText DESCRIPTION: Routine to right click a node according to its text value. ERRORS: none Orig Author: Meera Venkataramani Orig Date: JAN 06, 2003 History: JAN 06, 2003 Original Release JAN 23, 2003 (YWANG) Deprecated for RightClick DEC 03, 2003 (CANAGL) Integrated into SelectUnverifiedText code.
Sub SelectUnverifiedTextNode () DESCRIPTION: Routine to click a node according to its text value. Supports: ClickUnverified (Click) DoubleClickUnverified (DblClick) RightClickUnverified (Right_Click) SelectUnverified (Click) ActivateUnverified (DblClick) The routine now supports specifying a matchIndex for matching duplicate nodes in the tree (the same full path). Note the command needs the full hierarchical path to the node with parent child relationships separated by "->", as in "Parent->Branch->Leaf". ERRORS: none Orig Author: Meera Venkataramani Orig Date: April 04, 2003 History: APR 04, 2003 Original Release DEC 03, 2003 (CANAGL) Added Nth duplicate match capability and mode to integrate RightClick support. Added ActivateUnverified, too.
Sub PerformAction (EXPAND_ACTION, Optional mode, Optional location) DESCRIPTION: Routine to expand a node according to its text value. Parent-child relationships are separated with "->" The routine expects that the given object already has Context or Focus. It also expects that Global StepDriverTestInfo contains all the information it needs to perform its function. PARAMETERS: mode Optional parameter indicating node text match method. 0 for exact match. 1 for partial match. Default is 0. location Location for the mouse click. Ignored for EXPAND_ACTION. DATA TABLE PARAMETERS: FLD CONTENT --- ------------------------------ 5 Case-sensitive text of node to expand. Parent-child relationships are separated with "->" Example: "My New Parent->My Stepchild" For "...Partial" commands: ------------------------------ TextValue is the case-insensitive text of the node to expand. For each level, a text comparison is performed. If the node contains the requested substring anywhere in its text, then that node is considered a match. Example: "parent->child" will successfully identify the node "My New Parent->My Stepchild" ERRORS: none Orig Author: Yuesong Wang Orig Date: JAN 22, 2003 History: JAN 22, 2003 Original Release DEC 03, 2003 (CANAGL) Added ability to select Nth matching text item.
Sub PerformAction (COLLAPSE_ACTION, Optional mode, Optional location) DESCRIPTION: Routine to collapse a node according to its text value. Parent-child relationships are separated with "->" The routine expects that the given object already has Context or Focus. It also expects that Global StepDriverTestInfo contains all the information it needs to perform its function. PARAMETERS: mode Optional parameter indicating node text match method. 0 for exact match. 1 for partial match. Default is 0. location Location for the mouse click. Ignored for COLLAPSE_ACTION. DATA TABLE PARAMETERS: FLD CONTENT --- ------------------------------ 5 Case-sensitive text of node to collapse Parent-child relationships are separated with "->" Example: "My New Parent->My Stepchild" For "...Partial" commands: ------------------------------ TextValue is the case-insensitive text of the node. For each level, a text comparison is performed. If the node contains the requested substring anywhere in its text, then that node is considered a match. Example: "parent->child" will successfully identify the node "My New Parent->My Stepchild" ERRORS: none Orig Author: Yuesong Wang Orig Date: JAN 22, 2003 History: JAN 22, 2003 Original Release
Sub PerformAction (SELECT_ACTION, Optional mode, Optional location) DESCRIPTION: Routine to select a node according to its text value. Parent-child relationships are separated with "->" The routine expects that the given object already has Context or Focus. It also expects that Global StepDriverTestInfo contains all the information it needs to perform its function. PARAMETERS: mode Optional parameter indicating node text match method. 0 for exact match. 1 for partial match. Default is 0. location Optional. Location for the mouse click. One of the valid values for SQA TreeView user action command's "Location" parameter. Default is "Location=Text", which is the default for the SQA TreeView user action command. DATA TABLE PARAMETERS: FLD CONTENT --- ------------------------------ 5 Case-sensitive text of node to select Parent-child relationships are separated with "->" Example: "My New Parent->My Stepchild" For "...Partial" commands: ------------------------------ TextValue is the case-insensitive text of the node. For each level, a text comparison is performed. If the node contains the requested substring anywhere in its text, then that node is considered a match. Example: "parent->child" will successfully identify the node "My New Parent->My Stepchild" ERRORS: none Orig Author: Yuesong Wang Orig Date: JAN 22, 2003 History: JAN 22, 2003 Original Release
Sub PerformAction (CLICK_ACTION, Optional mode, Optional location) DESCRIPTION: Routine to click a node according to its text value. Parent-child relationships are separated with "->" The routine expects that the given object already has Context or Focus. It also expects that Global StepDriverTestInfo contains all the information it needs to perform its function. PARAMETERS: mode Optional parameter indicating node text match method. 0 for exact match. 1 for partial match. Default is 0. location Optional. Location for the mouse click. One of the valid values for SQA TreeView user action command's "Location" parameter. Default is "Location=Text", which is the default for the SQA TreeView user action command. DATA TABLE PARAMETERS: FLD CONTENT --- ------------------------------ 5 Case-sensitive text of node to click Parent-child relationships are separated with "->" Example: "My New Parent->My Stepchild" For "...Partial" commands: ------------------------------ TextValue is the case-insensitive text of the node. For each level, a text comparison is performed. If the node contains the requested substring anywhere in its text, then that node is considered a match. Example: "parent->child" will successfully identify the node "My New Parent->My Stepchild" ERRORS: none Orig Author: Yuesong Wang Orig Date: JAN 23, 2003 History: JAN 23, 2003 Original Release
Sub PerformAction (RIGHT_CLICK_ACTION, Optional mode, Optional location) DESCRIPTION: Routine to right click a node according to its text value. Parent-child relationships are separated with "->" The routine expects that the given object already has Context or Focus. It also expects that Global StepDriverTestInfo contains all the information it needs to perform its function. PARAMETERS: mode Optional parameter indicating node text match method. 0 for exact match. 1 for partial match. Default is 0. location Optional. Location for the mouse click. One of the valid values for SQA TreeView user action command's "Location" parameter. Default is "Location=Text", which is the default for the SQA TreeView user action command. DATA TABLE PARAMETERS: FLD CONTENT --- ------------------------------ 5 Case-sensitive text of node to right click Parent-child relationships are separated with "->" Example: "My New Parent->My Stepchild" For "...Partial" commands: ------------------------------ TextValue is the case-insensitive text of the node. For each level, a text comparison is performed. If the node contains the requested substring anywhere in its text, then that node is considered a match. Example: "parent->child" will successfully identify the node "My New Parent->My Stepchild" ERRORS: none Orig Author: Yuesong Wang Orig Date: JAN 23, 2003 History: JAN 23, 2003 Original Release
Sub PerformAction (DOUBLE_CLICK_ACTION, Optional mode, Optional location) DESCRIPTION: Routine to double click a node according to its text value. Parent-child relationships are separated with "->" The routine expects that the given object already has Context or Focus. It also expects that Global StepDriverTestInfo contains all the information it needs to perform its function. PARAMETERS: mode Optional parameter indicating node text match method. 0 for exact match. 1 for partial match. Default is 0. location Optional. Location for the mouse click. One of the valid values for SQA TreeView user action command's "Location" parameter. Default is "Location=Text", which is the default for the SQA TreeView user action command. DATA TABLE PARAMETERS: FLD CONTENT --- ------------------------------ 5 Case-sensitive text of node to double click Parent-child relationships are separated with "->" Example: "My New Parent->My Stepchild" For "...Partial" commands: ------------------------------ TextValue is the case-insensitive text of the node. For each level, a text comparison is performed. If the node contains the requested substring anywhere in its text, then that node is considered a match. Example: "parent->child" will successfully identify the node "My New Parent->My Stepchild" ERRORS: none Orig Author: Yuesong Wang Orig Date: JAN 23, 2003 History: JAN 23, 2003 Original Release
Sub TVFCaptureTreeDataToFile (mode As Integer) DESCRIPTION: Routine to capture tree data (CompareData) to a specified file. Since the ObjectData array format is very predictable for Trees, we can exploit this feature and properly format our output as well. This function also allows for an optional Branch to be provided so that all of the Tree's data isn't captured. Furthermore, an optional IndentMark can be used to alter the separation of the tree nodes from the parent tree branches. The tree data contents are stored to a file in the active "Test" directory unless the user specifies a full or relative path to some other location. If a relative path is specified, it is relative to the project directory. The directory for a full or relative path must already exist. This command will only work on GUI tree components that Robot can successfully perform an ObjectData VP on. The user does not have to create an ObjectData VP for the script for this command to work. This will be done automatically at runtime. The routine expects that Global StepDriverTestInfo contains all the information it needs to perform its function (like logging). The routine will set the StepDriverTestInfo.statuscode and log any pass/fail info using the StepDriverTestInfo.fac LogFacility. FUNCTION PARAMETER: mode 0 = exact match of each node required 1 = case-insensitive partial match allowed DATA TABLE PARAMETERS: FLD CONTENT --- ------------------------------ 5 Output text filename. Relative paths from the project directory can be used. [6] (Optional) Full Tree Branch to capture. If ommitted, it will default to header and all Branches/Nodes are captured. [7] (Optional) IndentMark to be used to format the output file. IndentMark is used to separate the tree nodes and the tree parent branches. The default value is the tab char (chr(9)). [8] (Optional) Filter MODE to be used on the retrieved property value. This is for future implementations that will allow us to filter out dynamic text that we don't want to include in comparisons. This is NOT currently implemented. [9] (Optional) Filter OPTIONS to be used in conjunction with any supplied Filter MODE. This is not currently implemented. ERRORS: none Orig Author: Bob Lawler (RJL) Orig Date: MAY 03, 2005 History: 09.02.2005 (bolawl) Updated to better handle not including rows without data. RJL 09.08.2005 (bolawl) Updated to handle partial matching of the root node. RJL Improved success and failure messages. RJL Updated to trim off hidden root node in Java trees before logging success. RJL 01.11.2006 (bolawl) Updated to format output file with new optional parameter indentMark (default is tab chr(9)). RJL
Sub TVFVerifyTreeContainsNode (mode As Integer) DESCRIPTION: Routine to verify that a provided node is found in a tree. This command will only work on GUI tree components that Robot can successfully perform an ObjectData VP on. The user does not have to create an ObjectData VP for the script for this command to work. This will be done automatically at runtime. Since the basic functionality is the same, this routine can be used to both verify that a node is found in a tree (VerifyTreeContainsNode) and set a user-defined variable with those results (SetTreeContainsNode). The routine expects that Global StepDriverTestInfo contains all the information it needs to perform its function (like logging). The routine will set the StepDriverTestInfo.statuscode and log any pass/fail info using the StepDriverTestInfo.fac LogFacility. FUNCTION PARAMETER: mode 0 = exact match of each node required 1 = case-insensitive partial match allowed DATA TABLE PARAMETERS: FLD CONTENT --- ------------------------------ 5 The name of the node to verify. 6 (For SetTreeContainsNode/PartialMatch command only) The name of the variable which gets assigned the result. This varible will be set to the string 'TRUE' if the node is found, or the string 'FALSE' if the node is not found. ERRORS: none Orig Author: Bob Lawler (RJL) Orig Date: Jan 17, 2006 History:
Sub Main () DESCRIPTION: Entry point to process a StepDriver ACTION COMMAND on a TREEVIEW. The routine merely reads the Global StepDriverTestInfo.testcommand and calls the appropriate subroutine to process it. If the testcommand is unrecognized it will log a WARNING_MESSAGE and exit with a WARNING status. DATA TABLE PARAMETERS: none - the called subroutine has the requirements ERRORS: none Orig Author: Carl Nagle Orig Date: AUG 06, 1999 History: AUG 06, 1999 Original Release JUNE 13, 2002 (Monica Vong) Added VerifyStateIcon, VerifyStateIconUnselected, and SelectStateIcon OCT 17, 2002 (CANAGL) Reroute fallback to GenericObjectFunctions. OCT 22, 2002 (CANAGL) Warn of unimplemented TF and TW record types. DEC 12, 2002 (CANAGL) Added support for XSLComponentActions.MAP JAN 06, 2003 (MEVENK) Added RightClickTextNode command. JAN 22, 2003 (YWANG) Added various commands APR 04, 2003 (MEVENK) Added SelectUnverifiedTextNode command MAY 03, 2005 (BOLAWL) Added CaptureTreeDataToFile command(s) JUL 27, 2005 (CANAGL) Differentiate .NET for V2003 support JAN 17, 2006 (bolawl) Added TVFVerifyTreeContainsNode commands.
Copyright (C) SAS Institute GNU General Public License: http://www.opensource.org/licenses/gpl-license.php ==============================================================================