<!DOCTYPE HTML PUBLIC "-//W3C/DTD/ HTML 4.01 Transitional//EN">

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta name="GENERATOR" content="Mozilla/4.7 [en] (WinNT; U) [Netscape]">
<META content="text/css" http-equiv="Content-Style-Type">
<title>smoke</title>
</head>
<body>
<h2> Smoke Test - XML Editor</h2>

Last updated: July 16, 2003 (pa)

<P>This Smoke Test primarily focuses on the RTP portion of the XML
Editor, which is the Source page of the XML Editor. It also performs
some integration testing. For example, it tests synchronization between
the Design and Source pages of the XML Editor, as well as with the
Outline and Properties views. It also verifies that files created
through the XML File wizard and references to the XML Catalog are
supported as expected.</P>
<P><FONT color="#ff0000"><B>NOTE</B>: XML files are case-sensitive so be sure that things appear
exactly as noted.</FONT></P>

<!-- ===========================================================
                           Setup
     ===========================================================
-->
<H2><FONT color="#0000ff">Setup</FONT></H2>
<P><B>Starting Clean</B></P>
<ul>
    <li> Delete any existing workbench</li>
    <li> Start Studio</li>
</ul>
<P><B>Open an XML Perspective<BR>
</B></P>
<UL>
    <LI>Select <B>Window->Open Perspective</B> in the menu bar</LI>
    <LI>Select <B>Other...</B></LI>
    <LI>Select <B>XML</B></LI>
    <LI>Verify the following views appear in the XML perspective (Note that the location 
    	of the Outline and Navigator views are reversed from the Web perspective):
    </LI>
  <UL>
    <LI><FONT color="#000000">Outline</FONT></LI>
    <LI><FONT color="#000000">Navigator</FONT></LI>
    <LI><FONT color="#000000">Tasks</FONT></LI>
    <LI><FONT color="#000000">Properties</FONT></LI>    
  </UL>
  </FONT>
</UL>
<P><B>Project Creation and File Imports<BR>
</B></P>
<UL>
    <LI>Create a Project, <B>XMLTest2</B> </LI>
    <LI>Import the following files into this project:
    <UL>
	    <LI><B>Invoice.dtd</B> from plugins/com.ibm.etools.xmlbuilder/test</LI>
	    <LI><B>JobDesc.xml</B> from plugins/com.ibm.etools.xmlbuilder/test</LI>
	    <LI><B>JobPosting.dtd</B> from plugins/com.ibm.etools.xmlbuilder/test</LI>
	    <LI><B>PurchaseOrder.xsd</B> from plugins/com.ibm.etools.xsdeditor/samples/PurchaseOrder </LI>
	    <LI><B>ATS.dtd</B> from plugins/com.ibm.sed.editor/smoke/setupFiles</LI>
	    <LI><B>basicXHTMLex.html</B> from plugins/com.ibm.sed.editor/smoke/setupFiles</LI>
	    <LI><B>gotchaTCBeans.set</B> from plugins/com.ibm.sed.editor/smoke/setupFiles</LI>
	    <LI><B>Wireless.xml</B> from plugins/com.ibm.sed.editor/smoke/setupFiles</LI>
  </UL>
    </LI>
</UL>

<!-- ===========================================================
                    Create/Open/Edit test cases
     ===========================================================
-->
<H2><FONT color="#0000ff">Create/Open/Edit test cases</FONT></H2>
<P><B>Create an XML File from scratch</B></P>
<UL>
	<LI>Make sure you are in the XML Perspective (if not, switch to it)</LI>
    <LI>Select the <B>Create a new XML file</B> toolbar button.</LI>
    <LI>Verify the Create a XML File wizard appears and the Finish button is disabled.</LI>
    <LI>Accept the default to <B>Create XML file from scratch</B></LI>
    <LI>Go to the Next page
	    <UL>
	        <LI>Select <B>XMLTest2</B> as the folder</LI>
	        <LI>Specify a File name of <B>fromScratch</B></LI>
	        <LI>Select <B>Finish</B></LI>
	    </UL>
    </LI>
    <LI>Verify the following:
    <UL>
        <LI>fromScratch.xml appears in the Navigator view.</LI>
        <LI>fromScratch.xml is open to the Design page of the XML Editor and has focus.</LI>
        <LI>the Design tab appears before the Source tab in the XML Editor.</LI>
        <LI>the Design and Source page show &lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;.</LI>
        <LI>the Outline view shows an entry for the xml processing instruction.</LI></B>
    </UL>
    </LI>
    <LI>Switch to the Source page. Verify the cursor appears at the beginning of the file.</LI>
    <LI>Right mouse button 2 and verify a popup menu appears.</LI>
    <LI>Position the cursor within the XML declaration and verify <B>version</B> and <B>encoding</B> appear in the Properties view. <FONT color="#ff0000">This used to work, but now it's not working. Opened defect <B>177662</B> - XML declaration attributes not appearing in Properties view. Generally, processing instructions follow no standards but specific support for attributes of &lt;?xml?&gt; is still requested in the defect.</FONT> <FONT color="#008855"><B>AFW</B>-this still does not work in v5.0.1</FONT></LI>
    <LI>Continue to the next section.</LI>
</UL>
<P><B>Identify a local DTD (</B>verifies a DTD is immediately recognized; in the past, you had to close and reopen the Workbench<B>)</B></P>
<UL>
    <LI>Type the following after the XML declaration in <B>fromScratch.xml</B>: <B>&lt;!DOCTYPE Invoice SYSTEM &quot;Invoice.dtd&quot;&gt;</B>. The text should be syntax highlighted as you type and you should see an entry get added to the Outline view.</LI>
    <LI>Hit <B>Enter</B> to create a new line after the DOCTYPE declaration.</LI>
    <LI>Hit <B>Ctrl+Space</B>.Verify only <B>Invoice</B> and <B>comment</B> appear in the proposal list. (<B>NOTE</B>: <B>Invoice</B> is the root element)
        <BR/>
        <SPAN STYLE="color:red">this might be picky but "Invoice" doesn't show up until the second time you 
            press ctrl+space.. the first time you press it, that's when the DTD seems to get read in,
            the second time, the list is correctly populated. <B>(pa) 20020626</B>
        </SPAN>
    </LI>
    <LI>Hit <B>Enter</B> to accept <B>Invoice</B> as a selection. Verify the Invoice start and end tags are inserted into the Source and the cursor appears between them. An element entry should appear for Invoice in the Outline view. (<B>NOTE</B>: XML is case-sensitive so be sure you see Invoice and not invoice everywhere).</LI>
    <LI>Hit <B>Ctrl+Space</B>. Verify the following appears in the proposal list (in the order shown):
  <UL>
        <LI>comment</LI>
        <LI>Header</LI>
        <LI>Item</LI>
        </B></FONT>
    </UL>
    </LI>
    <LI>Select <B>Header</B>.  Hit <B>Enter</B> to accept the selection.</LI>
    <LI>Verify the Source now looks like the following and the cursor appears before <B>invoiceNumber</B>:<IMG border="0" src="identifyDTD.jpg"></LI>
    <LI>Verify <B>Header</B> appears nested under <B>Invoice</B> in the Outline view.</LI>
  <LI>Close this file, and respond <B>Yes</B> when prompted to save the changes.</LI>
  <LI>Reopen the file and verify the changes were saved.</LI>
  <LI>Close the file. Verify no save changes prompt appears.</LI>
