abbot.script
Class Script

java.lang.Object
  |
  +--abbot.script.Step
        |
        +--abbot.script.Sequence
              |
              +--abbot.script.Script
All Implemented Interfaces:
Resolver, Serializable, Tags, XMLifiable

public class Script
extends Sequence
implements Resolver

Provide a structure to encapsulate actions invoked on GUI components and tests performed on those components. Scripts need to be short and concise (and therefore easy to read/write). Extensions don't have to be.

This takes a single filename as a constructor argument.

Use ScriptTestCase and ScriptTestSuite to generate a suite (auto-generate the collection).

See Also:
Serialized Form

Field Summary
(package private) static boolean validate
           
 
Fields inherited from interface abbot.script.Tags
TAG_ACTION, TAG_ARGS, TAG_ASSERT, TAG_AWTTESTSCRIPT, TAG_CALL, TAG_CLASS, TAG_CLASSPATH, TAG_COMMENT, TAG_COMPONENT, TAG_COUNT, TAG_DELEGATE, TAG_DESC, TAG_DOCBASE, TAG_EVENT, TAG_FILENAME, TAG_FORKED, TAG_HEIGHT, TAG_HORDER, TAG_ID, TAG_INDEX, TAG_INVERT, TAG_INVOKER, TAG_KEYCHAR, TAG_KEYCODE, TAG_KIND, TAG_LAUNCH, TAG_METHOD, TAG_MODIFIERS, TAG_NAME, TAG_PARAMS, TAG_PARENT, TAG_POLL_INTERVAL, TAG_PROPERTY, TAG_SAMPLE, TAG_SCRIPT, TAG_SEQUENCE, TAG_SLOW, TAG_STOP_ON_ERROR, TAG_STOP_ON_FAILURE, TAG_TAG, TAG_TERMINATE, TAG_THREADED, TAG_TIMEOUT, TAG_TITLE, TAG_TRIGGER, TAG_TYPE, TAG_VALUE, TAG_VMARGS, TAG_VORDER, TAG_WAIT, TAG_WIDTH, TAG_WINDOW, TAG_X, TAG_Y
 
Constructor Summary
Script()
          Create a new, empty script.
Script(Resolver parent, Map attributes)
           
Script(String filename)
          Create a script.
 
Method Summary
(package private) static void ()
           
 ComponentReference addComponent(Component comp)
          Add a new component reference for the given component.
 void addComponentReference(ComponentReference ref)
          Add a new component reference to the existing collection.
(package private)  ComponentReference addComponentReference(org.jdom.Element el)
          Add a new component reference to the script.
 org.jdom.Element addContent(org.jdom.Element el)
          Save component references in addition to everything else.
 void addStep(int index, Step step)
          Inserts a step at the given index in the sequence.
 void addStep(Step step)
          Adds a step to the end of the sequence.
 void clear()
          Set up a blank script, discarding any current state.
 Map getAttributes()
          Provide XML attributes for this Step.
 ComponentReference getComponentReference(Component comp)
          Return the reference for the given component, or null if none yet exists.
 ComponentReference getComponentReference(String name)
          Convert the given reference ID into a component reference.
 Collection getComponentReferences()
          Returns a collection of all the existing references.
protected  String getDefaultDescription()
          Return a reasonable default description for this script step.
 String getDescription()
           
 File getDirectory()
          All relative files should be accessed relative to this directory, which is the directory where the script resides.
 File getFile()
          Return the file where this script is saved.
 String getFilename()
          Return the (possibly relative) path to this script.
 Launch getLaunchStep()
           
 String getName()
           
 String getProperty(String name)
          Provide retrieval of values from temporary storage.
 File getRelativeTo()
          By default, all pathnames are relative to the current working directory.
 Step getStep(int index)
          Return the step at the given index in the sequence.
 String getUniqueID(ComponentReference ref)
          Return a unique reference ID.
 String getUsage()
          Returns a string describing the proper XML usage for this class.
 String getVMArgs()
           
 String getXMLTag()
          Define the XML tag to use for this script step.
 boolean hasLaunch()
           
 boolean hasTerminate()
           
 int indexOf(Step step)
          Returns the index of the given step in the sequence, or -1 if the step is not in the sequence.
 boolean isDirty()
          Has this script changed since the last save.
 boolean isForked()
           
