Jump to: navigation, search

Difference between revisions of "Descriptive WSDL Smoke Test Scenarios"

(WSDL Smoke Test Scenarios)
(Source Editing)
 
(45 intermediate revisions by 4 users not shown)
Line 1: Line 1:
== WSDL Smoke Test Scenarios ==
+
The smoke tests are organized into three categories: core tests, secondary rotating tests and adhoc tests. In every test run, the goal is to devote 60% of the time to core tests from which every test should be run, 30% to secondary rotating tests from which a tester can pick two or three tests making sure to cover each test at least once in a milestone, and 10% to adhoc test which can be picked randomly.
 +
 
 +
= '''Core Tests''' =
 +
'''Every test in this category should be run in every smoke test.'''
  
==Example Setup==
 
Examples found via: New -> Example ... -> Editing and validating XML files
 
 
==Open and Close Editor==
 
==Open and Close Editor==
# Workspace WSDL file: open an WSDL file from the workspace and verify its content
+
# Import the XML Examples: ''New -> Example ... -> Editing and validating XML files''
# Non-workspace WSDL file: open an WSDL file from outside the workspace and verify its content. In addition, edit this file from an external editor and ensure a File changed dialog appears in Eclipse
+
# Open ''XMLExamples/PhoneBanking/PhoneBanking.wsdl'' and make sure you're in the ''design'' view
 +
# '''Verify''' you can find ''PhoneBanking'' service, a square icon representing the binding and a Port Type named ''PhoneBanking'' with four operations.
  
'''Selection Tests'''
 
  
Synchronization between Properties, Design, Source, and Outline views: while conducting the Add/Modify tests, delete tests, and drag & drop tests, observe that these three views are synchronized
+
==File Creation & Saving==
 +
# Import the XML Examples: ''New -> Example ... -> Editing and validating XML files''
 +
# ''File -> New -> Other... -> Web Services -> WSDL'' to create an new WSDL file: ''NewWSDLFile.wsdl''
 +
# '''Verify''' the new file is created and opened in the WSDL Editor
 +
# Right click on the canvas and select ''Add Service'' and add a new service called ''NewService'' and add a new PortType named ''NewPortType'' as well
 +
# Save and close the editor
 +
# Reopen the editor and '''verify''' that the ''NewService'' and ''NewPortType'' are persisted.
 +
# ''File -> Save As...'', and use the name ''NewWSDLFileSaveAs.wsdl''
 +
# '''Verify''' the ''NewWSDLFileSaveAs.wsdl'' file appear in the navigator
 +
# In ''NewWSDLFileSaveAs.wsdl'', add a new service and a new PortType
 +
# Close the editor without saving the changes
 +
# Reopen the ''NewWSDLFileSaveAs.wsdl'', and '''verify''' that the new changes are discarded
  
 +
==Selection Tests==
 +
'''Synchronization between Properties, Design, Source, and Outline views''': while conducting the Add/Modify tests, delete tests, and drag & drop tests, observe that these three views are synchronized
  
 
'''Note:''' if the nodes are collapsed and you add a new child, the node will not automatically expand.  Therefore to test synchronization, expand the nodes whenever necessary to verify the synchronization between the Outline and Design view
 
'''Note:''' if the nodes are collapsed and you add a new child, the node will not automatically expand.  Therefore to test synchronization, expand the nodes whenever necessary to verify the synchronization between the Outline and Design view
 
+
==Add/Modify Tests==
 
+
'''Add/Modify Tests'''
+
 
+
 
For the tests where a new item is added:
 
For the tests where a new item is added:
 
* Verify that the item was successfully added by finding and selecting the item from the Outline view or Design view
 
* Verify that the item was successfully added by finding and selecting the item from the Outline view or Design view
Line 22: Line 33:
  
 
Tests:
 
