Skip to main content

Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.

Jump to: navigation, search

Difference between revisions of "Descriptive WSDL Smoke Test Scenarios"

(Zooming)
(Source Editing)
 
(26 intermediate revisions by 4 users not shown)
Line 1: Line 1:
==Example Setup==
+
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.
Examples found via: New -> Example ... -> Editing and validating XML files
+
 
 +
= '''Core Tests''' =
 +
'''Every test in this category should be run in every smoke test.'''
  
 
==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.
 +
 
 +
 
 +
==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==
 
==Selection Tests==
Line 31: Line 48:
 
==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
==Drag & Drop==
 
'''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
 
==Source Editing==
 
# '''As You Type Validation''': as you type validation shows red squiggles for invalid content (no red squiggles see https://bugs.eclipse.org/bugs/show_bug.cgi?id=124911)
 
# '''Content Assist''': use CTRL+SPACE in various parts of the WSDL to see the possible entries that can be added
 
# '''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
+
==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.)
  
==Export Diagram as Image==
+
==Validation==
From the menubar, WSDL -> Export Diagram as Image -> choose filename -> Press OK.  Open the image and ensure the proper image is exported (according to what's shown in the Design view) and the image is not cut-off
+
# Import the XML Examples: ''New -> Example ... -> Editing and validating XML files''
 +
# 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''
 +
# '''Verify''' that a red X should show up because the WSDL file is invalid
 +
# Revert the changes and re-validate
 +
# '''Verify''' that the X disappears
  
==Navigation History==
+
=Secondary Rotating Tests=
The Navigation History's back and forward buttons can be found in the toolbar as a left and right arrow respectively. A shortcut is to use ALT+LEFT and ALT+RIGHT.
+
'''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==
 +
# 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
 +
# 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>''
  
In the Design View, create a chain of references by clicking on items such as inline schemas and imported WSDL components.  Use the back and forward arrows to navigate through the chain of references.  Ensure the correct Design View is displayed for the item and the back and forward buttons navigate correctly through the chain of references.
 
 
==Hyperlink Navigation==
 
==Hyperlink Navigation==
#'''Referenced components''': in the Source View, press F3 or "CTRL+click" over a referenced component. The source editor should go to the referenced component
+
# Import the XML Examples: ''New -> Example ... -> Editing and validating XML files''
#'''Imports in the Source View''': in the Source View, press F3 or "CTRL+click" over an imported WSDL or XML Schema and the selection should jump to the referenced component
+
# Open ''XMLExamples/PhoneBanking/PhoneBanking.wsdl'' and switch to the ''source'' view
#'''Imports in the Design View''': in the Design View, double click on an imported WSDL or XML Schema, which will automatically open the editor
+
# 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">''
  
 
==Extensions==
 
==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
+
# Import the XML Examples: ''New -> Example ... -> Editing and validating XML files''
# '''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
+
# Open ''XMLExamples/PhoneBanking/PhoneBanking.wsdl'' and make sure you're in the ''design'' view
# '''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
+
# In the Outline view, right click ''Bindings -> PhoneBankingSOAP'' and select ''Show properties''
==Refactoring==
+
# Click on the ''Extensions'' tab
'''Rename a Port Type''': in Outline view, right click on a created Port Type -> Refactor -> Rename... -> rename the file and press OK
+
# '''Verify''' that you can see the ''soap:binding'' extension
==File Creation & Saving==
+
# Click ''Add...''
# '''Save and Save-As''': Use save and save-as on WSDL files
+
# Select ''HTTP'' and then select ''binding'' and click ''OK''
# '''Close without saving''': changes should not be committed
+
# '''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/"''
# '''Open existing WSDL file'''
+
# Fill in the ''Extension Details'' like ''required="true"'' and ''verb="abc"''
# '''Create a new WSDL file''': File -> New -> Other... -> Web Services folder -> WSDL
+
# Save and reopen the file
==Validation==
+
# '''Verify''' the newly added extension is persisted
# '''Schema validation''': introduce invalid elements/attributes, incorrect types, and break references (change an element's name which has multiple references to it) 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
+
# Delete the ''p:binding'' extension
# '''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
+
# '''Verify''' the extension is deleted
  
 
==Schemas==
 
==Schemas==
# '''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.
+
# Import the XML Examples: ''New -> Example ... -> Editing and validating XML files''
# '''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"
+
# Open ''XMLExamples/PhoneBanking/PhoneBanking.wsdl'' and make sure you're in the ''design'' view
# '''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
+
# 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''
 +
 
 
==Preferences==
 
==Preferences==
WSDL preferences are found in the menubar Window -> Preferences -> Web Services -> WSDL Files  
+
# 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
  
 +
==WS-I Compliance==
 +
# Import the XML Examples: ''New -> Example ... -> Editing and validating XML files''
 +
# 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>
  
'''Default Target Namespace'''
+
<xsd:element name="in" type="xsd:string"></xsd:element>
 
+
</xsd:sequence>
Modify the Default Target Namespace and ensure this namespace is used in the WSDL wizard.
+
</xsd:complexType>
 
+
</xsd:element>
 
+
<xsd:element name="NewOperationResponse">
'''Regenerate Bindings'''
+
<xsd:complexType>
 
+
<xsd:sequence>
Broken now see https://bugs.eclipse.org:443/bugs/show_bug.cgi?id=250420
+
 
+
 
+
'''Prompt Regenerate Binding on save'''
+
 
+
Broken now see https://bugs.eclipse.org:443/bugs/show_bug.cgi?id=250420
+
 
+
 
+
'''Automatically remove unused WSDL and XSD imports and Namespace entries'''
+
 
+
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. 
+
 
+
Switch to Source view -> after the <wsdl:definitions> tag, add an import statement like:
+
<wsdl:import namespace="http://www.example.org/GolfCountryClub" location="../../XMLExamples/GolfCountryClub/GolfCountryClub.xsd"></wsdl:import> -> Save the file.  Check the "Automatically remove unused WSDL and XSD imports and XML Namespace entries."  If you Save again, the unused import will disappear.
+
 
+
==WS-I Compliance==
+
'''Initial WSDL Setup'''
+
  
#Create an empty WSDL file by using File -> New -> File, and naming the file with the .wsdl extension
+
<xsd:element name="out" type="xsd:string"></xsd:element>
#Right click on the Design View -> Add Service, let this Service be known as the newly created Service
+
</xsd:sequence>
#Right click on the Design View -> Add Binding, let this binding be known as the newly created Binding
+
</xsd:complexType>
#Right click on the Design View -> Add PortType, let this PortType be known as the newly created PortType
+
</xsd:element>
#Right click on the newly created Binding -> Generate Binding Content... -> Choose the newly created PortType as the Port Type and select HTTP as the protocol -> click Finish
+
</xsd:schema>
#Right click on the Port, which is the child of a Service -> Set Binding -> Existing Binding... -> select the newly created Binding -> Press OK
+
</wsdl:types>
#Save the file and right click on the file -> Validate
+
<wsdl:message name="NewOperationRequest">
#There should be one error on 'mime:content', to fix double click on the error, which will bring you to the Source view.  Remove:     <wsdl:output><mime:content type="text/xml" /></wsdl:output>
+
<wsdl:part name="parameters" element="tns:NewOperation"></wsdl:part>
#Save the file and Validate again, you should see WS-I warnings
+
</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>
  
'''Tests:'''
+
</wsdl:operation>
 +
</wsdl:binding>
 +
<wsdl:service name="NewService">
 +
<wsdl:port name="NewPort" binding="tns:NewBinding">
  
# '''Ignore compliance''': From the menubar, Window -> Preferences -> Service Policies -> for both WSI AP 1.0 and WSI BP 1.1 SSBP 1.0 set the Compliance Level to "Ignore compliance" -> Press OK -> Validate the WSDL file, all the WS-I warnings should dissapear
+
            <http:address location="http://www.example.org/"/>
# '''Suggest compliance''': Repeat the step above, but choose "Suggest compliance."  The WS-I warnings should be shown when validated
+
        </wsdl:port>
# '''Require compliance''': Repeat the step above, but choose "Require compliance." The WS-I warnings will now be errors when validated
+
</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
  
==Zooming==
+
=Adhoc Tests=
# '''Zoom out''': open a WSDL file and go to the Design View.  From the menubar -> WSDL Editor -> Zoom Out.  Try several times and make sure the text and the boxes get smaller
+
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.
# '''Zoom in''': open a WSDL file and go to the Design View.  From the menubar -> WSDL Editor -> Zoom In. Try several times and make sure the text and the boxes get larger
+
  
==Links==
+
=Links=
 +
*[[All_WSDL_Smoke_Test_Scenarios|Full WSDL Function Test Scenarios]]
 
*[[WTP_Smoke_Test_Scenarios_R30|WTP 3.0 Test Scenarios]]
 
*[[WTP_Smoke_Test_Scenarios_R30|WTP 3.0 Test Scenarios]]
 
*[[WSDL_Smoke_Test_Scenarios|Old WSDL Test Scenarios]]
 
*[[WSDL_Smoke_Test_Scenarios|Old WSDL Test Scenarios]]
 
*[[WSDL_Test_Plan|WSDL Test Plan]]
 
*[[WSDL_Test_Plan|WSDL Test Plan]]

Latest revision as of 14: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

Back to the top