</UL>
<P><B>Create an XML File from an imported DTD</B></P>
<UL>
    <LI>Select the <B>File-&gt;New-&gt;XML</B>.</LI>
    <LI>Verify the Create a XML File wizard appears.</LI>
    <LI>Select to <B>Create XML file from a DTD file</B></LI>
    <LI>Go to the Next page
    <UL>
        <LI>Select <B>XMLTest2</B> as the folder</LI>
        <LI>Specify a File name of <B>fromLocalDTD</B></LI>
        <LI>Go to the Next page</LI>
    </UL>
    </LI>
    <LI>Select the <B>Import File</B> button
    <UL>
        <LI>Use the Browse button to find <B>/plugins/com.ibm.sed.editor/smoke/setupFiles/testcase.dtd</B></LI>
        <LI>Select <B>XMLTest2</B> as the folder. <FONT color="#ff0000">Would be nice if this were already filled in. See defect <B>178354</B>.</FONT></LI>
        <LI>Select <B>Finish</B> to close the Import File wizard</LI>
    </UL>
    </LI>
    <LI>Expand <B>XMLtest2</B> and then select <B>testcase.dtd</B>. <s><!--<FONT color="#ff0000">-->Was expecting to see the imported file selected in the Workbench files list, but it wasn't. See defect <B>178354</B></s>.<!--</FONT>--></LI>
    <LI>Go to the Next page.</LI>
    <LI>Select <B>testcase</B> as the Root Element.</LI>
    <LI>Accept the default to <B>Create required content only</B>.</LI>
    <LI>Verify <B>testcase.dtd</B> appears as the System Id.</LI>
    <LI>Select Finish. Verify <B>fromLocalDTD.xml</B> appears in the XML Editor. Verify the Source page looks like the following: <IMG border="0" src="importDTD.jpg"></LI>
  <LI>Verify the Outline view and the formatting indentation reflect the proper element/tag hierarchy. Here's what the Outline view should look like (<!-- NSD-2002.10.30-->after you expand it):<br><IMG border="0" src="outline1.jpg"></LI>
  <LI>Verify selection synchronization between the Design page, Source page, Outline view,
        and Properties view.
    <UL>
        <LI>From the Source page, click within the <B>header</B> start tag.
            Verify <B>header</B> is selected in the Outline view and in the Design
            page and that the following properties and property values appear in the
            Properties view:
        <TABLE border="1">
            <TBODY>
                <TR>
                    <TD width="100"><B>Property</B></TD>
                    <TD width="76"><B>Value</B></TD>
                </TR>
                <TR>
                    <TD width="100">category</TD>
                    <TD width="76">webtool</TD>
                </TR>
                <TR>
                    <TD width="100">number</TD>
                    <TD width="76">idvalue0</TD>
                </TR>
                <TR>
                    <TD width="100">state</TD>
                    <TD width="76">&nbsp;</TD>
                </TR>
                <TR>
                    <TD width="100">subCategory</TD>
                    <TD width="76">Accessability</TD>
                </TR>
                <TR>
                    <TD width="100">subSubCategory</TD>
                    <TD width="76">&nbsp;</TD>
                </TR>
            </TBODY>
        </TABLE>
        </LI>
	<LI>From the Outline view, select the <B>testBucket</B> tag.
            Verify <B>testBucket</B> is selected in the Design page and the current marker
            in the lefthand margin of the Source page indicates the range of the
            <B>testBucket</B> tag. The Properties view should show a property of <B>type</B>
            with a value of <B>ComponentTest</B>.
        </LI>
    </UL>
    </LI>
    <LI>Verify edit synchronization between the Design page, Source page, and
        Properties view (focus here is on adding attributes and attribute values).
    <UL>
        <LI>From the Source page, use content assist to insert an attribute and attribute value
            for the <B>header</B> start tag.
            <UL>
            <LI>Position the cursor after the <B>category</B> attribute in the <B>header</B> start tag.</LI>
            <LI>Type <B>space</B> and then hit prompt for content assist.</LI>
            <LI>Verify only <B>state="UnderConstruction"</B> and <B>subSubCategory</B> appear in the proposal list (content assist is smart enough not to list any attributes that already exist in the start tag since attributes can only appear once. <FONT color="#0000ff">Cool!</FONT>).</LI>
            <LI>Select <B>state="UnderConstruction"</B>.  Hit Enter.</LI>
            <LI>Verify <B>state="UnderConstruction"</B> is inserted in the Source page (content assist automatically inserts any default values. <FONT color="#0000ff">Cool!</FONT>). Verify the Design page and Properties view reflect this change.</LI>
            </UL>
        </LI>
        <LI>From the Properties view, update the <B>state</B> attribute value to "UnderReview"
            (a pulldown list of values should be available). Verify the change is reflected
            in the Source and Design pages.
        </LI>
        <LI>From the Design page, add an attribute and attribute value to the <B>header</B> tag.
            <UL>
            <LI>Bring up the popup menu for the <B>header</B> tag.</LI>
            <LI>Select <B>Add Attribute->subSubCategory</B> from the popup menu (it's smart
                enough to know which attributes haven't been specified yet ... like content
                assist. Cool!).</LI>
            <LI>Type in a value of <B>Keyboard support</B>.</LI>
            <LI>Verify the change is reflected in the Source page and Properties view 
                <BR/>           
                <SPAN STYLE="color:red">another small thing.
                    after you add the attribute, then click over to source, the cursor is visible
                    but the attribute text is barely.  maybe the text should be scrolled over a bit more so you
                    can read the attribute name at least.  i couldn't see the cursor right away, so i had
                    to press the arrow key.
                    <B>(pa) 20020626</B>
                </SPAN>

            </LI>
            </UL>
        </LI>
    </UL>
    </LI>
</UL>
<P><B>Open an XML File that references a remote DTD</B></P>
<UL>
    <LI>Open the <B>Wireless.xml</B> file.</LI>
    <LI>Verify it looks like the following in the Source page:<BR><IMG border="0" src="wireless.jpg"></LI>
    <LI>Verify the Outline view and the formatting indentation reflect the proper
        element/tag hierarchy. Here's what the Outline view should look like: <IMG border="0" src="outline2.jpg"></LI>
    <LI>Verify content assist.</LI>
        <UL>
           <LI>Create a new line after the <B>wml</B> start tag.</LI>
           <LI>Prompt for content assist on the new line.</LI>
           <LI>Verify the following appear as proposals (in the order shown):
               <UL>
                   <LI>card</LI>
                   <LI>comment</LI>
                   <LI>head</LI>
                   <LI>template</LI>
               </UL>
           </LI>
           <LI>Create a new line after the <B>wml</B> start tag.</LI>
           <LI>Type a space before the ending delimiter on the card start tag (so that it reads as <font face='monospace'>&lt;card&nbsp;&gt;</font>).</LI>
           <LI>Prompt for content assist</LI>
           <LI>Verify the following appear as proposals (not necessarily in the
               order shown).
               <UL>
                   <LI>class</LI>
                   <LI>id</LI>
                   <LI>newcontext="false"</LI>
                   <LI>onenterbackward</LI>
                   <LI>onenterforward</LI>
                   <LI>ontimer</LI>
                   <LI>ordered="true"</LI>
                   <LI>title</LI>
                   <LI>xml:lang</LI>
               </UL>
           </LI>
           <LI>Position the cursor <!--NSD:2002.10.30 within-->at the beginning of the <B>method</B> attribute value in the <B>go</B> start tag.</LI>
           <LI>Prompt for content assist</LI>
           <LI>Verify <B>get</B> and <B>post</B> appear as proposals.
           </LI>
        </UL>
    <LI>Verify selection synchronization between the Design page, Source page, Outline view,
        and Properties view.
    <UL>
        <LI>From the Source page, click within the <B>card</B> start tag.
            Verify <B>card</B> is selected in the Outline view and in the Design
            page and that the content assist proposals listed above for the
            <B>card</B> tag appear as properties in the Properties view. No values should appear for these properties.</LI>
	<LI>From the Outline view, select the <B>postfield</B> tag.
            Verify <B>postfield</B> is selected in the Design page and the current marker
            in the lefthand margin of the Source page indicates the range of the
            <B>postfield</B> tag. The Properties view should show the following properties,
            none of which should have a value:
               <UL>
                   <LI>class</LI>
                   <LI>id</LI>
                   <LI>name</LI>
                   <LI>value</LI>
               </UL>
           </LI>
    </UL>
    </LI>
    <LI>Verify edit synchronization between the Design page, Source page, Outline view, and
        Properties view (focus here is on adding elements/tags).
    <UL>
        <LI>From the Source page, copy and paste the <B>card</B> tag.
            <UL>
            <LI>Position the cursor in the <B>card</B> start tag.</LI>
            <LI>Notice the range of the <B>card</B> tag in the lefthand margin area.</LI>
            <LI>Highlight then copy this range of lines using the <B>Edit->Copy</B> pulldown menu selection.</LI>
            <LI>Paste after the <B>card</B> end tag using Ctrl+V.</LI>
            <LI>Verify the appropriate lines were pasted n the Source page.
                Verify the Design page, Outline view, and the Properties
                view reflect this change.</LI>
            </UL>
        </LI>
        <LI>From the Design page, add another <B>card</B> tag.
            <UL>
                <LI>Bring up the popup menu for the <B>wml</B> tag.</LI>
                <LI>Select <B>Add Child->card</B> from the popup menu.</LI>
                <LI>Verify the Source page, Outline view, and the Properties
                    view reflect this change. NOTE: it should have generated out
                    the same thing as the original card tag, with the exception
                    that a <B>method</B> attribute should not exist in the <B>go</B> start tag. 
                    <FONT color="#008855"><B>AFW-only card start/end tag generated.</B></FONT> 
                    <span style="color:red"> ** still does that 20020620 <b>(pa)</b>
                        perhaps there should be an option for adding just the child, or the
                        child and all of its children...
                    </span>
                </LI>
            </UL>
        </LI>
    </UL>
    </LI>
