Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Fixed typo

...

The test scripts that the QTP record mechanism generates use QTP's object wrapper of the actual UI component (for example, Label or Button). QTP stores the object wrappers in its object repository. By default, QTP names objects in this repository based on their actual class (for example, NRichLabel or NButton).  However, you can rename objects in the repository by right clicking on the object name as it appers appears in the object repository dialog. The name of the object as it appears in the object repository, is the the name that the method inside the QTP script uses to locate the QTP object wrapper.

...

Code Block
languagejava
linenumberstrue
import com.nexaweb.client.ClientEvent;
import com.nexaweb.client.ClientSession;
import com.nexaweb.client.mco.AbstractMco;
import com.nexaweb.client.mco.McoContainer;
import com.nexaweb.xml.Document;
import com.nexaweb.xml.Element;

public class ComboBoxHandler extends AbstractMco
{
   public void handleComboBoxOnCommand( Element label )
   {
      ClientSession clientSession = 
           McoContainer.getClientSessionFromMco(this);
      Document uiDocument = 
           clientSession.getDocumentRegistry().getUiDocument();
      ClientEvent clientEvent = 
           clientSession.getEventHandler().getClientEvent();
      synchronized ( uiDocument.getDomSynchronizationObject())
      {
         String value = clientEvent.getParameter( "value" );
         label.setAttribute( "text", value );
      }
   }
} 

The Test

Code Block
linenumberstrue
' get the applet script object
Set appObj = Browser("Welcome To Nexaweb").
Page("Welcome To Nexaweb").JavaApplet("DefaultJvmDetector").
Object.getScriptObject()

'get the combobox script object
Set comboBox = appObj.findObjectById("combobox")

' get the label script object
Set label = appObj.findObjectByid("mylabel")

'test inital state of combo
text = comboBox.getText()

if( text <>"ComboBox") then
   result = "Expected 'ComboBox' Actual was '" + text + "'"
   Reporter.ReportEvent micFail,"ComboBox", result

Else

   Reporter.ReportEvent micDone,"ComboBox", 
   "Intial Text passed. was 'ComboBox'"
End If

'test intiial state of label
text = label.getText()
if( text <>"Label to Change") then
   result = "Expected 'Label to Change' Actual was '" + text + "'"
   Reporter.ReportEvent micFail,"Label", result
Else
   Reporter.ReportEvent micDone,"Label", 
   "Intial Text passed. was 'Label to Change'"
End If

' get the count of the items in the combobox
itemCount = comboBox.getItemCount()

' get the vector of the items and the size of the return
Set itemobjs = comboBox.getItems()
sizeItems = itemobjs.size()

' verify the size of the return is correct
if( itemCount <> sizeItems ) then
   result = "Expected " +itemCount + 
            " tiems Actual was '" + sizeItems + "'"
   Reporter.ReportEvent micFail,"Label", result
Else
   Reporter.ReportEvent micDone,"ComboBox", 
   "Number of Items was "+itemCount
End If

' select each item and test the combobox and label text
' to ensure selection and onStateChange() event has fied correctly

For i = 0 to itemCount - 1
   ' select the tiem
   comboBox.selectItemAt( i )

   ' check the text of the combobox against the 
   '  text of the item being selected
   tag = "Selected Item #" + CStr(i) + " - ComboBox"
   expectedText = itemobjs.elementAt(i).getText()
   text = comboBox.getText()

   if( text <> expectedText ) then
      result = "Expected '" + expectedText +
      "' Actual was '" + text + 
      "'"Reporter.ReportEvent micFail,tag, result
   Else
      Reporter.ReportEvent micDone, tag, 
      "ComboBox text was '" + expectedText +"'"
   End If

   ' check the text of the label against the value of 
   ' the item being selected
   tag = "Selected Item #" + CStr(i) + " - Label"
   expectedText = itemobjs.elementAt(i).getValue()
   text = label.getText()

   if( text <> expectedText) then
      result = "Expected '" + expectedText + "' Actual was '" + 
      text + "'" Reporter.ReportEvent micFail,tag, result
   Else
      Reporter.ReportEvent micDone,tag, 
      "Label Text passed. was '" + expectedText +"'"
   End If

Next 

...