Tests:
# Imports: in the Outline view, right click on the Imports node -> Add Import
+
# '''Imports''': in the Outline view, right click on the Imports node -> Add Import
# Schema: in the Outline view, right click on the Types node -> Add Schema  
+
# '''Schema''': in the Outline view, right click on the Types node -> Add Schema  
# Service: in the Outline view, right click on the Services node -> Add Service
+
# '''Service''': in the Outline view, right click on the Services node -> Add Service
# Port: in the Outline view, right click on a created Service -> Add Port -> add a name or use default -> click Finish
+
# '''Port''': in the Outline view, right click on a created Service -> Add Port -> add a name or use default -> click Finish
# Binding: in the Outline view, right click on the Binding node -> Add Binding
+
# '''Binding''': in the Outline view, right click on the Binding node -> Add Binding
# Binding content: in the Outline view, right click on a created Binding -> Generate Binding Content... -> select a Port type and protocol -> press Finish.  In the Design view, an arrow from the binding to a portType should be created
+
# '''Binding content''': in the Outline view, right click on a created Binding -> Generate Binding Content... -> select a Port type and protocol -> press Finish.  In the Design view, an arrow from the binding to a portType should be created
# Port Type: in the Outline view, right click on the Port Type node -> Add Port Type
+
# '''Port Type''': in the Outline view, right click on the Port Type node -> Add Port Type
# Operation: in the Outline view, select a created Port Type and right click -> Add Operation
+
# '''Operation''': in the Outline view, select a created Port Type and right click -> Add Operation
# Fault: in the Outline view, select a created Operation (Operations are found in Port Type -> a created Port Type -> Operation) -> Add Fault
+
# '''Fault''': in the Outline view, select a created Operation (Operations are found in Port Type -> a created Port Type -> Operation) -> Add Fault
# Message via Port Type: in the Outline view, select a created Port Type and expand the node until you see two blue arrows representing Input and Output.  Right click on the blue arrow pointing right -> Set Message -> New Message... The newly created message will show up in the Messages node.  Right click on the blue arrow pointing left -> Set Message -> Existing Message... -> Choose an existing message -> in the Properties view under General properties, the Message property should match the message you chose
+
# '''Message via Port Type''': in the Outline view, select a created Port Type and expand the node until you see two blue arrows representing Input and Output.  Right click on the blue arrow pointing right -> Set Message -> New Message... The newly created message will show up in the Messages node.  Right click on the blue arrow pointing left -> Set Message -> Existing Message... -> Choose an existing message -> in the Properties view under General properties, the Message property should match the message you chose
# Message: in the Outline view, right click on the Messages node -> Add Message
+
# '''Message''': in the Outline view, right click on the Messages node -> Add Message
# Part: in the Outline view, right click on a created Message -> Add Part
+
# '''Part''': in the Outline view, right click on a created Message -> Add Part
 
# Repeat the same steps for Design View.  The UI element to mouseover and right click for each test is highlighted when selected in the Outline view
 
# Repeat the same steps for Design View.  The UI element to mouseover and right click for each test is highlighted when selected in the Outline view
 
+
==Delete Tests==
 
+
'''Delete Tests'''
+
 
+
 
For each of the items created in the Add/Modify test, right click on the item or an equivalent item -> Delete
 
For each of the items created in the Add/Modify test, right click on the item or an equivalent item -> Delete
  
 +
==Search & Refactoring==
 +
# Import the XML Examples: ''New -> Example ... -> Editing and validating XML files''
 +
# Open ''XMLExamples/PhoneBanking/PhoneBanking.wsdl''
 +
# In the Outline view, right click ''Port Type -> PhoneBanking'' and select ''References -> Project''
 +
# '''Verify''' that there is one reference in ''PhoneBanking.wsdl''
 +
# Right click ''Port Type -> PhoneBanking'' again and select ''Refactor -> Rename...'
 +
# Check ''Update references'' and change the name to ''PhoneBankingChanged'' and click ''Preview ->''
 +
# '''Verify''' that there are two changes in ''PhoneBanking.wsdl''
 +
# Click OK and '''verify''' that the changes in the preview are applied to the file using the editor. (Hint: can search for ''PhoneBankingChanged'' in the file.)
  
'''Drag & Drop'''
+
==Validation==
 