static boolean isScript(File file)
          Return whether the given file looks like a valid AWT script.
 boolean isSlowPlayback()
           
 void load()
          Parse the script file and build internal structures.
 void load(Reader reader)
          Loads the XML test script.
protected  void parseChild(org.jdom.Element el)
           
 void removeStep(int index)
          Removes the step at the given index in the sequence.
 void removeStep(Step step)
          Removes the step if it exists in the sequence.
protected  void runStep(StepRunner runner)
          Process each event in our list, using the given runner.
 void save()
          Write the script to file.
 void save(Writer writer)
          Write the current state of the script to file.
 void setFile(File file)
          Warning: if the directory is changed, need to change associated files as well.
 void setForked(boolean fork)
           
 void setProperty(String name, String value)
          Provide temporary storage of values.
 void setRelativeTo(File dir)
          Indicate that when invoking toXML, a path relative to the given one should be shown.
 void setSlowPlayback(boolean slow)
           
 void setStep(int index, Step step)
          Replaces the step at the given index.
 void setVMArgs(String args)
           
 int size()
          Returns the number of steps contained in this one.
 List steps()
          Returns a list of the steps contained in this one.
 String toEditableString()
          Only thing directly editable on a script is its file path.
 String toString()
          Return a description of this script step.
 
Methods inherited from class abbot.script.Sequence
parseChildren, runStep
 
Methods inherited from class abbot.script.Step
addAttributes, createAttributeMap, createStep, createStep, getFinder, getResolver, parseStepAttributes, resolve, resolveClass, resolveTester, run, setDescription, setScriptError, simpleClassName, toXML, toXMLString, usage, usage
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

validate

static boolean validate
Constructor Detail

Script

public Script()
Create a new, empty script. Used as a temporary resolver.

Script

public Script(String filename)
Create a script. Actual reading of the script is deferred.

Script

public Script(Resolver parent,
              Map attributes)
Method Detail

static void ()

getName

public String getName()

setForked

public void setForked(boolean fork)

isForked

public boolean isForked()

setVMArgs

public void setVMArgs(String args)

getVMArgs

public String getVMArgs()

isSlowPlayback

public boolean isSlowPlayback()

setSlowPlayback

public void setSlowPlayback(boolean slow)

getFile

public File getFile()
Return the file where this script is saved. Will always be an absolute path.

setFile

public void setFile(File file)
Warning: if the directory is changed, need to change associated files as well.

save

public void save(Writer writer)
          throws IOException
Write the current state of the script to file.

toEditableString

public String toEditableString()
Only thing directly editable on a script is its file path.
Overrides:
toEditableString in class Sequence

isDirty

public boolean isDirty()
Has this script changed since the last save.

save

public void save()
          throws IOException
Write the script to file. Note that this differs from the toXML for the script, which simply indicates the file on which it is based.

parseChild

protected void parseChild(org.jdom.Element el)
                   throws InvalidScriptException
Overrides:
parseChild in class Sequence

load

public void load(Reader reader)
          throws InvalidScriptException,
                 IOException
Loads the XML test script. Performs a check against the XML schema.
Parameters:
reader - Provides the script data
Throws:
InvalidScriptException -  
IOException -  

size

public int size()
Description copied from class: Sequence
Returns the number of steps contained in this one.
Overrides:
size in class Sequence

steps

public List steps()
Description copied from class: Sequence
Returns a list of the steps contained in this one.
Overrides:
steps in class Sequence

indexOf

public int indexOf(Step step)
Description copied from class: Sequence
Returns the index of the given step in the sequence, or -1 if the step is not in the sequence.
Overrides:
indexOf in class Sequence

getStep

public Step getStep(int index)
Description copied from class: Sequence
Return the step at the given index in the sequence.
Overrides:
getStep in class Sequence

addStep

public void addStep(int index,
                    Step step)
Description copied from class: Sequence
Inserts a step at the given index in the sequence.
Overrides:
addStep in class Sequence

addStep

public void addStep(Step step)
Description copied from class: Sequence
Adds a step to the end of the sequence.
Overrides:
addStep in class Sequence