</UL>
<P><B>Create and Validate an XML File from a schema</B><BR>
(these steps are taken from the 'Design' smoke test, except the Source Page is the focus)
<ul>
  <li>Right mouse button 2 on the <B>PurchaseOrder.xsd</B> and select <b>Generate-&gt;XML File...</b>.</li>

<li>
Accept the default file name.</li>
  

<li>
In the Select Root Element page, choose <b>purchaseOrder</b> as root element.</li>

<li>
Choose <b>Create required and optional content</b>.</li>
  <li>
Enter <b>po</b> as the Namespace Prefix.</li>

<li>On Finish, a PurchaseOrder.xml is created and the XML Editor is opened. (Select Source Page if not already there.)</li>

<li>Run Validate. The PurchaseOrder.xml should be invalid.</li>
<li>
Double click on the error message. It should be positioned to the line
in error, i.e. the <b>partNum</b> attribute. It is invalid because the
value is not set to match the XML schema pattern facet "d3-[A-Z]{2}" (3
digits followed by 2 characters).</li>
  <li>In the Source View, locate the <b>partNum</b> attribute under element item.
Enter the value 333-AB.</li>
  

<li>Run Validate. The PurchaseOrder.xml document should now be valid.</li>
</UL>
<HR>
<UL>
  <li>Place the cursor after the &lt;items&gt; tag and be sure &quot;item&quot; is listed in the content assist list.</li>
  
<li>Rename the purchaseOrder.xsd to, say, purchaseOrderHOLD.xsd</li>

  <li>Verify that content assist still gives you "item" as above.</li>
  
<li>Now select the <B>Reload Dependancies</B> toolbar button.</li>
  <li>Verify that now content assist no longer lists any items other 
than the macro "comment" and that the "comment" macro's text displays in the additional info popup.  
   </li>
  
<li>Repeat making purchaseOrder.xsd workable again.</li>

</ul>
<P><B>Create an XML File from a new DTD catalog entry</B>
<BR><IMG border="0" height="63" src="u011ani.gif" width="63"></P>


<b>The following comes directly from the 'Design' Smoke Test: XML Catalog for XML Schema</b>
<ul>
  
<li>
Run Validate on PurchaseOrder.xml to make sure it is valid</li>
  

<li>
Create a new project, XMLTest3</li>
    <li>
Move the PurchaseOrder.xsd into XMLTest3.</li>
  

<li>Run Validate on PurchaseOrder.xml. You will notice that it is no longer
valid. The error message should give you a hint that the file PurchaseOrder.xsd
can no longer be found.</li>
  <li>
Open the Workbench->Preferences and select the XML Catalog.</li>
  <li>
Create a new user-specified entry and browse for PurchaseOrder.xsd in XMLTest3.  Keep the default values.</li>

<li>
Click on the Reload button to reload the catalog settings.</li>
<li>
Run Validate. The PurchaseOrder.xml document should now be valid.</li>
</ul>
<!-- ===========================================================
                      Save/Validate test cases
     ===========================================================
-->
<H2><FONT color="#0000ff">Save/Validate test cases</FONT></H2>
<P><B>Saving an XML File</B><BR>
(NOTE: the <B>Identify a local DTD</B> test case tests the save prompt on a file close.)</P>
<UL>
  <LI>If any files are open, select <B>File-&gt;Close All</B> (or <B>Ctrl+Shift+F4</B>) to close them.</LI>
  <LI>Open any xml file in the <B>XMLTest2</B> project.</LI>
  <LI>Verify the following (no-changes-made condition):
  <UL>
    <LI><B>File-&gt;Save</B> is <font color="#800000">disabled</font>.</LI>
    <LI><B>File-&gt;Save All</B> is <font color="#800000">disabled</font>.</LI>
    <LI><B>File-&gt;Save As</B> is <font color="#008000">enabled</font>.</LI>
    <LI>the <B>Save Editor Contents</B> toolbar button (a diskette) is <font color="#800000">disabled</font>.</LI>
    <LI>the <B>Save To Another Location</B> toolbar button is <font color="#008000">enabled</font>.</LI>
    <LI><B>Save</B> is <font color="#800000">disabled</font> on the Source popup menu. <FONT color="#ff0000">Would be nice if the Design popup menu also had a Save selection (as well as other selections that the Source popup menu provides). See defect <B>178352</B></FONT>.</LI>
    <LI>no <B>*</B> appears in the file tab.</LI>
  </UL></LI>
  <LI>Make a change in the Source page.</LI>
  <LI>Verify the following (changes-made condition):
  <UL>
    <LI><B>File-&gt;Save</B> is <font color="#008000">enabled</font>.</LI>
    <LI><B>File-&gt;Save As</B> is <font color="#008000">enabled</font>.</LI>
    <LI><B>File-&gt;Save All</B> is <font color="#008000">enabled</font></LI>
    <LI>the <B>Save To Another Location</B> toolbar button (a diskette) is <font color="#008000">enabled</font>.</LI>
    <LI><B>Save</B> is <font color="#008000">enabled</font> on the Source popup menu.</LI>
    <LI>a <B>*</B> appears in the file tab.</LI>
  </UL></LI>
  <LI>Hit <B>Ctrl+S</B>. </LI>
  <LI>Verify the no-changes-made conditions apply.</LI>
  <LI>Make a change in the Design page.</LI>
  <LI>Verify the changes-made conditions apply.</LI>
  <LI>File-&gt;Save All<B></B>.</LI>
  <LI>Verify the no-changes-made conditions apply.</LI>
  <LI>Make a change in the Properties view.</LI>
  <LI>Verify the changes-made conditions apply.</LI>
  <LI>Select <B>Save</B> from the Source popup menu.</LI>
  <LI>Verify the no-changes-made conditions apply.</LI>
  <LI>Close and then reopen the file.</LI>
  <LI>Verify the changes that were made in the previous steps appear in the Design and Source pages.</LI>