+
# Import the XML Examples: ''New -> Example ... -> Editing and validating XML files''
Reorder sequences: in the Design view, right click on a Port Type (the Port type box has a purple circle with a white I) -> Add Operation -> Press the faded gray arrow that appears on the right side of the new Operation (there is a gray arrow for the Input and Output.  Once pressed, the name of the Source and Design view should say, "Inline Schema of [WDLN name]".  From the Outline view right click on Elements -> Add Element -> right click on the newly created Element -> Set Type -> New... -> ensure the Complex Type option is selected -> press OK -> right click on the new type -> Add Sequence -> right click on the newly created sequence -> Add Element (repeat this several times) -> Reorder the elements in the sequence by dragging in the Design or Outline view and ensure the changes are synchronized in both views and is reflected in the Source view
+
# Open ''XMLExamples/PhoneBanking/PhoneBanking.wsdl'' and switch to source view
 
+
# Replace ''<wsdl:portType name="PhoneBanking">'' with ''<wsdl:portType name="PhoneBankingChanged">''
 
+
# Right click on the WSDL file in the Package Explorer and select ''Validate''
'''Source Editing'''
+
# '''Verify''' that a red X should show up because the WSDL file is invalid
 
+
# Revert the changes and re-validate
# Context Assist: use CTRL+SPACE in various parts of the WSDL to see the possible entries that can be added
+
# '''Verify''' that the X disappears
# Context menus: right click in the Design, Outline, and Source view to check the context menus
+
# Formatting: in the Source view, right click -> source -> Format.  Now untab some elements by selecting elements and using SHIFT+TAB.  To reformat, right click -> source -> Format.
+
# Toggle comment: in Source view, right click -> source -> Toggle Comment
+
# Add block comment: in Source view, right click -> source -> Add Block Comment
+
# Remove block comment: in Source view, right click while inside a block comment -> source -> Remove block Comment
+
# Switching between Design and Source view: make sure changes to the source are reflected in the Design view
+
 
+
'''Note:''' there is no as you type validation for WTP but this feature ''does'' exist for RAD
+
 
+
 
+
'''Extensions'''
+
 
+
# HTTP: in Outline view, select a created Port Type -> click the Extensions properties from the Properties View  -> Add.. -> HTTP -> select an available component to add -> press OK -> click ont he new extension from the Extensions list -> fill in the Extensions details
+
# SOAP: in Outline view, select a created Port Type -> click the Extensions properties from the Properties View (the text is currently not showing up, but it is the 3rd button on the vertical tab) -> Add.. -> SOAP -> select an available component to add -> press OK -> click ont he new extension from the Extensions list -> fill in the Extensions details
+
# MIME: in Outline view, select an Input from a created Port Type's Operation -> click the Extensions properties from the Properties View (the text is currently not showing up, but it is the 3rd button on the vertical tab) -> Add.. -> MIME -> select an available component to add -> press OK -> click on the new extension from the Extensions list -> fill in the Extensions details
+
 
+
 
+
'''Refactoring'''
+
 
+
Rename a Port Type: in Outline view, right click on a created Port Type -> Refactor -> Rename... -> rename the file and press OK
+
 
+
  
'''File Creation & Saving'''
+
=Secondary Rotating Tests=
 +
'''Two or three tests from this category should be run in every smoke test. Testers should make sure every test should be run at least once in any given milestone.'''
  
# Use save and save-as on WSDL files
+
==Drag & Drop==
# Close without saving, changes should not be committed
+
# Import the XML Examples: ''New -> Example ... -> Editing and validating XML files''
# Open existing WSDL file
+
# Open ''XMLExamples/PhoneBanking/PhoneBanking.wsdl'' and make sure you're in the ''design'' view
# Create a new WSDL file via File -> New -> Other... -> Web Services folder -> WSDL
+
# Locate the ''PhoneBanking'' PortType and its ''getAccountSummary'' operation
 +
# '''Verify''' you can drag & drop to re-order the input and output of the operation
 +
# Save and reopen the file
 +
# '''Verify''' that the changes are persisted
  
 +
==Source Editing==
 +
# Import the XML Examples: ''New -> Example ... -> Editing and validating XML files''
 +
# Open ''XMLExamples/PhoneBanking/PhoneBanking.wsdl'' and switch to the ''source'' view
 +
# Go the this line ''<soap:body use="literal" />'' and change it to ''<soap:body use="literalChanged" />''
 +
# '''Verify''' that red squiggles underline ''"literalChanged"'' (no red squiggles see https://bugs.eclipse.org/bugs/show_bug.cgi?id=124911)
 +
# Move the cursor before ''<wsdl:types>'' and hit ''Ctrl + space''
 +
# '''Verify''' that you see content assist like <br>[[Image:TopLevelWSDLElements.png]]
 +
# Move the cursor after ''<wsdl:binding name="PhoneBankingSOAP" type="tns:PhoneBanking">''
 +
# '''Verify''' that you see content assist like <br>[[Image:BindingContentAssist.png]]
 +
# Try content assist in various places if you're familiar with WSDL
 +
# Add the following code snippet to as a child of ''<wsdl:definitions>'' (i.e. the document root)
 +
<wsdl:service name="NewService">
 +
    <wsdl:port name="NewPort">
 +
      <soap:address location="http://www.example.org/" />
 +
    </wsdl:port>
 +
</wsdl:service>
 +
# Switch to the ''design'' view
 +
# '''Verify''' that the ''NewService'' is visible on the canvas
 +
# Add a new binding in ''design'' view by using right click -> ''Add Binding''
 +
# Switch back to the ''source'' view
 +
# '''Verify''' that you can find ''<wsdl:binding name="NewBinding"></wsdl:binding>''
  
'''Validation'''
+
==Hyperlink Navigation==
 +
# Import the XML Examples: ''New -> Example ... -> Editing and validating XML files''
 +
# Open ''XMLExamples/PhoneBanking/PhoneBanking.wsdl'' and switch to the ''source'' view
 +
# Go the this line ''<wsdl:port binding="tns:PhoneBankingSOAP" name="PhoneBankingSOAP">''
 +
# Hold ''Ctrl'' and click on ''"tns:PhoneBankingSOAP"''
 +
# '''Verify''' that the source editor "jumps" to this line ''<wsdl:binding name="PhoneBankingSOAP" type="tns:PhoneBanking">''
  
# Schema validation: introduce invalid elements or attributes to a valid WSDL file.  Right click on the WSDL file in the Package Explorer -> Validate. A red X should show up because the WSDL file is invalid. Revert the changes and re-validate, the X should disappear
+
==Extensions==
# Disconnected mode: disconnect your computer from the internet and verify no new errors have occurred because of it via right clicking on the WSDL file in the Package Explorer view -> Validate
+
# Import the XML Examples: ''New -> Example ... -> Editing and validating XML files''
 +
# Open ''XMLExamples/PhoneBanking/PhoneBanking.wsdl'' and make sure you're in the ''design'' view
 +
# In the Outline view, right click ''Bindings -> PhoneBankingSOAP'' and select ''Show properties''
 +
# Click on the ''Extensions'' tab
 +
# '''Verify''' that you can see the ''soap:binding'' extension
 +
# Click ''Add...''
 +
# Select ''HTTP'' and then select ''binding'' and click ''OK''
 +
# '''Verify''' that an extension ''p:binding'' is added where ''p'' is defined in the source view as ''xmlns:p="http://schemas.xmlsoap.org/wsdl/http/"''
 +
# Fill in the ''Extension Details'' like ''required="true"'' and ''verb="abc"''
 +
# Save and reopen the file
 +
# '''Verify''' the newly added extension is persisted
 +
# Delete the ''p:binding'' extension
 +
# '''Verify''' the extension is deleted
  
 +
==Schemas==
 +
# Import the XML Examples: ''New -> Example ... -> Editing and validating XML files''
 +
# Open ''XMLExamples/PhoneBanking/PhoneBanking.wsdl'' and make sure you're in the ''design'' view
 +
# Hover your mouse over the arrow next to ''BillInfo''
 +
# '''Verify''' a schema preview popup shows up
 +
# Click on the canvas to close the popup (Note: if this doesn't close it, click on the popup to close it.)
 +
# Click on the arrow next to ''BillInfo''
 +
# '''Verify''' an external Schema Editor is opened on the file ''PhoneBanking.xsd'' showing the ''BillInfo''
 +
# Go back to the WSDL Editor of ''PhoneBanking.wsdl''
 +
# Right click on the PortType ''PhoneBanking'' and select ''Add Operation''
 +
# Click one of the faded gray arrows that appears on the right side of the new Operation
 +
# '''Verify''' that an external Schema Editor is opened and its title says ''Inline Schema of PhoneBanking.wsdl''
  
'''Schemas'''
+
==Preferences==
 +
# Go to ''Window -> Preferences -> Web Services -> WSDL Files''
 +
# In ''Default Target Namespace'', set it to ''http://myDefaultTNS''
 +
# Create a new WSDL file named ''NewWSDLFile.wsdl'' using ''File -> New -> Other... -> Web Services -> WSDL''
 +
# '''Verify''' that you can find this attribute ''targetNamespace="http://myDefaultTNS/NewWSDLFile/"'' in the <wsdl:definitions> tag
  
# Launch inline schema editor: in the Design view, right click on a Port Type (The Port type box has a purple circle with a white I) -> Add Operation -> Press the faded gray arrow that appears on the right side of the new Operation (there is a gray arrow for the Input and Output. Once pressed, the name of the Source and Design view should say, "Inline Schema of [WDLN name]". Make changes to the schema using the Design or Source view and verify these changes are reflected in both views. Save the changes and close the inline Schema editor. Now reopen the inline Schema editor with the same steps and verify the changes.
+
==WS-I Compliance==
# Launch editor on an external schema: in the Design view, right click on a Port Type (the Port type box has a purple circle with a white I) -> Add Operation -> in the row that says Input, select the cell on the farthest right on this row -> in the Properties view under the General properties, set the Reference Kind to "Element" and select Browse... from the Element combo box -> select "Workspace" for search scope -> select an element which is not part of the current schema -> press OK -> open the schema by pressing the faded gray arrow to the right of the Input row to bring up the schema editor.  The Design and Source view name should not say "Inline Schema"
+
# Import the XML Examples: ''New -> Example ... -> Editing and validating XML files''
# Show Preview: in the Design view, mouse over a faded gray arrow located next to the Port Type and a preview of the graph will be shown as a popup in the Design view.  To close this preview, press on this popup
+
# Open ''XMLExamples/PhoneBanking/PhoneBanking.wsdl''
 +
# Create a new WSDL file using the following content:
 +
<source lang=xml>
 +
<?xml version="1.0" encoding="UTF-8"?>
 +
<wsdl:definitions name="WSIComplianceWSDL"
 +
targetNamespace="http://www.example.org/WSIComplianceWSDL/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
 +
xmlns:tns="http://www.example.org/WSIComplianceWSDL/" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
 +
xmlns:http="http://schemas.xmlsoap.org/wsdl/http/">
 +
<wsdl:types>
 +
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
 +
targetNamespace="http://www.example.org/WSIComplianceWSDL/">
 +
<xsd:element name="NewOperation">
 +
<xsd:complexType>
 +
<xsd:sequence>
  
 +
<xsd:element name="in" type="xsd:string"></xsd:element>
 +
</xsd:sequence>
 +
</xsd:complexType>
 +
</xsd:element>
 +
<xsd:element name="NewOperationResponse">
 +
<xsd:complexType>
 +
<xsd:sequence>
  
'''Unused Imports'''
+
<xsd:element name="out" type="xsd:string"></xsd:element>
 +
</xsd:sequence>
 +
</xsd:complexType>
 +
</xsd:element>
 +
</xsd:schema>
 +
</wsdl:types>
 +
<wsdl:message name="NewOperationRequest">
 +
<wsdl:part name="parameters" element="tns:NewOperation"></wsdl:part>
 +
</wsdl:message>
 +
<wsdl:message name="NewOperationResponse">
 +
<wsdl:part name="parameters" element="tns:NewOperationResponse"></wsdl:part>
 +
</wsdl:message>
 +
<wsdl:portType name="NewPortType">
 +
<wsdl:operation name="NewOperation">
 +
<wsdl:input message="tns:NewOperationRequest"></wsdl:input>
 +
<wsdl:output message="tns:NewOperationResponse"></wsdl:output>
 +
</wsdl:operation>
 +
</wsdl:portType>
 +
<wsdl:binding name="NewBinding" type="tns:NewPortType">
 +
<http:binding verb="GET" />
 +
<wsdl:operation name="NewOperation">
 +
<http:operation location="/NewOperation" />
 +
<wsdl:input>
 +
<http:urlEncoded />
 +
</wsdl:input>
  
Remove unused imports: from the menubar, Window -> Preferences -> select Web Services from the preference list -> WSDL Files -> make sure the option "Automatically remove unused WSDL and XSD imports and XML Namespace entries" is unchecked. Make changes if needed and press OK, otherwise press cancel. 
+
</wsdl:operation>
 +
</wsdl:binding>
 +
<wsdl:service name="NewService">
 +
<wsdl:port name="NewPort" binding="tns:NewBinding">
  
Switch to Source view -> after the <wsdl:definitions> tag, add an import statement like:
+
            <http:address location="http://www.example.org/"/>
<wsdl:import namespace="http://www.example.org/GolfCountryClub" location="../../XMLExamples/GolfCountryClub/GolfCountryClub.xsd"></wsdl:import> -> Save the file. The import should not dissappear. Follow the same steps as before to disable the "Automatically remove unused WSDL and XSD imports and XML Namespace entries" option but this time enable it.  If you Save again, the unused import will disappear
+
        </wsdl:port>
 +
</wsdl:service>
 +
</wsdl:definitions>
 +
</source>
 +
# Go to ''Window -> Preferences -> Service Policies''
 +
# Set the ''Compliance Level'' to ''Ignore compliance'' for both WSI AP 1.0 and WSI BP 1.1 SSBP 1.0
 +
# Validate the WSDL file, and '''verify''' no WS-I warnings appear
 +
# Change the ''Compliance Level'' to '''Suggest compliance'''
 +
# Validate the WSDL file again, and '''verify''' there are WS-I warnings
 +
# Change the ''Compliance Level'' to '''Require compliance'''
 +
# Validate the WSDL file again, and '''verify''' there are WS-I errors
  
 +
=Adhoc Tests=
 +
Please go to [[All_WSDL_Smoke_Test_Scenarios|Full WSDL Function Test Scenarios]] and randomly pick some tests that are not in neither the core tests nor the secondary rotating tests.
  
[[WTP_Smoke_Test_Scenarios_R30|Back to WTP 3.0 Test Scenarios]]
+
=Links=
 +
*[[All_WSDL_Smoke_Test_Scenarios|Full WSDL Function Test Scenarios]]
 +
*[[WTP_Smoke_Test_Scenarios_R30|WTP 3.0 Test Scenarios]]
 +
*[[WSDL_Smoke_Test_Scenarios|Old WSDL Test Scenarios]]
 +
*[[WSDL_Test_Plan|WSDL Test Plan]]

Latest revision as of 13:24, 8 April 2010

The smoke tests are organized into three categories: core tests, secondary rotating tests and adhoc tests. In every test run, the goal is to devote 60% of the time to core tests from which every test should be run, 30% to secondary rotating tests from which a tester can pick two or three tests making sure to cover each test at least once in a milestone, and 10% to adhoc test which can be picked randomly.

Core Tests

Every test in this category should be run in every smoke test.

Open and Close Editor

  1. Import the XML Examples: New -> Example ... -> Editing and validating XML files
  2. Open XMLExamples/PhoneBanking/PhoneBanking.wsdl and make sure you're in the design view
  3. Verify you can find PhoneBanking service, a square icon representing the binding and a Port Type named PhoneBanking with four operations.


File Creation & Saving

  1. Import the XML Examples: New -> Example ... -> Editing and validating XML files
  2. File -> New -> Other... -> Web Services -> WSDL to create an new WSDL file: NewWSDLFile.wsdl
  3. Verify the new file is created and opened in the WSDL Editor
  4. Right click on the canvas and select Add Service and add a new service called NewService and add a new PortType named NewPortType as well
  5. Save and close the editor
  6. Reopen the editor and verify that the NewService and NewPortType are persisted.
  7. File -> Save As..., and use the name NewWSDLFileSaveAs.wsdl
  8. Verify the NewWSDLFileSaveAs.wsdl file appear in the navigator
  9. In NewWSDLFileSaveAs.wsdl, add a new service and a new PortType
  10. Close the editor without saving the changes
  11. Reopen the NewWSDLFileSaveAs.wsdl, and verify that the new changes are discarded

Selection Tests

Synchronization between Properties, Design, Source, and Outline views: while conducting the Add/Modify tests, delete tests, and drag & drop tests, observe that these three views are synchronized

Note: if the nodes are collapsed and you add a new child, the node will not automatically expand. Therefore to test synchronization, expand the nodes whenever necessary to verify the synchronization between the Outline and Design view

Add/Modify Tests

For the tests where a new item is added:

  • Verify that the item was successfully added by finding and selecting the item from the Outline view or Design view
  • Whenever possible, modify the name of the item by changing the Name property in the Properties view under General properties

Tests:

  1. Imports: in the Outline view, right click on the Imports node -> Add Import
  2. Schema: in the Outline view, right click on the Types node -> Add Schema
  3. Service: in the Outline view, right click on the Services node -> Add Service
  4. Port: in the Outline view, right click on a created Service -> Add Port -> add a name or use default -> click Finish
  5. Binding: in the Outline view, right click on the Binding node -> Add Binding
  6. Binding content: in the Outline view, right click on a created Binding -> Generate Binding Content... -> select a Port type and protocol -> press Finish. In the Design view, an arrow from the binding to a portType should be created
  7. Port Type: in the Outline view, right click on the Port Type node -> Add Port Type
  8. Operation: in the Outline view, select a created Port Type and right click -> Add Operation
  9. Fault: in the Outline view, select a created Operation (Operations are found in Port Type -> a created Port Type -> Operation) -> Add Fault
  10. Message via Port Type: in the Outline view, select a created Port Type and expand the node until you see two blue arrows representing Input and Output. Right click on the blue arrow pointing right -> Set Message -> New Message... The newly created message will show up in the Messages node. Right click on the blue arrow pointing left -> Set Message -> Existing Message... -> Choose an existing message -> in the Properties view under General properties, the Message property should match the message you chose
  11. Message: in the Outline view, right click on the Messages node -> Add Message
  12. Part: in the Outline view, right click on a created Message -> Add Part
  13. Repeat the same steps for Design View. The UI element to mouseover and right click for each test is highlighted when selected in the Outline view

Delete Tests

For each of the items created in the Add/Modify test, right click on the item or an equivalent item -> Delete

Search & Refactoring

  1. Import the XML Examples: New -> Example ... -> Editing and validating XML files
  2. Open XMLExamples/PhoneBanking/PhoneBanking.wsdl
  3. In the Outline view, right click Port Type -> PhoneBanking and select References -> Project
  4. Verify that there is one reference in PhoneBanking.wsdl
  5. Right click Port Type -> PhoneBanking again and select Refactor -> Rename...'
  6. Check Update references and change the name to PhoneBankingChanged and click Preview ->
  7. Verify that there are two changes in PhoneBanking.wsdl
  8. Click OK and verify that the changes in the preview are applied to the file using the editor. (Hint: can search for PhoneBankingChanged in the file.)

Validation

  1. Import the XML Examples: New -> Example ... -> Editing and validating XML files
  2. Open XMLExamples/PhoneBanking/PhoneBanking.wsdl and switch to source view
  3. Replace <wsdl:portType name="PhoneBanking"> with <wsdl:portType name="PhoneBankingChanged">
  4. Right click on the WSDL file in the Package Explorer and select Validate
  5. Verify that a red X should show up because the WSDL file is invalid
  6. Revert the changes and re-validate
  7. Verify that the X disappears

Secondary Rotating Tests

Two or three tests from this category should be run in every smoke test. Testers should make sure every test should be run at least once in any given milestone.

Drag & Drop

  1. Import the XML Examples: New -> Example ... -> Editing and validating XML files
  2. Open XMLExamples/PhoneBanking/PhoneBanking.wsdl and make sure you're in the design view
  3. Locate the PhoneBanking PortType and its getAccountSummary operation
  4. Verify you can drag & drop to re-order the input and output of the operation
  5. Save and reopen the file
  6. Verify that the changes are persisted

Source Editing

  1. Import the XML Examples: New -> Example ... -> Editing and validating XML files
  2. Open XMLExamples/PhoneBanking/PhoneBanking.wsdl and switch to the source view
  3. Go the this line <soap:body use="literal" /> and change it to <soap:body use="literalChanged" />
  4. Verify that red squiggles underline "literalChanged" (no red squiggles see https://bugs.eclipse.org/bugs/show_bug.cgi?id=124911)
  5. Move the cursor before <wsdl:types> and hit Ctrl + space
  6. Verify that you see content assist like
    TopLevelWSDLElements.png
  7. Move the cursor after <wsdl:binding name="PhoneBankingSOAP" type="tns:PhoneBanking">
  8. Verify that you see content assist like
    BindingContentAssist.png
  9. Try content assist in various places if you're familiar with WSDL
  10. Add the following code snippet to as a child of <wsdl:definitions> (i.e. the document root)
<wsdl:service name="NewService">
   <wsdl:port name="NewPort">
      <soap:address location="http://www.example.org/" />
   </wsdl:port>
</wsdl:service>
  1. Switch to the design view
  2. Verify that the NewService is visible on the canvas
  3. Add a new binding in design view by using right click -> Add Binding
  4. Switch back to the source view
  5. Verify that you can find <wsdl:binding name="NewBinding"></wsdl:binding>

Hyperlink Navigation

  1. Import the XML Examples: New -> Example ... -> Editing and validating XML files
  2. Open XMLExamples/PhoneBanking/PhoneBanking.wsdl and switch to the source view
  3. Go the this line <wsdl:port binding="tns:PhoneBankingSOAP" name="PhoneBankingSOAP">
  4. Hold Ctrl and click on "tns:PhoneBankingSOAP"
  5. Verify that the source editor "jumps" to this line <wsdl:binding name="PhoneBankingSOAP" type="tns:PhoneBanking">

Extensions

  1. Import the XML Examples: New -> Example ... -> Editing and validating XML files
  2. Open XMLExamples/PhoneBanking/PhoneBanking.wsdl and make sure you're in the design view
  3. In the Outline view, right click Bindings -> PhoneBankingSOAP and select Show properties
  4. Click on the Extensions tab
  5. Verify that you can see the soap:binding extension
  6. Click Add...
  7. Select HTTP and then select binding and click OK
  8. Verify that an extension p:binding is added where p is defined in the source view as xmlns:p="http://schemas.xmlsoap.org/wsdl/http/"
  9. Fill in the Extension Details like required="true" and verb="abc"
  10. Save and reopen the file
  11. Verify the newly added extension is persisted
  12. Delete the p:binding extension
  13. Verify the extension is deleted

Schemas

  1. Import the XML Examples: New -> Example ... -> Editing and validating XML files
  2. Open XMLExamples/PhoneBanking/PhoneBanking.wsdl and make sure you're in the design view
  3. Hover your mouse over the arrow next to BillInfo
  4. Verify a schema preview popup shows up
  5. Click on the canvas to close the popup (Note: if this doesn't close it, click on the popup to close it.)
  6. Click on the arrow next to BillInfo
  7. Verify an external Schema Editor is opened on the file PhoneBanking.xsd showing the BillInfo
  8. Go back to the WSDL Editor of PhoneBanking.wsdl
  9. Right click on the PortType PhoneBanking and select Add Operation
  10. Click one of the faded gray arrows that appears on the right side of the new Operation
  11. Verify that an external Schema Editor is opened and its title says Inline Schema of PhoneBanking.wsdl

Preferences

  1. Go to Window -> Preferences -> Web Services -> WSDL Files
  2. In Default Target Namespace, set it to http://myDefaultTNS
  3. Create a new WSDL file named NewWSDLFile.wsdl using File -> New -> Other... -> Web Services -> WSDL
  4. Verify that you can find this attribute targetNamespace="http://myDefaultTNS/NewWSDLFile/" in the <wsdl:definitions> tag

WS-I Compliance

  1. Import the XML Examples: New -> Example ... -> Editing and validating XML files
  2. Open XMLExamples/PhoneBanking/PhoneBanking.wsdl
  3. Create a new WSDL file using the following content:
<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions name="WSIComplianceWSDL"
	targetNamespace="http://www.example.org/WSIComplianceWSDL/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
	xmlns:tns="http://www.example.org/WSIComplianceWSDL/" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
	xmlns:http="http://schemas.xmlsoap.org/wsdl/http/">
	<wsdl:types>
		<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
			targetNamespace="http://www.example.org/WSIComplianceWSDL/">
			<xsd:element name="NewOperation">
				<xsd:complexType>
					<xsd:sequence>
 
						<xsd:element name="in" type="xsd:string"></xsd:element>
					</xsd:sequence>
				</xsd:complexType>
			</xsd:element>
			<xsd:element name="NewOperationResponse">
				<xsd:complexType>
					<xsd:sequence>
 
						<xsd:element name="out" type="xsd:string"></xsd:element>
					</xsd:sequence>
				</xsd:complexType>
			</xsd:element>
		</xsd:schema>
	</wsdl:types>
	<wsdl:message name="NewOperationRequest">
		<wsdl:part name="parameters" element="tns:NewOperation"></wsdl:part>
	</wsdl:message>
	<wsdl:message name="NewOperationResponse">
		<wsdl:part name="parameters" element="tns:NewOperationResponse"></wsdl:part>
	</wsdl:message>
	<wsdl:portType name="NewPortType">
		<wsdl:operation name="NewOperation">
			<wsdl:input message="tns:NewOperationRequest"></wsdl:input>
			<wsdl:output message="tns:NewOperationResponse"></wsdl:output>
		</wsdl:operation>
	</wsdl:portType>
	<wsdl:binding name="NewBinding" type="tns:NewPortType">
		<http:binding verb="GET" />
		<wsdl:operation name="NewOperation">
			<http:operation location="/NewOperation" />
			<wsdl:input>
				<http:urlEncoded />
			</wsdl:input>
 
		</wsdl:operation>
	</wsdl:binding>
	<wsdl:service name="NewService">
		<wsdl:port name="NewPort" binding="tns:NewBinding">
 
            <http:address location="http://www.example.org/"/>
        </wsdl:port>
	</wsdl:service>
</wsdl:definitions>
  1. Go to Window -> Preferences -> Service Policies
  2. Set the Compliance Level to Ignore compliance for both WSI AP 1.0 and WSI BP 1.1 SSBP 1.0
  3. Validate the WSDL file, and verify no WS-I warnings appear
  4. Change the Compliance Level to Suggest compliance
  5. Validate the WSDL file again, and verify there are WS-I warnings
  6. Change the Compliance Level to Require compliance
  7. Validate the WSDL file again, and verify there are WS-I errors

Adhoc Tests

Please go to Full WSDL Function Test Scenarios and randomly pick some tests that are not in neither the core tests nor the secondary rotating tests.

Links