setStep

public void setStep(int index,
                    Step step)
Replaces the step at the given index.
Overrides:
setStep in class Sequence

removeStep

public void removeStep(Step step)
Description copied from class: Sequence
Removes the step if it exists in the sequence.
Overrides:
removeStep in class Sequence

removeStep

public void removeStep(int index)
Description copied from class: Sequence
Removes the step at the given index in the sequence.
Overrides:
removeStep in class Sequence

load

public void load()
          throws InvalidScriptException,
                 IOException
Parse the script file and build internal structures.

getXMLTag

public String getXMLTag()
Description copied from class: Step
Define the XML tag to use for this script step.
Overrides:
getXMLTag in class Sequence

addContent

public org.jdom.Element addContent(org.jdom.Element el)
Save component references in addition to everything else.
Overrides:
addContent in class Sequence

getFilename

public String getFilename()
Return the (possibly relative) path to this script.

getAttributes

public Map getAttributes()
Provide XML attributes for this Step. This class adds its filename.
Overrides:
getAttributes in class Step

runStep

protected void runStep(StepRunner runner)
                throws Throwable
Description copied from class: Sequence
Process each event in our list, using the given runner.
Overrides:
runStep in class Sequence

getUniqueID

public String getUniqueID(ComponentReference ref)
Return a unique reference ID.
Specified by:
getUniqueID in interface Resolver

clear

public void clear()
Set up a blank script, discarding any current state.
Overrides:
clear in class Sequence

getUsage

public String getUsage()
Description copied from class: Sequence
Returns a string describing the proper XML usage for this class.
Overrides:
getUsage in class Sequence

getDescription

public String getDescription()
Overrides:
getDescription in class Step

getDefaultDescription

protected String getDefaultDescription()
Description copied from class: Step
Return a reasonable default description for this script step. This value is used in the absence of an explicit description.
Overrides:
getDefaultDescription in class Sequence

toString

public String toString()
Description copied from class: Step
Return a description of this script step.
Overrides:
toString in class Step

hasLaunch

public boolean hasLaunch()

hasTerminate

public boolean hasTerminate()

getRelativeTo

public File getRelativeTo()
By default, all pathnames are relative to the current working directory.

setRelativeTo

public void setRelativeTo(File dir)
Indicate that when invoking toXML, a path relative to the given one should be shown. Note that this is a runtime setting only and never shows up in saved XML.

isScript

public static boolean isScript(File file)
Return whether the given file looks like a valid AWT script.

getLaunchStep

public Launch getLaunchStep()

getDirectory

public File getDirectory()
All relative files should be accessed relative to this directory, which is the directory where the script resides. It will always return an absolute path.
Specified by:
getDirectory in interface Resolver

getComponentReferences

public Collection getComponentReferences()
Description copied from interface: Resolver
Returns a collection of all the existing references.
Specified by:
getComponentReferences in interface Resolver

addComponentReference

public void addComponentReference(ComponentReference ref)
Description copied from interface: Resolver
Add a new component reference to the existing collection.
Specified by:
addComponentReference in interface Resolver

addComponent

public ComponentReference addComponent(Component comp)
Add a new component reference for the given component.
Specified by:
addComponent in interface Resolver

addComponentReference

ComponentReference addComponentReference(org.jdom.Element el)
                                   throws InvalidScriptException
Add a new component reference to the script. For use only when parsing a script.

getComponentReference

public ComponentReference getComponentReference(Component comp)
Return the reference for the given component, or null if none yet exists.
Specified by:
getComponentReference in interface Resolver

getComponentReference

public ComponentReference getComponentReference(String name)
Convert the given reference ID into a component reference. If it's not in the Script's list, throw an appropriate exception.
Specified by:
getComponentReference in interface Resolver

setProperty

public void setProperty(String name,
                        String value)
Description copied from interface: Resolver
Provide temporary storage of values.
Specified by:
setProperty in interface Resolver

getProperty

public String getProperty(String name)
Description copied from interface: Resolver
Provide retrieval of values from temporary storage.
Specified by:
getProperty in interface Resolver


Copyright © 2002-2003 Timothy Wall. All Rights Reserved.
Abbot is hosted on

SourceForge