</UL>
<P><B>Saving an XML File across multiple workbenches (optional)</B></P>
<UL>
  <LI>Open any xml file in the <B>XMLTest2</B> project.</LI>
  <LI>Make a change to the file.</LI>
  <LI>Open another XML Perspective in a new window (Workbench) by selecting <B>Window->New Window</B></LI>
  <LI>Verify another XML Perspective is opened in a new Workbench window.</LI>
  <LI>Open the same xml file as in the first step above.</LI>
  <LI>Verify the changes-made conditions apply in both XML Perspectives and verify that the changes made to the file in the first perspective appear in the same file in the second perspective.</LI>
  <LI>Make some changes to the file in the second perspective.</LI>
  <LI>Verify these changes appear in the same file in the first perspective.</LI>
  <LI>Close the file in the second perspective and respond <B>Yes</B> to the save changes prompt.</LI>
  <LI>Verify the no-changes-made condition applies in the first perspective and then try to modify the file. </LI>
</UL>
<P><B>Validating a non well formed XML File (no DTD/Schema)</B><BR>
(NOTE: it's important that the following be typed in. This test case tries to cover some of the more common errors that render an XML file as not being well-formed. It is not intended to verify that all possible errors are being detected and gracefully handled. )</P>
<UL>
  <LI>Select the <B>Create a new XML file</B> toolbar button.</LI><LI>Accept the default to <B>Create a new XML file from scratch</B></LI>
  <LI>Go to the Next page
    <UL>
        <LI>Select <B>XMLTest2</B> as the folder</LI>
        <LI>Specify a File name of <B>NonWellFormed</B></LI>
        <LI>Select <B>Finish</B></LI>
  </UL></LI>
  <LI>Create a new line after the XML declaration.</LI>
  <LI>Prompt for content assist.</LI>
  <LI>Select comment.</LI>
  <LI>Embed more than 2 consecutive dashes in the comment.
        <FONT color="#0000ff">(NOTE: XML validity states that more than 2 consecutive dashes can not be embedded within a comment)</FONT></LI>
  <LI>Type in the remaining lines as directed below:
  <UL>
    <LI>create a start and end tag that don't match in their case sensitivity
        (e.g., &lt;tag&gt; and &lt;/Tag&gt;). </LI>
    <LI>create a start and end tag where the start tag contains an attribute value that is not enclosed in quotes.
        <FONT color="#0000ff">(NOTE: this is permitted in HTML, but is considered not well-formed XML)</FONT></LI>
    <LI>create tags that are not properly nested.
        <FONT color="#0000ff">(NOTE: a child tag must be completed before its parent tag)</FONT></LI>
    <LI>create a start tag without a corresonding end tag.
        <FONT color="#0000ff">(NOTE: all start tags must have a corresponding end tag unless the tag is an empty tag, in which case the shorthand version can be used (&lt;shortTag/&gt;)).</FONT></LI>
    <LI>do not provide an attribute value (=&quot;value&quot;).
        <FONT color="#0000ff">(NOTE: this is permitted in HTML for those attributes that have only one value, but it's not valid in XML)</FONT></LI>
     <LI>define an attribute more than once in a start tag.</LI>
  </UL></LI>
  <LI>Save the file.</LI>
  <LI>
      Verify errors are listed in the Tasks view for the above violations.
      <span style="color:red"> * only catches first error (the comment -- dashes), is this correct behavior?... 
          20020620 <b>(pa)</b>
      </span>
  </LI>
  <LI>Fix some of the errors and then select the Validate toolbar button. 
      Verify the errors that were fixed are no longer flagged in the Tasks view.
      <SPAN STYLE="color:red">
          i noticed somthing when i was fixing the tag that had no end tag.
          the start tag was "&lt;noEnd&gt;"
          i typed "&lt;/no" then pressed ctrl+space, and the autocomplete suggestion was "End".
          it seems like "End&gt;" should have been one of the options along w/ "End". <B>(pa) 20020626</B>
          <BR/>opened defect 213911
      </SPAN>
  </LI>
  <LI>Save the file.</LI>
  <LI>Fix the remaining errors.</LI>
  <LI>Save the file and verify no errors appear any more in the Tasks view for the file.</LI>
  <LI>Reopen the file and verify everything was saved.</LI>
  
 </UL>
  

<P><B>Validate an XML File based on a DTD</B></P>

<UL>
  <LI>Open <B>fromScratch.xml</B>.</LI>
  <LI>Delete a character from one of the start tags (mistyping a tag is not uncommon).</LI>
  <LI>Prompt for content assist within the bad tag. Verify a message appears in the status area
of the Workbench indicating that the bad tag is an unknown tag.
      <FONT color="#008855"><B>AFW-no error in status area</b></font> 
      <SPAN STYLE="color:red">actually, content assist sometimes knows how to fix it, 
          otherwise it doens't do a thing, the menu doesn't even come up, even though 
          it's enabled<B>(pa) 20020620 opened defect 213099</b>
      </SPAN>
  </LI>
  <LI>Select the <B>Validate</B> toolbar button.</LI>
  <LI>Verify an error appears in the Tasks view and an error marker appears in the Source page
to flag the invalid tag.</LI>

  <LI>Select <B>Edit->Undo</B> from the Source page and re-validate the file.</LI>
  <LI>Verify the bad tag error no longer appears in the Tasks view.</LI>
  <LI>Remove the <B>Header</B> end tag from the Source page.</LI>
  <LI>Save the file.</LI>
  <LI>Verify an error appears in the Tasks view indicating that the <B>Header</B> end tag is missing</LI>
  <LI>Close the file, responding <B>Yes</B> to the save changes prompt.</LI>
  <LI>Double-click on the error in the Tasks view, and verify <B>fromScratch.xml</B> opens to the appropriate line in the Source page of the XML Editor.</LI>
  <LI>Here's some other violations that can be attempted:
    <UL>
      <LI>Specify a bad attribute.</LI>
      <LI>Specify a bad attribute value.</LI>
      <LI>Specify child tags out of sequencing order</LI>
      <LI>Violate the occurrence indicator for a tag (e.g., if the DTD shows ?, then only  0 or 1 occurrences of the tag is permitted).</LI>
    </UL>
  </LI>
  <LI>Save the file.</LI>
  <LI>Verify errors are listed in the Tasks view for the above violations and
that error markers appear on the appropriate lines in the Source page.</LI>
  <LI>Reopen the file and verify everything was saved.</LI>
</UL>

<!-- ===========================================================
                        Source Specific test cases
     ===========================================================
-->
<H2><B><FONT color="#0000ff">Source Specific test cases (optional)</FONT></B></H2>
<P><B>Using the XML Styles Preference</B><BR>
NOTE: this preference is used to set styles for syntax highlighting in the Source page of the XML Editor.
<UL>
  <LI>Open any XML file that has enough tags to provide syntax hightlighting.</LI>
  <LI>While that file is left open, go to the Preferences page, expand Web and XML Files > XML Files, then select XML Styles. </LI>
  <LI>On that page, use the mouse to click on a tag name within the preview text. This will cause Tag Names to appear in the Content type combo box at the top and Foreground, Background and Bold will update to show its current styles.</LI>
<LI>Select a tag name and select the Bold check box. Then press Apply, and you should see the change take effect in your active editor.
  <LI>Select "Restore Defaults" and make sure the tag names are set back to not bold.</LI>
</UL>
 


<B>Using the Auto Completion Content Assist Preference</B><BR>
<IMG border="0" height="63" src="u011ani.gif" width="63">
<P><B>Double-Clicking Within the Source</B> <BR>
(NOTE: if you continue to double-click at a given cursor position, the selection area will continue to expand. When the maximum region area has been reached, the next double-click will cause the original selection. So, the selections will wrap/cycle. <FONT color="#0000ff">Cool!</FONT>).</P>
<UL>
  <LI>Open <B>JobDesc.xml</B>.</LI>
  <LI>Double-clicking within tag content:
      <UL>
        <LI>Double-click within <B>Middleware</B> on line 7.</LI>
        <LI>Verify <B>Middleware</B> is selected in the Source and Design pages and <B>BusType</B> is selected in the Outline view. <FONT color="#ff0000"><B>Middleware</B> wasn't selected in the Design page as had expected. The Design page only seems to stay in sync at the element/tag level like the Outline view. I need to talk to Craig about this to see if a defect should be opened.</FONT><br><FONT color="#008855"><B>AFW</B>-middleware is still not highlighted in design view</font><br><span style="color:magenta">Still not doing so on 20020820 <b>(nsd)</b></span><br><span style="color:magenta">Still not doing so on 20021030 <b>(nsd)</b></span></LI>
        <LI>Double-click again at the same cursor position.</LI>
        <LI>Verify <B>Application and Middleware Software</B> is selected in the Source and Design pages and <B>BusType</B> remains to be the only thing selected in the Outline view.</LI>
        <LI>Double-clicking again will cause cycle back to the original selection.</LI>
      </UL>
  </LI>
  <LI>Double-clicking within a tag name:
      <UL>
        <LI>Double-click within <B>HowToApply</B> on line 61.</LI>
        <LI>Verify <B>HowToApply</B> is selected in the Source page, Design page, and Outline view.
        <B>class</B>, <B>distribute</B>, <B>id</B>, and <B>name</B> should appear in the
        Properties view. Only <B>distribute</B> should show a value.</LI>
        <LI>Double-click again at the same cursor position.</LI>
        <LI>Verify the whole <B>HowToApply</B> start tag (including its delimiters) is selected
        in the Source page. <B>HowToApply</B> should remain selected in
        the Design page and Outline view. </LI>
        <LI>Double-clicking again will cause cycling back to the original selection.</LI>
      </UL>
  </LI>
  <LI>Double-clicking within an attribute name:
      <UL>
        <LI>Type <B>Ctrl+End</B> to position the cursor at the end of the file.</LI>
        <LI>Double-click within <B>distribute</B> on line 61. Verify <B>distribute</B> is selected
            in the Source page and <B>HowToApply</B> is selected in the Design page and Outline
            view. <B>class</B>, <B>distribute</B>, <B>id</B>, and <B>name</B> should appear in
            the Properties view. Only <B>distribute</B> should show a value.</LI>
        <LI>Double-click at the same cursor position. Verify <B>distribute="internal"</B> is
            selected in the Source. Nothing should change in the Design page or views.</LI>
        <LI>Double-click at the same cursor position. Verify the whole <B>HowToApply</B> start tag is selected in the Source page (including its delimiters). Nothing should change in the Design page or views.</LI>
        <LI>Double-clicking again will cause cycling back to the original selection.</LI>
      </UL>
  </LI>
  <LI>Double-clicking within an attribute value:
      <UL>
        <LI>Type <B>Ctrl+Home</B> to position the cursor at the beginning of the file.</LI>
        <LI>Scroll down such that line 61 is visible.</LI>
        <LI>Double-click within <B>internal</B> on line 61. Verify <B>internal</B> is selected
        in the Source page and <B>HowToApply</B> is selected in the Design page and Outline
        view. <B>class</B>, <B>distribute</B>, <B>id</B>, and <B>name</B> should appear in
        the Properties view. Only <B>distribute</B> should show a value.</LI>
        <LI>Double-click at the same cursor position. Verify <B>"internal"</B> is
        selected in the Source. Nothing should change in the Design page or views.</LI>
        <LI>Double-click at the same cursor position. Verify <B>distribute="internal"</B> is
        selected in the Source. Nothing should change in the Design page or views.</LI>
    <LI>Double-click at the same cursor position. Verify the whole <B>HowToApply</B> start tag is selected in the Source page (including its delimiters). Nothing should change in the Design page or views. </LI>
        <LI>Double-clicking again will cause cycling back to the original selection.</LI>
      </UL>
  </LI>
 </UL>

<P><B>Formatting a File Created by Different Editors</B><ul>
<li>
Import the <b>JobPosting.dtd</b> and <b>JobDesc.xml</b> from plugins/com.ibm.etools.xmlbuilder/test (if they haven't already been imported)</li>

<li>
Open the JobDesc.xml. Check the source for indentation to see if it preserves
the white space from the original document.</li>

<li>
The orignal document uses spaces and tabs, so the formatting will appear a little wrong.
By using the right/left arrows, verify that some space is spaces and some space
is tab characters.</li>
<LI>Select Format Document (or press Ctrl+Shift+F) to be sure it formats. </LI>
<LI>The default is to format with tabs ... verify only tab characters remain in file, not spaces.
(Just a little movement with the arrow keys should suffice.</LI>
<LI>Go to the preference page to change the format settings for the XML Source Editor and uncheck the <B>Indent using tabs</B> option. While there, verify that the tab width field will not allow other values to be entered except numbers. </LI>
<LI>Format the document again and be sure this time spaces were used.<br></LI>
	  <li>
            <font color="red">
		  * i know this is there for auto-formatting,
              but should there be an option for the editor to insert spaces instead of tabs
		  when the tab key is pressed, so you don't have to go back and format the code?(pa)
            </font>
	  </li>
</ul>

<P><B>Open an XML File for a shipped DTD catalog entry</B><BR>
To verify that shipped DTDs & web project creation is working:</P>
<UL>
<LI>
Create a J2EE web project with a standard web.xml file in it. Be sure
there is no web-app_2_3.dtd file in the directory. In the web.xml file
itself, mangle the web-app_2_3.dtd filename in the system id a little, such as
change it to xeb-app_2_2.dtd to be sure it can't be found via the
normal http method (This isn't really necessary for the function to work,
it's just to be sure only the catalog function is in effect).</LI>

<LI>
Go to the preferences page, and open the XML Catalog. Verify there
is an entry for -//Sun Microsystems, Inc.//DTD Web Application 2.3//EN.
The entry would look something like
file:C:/builds/wsa-jdk-20010625_0100-125-R09/eclipse/plugins/com.ibm.etools.j2ee/dtds/web-app_2_3.dtd</LI>

<LI>
Once all the prep work is done (files deleted, text modified), you should
exit and restart Studio to be sure you have a fresh start.</LI>

<LI>
Open the web.xml file and be sure that content assist works for that file.
For example, right after the end of the &lt;/display-name&gt; tag, ctrl-space
should provide a long list of elements, starting with servlet, servlet-mapping, etc.
This indicates the shipped DTD function is working and configured
correctly (at least for the web.xml file).</LI>

</UL>
<!-- ===========================================================
                           Integration test cases
     ===========================================================
-->
<H2><B><FONT color="#0000ff">Integration test cases</FONT></B></H2>
<P><B>Flat Web.xml Editor</B></P>
<UL>
  <LI>Open <B>web.xml</B> with Flat web.xml editor</LI>
  <LI>Click on the Source view tab and verify syntax highlighting</LI>
  <LI>Click on <B>web-app</B> tag and make sure <B>web-app</B> is selected in Outline view and in the Property view, <B>id</B> with value "WebApp" is displayed</LI>
  <LI>Change a <B>welcome-file</B> entry in Source view and make sure change is reflected in <B>Pages</B> tab</LI>
  <LI>Add a new welcome page in <B>Pages</B> tab and make sure new entry appears in Source view</LI>
  <LI>Verify content assist and hover help work</LI>
</UL>
<P><B>DTD Editor</B></P>
<UL>
  <LI>Open <B>JobPosting.dtd</B></LI>
  <LI>In Source view, type Ctrl-End to go to the end of the file.</LI>
  <LI>Verify syntax highlighting.
  <LI>Click on <B>!ATTLIST JobPostingID</B> and verify the area enclosing the attribute definition for JobPostingID is selected in the Source view, <B>JobPostingID</B> is selected in the Outline View, and <B>Name: JobPostingID</B> is displayed in the Design view</LI>
  <LI>Add an attribute to <B>JobPostingID</B> by right-clicking the element in the Outline view and selecting Add Attribute.  <B>NewAttribute</B> should appear under JobPostingID attribute.</LI>
  <LI>Select <B>NewAttribute</B> in Outline view.  Verify Design view displays NewAttribute's info and in the source view, the cursor is at the beginning of <B>NewAttribute</B></LI>
  <LI>Change the name <B>NewAttribute</B> to <B>OldAttribute</B> in the Design view and verify the change also appears in the Outline and Source view</LI>
  <LI>Change the name <B>OldAttribute</B> to <B>OldAtt</B> in the Source view and verify the change also appears in the Design and Outline view</LI>
  <LI>Hover help and content assist should not appear in this editor</LI>
</UL>
<P><B>XSL Editor</B></P>
<UL>
  <LI>Create a new XSL file</LI>
  <LI>Verify syntax highlighting in Source view</LI>
  <LI>Using content assist, add the <B>xsl:template</B> tag and verify the Outline view and Properites reflect changes</LI>
  <LI>Change a property and Properties view and make sure Source view reflects change</LI>	
  <LI>Hover help and content assist should appear in this editor</LI>
</UL>
<P><B>EJB Editor</B></P>
<UL>
  <LI><B>File->New->Other->Examples->EJB 1.1->AutoWorld</B> and take defaults</LI>
  <LI>Open <B>ejb-jar.xml</B> with EJB Editor</LI>
  <LI>Verify syntax highlighting in Source view</LI>
  <LI>In Source view, click on a tag and verify corresponding tag is selected in Outline view</LI>  
  <LI>Change an <B>ejb-ref</B> in Source view and verify change is reflected in <B>References</B> tab</LI>
  <LI>Add an attribute or child in Outline view and make sure Source is updated</LI>
  <LI>Hover help and content assist should appear</LI>
</UL>
<P><B>CSS Editor</B></P>
<UL>
  <LI>Open <B>Master.css</B></LI>
  <LI>Verify syntax highlighting</LI>
  <LI>In source view, change H1 color to <B>red</B>.  Verify in Outline view <B>H1 properties</B> is selected and <B>color</B>'s value is <B>red</B> in Properties view</LI>
  <LI>Refresh Preview and verify H1 color is red</LI>  
  <LI>Verify Outline/Source/Properties view by clicking items in each view and verifying corresponding items are selected/displayed in other views</LI>  
  <LI>Content assist should appear, but hover help shouldn't</LI>      
</UL>
<P><B>PageDesigner</B></P>
<UL>
 <LI><B>HTML files</B>
 <UL>
  <LI>Create a new HTML file, myHTML2.html</LI>
  <LI>Open file with PageDesigner</LI>
  <LI>Verify syntax highlighting in Source view</LI>
  <LI>Use Content Assist to add <B>H1</B> tag in source.  Verify the additional info popup when selecting the tag in the content assist popup. Select <B>H1</B> and hit enter.</LI>
  <LI>Verify Outline, Design, Preview, Properties view reflect change</LI>  
  <LI>In Outline view, add a heading to the body by right-clicking <B>body->Add Child->Cite-H3->H1</B></LI>
  <LI>Make sure changes were reflected in all the other views</LI>
  <LI>Verify Outline/Source/Properties view by clicking items in each view and verifying corresponding items are selected/displayed in other views</LI>  
  <LI>Verify hoverhelp appears when hovering over tags and not when hovering over whitespace and content</LI>
  <LI>Verify tags with the prefix <B>jsp:</B> do not appear in Content Assist</LI>
 </UL></LI>
 <LI><B>JSP files</B>
 <UL>
  <LI>Create a new JSP file, myJSP.jsp</LI>
  <LI>Open file with PageDesigner</LI>
  <LI>Verify syntax highlighting in Source view</LI>
  <LI>Use Content Assist to add <B>jsp:include</B> tag in source.  Verify the additional info popup when selecting the tag in the content assist popup. Select <B>jsp:include</B> and hit enter.</LI>
  <LI>Verify Outline, Design, Preview, Properties view reflect change</LI>  
  <LI>In Outline view, add attribute <B>info</B> to the <B>jsp:directive.page</B> tag by right-clicking <B>jsp:directive.page->Add Attribute->Info</B></LI>
  <LI>In Properties view, select the <B>info</B> attribute and push the <b>Restore Default Value</b> toolbar button.  Verify that the <b>info</b> attribute has been removed.</LI>
  <LI>Make sure changes were reflected in all the other views</LI>
  <LI>Verify Outline/Source/Properties view by clicking items in each view and verifying corresponding items are selected/displayed in other views</LI>  
  <LI>Verify hoverhelp appears when hovering over HTML tags only and not when hovering 
      over JSP tags, whitespace and content</LI>
 </UL></LI>
 <LI><B>XHTML files</B>
 <UL>
  <LI>Create a new XHTML file, strictXHTML.html by Using the <B>New HTML File wizard</B>.  Select <B>XHTML</B> for the <B>Markup language</B> dropdown and on the second page, in the <B>Document Type</B> dropdown, select <B>XHTML 1.0 Strict</B></LI>
  <LI>Verify the file looks like this:</LI>
  <LI><IMG border="0" src="strictXHTML.jpg"></LI>
  <LI>Create a new XHTML file, basicXHTML.html by Using the <B>New HTML File wizard</B> and on the second page, in the <B>DOCTYPE</B> dropdown, select <B>-//W3C//DTD XHTML Basic 1.0//EN</B></LI>
  <LI>Verify the file looks like this:</LI>
  <LI><IMG border="0" src="basicXHTML.jpg"></LI>
  <LI>Perform the following on both files:
  <UL>
    <LI>Verify syntax highlighting in Source view</LI>
    <LI>Verify tags are all in lower-case, and xml declaration tags have been inserted</LI>
    <LI>Invoke Content Assist between the <B>head</B> tags and insert <B>meta</B></LI>
    <LI>Prompt for Content Assist within the meta tag and verify that:
    	<UL>
    		<LI>for Strict XHTML, <B>xml:lang</B> is included in the list.</LI>
    		<LI>for Basic XHTML, <B>xml:lang</B> and <B>xmlns</B> are included in the list, while <B>dir</B> and <B>lang</B> are not.</LI>
    	</UL></LI>
    <LI>Use Content Assist to add <B>p</B> tag between the body tags.  Verify the start and end tags are both inserted. Also verify the cursor is now between the p start/end tags</LI>
    <LI>Use Content Assist to add <B>br</B> tag between the p tags.  &lt;br /&gt; should be inserted (In HTML, &lt;BR&gt; is inserted according to the case preferences).  Verify that if you prompt for content assist outside of the p tags, unlike HTML, the br proposal will not appear.</LI>
    <LI>Verify Outline, Design, Preview, Properties view reflect change</LI>  
    <LI>Verify Outline/Source/Properties view by clicking items in each view and verifying corresponding items are selected/displayed in other views</LI>
    <LI>Verify hoverhelp appears when hovering over tags only and not when hovering over whitespace and content</LI>
  </UL></LI>

  <LI>Create a new HTML file, conv2XHTML.html</LI>
  <LI>Type the following within the body tag <I>"In html, the BR tag is not terminated&lt;BR&gt;Also, tags can be either upper or lowercase.&lt;BR&gt;But these are not allowed in XHTML"</I></LI>
  <LI>Save the file</LI>
  <LI>Right-click the file in the Navigator View and select <B>Convert to XHTML</B>.</LI>
  <LI>Verify the following choices are in the DOCTYPE dropdown list:
  <UL>
    <LI>XHTML 1.0 Frameset</LI>
    <LI>XHTML 1.0 Strict</LI>
    <LI>XHTML 1.0 Transitional</LI>
    <LI>XHTML 1.1</LI>
    <LI>XHTML Basic 1.0</LI>
    <LI>XHTML MP 1.0</LI>
  </LI></UL>
  <LI>Select the doctype <B>XHTML Basic 1.0</B></LI>
  <LI>Verify the file looks like this:</LI>
  <LI><IMG border="0" src="conv2XHTML.jpg"></LI>
  <LI>Delete the DOCTYPE declaration from the file and save the file</LI>
  <LI>Validate the HTML Syntax</LI>  
  <LI>There should be an error in the Task view stating unknown attribute, xmlns <br></LI>
  <LI>In the Navigator View, right-click the file and select <B>Properties</B>. Change the <B>Default HTML DOCTYPE</B> in the <B>Web Content Settings</B> to <B>XHTML Basic 1.0</B></LI>
  <LI><B>Validate HTML Syntax</B> and the unknown attribute should disappear.</LI>
  <LI>Open the imported file, <B>basicXHTMLex.html</B></LI>
  <LI>This file has unterminated empty tags and other errors that appear in the Task View</LI>
  <LI>Cleanup the document by right-clicking the Source and select <B>Cleanup Document..</B></LI>
  <LI>In the Cleanup dialog, choose lower case for <B>tag and attribute name case</B> and check to <B>Insert missing tags, Quote attribute values, Format source</B></LI>
  <LI>All of the errors in this file should now be fixed.</LI>
  <LI><B>Validate HTML Syntax</B>.  No errors should appear</LI>
 </UL></LI>
 <LI><B>Frames</B>
 <UL>
  <LI>Create a new HTML file, myFrame.html</LI>
  <LI>In the Design view, from the toolbar, <B>Frame->Split Frame->Split Vertically</B> and take the default</LI>
  <LI>In the Source view, verify frame source is dislayed and views are synchronized</LI>
  <LI>Click on <B>switch frame pages</B> dropdown and switch to <B>myFrame.html</B> and verify the source.</LI>          
  <LI>Click on <B>switch frame pages</B> dropdown and switch to <B>framepage1.html</B> and verify the source.</LI>
  <LI>Click on <B>switch frame pages</B> dropdown and switch to <B>newpage2.html</B> and verify the source.</LI>
  <LI>Type some text in the body and verify Design and Preview tabs are updated with the change</LI>
 </UL></LI>
</UL>
<P><B>PageDesigner Classic</B></P>
<UL>
  <LI>Follow the same steps as PageDesigner</LI>
</UL>
<!-- ===========================================================
                           Other test cases
     ===========================================================
-->
<H2><B><FONT color="#0000ff">Other test cases</FONT></B></H2>
<P><B>HoverHelp</B></P>
<UL>
  <LI>Verify hoverhelp appears for XML, XSL, Web.xml, EJB, PageDesigner Source Editors</LI>
  <LI>Toggle the hoverhelp off by clicking the <B>Hide Hover Help</B> icon on the toolbar while in PageDesigner Source View</LI>
  <LI>Verify hoverhelp no longer appears for XML, XSL, Web.xml, EJB, PageDesigner Source Editors</LI>
  <LI>Toggle the hoverhelp on by clicking the <B>Show Hover Help</B> icon on the toolbar while in XML Source View</LI>
  <LI>Verify hoverhelp appears for XML, XSL, Web.xml, EJB, PageDesigner Source Editors</LI>
</UL>
<P><B>Associate the XML Editor to a new file type</B></P>
<UL>
  <LI>Window-&gt;Preferences<B></B>.</LI>
  <LI>Expand <B>Workbench</B>.</LI>
  <LI>Select <B>File Associations</B>.</LI>
  <LI>Select the <B>Add</B> button to add a new file type.</LI>
  <LI>Specify a file type of <B>*.set</B> and then close the Add dialog.</LI>
  <LI>Verify <B>*.set</B> is selected in the list of file types.</LI>
  <LI>Select the <B>Add</B> button to associate the XML Editor to the new file type.</LI>
  <LI>Select <B>XML Editor</B> from the list of editors. Verify it appears with its own special icon. Close the dialog.</LI>
  <LI>Verify <B>XML Editor</B> appears as the default editor now for the <B>*.set</B> file type.</LI>
  <LI>Open <B>gotchaTCBeans.set</B> from the Navigator view. Verify it opens to the XML Editor.</LI>
</UL>
<H2><B><FONT color="#0000ff">Temporary error annotation tests</FONT></B></H2>
<P><B>SETUP</B><BR>make sure you have the following files, all in the same folder:
</P>
<UL>
	<LI>JobPosting.dtd</LI>
	<LI>JobDesc.xml</LI>
	<LI>PurchaseOrder.xsd</LI>
	<LI>PurchaseOrder.xml</LI>
	<LI>Invoice.dtd</LI>
	<LI>EJBtasks.xml</LI>
	<LI>testcase.dtd</LI>
	<LI>testcaseBROKEN.dtd</LI>
	<LI>xhtml_temp_error_test.html</LI>
	<LI>jsp_temp_error_test.jsp</LI>
</UL>
<P>On the <B>Window &gt; Preferences &gt; Web and XML Files &gt; XML
Files &gt; XML Annotations </B> preference page<BR>
hit &quot;Restore Defaults&quot;, then press the &quot;OK&quot; button.<BR>On the <B>Window
&gt; Preferences &gt; Web and XML Files &gt; XML Files &gt; XML Source</B> preference page<BR>make sure &quot;Use inferred grammar in absence of DTD/Schema&quot; is checked, then press &quot;OK&quot;<BR><BR>
<B>XML</B><BR>
<FONT color="#0000ff">Verify that Validation is working according to a
DTD</FONT></P>
<UL>
	<LI>open <B>JobDesc.xml</B> in the XML Editor</LI>
	<LI>switch to the <B>source</B> page (if the editor isn't already open to it)</LI>
	<LI style="color:green">* verify that there are no  errors in the overview ruler or in the text</LI>
	<LI>in the &lt;!DOCTYPE JobPosting SYSTEM &quot;JobPosting.dtd&quot;&gt; tag, change ths SYSTEM Id from <b>&quot;JobPosting.dtd&quot;</b> to <b>&quot;Nothing.dtd&quot;</b></LI>
	<LI style="color:green">* verify that there are still no visible errors in the overview ruler or text:</LI></UL>
<P><IMG border="0" src="temperror_smoketest_images/invalid_dtd.jpg" width="583" height="366"></P>
<UL>
	<LI>in the &lt;!DOCTYPE JobPosting SYSTEM
	&quot;JobPosting.dtd&quot;&gt; tag, change ths SYSTEM Id from <B>&quot;Nothing.dtd&quot;</B>
	to <B>&quot;Invoice.dtd&quot;</B></LI>
	<LI style="color:green">* verify that  these errors appear in the overview
	ruler and text:</LI>
</UL>
<P><IMG border="0" src="temperror_smoketest_images/wrong_dtd.jpg" width="574" height="352"></P>
<UL>
	<LI>in the &lt;!DOCTYPE JobPosting SYSTEM
	&quot;JobPosting.dtd&quot;&gt; tag, change ths SYSTEM Id from <B>&quot;Invoice.dtd&quot;</B>
	to <B>&quot;JobPosting.dtd&quot;</B></LI>
	<LI style="color:green">* verify that  the errors in the overview
	ruler and text go away (may not happen right away, you may need to edit the tag one more time, like add a space then delete it)  per CMVC #...</LI>


	<LI>repeat the above steps with the &quot;use inferred grammar&quot;
	preference off (requires close and open of the editor w/ JobDesc.xml, don't save). The results should be  the same.</LI>
	<LI>now with the &quot;use inferred grammer&quot; preference back on</LI>
	<LI>close and open the editor w/ JobDesc.xml (to ensure inferred grammar is enabled)</LI>
	<LI>put a space in the &lt;JobPo |sting&gt; tag</LI>
	<LI style="color:green">* verify you get these errors</LI>
	<LI style="color:green">* verify that you get these messages when you hover over the first error on the overview ruler</LI>
</UL>
<P><IMG border="0" src="temperror_smoketest_images/w_doctype.jpg" width="571" height="178"></P>
<UL>
	<LI>now delete the doctype tag, and the xml version tag</LI>
	<LI>only syntax checking should be possible now</LI>
	<LI>hover over the first error on the overview ruler</LI>
	<LI>* verify that you get these messages (there is no &quot;unknown element&quot; message)</LI>
</UL>
<P><IMG border="0" src="temperror_smoketest_images/wout_doctype.jpg" width="511" height="140"></P><UL>
	<LI>undo all of your edits to return to the original document</LI>
	<LI style="color:green">* verify that all errors are removed</LI>
	<LI>redo all of your edits</LI>
	<LI style="color:green">* verify that the errors reappear properly</LI></UL>
<P><BR><font style="color:blue">Verify Thread Safety</font></P>
<UL>
	<LI>create another folder in the same project</LI>
	<LI>switch to the <B>Resource Navigator</B> view</LI>
	<LI>with <B>JobDesc.xml</B> open, drag <B>JobPosting.dtd</B> into the new folder</LI>
	<LI style="color:green">* verify that the operation succeeds</LI>
	<LI>drag <B>JobPosting.dtd</B> back into the original folder</LI>
	<LI style="color:green">* verify the operation succeeds</LI>
</UL>
<P><BR>
<FONT style="color: blue">Verify Validation is working according to an XSD</FONT></P>
<UL>
	<LI>make a copy of <B>PurchaseOrder.xsd</B> in the same folder and call it <B>PurchaseOrderEDIT.xsd</B></LI><LI>open <B>PurchaseOrderEDIT.xsd</B> in the XSD editor</LI>
	<LI>replace all (case insensitive) strings <B>&quot;item&quot;</B> with the string <B>&quot;chicken&quot;</B></LI>
	<LI>save<B> PurchaseOrderEDIT.xsd</B> </LI>
	<LI>open <B>PurchaseOrder.xml</B> in the XML Editor</LI>
	<LI>* verify that there are no errors</LI>
	<LI>change the<B> xsi:schemalocation=&quot;http://www.ibm.com
	PurchaseOrder.xsd</B> to <B>
	xsi:schemalocation=&quot;http://www.ibm.com PurchaseOrderEDIT.xsd</B></LI>
	<LI>(note: you may have to edit the <B>xsi:schemaLocation</B> attribute to  see the error (eg. type a space, then delete it) per CMVC #...<B></B></LI>
	<LI style="color: green">* verify this message when you hover over the first error in the overview ruler:</LI>
</UL>
<P><IMG border="0" src="temperror_smoketest_images/schema_unknown_element.jpg" width="511"
	height="119"><BR>
</P>
<UL>
	<LI>place the cursor after &lt;productName&gt;|, and press backspace</LI>
	<LI style="color:green">*verify this message when you hover over the 2nd error in the overview ruler</LI>
</UL>
<P><IMG border="0" src="temperror_smoketest_images/schema_multi_error.jpg" width="582" height="201"><BR>
</P>
<UL>
	<LI>undo one step</LI>
	<LI style="color:green">* verify the last set of errors goes away</LI>
	<LI>undo the rest of the steps</LI>
	<LI style="color:green">* verify that all errors go away (note: you may have to edit the <B>xsi:schemaLocation</B> attribute to make the last error go away (eg. type a space, then delete it) per CMVC #...</LI>
</UL>
<P><FONT color="#0000ff">Validation with cut&amp;paste</FONT></P>
<UL>
	<LI>open <B>EJBTasks.xml</B>, there should be no errors</LI>
	<LI>cut the following tags:</LI>
</UL>
<pre>
  &lt;accessBeanRegeneration EJBProjectName=&quot;EJB20Project&quot;/&gt;
  &lt;accessBeanRegeneration EJBProjectName=&quot;EJB20Project&quot; suspendProjectValidation=&quot;true&quot;/&gt;
  &lt;accessBeanRegeneration EJBProjectName=&quot;EJB20Project&quot; suspendProjectValidation=&quot;true&quot;/&gt;
</pre>
<IMG border="0" src="temperror_smoketest_images/EJBTasks_before_paste.jpg" width="577" height="325">

<UL>
	<LI>save and close</LI>
	<LI>reopen <B>EJBTasks.xml</B></LI>
	<LI>paste these lines back in:</LI>
</UL>
<pre>
  &lt;accessBeanRegeneration EJBProjectName=&quot;EJB20Project&quot;/&gt;
  &lt;accessBeanRegeneration EJBProjectName=&quot;EJB20Project&quot; suspendProjectValidation=&quot;true&quot;/&gt;
  &lt;accessBeanRegeneration EJBProjectName=&quot;EJB20Project&quot; suspendProjectValidation=&quot;true&quot;/&gt;
</pre>
<IMG border="0" src="temperror_smoketest_images/EJBTasks_after_paste.jpg" width="870" height="356">
<UL>
	<LI style="color:green">* verify there are still no errors<BR>
	</LI>
</UL>
<P><FONT color="#0000ff">Different types errors</FONT></P><UL>
	<LI>open<B> testcaseBROKEN.xml</B></LI>
	<LI style="color:green">* verify there are errors with messages described as in the comments in the file indicate</LI>
	<LI>fix the errors according to the comments in the file, and the messages</LI>
	<LI style="color:green">*verify temporary annotations go away <B>w/out
	saving</B> (the errors w/out an icon in the left vertical ruler)</LI>
	<LI>save the file (or validate) </LI>
	<LI style="color:green">* verify the rest of the errors (persistant) go away</LI>
</UL>
<P><span style="color:blue">Temporary annotations from workbench validators</span>
<BR><B><BR>
XHTML/HTML</B></P>
<UL>
	<LI>open<B> xhtml_temp_error_test.html</B></LI>
	<LI>follow the instructions in the file comments</LI>
</UL>
<P><B>JSP</B></P>
<UL>
	<LI>open<B> jsp_temp_error_test.html</B></LI>
	<LI>follow the instructions in the file comments</LI>
</UL>
<P><FONT color="#0000ff">ALMOST THE END!</FONT></P>
<P>To continue testing other components owned by Source Editor, please follow these links:</P>
<UL>
  <LI><A HREF="../../com.ibm.sed.jseditor/smoke/smoke.html">JavaScript Editor</A></LI>
  <LI><A HREF="../../com.ibm.sed.library/smoke/smoke.html">Library View</A></LI>
  <LI><A href="../../com.ibm.etools.events.ui/smoke/smoke.html">Quick Edit View</A></LI>
</UL>

</body>
</html>
