Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authormkersten2005-06-17 20:51:27 +0000
committermkersten2005-06-17 20:51:27 +0000
commit7320e6f5ba8114f927eeeed9f0b11ecd2041f414 (patch)
treee9a9d5d9e0ffb37dc8e575c8402a2008cea563d3 /org.eclipse.mylyn.bugzilla.tests
downloadorg.eclipse.mylyn.tasks-7320e6f5ba8114f927eeeed9f0b11ecd2041f414.tar.gz
org.eclipse.mylyn.tasks-7320e6f5ba8114f927eeeed9f0b11ecd2041f414.tar.xz
org.eclipse.mylyn.tasks-7320e6f5ba8114f927eeeed9f0b11ecd2041f414.zip
Initial mylar contribution
Diffstat (limited to 'org.eclipse.mylyn.bugzilla.tests')
-rw-r--r--org.eclipse.mylyn.bugzilla.tests/.classpath7
-rw-r--r--org.eclipse.mylyn.bugzilla.tests/.cvsignore1
-rw-r--r--org.eclipse.mylyn.bugzilla.tests/.project28
-rw-r--r--org.eclipse.mylyn.bugzilla.tests/META-INF/MANIFEST.MF19
-rw-r--r--org.eclipse.mylyn.bugzilla.tests/TestPages/bug-1-full.html719
-rw-r--r--org.eclipse.mylyn.bugzilla.tests/TestPages/bug-not-found-eclipse.html158
-rw-r--r--org.eclipse.mylyn.bugzilla.tests/TestPages/bug-not-found-hipikat.html142
-rw-r--r--org.eclipse.mylyn.bugzilla.tests/TestPages/cdt-page.html184
-rw-r--r--org.eclipse.mylyn.bugzilla.tests/TestPages/equinox-page.html177
-rw-r--r--org.eclipse.mylyn.bugzilla.tests/TestPages/gmt-page.html175
-rw-r--r--org.eclipse.mylyn.bugzilla.tests/TestPages/hipikat-copy-bug-1-full.html157
-rw-r--r--org.eclipse.mylyn.bugzilla.tests/TestPages/platform-page.html299
-rw-r--r--org.eclipse.mylyn.bugzilla.tests/TestPages/product-page-1-product-hipikat.html256
-rw-r--r--org.eclipse.mylyn.bugzilla.tests/TestPages/product-page.html237
-rw-r--r--org.eclipse.mylyn.bugzilla.tests/TestPages/ve-page.html178
-rw-r--r--org.eclipse.mylyn.bugzilla.tests/about.html22
-rw-r--r--org.eclipse.mylyn.bugzilla.tests/build.properties13
-rw-r--r--org.eclipse.mylyn.bugzilla.tests/plugin.xml6
-rw-r--r--org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/test/AllTests.java42
-rw-r--r--org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/test/BugzillaNewBugParserTestCDT.java231
-rw-r--r--org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/test/BugzillaNewBugParserTestEquinox.java216
-rw-r--r--org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/test/BugzillaNewBugParserTestGMT.java217
-rw-r--r--org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/test/BugzillaNewBugParserTestPlatform.java243
-rw-r--r--org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/test/BugzillaNewBugParserTestVE.java223
-rw-r--r--org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/test/BugzillaParserTest.java215
-rw-r--r--org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/test/BugzillaParserTestNoBug.java46
-rw-r--r--org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/test/BugzillaProductParser1ProductHipikatTest.java68
-rw-r--r--org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/test/BugzillaProductParserTest.java80
-rw-r--r--org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/test/BugzillaTestPlugin.java86
-rw-r--r--org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/test/FileTool.java256
30 files changed, 4701 insertions, 0 deletions
diff --git a/org.eclipse.mylyn.bugzilla.tests/.classpath b/org.eclipse.mylyn.bugzilla.tests/.classpath
new file mode 100644
index 000000000..065ac06e1
--- /dev/null
+++ b/org.eclipse.mylyn.bugzilla.tests/.classpath
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/org.eclipse.mylyn.bugzilla.tests/.cvsignore b/org.eclipse.mylyn.bugzilla.tests/.cvsignore
new file mode 100644
index 000000000..ba077a403
--- /dev/null
+++ b/org.eclipse.mylyn.bugzilla.tests/.cvsignore
@@ -0,0 +1 @@
+bin
diff --git a/org.eclipse.mylyn.bugzilla.tests/.project b/org.eclipse.mylyn.bugzilla.tests/.project
new file mode 100644
index 000000000..9187a2826
--- /dev/null
+++ b/org.eclipse.mylyn.bugzilla.tests/.project
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.mylar.bugzilla.test</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.ManifestBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.SchemaBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+</projectDescription>
diff --git a/org.eclipse.mylyn.bugzilla.tests/META-INF/MANIFEST.MF b/org.eclipse.mylyn.bugzilla.tests/META-INF/MANIFEST.MF
new file mode 100644
index 000000000..8f68efb90
--- /dev/null
+++ b/org.eclipse.mylyn.bugzilla.tests/META-INF/MANIFEST.MF
@@ -0,0 +1,19 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: Bugzilla Tests Plug-in
+Bundle-SymbolicName: org.eclipse.mylar.bugzilla.test
+Bundle-Version: 1.7.2
+Bundle-Activator: org.eclipse.mylar.bugzilla.test.BugzillaTestPlugin
+Bundle-Localization: plugin
+Require-Bundle: org.eclipse.ui,
+ org.eclipse.core.runtime,
+ org.junit,
+ org.eclipse.ui.ide,
+ org.eclipse.ui.views,
+ org.eclipse.ui.editors,
+ org.eclipse.ui.workbench.texteditor,
+ org.eclipse.mylar.bugzilla
+Eclipse-AutoStart: true
+Bundle-Vendor: University of British Columbia
+Export-Package: org.eclipse.mylar.bugzilla.test
+Bundle-ClassPath: bugzilla-test.jar
diff --git a/org.eclipse.mylyn.bugzilla.tests/TestPages/bug-1-full.html b/org.eclipse.mylyn.bugzilla.tests/TestPages/bug-1-full.html
new file mode 100644
index 000000000..00fd1bcb7
--- /dev/null
+++ b/org.eclipse.mylyn.bugzilla.tests/TestPages/bug-1-full.html
@@ -0,0 +1,719 @@
+<!-- 1.0@bugzilla.org -->
+
+<!-- 1.0@bugzilla.org -->
+
+
+
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+ <head>
+ <title>Bug 1 - Usability issue with external editors (1GE6IRL)</title>
+
+
+
+
+
+
+
+ </head>
+
+
+
+ <body bgcolor="#FFFFFF" onload="">
+
+
+<!-- 1.0@bugzilla.org -->
+
+
+
+
+<BODY BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#0000EE" VLINK="#551A8B" ALINK="#FF0000" >
+<table BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH="100%" ><tr><td
+WIDTH="100%"><table BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH="100%"
+BGCOLOR="#006699" ><tr><td BGCOLOR="#000000" width="116" ><img
+src="images/EclipseBannerPic.jpg" width="115" height="50"></td><td
+WIDTH="637"><a href=http://www.eclipse.org><img SRC="images/gradient.jpg" BORDER=0 height=50
+width=282></a></td><td WIDTH="250"><img src="images/eproject-simple.gif"
+width="250" height="48"></td></tr></table></td></tr></table>
+
+ <table border="0" cellspacing="0">
+ <tr>
+ <td valign="top" align="left">
+ <table border="0" cellpadding="0" cellspacing="2">
+ <tr>
+ <td valign="top" align="left" nowrap="nowrap">
+ <font size="+1"><b>Bugzilla Bug 1</b></font>
+ </td>
+ </tr>
+ </table>
+ </td>
+ <td valign="middle">&nbsp;</td>
+ <td valign="middle" align="left">Usability issue with external editors (1GE6IRL)</td>
+ </tr>
+ </table>
+<!-- 1.0@bugzilla.org -->
+
+
+
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="query.cgi">Query page</a>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="enter_bug.cgi">Enter new bug</a>
+
+<hr>
+
+<form name="changeform" method="post" action="process_bug.cgi">
+
+ <input type="hidden" name="delta_ts" value="20011025104050">
+ <input type="hidden" name="longdesclength" value="5">
+ <input type="hidden" name="id" value="1">
+
+
+
+ <table cellspacing="1" cellpadding="1" border="0">
+ <tr>
+ <td align="right">
+ <b>Bug#:</b>
+ </td>
+ <td>
+ <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=1">1</a>
+ </td>
+
+ <td>&nbsp;</td>
+
+ <td align="right">
+ <b>Platform:</b>
+ </td><td>
+ <select name="rep_platform">
+ <option value="All" selected>All
+ </option>
+ <option value="Macintosh">Macintosh
+ </option>
+ <option value="PC">PC
+ </option>
+ <option value="Power PC">Power PC
+ </option>
+ <option value="Sun">Sun
+ </option>
+ <option value="Other">Other
+ </option>
+ </select>
+ </td>
+ <td>&nbsp;</td>
+
+ <td align="right">
+ <b>Reporter:</b>
+ </td>
+ <td>andre_weinand@ch.ibm.com (Andre Weinand)
+ </td>
+ </tr>
+
+ <tr>
+ <td align="right">
+ <b>Product:</b>
+ </td><td>
+ <select name="product">
+ <option value="AJDT">AJDT
+ </option>
+ <option value="AspectJ">AspectJ
+ </option>
+ <option value="CDT">CDT
+ </option>
+ <option value="EMF">EMF
+ </option>
+ <option value="Equinox">Equinox
+ </option>
+ <option value="GEF">GEF
+ </option>
+ <option value="JDT">JDT
+ </option>
+ <option value="PDE">PDE
+ </option>
+ <option value="Platform" selected>Platform
+ </option>
+ <option value="Stellation">Stellation
+ </option>
+ <option value="XSD">XSD
+ </option>
+ </select>
+ </td>
+ <td>&nbsp;</td>
+
+ <td align="right">
+ <b>OS:</b>
+ </td><td>
+ <select name="op_sys">
+ <option value="All" selected>All
+ </option>
+ <option value="AIX Motif">AIX Motif
+ </option>
+ <option value="Windows 95">Windows 95
+ </option>
+ <option value="Windows 98">Windows 98
+ </option>
+ <option value="Windows CE">Windows CE
+ </option>
+ <option value="Windows ME">Windows ME
+ </option>
+ <option value="Windows 2000">Windows 2000
+ </option>
+ <option value="Windows NT">Windows NT
+ </option>
+ <option value="Windows XP">Windows XP
+ </option>
+ <option value="Windows All">Windows All
+ </option>
+ <option value="MacOS X">MacOS X
+ </option>
+ <option value="Linux">Linux
+ </option>
+ <option value="Linux-GTK">Linux-GTK
+ </option>
+ <option value="Linux-Motif">Linux-Motif
+ </option>
+ <option value="HP-UX">HP-UX
+ </option>
+ <option value="Neutrino">Neutrino
+ </option>
+ <option value="QNX-Photon">QNX-Photon
+ </option>
+ <option value="Solaris">Solaris
+ </option>
+ <option value="Unix All">Unix All
+ </option>
+ <option value="other">other
+ </option>
+ </select>
+ </td>
+ <td>&nbsp;</td>
+
+ <td align="right">
+ <b>Add&nbsp;CC:</b>
+ </td>
+ <td>
+ <input name="newcc" size="30" value="">
+ </td>
+ </tr>
+
+
+
+ <tr>
+ <td align="right">
+ <b>
+ <a href="describecomponents.cgi?product=Platform">
+ Component</a>:
+ </b>
+ </td>
+ <td>
+ <select name="component">
+ <option value="Ant">Ant
+ </option>
+ <option value="Compare">Compare
+ </option>
+ <option value="Core">Core
+ </option>
+ <option value="Debug">Debug
+ </option>
+ <option value="Doc">Doc
+ </option>
+ <option value="Help">Help
+ </option>
+ <option value="Releng">Releng
+ </option>
+ <option value="Scripting">Scripting
+ </option>
+ <option value="Search">Search
+ </option>
+ <option value="SWT">SWT
+ </option>
+ <option value="Text">Text
+ </option>
+ <option value="UI">UI
+ </option>
+ <option value="Update">Update
+ </option>
+ <option value="VCM" selected>VCM
+ </option>
+ <option value="WebDAV">WebDAV
+ </option>
+ </select>
+ </td>
+
+ <td>&nbsp;</td>
+
+ <td align="right">
+ <b>Version:</b>
+ </td><td>
+ <select name="version">
+ <option value="1.0">1.0
+ </option>
+ <option value="2.0" selected>2.0
+ </option>
+ <option value="2.0.1">2.0.1
+ </option>
+ <option value="2.0.2">2.0.2
+ </option>
+ <option value="2.1">2.1
+ </option>
+ </select>
+ </td>
+ <td>&nbsp;</td>
+
+ <td rowspan="4" align="right" valign="top">
+ <b>CC:</b>
+ </td>
+ <td rowspan="4" valign="top">
+ <select name="cc" multiple="multiple" size="5">
+ <option value="Kevin_McGuire@oti.com">Kevin_McGuire@oti.com</option>
+ </select>
+ <br>
+ <input type="checkbox" name="removecc">Remove selected CCs
+ <br>
+ </td>
+ </tr>
+
+ <tr>
+ <td align="right">
+ <b>
+ <a href="bug_status.html">Status</a>:
+ </b>
+ </td>
+ <td>VERIFIED</td>
+ <td>&nbsp;</td>
+
+ <td align="right">
+ <b><a href="bug_status.html#priority">Priority</a>:</b>
+ </td><td>
+ <select name="priority">
+ <option value="P1">P1
+ </option>
+ <option value="P2">P2
+ </option>
+ <option value="P3" selected>P3
+ </option>
+ <option value="P4">P4
+ </option>
+ <option value="P5">P5
+ </option>
+ </select>
+ </td>
+ <td>&nbsp;</td>
+ </tr>
+
+ <tr>
+ <td align="right">
+ <b>
+ <a href="bug_status.html">Resolution</a>:
+ </b>
+ </td>
+ <td>FIXED</td>
+ <td>&nbsp;</td>
+
+ <td align="right">
+ <b><a href="bug_status.html#severity">Severity</a>:</b>
+ </td><td>
+ <select name="bug_severity">
+ <option value="blocker">blocker
+ </option>
+ <option value="critical">critical
+ </option>
+ <option value="major">major
+ </option>
+ <option value="normal" selected>normal
+ </option>
+ <option value="minor">minor
+ </option>
+ <option value="trivial">trivial
+ </option>
+ <option value="enhancement">enhancement
+ </option>
+ </select>
+ </td>
+ <td>&nbsp;</td>
+
+ </tr>
+
+ <tr>
+ <td align="right">
+ <b>
+ <a href="bug_status.html#assigned_to">Assigned&nbsp;To</a>:
+ </b>
+ </td>
+ <td>James_Moody@ca.ibm.com (James Moody)</td>
+ <td>&nbsp;</td>
+
+ <td align="right">
+ <b>
+ <a href="notargetmilestone.html">Target Milestone</a>:
+ </b>
+ </td><td>
+ <select name="target_milestone">
+ <option value="2.0 M1">2.0 M1
+ </option>
+ <option value="2.0 M2">2.0 M2
+ </option>
+ <option value="2.0 M3">2.0 M3
+ </option>
+ <option value="2.0 M4">2.0 M4
+ </option>
+ <option value="2.0 M5">2.0 M5
+ </option>
+ <option value="2.0 M6">2.0 M6
+ </option>
+ <option value="2.0 F1">2.0 F1
+ </option>
+ <option value="2.0 F2">2.0 F2
+ </option>
+ <option value="2.0 F3">2.0 F3
+ </option>
+ <option value="2.0 F4">2.0 F4
+ </option>
+ <option value="2.0.1">2.0.1
+ </option>
+ <option value="2.0.2">2.0.2
+ </option>
+ <option value="2.1">2.1
+ </option>
+ <option value="2.1 M1">2.1 M1
+ </option>
+ <option value="2.1 M2">2.1 M2
+ </option>
+ <option value="2.1 M3">2.1 M3
+ </option>
+ <option value="2.1 M4">2.1 M4
+ </option>
+ <option value="2.1 M5">2.1 M5
+ </option>
+ <option value="2.1 RC1">2.1 RC1
+ </option>
+ <option value="2.1 RC2">2.1 RC2
+ </option>
+ <option value="2.1 RC3">2.1 RC3
+ </option>
+ <option value="2.1 RC4">2.1 RC4
+ </option>
+ <option value="2.1.1">2.1.1
+ </option>
+ <option value="2.2">2.2
+ </option>
+ <option value="---" selected>---
+ </option>
+ </select>
+ </td>
+ <td>&nbsp;</td>
+ </tr>
+
+
+
+
+ <tr>
+ <td align="right">
+ <b>
+ URL:
+ </b>
+ </td>
+ <td colspan="7">
+ <input name="bug_file_loc"
+ value="" size="60">
+ </td>
+ </tr>
+
+ <tr>
+ <td align="right">
+ <b>Summary:</b>
+ </td>
+ <td colspan="7">
+ <input name="short_desc"
+ value="Usability issue with external editors (1GE6IRL)" size="60">
+ </td>
+ </tr>
+
+
+ <tr>
+ <td align="right">
+ <b>
+ <a href="describekeywords.cgi">Keywords</a>:
+ </b>
+ <td colspan="7">
+ <input name="keywords"
+ value="" size="60">
+ </td>
+ </tr>
+ </table>
+
+
+<!-- 1.0@bugzilla.org -->
+
+
+<br>
+<table cellspacing="0" cellpadding="4" border="1">
+ <tr>
+ <th bgcolor="#cccccc" align="left">Attachment</th>
+ <th bgcolor="#cccccc" align="left">Type</th>
+ <th bgcolor="#cccccc" align="left">Modified</th>
+ <th bgcolor="#cccccc" align="left">Status</th>
+ <th bgcolor="#cccccc" align="left">Actions</th>
+ </tr>
+
+
+ <tr>
+ <td colspan="4">
+ <a href="attachment.cgi?bugid=1&amp;action=enter">Create a New Attachment</a> (proposed patch, testcase, etc.)
+ </td>
+ <td colspan="1">
+ <a href="attachment.cgi?bugid=1&amp;action=viewall">View All</a>
+ </td>
+ </tr>
+</table>
+<br>
+
+
+
+ <table>
+ <tr><th align="right">Bug 1 depends on:</th>
+ <td>
+ </td>
+ <td>
+ <input name="dependson"
+ value="">
+ </td>
+ <td rowspan="2">
+ <a href="showdependencytree.cgi?id=1">Show
+ dependency tree</a>
+
+ </td>
+ </tr>
+
+ <tr><th align="right">Bug 1 blocks:</th>
+ <td>
+ </td>
+ <td>
+ <input name="blocked"
+ value="">
+ </td>
+ </tr>
+ </table>
+
+ <table>
+ <tr>
+ <th>
+ <a href="votehelp.html">Votes</a>:
+ </th>
+ <td>0&nbsp;&nbsp;&nbsp;
+ <a href="votes.cgi?action=show_bug&amp;bug_id=1">Show
+ votes for this bug</a>&nbsp;&nbsp;&nbsp;
+ <a href="votes.cgi?action=show_user&amp;bug_id=1">Vote
+ for this bug</a>
+ </td>
+ </tr>
+ </table>
+
+
+
+ <br>
+ <b>Additional Comments:</b>
+ <br>
+ <textarea wrap="hard" name="comment" rows="10" cols="80"
+ accesskey="c"></textarea>
+ <br>
+
+
+
+
+ <br>
+ <input type="radio" name="knob" value="none" checked="checked">
+ Leave as <b>VERIFIED&nbsp;FIXED</b>
+ <br>
+
+
+
+ <input type="radio" name="knob" value="reopen"> Reopen bug
+ <br>
+ <input type="radio" name="knob" value="close">
+ Mark bug as <b>CLOSED</b><br>
+
+ <input type="submit" value="Commit">
+ <input type="hidden" name="form_name" value="process_bug">
+ <p>
+ <font size="+1">
+ <b>
+ <a href="show_activity.cgi?id=1">View Bug Activity</a>
+ &nbsp; | &nbsp;
+ <a href="long_list.cgi?buglist=1">Format For Printing</a>
+ </b>
+ </font>
+
+ </p>
+</form>
+
+
+
+<table>
+ <tr>
+ <td align="left">
+ <b>
+ <a name="c0" href="#c0">Description</a>:
+ </b>
+ </td>
+ <td align="right" width="100%">
+ Opened: 2001-10-10 21:34
+ </td>
+ </tr>
+</table>
+<hr>
+<!-- 1.0@bugzilla.org -->
+
+<pre>- Setup a project that contains a *.gif resource
+ - release project to CVS
+ - edit the *.gif resource with an external editor, e.g. PaintShop
+ - save and close external editor
+ - in Navigator open the icon resource and verify that your changes are there
+ - release project
+ -&gt; nothing to release!
+ - in Navigator open the icon resource and verify that your changes are still there
+
+ Problem: because I never &quot;Refreshed from local&quot;, the workspace hasn't changed so &quot;Release&quot; didn't find anything.
+ However opening the resource with an external editor found the modified file on disk and showed the changes.
+
+ The real problem occurs if &quot;Release&quot; actually finds something to release but you don't spot that some resources are missing.
+ This is extremely error prone: one of my changes didn't made it into build 110 because of this!
+
+NOTES:
+EG (5/23/01 3:00:33 PM)
+ Release should do a refresh from local before doing the release.
+ Moving to VCM
+
+
+KM (05/27/01 5:10:19 PM)
+ Comments from JM in related email:
+
+ Should not do this for free. Could have a setting which made it optoinal but should nt be mandatory. Default setting could be to have it on.
+ Consider the SWT team who keep their workspaces on network drives. This will be slow.
+
+ Side effects will be that a build runs when the refresh is completed unless you somehow do it in a workspace runnable and don't end the
+ runnable until after the release. This would be less than optimal as some builders may be responsible for maintaining some invariants and deriving resources which are releasable. If you don't run the builders before releasing, the invariants will not be maintained and you will release inconsistent state.
+
+ Summary: Offer to &quot;ensure local consistency&quot; before releasing.
+
+KM (5/31/01 1:30:35 PM)
+ See also 1GEAG1A: ITPVCM:WINNT - Internal error comparing with a document
+ which failed with an error. Never got log from Tod though.</pre>
+ <br>
+ <i>------- Additional Comment
+ <a name="c1" href="#c1">#1</a> From
+ <a href="mailto:James_Moody@ca.ibm.com">James Moody</a>
+ 2001-10-19 10:32 -------
+ </i>
+
+
+<pre>*** <strike><a href="show_bug.cgi?id=183" title="RESOLVED DUPLICATE - readme: must refresh from local if using external editors (1GFBQNI)">Bug 183</a></strike> has been marked as a duplicate of this bug. ***</pre>
+ <br>
+ <i>------- Additional Comment
+ <a name="c2" href="#c2">#2</a> From
+ <a href="mailto:James_Moody@ca.ibm.com">James Moody</a>
+ 2001-10-19 16:36 -------
+ </i>
+
+
+<pre>Implemented 'auto refresh' option. Default value is off.</pre>
+ <br>
+ <i>------- Additional Comment
+ <a name="c3" href="#c3">#3</a> From
+ <a href="mailto:dj_houghton@ca.ibm.com">DJ Houghton</a>
+ 2001-10-23 23:39 -------
+ </i>
+
+
+<pre>PRODUCT VERSION:
+ 109
+
+</pre>
+ <br>
+ <i>------- Additional Comment
+ <a name="c4" href="#c4">#4</a> From
+ <a href="mailto:James_Moody@ca.ibm.com">James Moody</a>
+ 2001-10-25 10:19 -------
+ </i>
+
+
+<pre>Fixed in v206</pre>
+
+<hr>
+<!-- 1.0@bugzilla.org -->
+
+
+
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="query.cgi">Query page</a>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="enter_bug.cgi">Enter new bug</a>
+
+<br>
+<!-- 1.0@bugzilla.org -->
+
+
+
+
+
+
+<table border="0">
+ <tr>
+ <td bgcolor="#000000" valign="top">
+ <table border="0" cellpadding="10" cellspacing="0" width="100%"
+ bgcolor="lightyellow">
+ <tr>
+ <td>
+
+
+
+ This is <b>Bugzilla</b>: the Mozilla bug system. For more
+ information about what Bugzilla is and what it can do, see
+ <a href="http://www.bugzilla.org/">bugzilla.org</a>.
+
+
+
+ <br>
+
+
+<!-- 1.0@bugzilla.org -->
+
+
+
+
+
+
+<form method="get" action="show_bug.cgi">
+ <table width="100%">
+ <tr>
+ <td>
+ Actions:
+ </td>
+
+ <td valign="middle" nowrap>
+ <a href="enter_bug.cgi">New</a> |
+ <a href="query.cgi">Query</a> |
+
+ <input type="submit" value="Find"> bug #
+ <input name="id" size="6"> |
+
+ <a href="reports.cgi">Reports</a>
+
+ </td>
+
+ <td>&nbsp;</td>
+
+ <td valign="middle" align="right">
+ <a href="createaccount.cgi">New&nbsp;Account</a> |
+ <a href="query.cgi?GoAheadAndLogIn=1">Log&nbsp;In</a>
+ </td>
+ </tr>
+
+ </table>
+</form>
+
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+
+</body>
+</html> \ No newline at end of file
diff --git a/org.eclipse.mylyn.bugzilla.tests/TestPages/bug-not-found-eclipse.html b/org.eclipse.mylyn.bugzilla.tests/TestPages/bug-not-found-eclipse.html
new file mode 100644
index 000000000..156212e5e
--- /dev/null
+++ b/org.eclipse.mylyn.bugzilla.tests/TestPages/bug-not-found-eclipse.html
@@ -0,0 +1,158 @@
+<!-- 1.0@bugzilla.org -->
+
+
+
+<!-- 1.0@bugzilla.org -->
+
+
+
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+ <head>
+ <title>Error</title>
+
+
+
+
+
+
+
+ </head>
+
+
+
+ <body bgcolor="#FFFFFF" onload="">
+
+
+<!-- 1.0@bugzilla.org -->
+
+
+
+
+<BODY BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#0000EE" VLINK="#551A8B" ALINK="#FF0000" >
+<table BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH="100%" ><tr><td
+WIDTH="100%"><table BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH="100%"
+BGCOLOR="#006699" ><tr><td BGCOLOR="#000000" width="116" ><img
+src="images/EclipseBannerPic.jpg" width="115" height="50"></td><td
+WIDTH="637"><a href=http://www.eclipse.org><img SRC="images/gradient.jpg" BORDER=0 height=50
+width=282></a></td><td WIDTH="250"><img src="images/eproject-simple.gif"
+width="250" height="48"></td></tr></table></td></tr></table>
+
+ <table border="0" cellspacing="0">
+ <tr>
+ <td valign="top" align="left">
+ <table border="0" cellpadding="0" cellspacing="2">
+ <tr>
+ <td valign="top" align="left" nowrap="nowrap">
+ <font size="+1"><b>Error</b></font>
+ </td>
+ </tr>
+ </table>
+ </td>
+ <td valign="middle">&nbsp;</td>
+ <td valign="middle" align="left"></td>
+ </tr>
+ </table>
+
+<table cellpadding="20">
+ <tr>
+ <td bgcolor="#ff0000">
+ <font size="+2">Bug #666 does not exist.
+ </font>
+ </td>
+ </tr>
+</table>
+
+<p>
+ Please press <b>Back</b> and try again.
+</p>
+<!-- 1.0@bugzilla.org -->
+
+
+
+
+
+
+<table border="0">
+ <tr>
+ <td bgcolor="#000000" valign="top">
+ <table border="0" cellpadding="10" cellspacing="0" width="100%"
+ bgcolor="lightyellow">
+ <tr>
+ <td>
+
+
+
+ This is <b>Bugzilla</b>: the Mozilla bug system. For more
+ information about what Bugzilla is and what it can do, see
+ <a href="http://www.bugzilla.org/">bugzilla.org</a>.
+
+
+
+ <br>
+
+
+<!-- 1.0@bugzilla.org -->
+
+
+
+
+
+
+<form method="get" action="show_bug.cgi">
+ <table width="100%">
+ <tr>
+ <td>
+ Actions:
+ </td>
+
+ <td valign="middle" nowrap>
+ <a href="enter_bug.cgi">New</a> |
+ <a href="query.cgi">Query</a> |
+
+ <input type="submit" value="Find"> bug #
+ <input name="id" size="6"> |
+
+ <a href="reports.cgi">Reports</a>
+
+ | <a href="votes.cgi?action=show_user">My Votes</a>
+ </td>
+
+ <td>&nbsp;</td>
+
+
+ <td valign="middle">
+ Edit <a href="userprefs.cgi">prefs</a>
+
+ | <a href="relogin.cgi">Log&nbsp;out</a>&nbsp;cubranic@cs.ubc.ca
+ </td>
+ </tr>
+
+
+
+
+ <tr>
+ <td>
+ Preset&nbsp;Queries:
+ </td>
+
+ <td colspan="3">
+ <a href="buglist.cgi?bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&email1=cubranic%40cs.ubc.ca&emailtype1=exact&emailassigned_to1=1&emailreporter1=1">My&nbsp;Bugs</a>
+
+ </td>
+ </tr>
+
+
+ </table>
+</form>
+
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+
+</body>
+</html> \ No newline at end of file
diff --git a/org.eclipse.mylyn.bugzilla.tests/TestPages/bug-not-found-hipikat.html b/org.eclipse.mylyn.bugzilla.tests/TestPages/bug-not-found-hipikat.html
new file mode 100644
index 000000000..e6261be5d
--- /dev/null
+++ b/org.eclipse.mylyn.bugzilla.tests/TestPages/bug-not-found-hipikat.html
@@ -0,0 +1,142 @@
+<!-- 1.0@bugzilla.org -->
+
+
+
+<!-- 1.0@bugzilla.org -->
+
+
+
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+ <head>
+ <title>Error</title>
+
+
+
+
+
+
+
+ </head>
+
+
+
+ <body bgcolor="#FFFFFF" onload="">
+
+
+<!-- 1.0@bugzilla.org -->
+
+
+
+
+ <table bgcolor="#000000" width="100%" border="0" cellpadding="0"
+ cellspacing="0">
+ <tr>
+ <td>
+ <font color="#FFFFFF" size="8"><center>
+ Bugzilla Version 2.16.3
+ </center></font>
+ </td>
+ </tr>
+ </table>
+
+ <table border="0" cellspacing="0">
+ <tr>
+ <td valign="top" align="left">
+ <table border="0" cellpadding="0" cellspacing="2">
+ <tr>
+ <td valign="top" align="left" nowrap="nowrap">
+ <font size="+1"><b>Error</b></font>
+ </td>
+ </tr>
+ </table>
+ </td>
+ <td valign="middle">&nbsp;</td>
+ <td valign="middle" align="left"></td>
+ </tr>
+ </table>
+
+<table cellpadding="20">
+ <tr>
+ <td bgcolor="#ff0000">
+ <font size="+2">Bug #666 does not exist.
+ </font>
+ </td>
+ </tr>
+</table>
+
+<p>
+ Please press <b>Back</b> and try again.
+</p>
+<!-- 1.0@bugzilla.org -->
+
+
+
+
+
+
+<table border="0">
+ <tr>
+ <td bgcolor="#000000" valign="top">
+ <table border="0" cellpadding="10" cellspacing="0" width="100%"
+ bgcolor="lightyellow">
+ <tr>
+ <td>
+
+
+
+ This is <b>Bugzilla</b>: the Mozilla bug system. For more
+ information about what Bugzilla is and what it can do, see
+ <a href="http://www.bugzilla.org/">bugzilla.org</a>.
+
+
+
+ <br>
+
+
+<!-- 1.0@bugzilla.org -->
+
+
+
+
+
+
+<form method="get" action="show_bug.cgi">
+ <table width="100%">
+ <tr>
+ <td>
+ Actions:
+ </td>
+
+ <td valign="middle" nowrap>
+ <a href="enter_bug.cgi">New</a> |
+ <a href="query.cgi">Query</a> |
+
+ <input type="submit" value="Find"> bug #
+ <input name="id" size="6"> |
+
+ <a href="reports.cgi">Reports</a>
+
+ </td>
+
+ <td>&nbsp;</td>
+
+ <td valign="middle" align="right">
+ <a href="createaccount.cgi">New&nbsp;Account</a> |
+ <a href="query.cgi?GoAheadAndLogIn=1">Log&nbsp;In</a>
+ </td>
+ </tr>
+
+ </table>
+</form>
+
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+
+</body>
+</html> \ No newline at end of file
diff --git a/org.eclipse.mylyn.bugzilla.tests/TestPages/cdt-page.html b/org.eclipse.mylyn.bugzilla.tests/TestPages/cdt-page.html
new file mode 100644
index 000000000..3a1d20fdb
--- /dev/null
+++ b/org.eclipse.mylyn.bugzilla.tests/TestPages/cdt-page.html
@@ -0,0 +1,184 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<!-- saved from url=(0055)https://bugs.eclipse.org/bugs/enter_bug.cgi?product=CDT -->
+<!-- 1.0@bugzilla.org --><!-- 1.0@bugzilla.org --><HTML><HEAD><TITLE>Enter Bug</TITLE>
+<META http-equiv=Content-Type content="text/html; charset=iso-8859-1">
+<META content="MSHTML 6.00.2800.1400" name=GENERATOR></HEAD>
+<BODY text=#000000 vLink=#551a8b aLink=#ff0000 link=#0000ee bgColor=#ffffff
+onload=""><!-- 1.0@bugzilla.org -->
+<TABLE cellSpacing=0 cellPadding=0 width="100%" border=0>
+ <TBODY>
+ <TR>
+ <TD width="100%">
+ <TABLE cellSpacing=0 cellPadding=0 width="100%" bgColor=#006699
+ border=0><TBODY>
+ <TR>
+ <TD width=116 bgColor=#000000><IMG height=50
+ src="Enter Bug_files/EclipseBannerPic.jpg" width=115></TD>
+ <TD width=637><A href="http://www.eclipse.org/"><IMG height=50
+ src="Enter Bug_files/gradient.jpg" width=282 border=0></A></TD>
+ <TD width=250><IMG height=48
+ src="Enter Bug_files/eproject-simple.gif"
+ width=250></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE>
+<TABLE cellSpacing=0 border=0>
+ <TBODY>
+ <TR>
+ <TD vAlign=top align=left>
+ <TABLE cellSpacing=2 cellPadding=0 border=0>
+ <TBODY>
+ <TR>
+ <TD vAlign=top noWrap align=left><FONT size=+1><B>Enter
+ Bug</B></FONT> </TD></TR></TBODY></TABLE></TD>
+ <TD vAlign=center>&nbsp;</TD>
+ <TD vAlign=center align=left>This page lets you enter a new bug into
+ Bugzilla.</TD></TR></TBODY></TABLE>
+<FORM action=post_bug.cgi method=post><INPUT type=hidden value=CDT name=product>
+
+<TABLE cellSpacing=2 cellPadding=0 border=0>
+ <TBODY>
+ <TR>
+ <TD><BR></TD></TR>
+ <TR>
+ <TD></TD>
+ <TD colSpan=3><!-- 1.0@bugzilla.org -->Before reporting a bug, please read
+ the <A href="https://bugs.eclipse.org/bugs/bugwritinghelp.html">bug
+ writing guidelines</A>, please look at the list of <A
+ href="https://bugs.eclipse.org/bugs/duplicates.cgi">most frequently
+ reported bugs</A>, and please <A
+ href="https://bugs.eclipse.org/bugs/query.cgi">search</A> for the bug.
+ </TD></TR>
+ <TR>
+ <TD><BR></TD></TR>
+ <TR>
+ <TD vAlign=top align=right><STRONG>Reporter:</STRONG></TD>
+ <TD vAlign=top>tanya@cs.ubc.ca</TD>
+ <TD vAlign=top align=right><STRONG>Product:</STRONG></TD>
+ <TD vAlign=top>CDT</TD></TR>
+ <TR>
+ <TD vAlign=top align=right><STRONG>Version:</STRONG> </TD>
+ <TD><SELECT size=5 name=version> <OPTION value=1.0>1.0</OPTION> <OPTION
+ value=1.0.1>1.0.1</OPTION> <OPTION value=1.1>1.1</OPTION> <OPTION
+ value=1.2>1.2</OPTION> <OPTION value=2.0 selected>2.0</OPTION></SELECT>
+</TD>
+ <TD vAlign=top align=right><STRONG><A
+ href="https://bugs.eclipse.org/bugs/describecomponents.cgi?product=CDT">Component</A>:
+ </STRONG></TD>
+ <TD><SELECT size=5 name=component> <OPTION
+ value=CDT-parser>CDT-parser</OPTION> <OPTION value=Core>Core</OPTION>
+ <OPTION value=Cpp-Extensions>Cpp-Extensions</OPTION> <OPTION
+ value=Debug>Debug</OPTION> <OPTION value=Debug-MI>Debug-MI</OPTION>
+ <OPTION value=Doc>Doc</OPTION> <OPTION
+ value=Generic-Extensions>Generic-Extensions</OPTION> <OPTION
+ value=Launcher>Launcher</OPTION> <OPTION value=UI>UI</OPTION></SELECT>
+ </TD></TR>
+ <TR>
+ <TD>&nbsp;</TD>
+ <TD colSpan=3></TD></TR>
+ <TR>
+ <TD align=right><STRONG><A
+ href="https://bugs.eclipse.org/bugs/bug_status.html#rep_platform">Platform</A>:
+ </STRONG></TD>
+ <TD><SELECT name=rep_platform> <OPTION value=All>All</OPTION> <OPTION
+ value=Macintosh>Macintosh</OPTION> <OPTION value=PC selected>PC</OPTION>
+ <OPTION value="Power PC">Power PC</OPTION> <OPTION
+ value=Sun>Sun</OPTION> <OPTION value=Other>Other</OPTION></SELECT> </TD>
+ <TD align=right><STRONG><A
+ href="https://bugs.eclipse.org/bugs/bug_status.html#op_sys">OS</A>:
+ </STRONG></TD>
+ <TD><SELECT name=op_sys> <OPTION value=All>All</OPTION> <OPTION
+ value="AIX Motif">AIX Motif</OPTION> <OPTION value="Windows 95">Windows
+ 95</OPTION> <OPTION value="Windows 98">Windows 98</OPTION> <OPTION
+ value="Windows CE">Windows CE</OPTION> <OPTION
+ value="Windows ME">Windows ME</OPTION> <OPTION
+ value="Windows 2000">Windows 2000</OPTION> <OPTION
+ value="Windows NT">Windows NT</OPTION> <OPTION value="Windows XP"
+ selected>Windows XP</OPTION> <OPTION value="Windows All">Windows
+ All</OPTION> <OPTION value="MacOS X">MacOS X</OPTION> <OPTION
+ value=Linux>Linux</OPTION> <OPTION value=Linux-GTK>Linux-GTK</OPTION>
+ <OPTION value=Linux-Motif>Linux-Motif</OPTION> <OPTION
+ value=HP-UX>HP-UX</OPTION> <OPTION value=Neutrino>Neutrino</OPTION>
+ <OPTION value=QNX-Photon>QNX-Photon</OPTION> <OPTION
+ value=Solaris>Solaris</OPTION> <OPTION value="Unix All">Unix
+ All</OPTION> <OPTION value=other>other</OPTION></SELECT> </TD></TR>
+ <TR><INPUT type=hidden value=P3 name=priority>
+ <TD align=right><STRONG><A
+ href="https://bugs.eclipse.org/bugs/bug_status.html#bug_severity">Severity</A>:
+ </STRONG></TD>
+ <TD><SELECT name=bug_severity> <OPTION value=blocker>blocker</OPTION>
+ <OPTION value=critical>critical</OPTION> <OPTION
+ value=major>major</OPTION> <OPTION value=normal selected>normal</OPTION>
+ <OPTION value=minor>minor</OPTION> <OPTION
+ value=trivial>trivial</OPTION> <OPTION
+ value=enhancement>enhancement</OPTION></SELECT> </TD></TR>
+ <TR>
+ <TD>&nbsp;</TD>
+ <TD colSpan=3></TD></TR><INPUT type=hidden value=NEW name=bug_status>
+ <TR>
+ <TD align=right><STRONG><A
+ href="https://bugs.eclipse.org/bugs/bug_status.html#assigned_to">Assigned
+ To</A>: </STRONG></TD>
+ <TD colSpan=3><INPUT size=32 name=assigned_to> (Leave blank to assign to
+ default component owner) </TD></TR>
+ <TR>
+ <TD align=right><STRONG>Cc:</STRONG></TD>
+ <TD colSpan=3><INPUT size=45 name=cc> </TD></TR>
+ <TR>
+ <TD>&nbsp;</TD>
+ <TD colSpan=3></TD></TR>
+ <TR>
+ <TD colSpan=3><INPUT type=hidden size=60 name=bug_file_loc input> </TD></TR>
+ <TR>
+ <TD align=right><STRONG>Summary:</STRONG></TD>
+ <TD colSpan=3><INPUT size=60 name=short_desc> </TD></TR>
+ <TR>
+ <TD vAlign=top align=right><STRONG>Description:</STRONG></TD>
+ <TD colSpan=3><TEXTAREA name=comment rows=10 wrap=hard cols=80></TEXTAREA>
+ <BR></TD></TR>
+ <TR>
+ <TD></TD>
+ <TD colSpan=3></TD></TR>
+ <TR>
+ <TD></TD>
+ <TD colSpan=3><INPUT onclick="if (this.form.short_desc.value == '') &#10; { alert('Please enter a summary sentence for this bug.'); &#10; return false; } return true;" type=submit value=" Commit ">
+ &nbsp;&nbsp;&nbsp;&nbsp; <INPUT type=submit value="Remember values as bookmarkable template" name=maketemplate>
+ </TD></TR>
+ <TR>
+ <TD></TD>
+ <TD colSpan=3><BR>We've made a guess at your operating system and
+ platform. Please check them and, if we got it wrong, email
+ webmaster@eclipse.org. </TD></TR></TBODY></TABLE><INPUT type=hidden
+value=enter_bug name=form_name> </FORM><!-- 1.0@bugzilla.org -->
+<TABLE border=0>
+ <TBODY>
+ <TR>
+ <TD vAlign=top bgColor=#000000>
+ <TABLE cellSpacing=0 cellPadding=10 width="100%" bgColor=lightyellow
+ border=0>
+ <TBODY>
+ <TR>
+ <TD>This is <B>Bugzilla</B>: the Mozilla bug system. For more
+ information about what Bugzilla is and what it can do, see <A
+ href="http://www.bugzilla.org/">bugzilla.org</A>. <BR><!-- 1.0@bugzilla.org -->
+ <FORM action=show_bug.cgi method=get>
+ <TABLE width="100%">
+ <TBODY>
+ <TR>
+ <TD>Actions: </TD>
+ <TD vAlign=center noWrap><A
+ href="https://bugs.eclipse.org/bugs/enter_bug.cgi">New</A> |
+ <A href="https://bugs.eclipse.org/bugs/query.cgi">Query</A> | <INPUT type=submit value=Find> bug # <INPUT size=6 name=id> |
+ <A
+ href="https://bugs.eclipse.org/bugs/reports.cgi">Reports</A> |
+ <A
+ href="https://bugs.eclipse.org/bugs/votes.cgi?action=show_user">My
+ Votes</A> </TD>
+ <TD>&nbsp;</TD>
+ <TD vAlign=center>Edit <A
+ href="https://bugs.eclipse.org/bugs/userprefs.cgi">prefs</A> |
+ <A
+ href="https://bugs.eclipse.org/bugs/relogin.cgi">Log&nbsp;out</A>&nbsp;tanya@cs.ubc.ca
+ </TD></TR>
+ <TR>
+ <TD>Preset&nbsp;Queries: </TD>
+ <TD colSpan=3><A
+ href="https://bugs.eclipse.org/bugs/buglist.cgi?bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=REOPENED&amp;email1=tanya%40cs.ubc.ca&amp;emailtype1=exact&amp;emailassigned_to1=1&amp;emailreporter1=1">My&nbsp;Bugs</A>
+ </TD></TR></TBODY></TABLE></FORM></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE></BODY></HTML>
diff --git a/org.eclipse.mylyn.bugzilla.tests/TestPages/equinox-page.html b/org.eclipse.mylyn.bugzilla.tests/TestPages/equinox-page.html
new file mode 100644
index 000000000..1c8fdf57d
--- /dev/null
+++ b/org.eclipse.mylyn.bugzilla.tests/TestPages/equinox-page.html
@@ -0,0 +1,177 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<!-- saved from url=(0059)https://bugs.eclipse.org/bugs/enter_bug.cgi?product=Equinox -->
+<!-- 1.0@bugzilla.org --><!-- 1.0@bugzilla.org --><HTML><HEAD><TITLE>Enter Bug</TITLE>
+<META http-equiv=Content-Type content="text/html; charset=iso-8859-1">
+<META content="MSHTML 6.00.2800.1400" name=GENERATOR></HEAD>
+<BODY text=#000000 vLink=#551a8b aLink=#ff0000 link=#0000ee bgColor=#ffffff
+onload=""><!-- 1.0@bugzilla.org -->
+<TABLE cellSpacing=0 cellPadding=0 width="100%" border=0>
+ <TBODY>
+ <TR>
+ <TD width="100%">
+ <TABLE cellSpacing=0 cellPadding=0 width="100%" bgColor=#006699
+ border=0><TBODY>
+ <TR>
+ <TD width=116 bgColor=#000000><IMG height=50
+ src="Equinox_files/EclipseBannerPic.jpg" width=115></TD>
+ <TD width=637><A href="http://www.eclipse.org/"><IMG height=50
+ src="Equinox_files/gradient.jpg" width=282 border=0></A></TD>
+ <TD width=250><IMG height=48 src="Equinox_files/eproject-simple.gif"
+ width=250></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE>
+<TABLE cellSpacing=0 border=0>
+ <TBODY>
+ <TR>
+ <TD vAlign=top align=left>
+ <TABLE cellSpacing=2 cellPadding=0 border=0>
+ <TBODY>
+ <TR>
+ <TD vAlign=top noWrap align=left><FONT size=+1><B>Enter
+ Bug</B></FONT> </TD></TR></TBODY></TABLE></TD>
+ <TD vAlign=center>&nbsp;</TD>
+ <TD vAlign=center align=left>This page lets you enter a new bug into
+ Bugzilla.</TD></TR></TBODY></TABLE>
+<FORM action=post_bug.cgi method=post><INPUT type=hidden value=Equinox
+name=product>
+<TABLE cellSpacing=2 cellPadding=0 border=0>
+ <TBODY>
+ <TR>
+ <TD><BR></TD></TR>
+ <TR>
+ <TD></TD>
+ <TD colSpan=3><!-- 1.0@bugzilla.org -->Before reporting a bug, please read
+ the <A href="https://bugs.eclipse.org/bugs/bugwritinghelp.html">bug
+ writing guidelines</A>, please look at the list of <A
+ href="https://bugs.eclipse.org/bugs/duplicates.cgi">most frequently
+ reported bugs</A>, and please <A
+ href="https://bugs.eclipse.org/bugs/query.cgi">search</A> for the bug.
+ </TD></TR>
+ <TR>
+ <TD><BR></TD></TR>
+ <TR>
+ <TD vAlign=top align=right><STRONG>Reporter:</STRONG></TD>
+ <TD vAlign=top>tanya@cs.ubc.ca</TD>
+ <TD vAlign=top align=right><STRONG>Product:</STRONG></TD>
+ <TD vAlign=top>Equinox</TD></TR>
+ <TR>
+ <TD vAlign=top align=right><STRONG>Version:</STRONG> </TD>
+ <TD><SELECT size=5 name=version> <OPTION value=unspecified
+ selected>unspecified</OPTION></SELECT> </TD>
+ <TD vAlign=top align=right><STRONG><A
+ href="https://bugs.eclipse.org/bugs/describecomponents.cgi?product=Equinox">Component</A>:
+ </STRONG></TD>
+ <TD><SELECT size=5 name=component> <OPTION
+ value="Dynamic Plugins">Dynamic Plugins</OPTION> <OPTION
+ value=General>General</OPTION> <OPTION value=OSGi>OSGi</OPTION></SELECT>
+ </TD></TR>
+ <TR>
+ <TD>&nbsp;</TD>
+ <TD colSpan=3></TD></TR>
+ <TR>
+ <TD align=right><STRONG><A
+ href="https://bugs.eclipse.org/bugs/bug_status.html#rep_platform">Platform</A>:
+ </STRONG></TD>
+ <TD><SELECT name=rep_platform> <OPTION value=All>All</OPTION> <OPTION
+ value=Macintosh>Macintosh</OPTION> <OPTION value=PC selected>PC</OPTION>
+ <OPTION value="Power PC">Power PC</OPTION> <OPTION
+ value=Sun>Sun</OPTION> <OPTION value=Other>Other</OPTION></SELECT> </TD>
+ <TD align=right><STRONG><A
+ href="https://bugs.eclipse.org/bugs/bug_status.html#op_sys">OS</A>:
+ </STRONG></TD>
+ <TD><SELECT name=op_sys> <OPTION value=All>All</OPTION> <OPTION
+ value="AIX Motif">AIX Motif</OPTION> <OPTION value="Windows 95">Windows
+ 95</OPTION> <OPTION value="Windows 98">Windows 98</OPTION> <OPTION
+ value="Windows CE">Windows CE</OPTION> <OPTION
+ value="Windows ME">Windows ME</OPTION> <OPTION
+ value="Windows 2000">Windows 2000</OPTION> <OPTION
+ value="Windows NT">Windows NT</OPTION> <OPTION value="Windows XP"
+ selected>Windows XP</OPTION> <OPTION value="Windows All">Windows
+ All</OPTION> <OPTION value="MacOS X">MacOS X</OPTION> <OPTION
+ value=Linux>Linux</OPTION> <OPTION value=Linux-GTK>Linux-GTK</OPTION>
+ <OPTION value=Linux-Motif>Linux-Motif</OPTION> <OPTION
+ value=HP-UX>HP-UX</OPTION> <OPTION value=Neutrino>Neutrino</OPTION>
+ <OPTION value=QNX-Photon>QNX-Photon</OPTION> <OPTION
+ value=Solaris>Solaris</OPTION> <OPTION value="Unix All">Unix
+ All</OPTION> <OPTION value=other>other</OPTION></SELECT> </TD></TR>
+ <TR><INPUT type=hidden value=P3 name=priority>
+ <TD align=right><STRONG><A
+ href="https://bugs.eclipse.org/bugs/bug_status.html#bug_severity">Severity</A>:
+ </STRONG></TD>
+ <TD><SELECT name=bug_severity> <OPTION value=blocker>blocker</OPTION>
+ <OPTION value=critical>critical</OPTION> <OPTION
+ value=major>major</OPTION> <OPTION value=normal selected>normal</OPTION>
+ <OPTION value=minor>minor</OPTION> <OPTION
+ value=trivial>trivial</OPTION> <OPTION
+ value=enhancement>enhancement</OPTION></SELECT> </TD></TR>
+ <TR>
+ <TD>&nbsp;</TD>
+ <TD colSpan=3></TD></TR><INPUT type=hidden value=NEW name=bug_status>
+ <TR>
+ <TD align=right><STRONG><A
+ href="https://bugs.eclipse.org/bugs/bug_status.html#assigned_to">Assigned
+ To</A>: </STRONG></TD>
+ <TD colSpan=3><INPUT size=32 name=assigned_to> (Leave blank to assign to
+ default component owner) </TD></TR>
+ <TR>
+ <TD align=right><STRONG>Cc:</STRONG></TD>
+ <TD colSpan=3><INPUT size=45 name=cc> </TD></TR>
+ <TR>
+ <TD>&nbsp;</TD>
+ <TD colSpan=3></TD></TR>
+ <TR>
+ <TD colSpan=3><INPUT type=hidden size=60 name=bug_file_loc input> </TD></TR>
+ <TR>
+ <TD align=right><STRONG>Summary:</STRONG></TD>
+ <TD colSpan=3><INPUT size=60 name=short_desc> </TD></TR>
+ <TR>
+ <TD vAlign=top align=right><STRONG>Description:</STRONG></TD>
+ <TD colSpan=3><TEXTAREA name=comment rows=10 wrap=hard cols=80></TEXTAREA>
+ <BR></TD></TR>
+ <TR>
+ <TD></TD>
+ <TD colSpan=3></TD></TR>
+ <TR>
+ <TD></TD>
+ <TD colSpan=3><INPUT onclick="if (this.form.short_desc.value == '') &#10; { alert('Please enter a summary sentence for this bug.'); &#10; return false; } return true;" type=submit value=" Commit ">
+ &nbsp;&nbsp;&nbsp;&nbsp; <INPUT type=submit value="Remember values as bookmarkable template" name=maketemplate>
+ </TD></TR>
+ <TR>
+ <TD></TD>
+ <TD colSpan=3><BR>We've made a guess at your operating system and
+ platform. Please check them and, if we got it wrong, email
+ webmaster@eclipse.org. </TD></TR></TBODY></TABLE><INPUT type=hidden
+value=enter_bug name=form_name> </FORM><!-- 1.0@bugzilla.org -->
+<TABLE border=0>
+ <TBODY>
+ <TR>
+ <TD vAlign=top bgColor=#000000>
+ <TABLE cellSpacing=0 cellPadding=10 width="100%" bgColor=lightyellow
+ border=0>
+ <TBODY>
+ <TR>
+ <TD>This is <B>Bugzilla</B>: the Mozilla bug system. For more
+ information about what Bugzilla is and what it can do, see <A
+ href="http://www.bugzilla.org/">bugzilla.org</A>. <BR><!-- 1.0@bugzilla.org -->
+ <FORM action=show_bug.cgi method=get>
+ <TABLE width="100%">
+ <TBODY>
+ <TR>
+ <TD>Actions: </TD>
+ <TD vAlign=center noWrap><A
+ href="https://bugs.eclipse.org/bugs/enter_bug.cgi">New</A> |
+ <A href="https://bugs.eclipse.org/bugs/query.cgi">Query</A> | <INPUT type=submit value=Find> bug # <INPUT size=6 name=id> |
+ <A
+ href="https://bugs.eclipse.org/bugs/reports.cgi">Reports</A> |
+ <A
+ href="https://bugs.eclipse.org/bugs/votes.cgi?action=show_user">My
+ Votes</A> </TD>
+ <TD>&nbsp;</TD>
+ <TD vAlign=center>Edit <A
+ href="https://bugs.eclipse.org/bugs/userprefs.cgi">prefs</A> |
+ <A
+ href="https://bugs.eclipse.org/bugs/relogin.cgi">Log&nbsp;out</A>&nbsp;tanya@cs.ubc.ca
+ </TD></TR>
+ <TR>
+ <TD>Preset&nbsp;Queries: </TD>
+ <TD colSpan=3><A
+ href="https://bugs.eclipse.org/bugs/buglist.cgi?bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=REOPENED&amp;email1=tanya%40cs.ubc.ca&amp;emailtype1=exact&amp;emailassigned_to1=1&amp;emailreporter1=1">My&nbsp;Bugs</A>
+ </TD></TR></TBODY></TABLE></FORM></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE></BODY></HTML>
diff --git a/org.eclipse.mylyn.bugzilla.tests/TestPages/gmt-page.html b/org.eclipse.mylyn.bugzilla.tests/TestPages/gmt-page.html
new file mode 100644
index 000000000..951b86ccd
--- /dev/null
+++ b/org.eclipse.mylyn.bugzilla.tests/TestPages/gmt-page.html
@@ -0,0 +1,175 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<!-- saved from url=(0055)https://bugs.eclipse.org/bugs/enter_bug.cgi?product=GMT -->
+<!-- 1.0@bugzilla.org --><!-- 1.0@bugzilla.org --><HTML><HEAD><TITLE>Enter Bug</TITLE>
+<META http-equiv=Content-Type content="text/html; charset=iso-8859-1">
+<META content="MSHTML 6.00.2800.1400" name=GENERATOR></HEAD>
+<BODY text=#000000 vLink=#551a8b aLink=#ff0000 link=#0000ee bgColor=#ffffff
+onload=""><!-- 1.0@bugzilla.org -->
+<TABLE cellSpacing=0 cellPadding=0 width="100%" border=0>
+ <TBODY>
+ <TR>
+ <TD width="100%">
+ <TABLE cellSpacing=0 cellPadding=0 width="100%" bgColor=#006699
+ border=0><TBODY>
+ <TR>
+ <TD width=116 bgColor=#000000><IMG height=50
+ src="GMT_files/EclipseBannerPic.jpg" width=115></TD>
+ <TD width=637><A href="http://www.eclipse.org/"><IMG height=50
+ src="GMT_files/gradient.jpg" width=282 border=0></A></TD>
+ <TD width=250><IMG height=48 src="GMT_files/eproject-simple.gif"
+ width=250></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE>
+<TABLE cellSpacing=0 border=0>
+ <TBODY>
+ <TR>
+ <TD vAlign=top align=left>
+ <TABLE cellSpacing=2 cellPadding=0 border=0>
+ <TBODY>
+ <TR>
+ <TD vAlign=top noWrap align=left><FONT size=+1><B>Enter
+ Bug</B></FONT> </TD></TR></TBODY></TABLE></TD>
+ <TD vAlign=center>&nbsp;</TD>
+ <TD vAlign=center align=left>This page lets you enter a new bug into
+ Bugzilla.</TD></TR></TBODY></TABLE>
+<FORM action=post_bug.cgi method=post><INPUT type=hidden value=GMT name=product>
+
+<TABLE cellSpacing=2 cellPadding=0 border=0>
+ <TBODY>
+ <TR>
+ <TD><BR></TD></TR>
+ <TR>
+ <TD></TD>
+ <TD colSpan=3><!-- 1.0@bugzilla.org -->Before reporting a bug, please read
+ the <A href="https://bugs.eclipse.org/bugs/bugwritinghelp.html">bug
+ writing guidelines</A>, please look at the list of <A
+ href="https://bugs.eclipse.org/bugs/duplicates.cgi">most frequently
+ reported bugs</A>, and please <A
+ href="https://bugs.eclipse.org/bugs/query.cgi">search</A> for the bug.
+ </TD></TR>
+ <TR>
+ <TD><BR></TD></TR>
+ <TR>
+ <TD vAlign=top align=right><STRONG>Reporter:</STRONG></TD>
+ <TD vAlign=top>tanya@cs.ubc.ca</TD>
+ <TD vAlign=top align=right><STRONG>Product:</STRONG></TD>
+ <TD vAlign=top>GMT</TD></TR>
+ <TR>
+ <TD vAlign=top align=right><STRONG>Version:</STRONG> </TD>
+ <TD><SELECT size=5 name=version> <OPTION value=unspecified
+ selected>unspecified</OPTION></SELECT> </TD>
+ <TD vAlign=top align=right><STRONG><A
+ href="https://bugs.eclipse.org/bugs/describecomponents.cgi?product=GMT">Component</A>:
+ </STRONG></TD>
+ <TD><SELECT size=5 name=component> <OPTION value=Core
+ selected>Core</OPTION></SELECT> </TD></TR>
+ <TR>
+ <TD>&nbsp;</TD>
+ <TD colSpan=3></TD></TR>
+ <TR>
+ <TD align=right><STRONG><A
+ href="https://bugs.eclipse.org/bugs/bug_status.html#rep_platform">Platform</A>:
+ </STRONG></TD>
+ <TD><SELECT name=rep_platform> <OPTION value=All>All</OPTION> <OPTION
+ value=Macintosh>Macintosh</OPTION> <OPTION value=PC selected>PC</OPTION>
+ <OPTION value="Power PC">Power PC</OPTION> <OPTION
+ value=Sun>Sun</OPTION> <OPTION value=Other>Other</OPTION></SELECT> </TD>
+ <TD align=right><STRONG><A
+ href="https://bugs.eclipse.org/bugs/bug_status.html#op_sys">OS</A>:
+ </STRONG></TD>
+ <TD><SELECT name=op_sys> <OPTION value=All>All</OPTION> <OPTION
+ value="AIX Motif">AIX Motif</OPTION> <OPTION value="Windows 95">Windows
+ 95</OPTION> <OPTION value="Windows 98">Windows 98</OPTION> <OPTION
+ value="Windows CE">Windows CE</OPTION> <OPTION
+ value="Windows ME">Windows ME</OPTION> <OPTION
+ value="Windows 2000">Windows 2000</OPTION> <OPTION
+ value="Windows NT">Windows NT</OPTION> <OPTION value="Windows XP"
+ selected>Windows XP</OPTION> <OPTION value="Windows All">Windows
+ All</OPTION> <OPTION value="MacOS X">MacOS X</OPTION> <OPTION
+ value=Linux>Linux</OPTION> <OPTION value=Linux-GTK>Linux-GTK</OPTION>
+ <OPTION value=Linux-Motif>Linux-Motif</OPTION> <OPTION
+ value=HP-UX>HP-UX</OPTION> <OPTION value=Neutrino>Neutrino</OPTION>
+ <OPTION value=QNX-Photon>QNX-Photon</OPTION> <OPTION
+ value=Solaris>Solaris</OPTION> <OPTION value="Unix All">Unix
+ All</OPTION> <OPTION value=other>other</OPTION></SELECT> </TD></TR>
+ <TR><INPUT type=hidden value=P3 name=priority>
+ <TD align=right><STRONG><A
+ href="https://bugs.eclipse.org/bugs/bug_status.html#bug_severity">Severity</A>:
+ </STRONG></TD>
+ <TD><SELECT name=bug_severity> <OPTION value=blocker>blocker</OPTION>
+ <OPTION value=critical>critical</OPTION> <OPTION
+ value=major>major</OPTION> <OPTION value=normal selected>normal</OPTION>
+ <OPTION value=minor>minor</OPTION> <OPTION
+ value=trivial>trivial</OPTION> <OPTION
+ value=enhancement>enhancement</OPTION></SELECT> </TD></TR>
+ <TR>
+ <TD>&nbsp;</TD>
+ <TD colSpan=3></TD></TR><INPUT type=hidden value=NEW name=bug_status>
+ <TR>
+ <TD align=right><STRONG><A
+ href="https://bugs.eclipse.org/bugs/bug_status.html#assigned_to">Assigned
+ To</A>: </STRONG></TD>
+ <TD colSpan=3><INPUT size=32 name=assigned_to> (Leave blank to assign to
+ default component owner) </TD></TR>
+ <TR>
+ <TD align=right><STRONG>Cc:</STRONG></TD>
+ <TD colSpan=3><INPUT size=45 name=cc> </TD></TR>
+ <TR>
+ <TD>&nbsp;</TD>
+ <TD colSpan=3></TD></TR>
+ <TR>
+ <TD colSpan=3><INPUT type=hidden size=60 name=bug_file_loc input> </TD></TR>
+ <TR>
+ <TD align=right><STRONG>Summary:</STRONG></TD>
+ <TD colSpan=3><INPUT size=60 name=short_desc> </TD></TR>
+ <TR>
+ <TD vAlign=top align=right><STRONG>Description:</STRONG></TD>
+ <TD colSpan=3><TEXTAREA name=comment rows=10 wrap=hard cols=80></TEXTAREA>
+ <BR></TD></TR>
+ <TR>
+ <TD></TD>
+ <TD colSpan=3></TD></TR>
+ <TR>
+ <TD></TD>
+ <TD colSpan=3><INPUT onclick="if (this.form.short_desc.value == '') &#10; { alert('Please enter a summary sentence for this bug.'); &#10; return false; } return true;" type=submit value=" Commit ">
+ &nbsp;&nbsp;&nbsp;&nbsp; <INPUT type=submit value="Remember values as bookmarkable template" name=maketemplate>
+ </TD></TR>
+ <TR>
+ <TD></TD>
+ <TD colSpan=3><BR>We've made a guess at your operating system and
+ platform. Please check them and, if we got it wrong, email
+ webmaster@eclipse.org. </TD></TR></TBODY></TABLE><INPUT type=hidden
+value=enter_bug name=form_name> </FORM><!-- 1.0@bugzilla.org -->
+<TABLE border=0>
+ <TBODY>
+ <TR>
+ <TD vAlign=top bgColor=#000000>
+ <TABLE cellSpacing=0 cellPadding=10 width="100%" bgColor=lightyellow
+ border=0>
+ <TBODY>
+ <TR>
+ <TD>This is <B>Bugzilla</B>: the Mozilla bug system. For more
+ information about what Bugzilla is and what it can do, see <A
+ href="http://www.bugzilla.org/">bugzilla.org</A>. <BR><!-- 1.0@bugzilla.org -->
+ <FORM action=show_bug.cgi method=get>
+ <TABLE width="100%">
+ <TBODY>
+ <TR>
+ <TD>Actions: </TD>
+ <TD vAlign=center noWrap><A
+ href="https://bugs.eclipse.org/bugs/enter_bug.cgi">New</A> |
+ <A href="https://bugs.eclipse.org/bugs/query.cgi">Query</A> | <INPUT type=submit value=Find> bug # <INPUT size=6 name=id> |
+ <A
+ href="https://bugs.eclipse.org/bugs/reports.cgi">Reports</A> |
+ <A
+ href="https://bugs.eclipse.org/bugs/votes.cgi?action=show_user">My
+ Votes</A> </TD>
+ <TD>&nbsp;</TD>
+ <TD vAlign=center>Edit <A
+ href="https://bugs.eclipse.org/bugs/userprefs.cgi">prefs</A> |
+ <A
+ href="https://bugs.eclipse.org/bugs/relogin.cgi">Log&nbsp;out</A>&nbsp;tanya@cs.ubc.ca
+ </TD></TR>
+ <TR>
+ <TD>Preset&nbsp;Queries: </TD>
+ <TD colSpan=3><A
+ href="https://bugs.eclipse.org/bugs/buglist.cgi?bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=REOPENED&amp;email1=tanya%40cs.ubc.ca&amp;emailtype1=exact&amp;emailassigned_to1=1&amp;emailreporter1=1">My&nbsp;Bugs</A>
+ </TD></TR></TBODY></TABLE></FORM></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE></BODY></HTML>
diff --git a/org.eclipse.mylyn.bugzilla.tests/TestPages/hipikat-copy-bug-1-full.html b/org.eclipse.mylyn.bugzilla.tests/TestPages/hipikat-copy-bug-1-full.html
new file mode 100644
index 000000000..6390fcc9a
--- /dev/null
+++ b/org.eclipse.mylyn.bugzilla.tests/TestPages/hipikat-copy-bug-1-full.html
@@ -0,0 +1,157 @@
+<HTML><HEAD>
+<TITLE>Bug 1 - Usability issue with external editors (1GE6IRL)</TITLE>
+
+
+</HEAD>
+<BODY BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#0000EE" VLINK="#551A8B" ALINK="#FF0000" >
+<table BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH="100%" ><tr><td
+WIDTH="100%"><table BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH="100%"
+BGCOLOR="#006699" ><tr><td BGCOLOR="#000000" width="116" ><img
+src="http://bugs.eclipse.org/bugs/images/EclipseBannerPic.jpg" width="115" height="50"></td><td
+WIDTH="637"><img SRC="http://bugs.eclipse.org/bugs/images/gradient.jpg" BORDER=0 height=50
+width=282></td><td WIDTH="250"><img src="http://bugs.eclipse.org/bugs/images/eproject-simple.gif"
+width="250" height="48"></td></tr></table></td></tr></table>
+
+<TABLE BORDER=0 CELLSPACING=0 WIDTH="100%">
+ <TR>
+ <TD WIDTH=10% VALIGN=TOP ALIGN=LEFT>
+ <TABLE BORDER=0 CELLPADDING=0 CELLSPACING=2>
+ <TR><TD VALIGN=TOP ALIGN=LEFT NOWRAP>
+ <FONT SIZE=+1><B>Bugzilla Bug 1</B></FONT> </TD></TR>
+ </TABLE>
+ </TD>
+ <TD VALIGN=CENTER>&nbsp;</TD>
+ <TD VALIGN=CENTER ALIGN=LEFT>
+Usability issue with external editors (1GE6IRL)
+</TD></TR></TABLE>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<A HREF=query.cgi>Query page</A>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<A HREF=enter_bug.cgi>Enter new bug</A>
+<HR>
+<FORM NAME="changeform" METHOD="POST" ACTION="process_bug.cgi">
+
+<INPUT TYPE=HIDDEN NAME="delta_ts" VALUE="20020427143827">
+<INPUT TYPE=HIDDEN NAME="longdesclength" VALUE="3022">
+<INPUT TYPE=HIDDEN NAME="id" VALUE=1>
+ <TABLE CELLSPACING=0 CELLPADDING=0 BORDER=0><TR>
+ <TD ALIGN=RIGHT><B>Bug#:</B></TD><TD><A HREF="http://cvs-mirror.mozilla.org/webtools/bugzilla/show_bug.cgi?id=1">1</A></TD>
+ <TD>&nbsp;</TD>
+ <TD ALIGN=RIGHT><B><A HREF="bug_status.html#rep_platform">Platform:</A></B></TD>
+ <TD><SELECT NAME=rep_platform><OPTION VALUE="All">All<OPTION VALUE="DEC">DEC<OPTION VALUE="HP">HP<OPTION VALUE="Macintosh">Macintosh<OPTION VALUE="PC">PC<OPTION VALUE="SGI">SGI<OPTION VALUE="Sun">Sun<OPTION VALUE="Other">Other</SELECT></TD>
+ <TD>&nbsp;</TD>
+ <TD ALIGN=RIGHT><B>Reporter:</B></TD><TD>Andre_Weinand@oti.com (Andre Weinand)</TD>
+</TR><TR>
+ <TD ALIGN=RIGHT><B>Product:</B></TD>
+ <TD><SELECT NAME=product><OPTION VALUE="TestProduct">TestProduct</SELECT></TD>
+ <TD>&nbsp;</TD>
+ <TD ALIGN=RIGHT><B>OS:</B></TD>
+ <TD><SELECT NAME=op_sys><OPTION SELECTED VALUE="All">All<OPTION VALUE="Windows 3.1">Windows 3.1<OPTION VALUE="Windows 95">Windows 95<OPTION VALUE="Windows 98">Windows 98<OPTION VALUE="Windows ME">Windows ME<OPTION VALUE="Windows 2000">Windows 2000<OPTION VALUE="Windows NT">Windows NT<OPTION VALUE="Mac System 7">Mac System 7<OPTION VALUE="Mac System 7.5">Mac System 7.5<OPTION VALUE="Mac System 7.6.1">Mac System 7.6.1<OPTION VALUE="Mac System 8.0">Mac System 8.0<OPTION VALUE="Mac System 8.5">Mac System 8.5<OPTION VALUE="Mac System 8.6">Mac System 8.6<OPTION VALUE="Mac System 9.0">Mac System 9.0<OPTION VALUE="Linux">Linux<OPTION VALUE="BSDI">BSDI<OPTION VALUE="FreeBSD">FreeBSD<OPTION VALUE="NetBSD">NetBSD<OPTION VALUE="OpenBSD">OpenBSD<OPTION VALUE="AIX">AIX<OPTION VALUE="BeOS">BeOS<OPTION VALUE="HP-UX">HP-UX<OPTION VALUE="IRIX">IRIX<OPTION VALUE="Neutrino">Neutrino<OPTION VALUE="OpenVMS">OpenVMS<OPTION VALUE="OS/2">OS/2<OPTION VALUE="OSF/1">OSF/1<OPTION VALUE="Solaris">Solaris<OPTION VALUE="SunOS">SunOS<OPTION VALUE="other">other</SELECT></TD>
+ <TD>&nbsp;</TD>
+ <TD ALIGN=RIGHT NOWRAP><b>Add CC:</b></TD>
+ <TD><INPUT NAME=newcc SIZE=30 VALUE=""></TD>
+</TR><TR>
+ <TD ALIGN=RIGHT><B><A HREF="describecomponents.cgi?product=">Component:</A></B></TD>
+ <TD><SELECT NAME=component></SELECT></TD>
+ <TD>&nbsp;</TD>
+ <TD ALIGN=RIGHT><B>Version:</B></TD>
+ <TD><SELECT NAME=version></SELECT></TD>
+ <TD>&nbsp;</TD>
+ <TD ROWSPAN=4 ALIGN=RIGHT VALIGN=TOP><B>Cc:</B></TD>
+ <TD ROWSPAN=4 VALIGN=TOP> <SELECT NAME=cc MULTIPLE SIZE=5>
+<OPTION VALUE="Kevin_McGuire@oti.com">Kevin_McGuire@oti.com
+</SELECT><BR>
+<INPUT TYPE=CHECKBOX NAME=removecc>Remove selected CCs<br>
+ </TD>
+</TR><TR>
+ <TD ALIGN=RIGHT><B><A HREF="bug_status.html">Status:</A></B></TD>
+ <TD>VERIFIED</TD>
+ <TD>&nbsp;</TD>
+ <TD ALIGN=RIGHT><B><A HREF="bug_status.html#priority">Priority:</A></B></TD>
+ <TD><SELECT NAME=priority><OPTION VALUE="P1">P1<OPTION VALUE="P2">P2<OPTION SELECTED VALUE="P3">P3<OPTION VALUE="P4">P4<OPTION VALUE="P5">P5</SELECT></TD>
+ <TD>&nbsp;</TD>
+</TR><TR>
+ <TD ALIGN=RIGHT><B><A HREF="bug_status.html">Resolution:</A></B></TD>
+ <TD>FIXED</TD>
+ <TD>&nbsp;</TD>
+ <TD ALIGN=RIGHT><B><A HREF="bug_status.html#severity">Severity:</A></B></TD>
+ <TD><SELECT NAME=bug_severity><OPTION VALUE="blocker">blocker<OPTION VALUE="critical">critical<OPTION VALUE="major">major<OPTION SELECTED VALUE="normal">normal<OPTION VALUE="minor">minor<OPTION VALUE="trivial">trivial<OPTION VALUE="enhancement">enhancement</SELECT></TD>
+ <TD>&nbsp;</TD>
+</TR><TR>
+ <TD ALIGN=RIGHT><B><A HREF="bug_status.html#assigned_to">Assigned&nbsp;To:
+ </A></B></TD>
+ <TD>James_Moody@oti.com (James Moody)</TD>
+ <TD>&nbsp;</TD><TD></TD><TD></TD><TD>&nbsp;</TD>
+</TR>
+ <TR>
+ <TD ALIGN="RIGHT"><B>URL:</B>
+ <TD COLSPAN=7>
+ <INPUT NAME=bug_file_loc VALUE="" SIZE=60></TD>
+ </TR><TR>
+ <TD ALIGN="RIGHT"><B>Summary:</B>
+ <TD COLSPAN=7>
+ <INPUT NAME=short_desc VALUE="Usability issue with external editors (1GE6IRL)" SIZE=60></TD>
+ </TR><tr><td align=right><B>Attachments:</b></td>
+<td colspan=7><a href="createattachment.cgi?id=1">Create a new attachment</a> (proposed patch, testcase, etc.)</td></tr></table>
+<table><tr>
+<th align=right>Bug 1 depends on:</th><td></td><td><input name=dependson value=""></td>
+
+<td rowspan=2><a href="showdependencytree.cgi?id=1">Show dependency tree</a>
+
+<br><a href="showdependencygraph.cgi?id=1">Show dependency graph</a>
+</td></tr><tr><th align=right>Bug 1 blocks:</th><td></td><td><input name=blocked value=""></td>
+</tr></table>
+
+<br>
+<B>Additional Comments:</B>
+<BR>
+<TEXTAREA WRAP=HARD NAME=comment ROWS=10 COLS=80></TEXTAREA><BR><br>
+<INPUT TYPE=radio NAME=knob VALUE=none CHECKED>
+ Leave as <b>VERIFIED FIXED</b><br><INPUT TYPE=radio NAME=knob VALUE=reopen> Reopen bug<br>
+<INPUT TYPE=radio NAME=knob VALUE=close>
+ Mark bug as <b>CLOSED</b><br>
+
+<INPUT TYPE="submit" VALUE="Commit">
+<INPUT TYPE="reset" VALUE="Reset">
+<INPUT TYPE="hidden" name="form_name" VALUE="process_bug">
+<P>
+<FONT size="+1"><B>
+ <A HREF="show_activity.cgi?id=1">View Bug Activity</A>
+ &nbsp; | &nbsp;
+ <A HREF="long_list.cgi?buglist=1">Format For Printing</A>
+</B></FONT>
+<BR></FORM>
+<table><tr><td align=left><B>Description:</B></td>
+<td align=right width=100%>Opened: 2001-10-10 17:34</td></tr></table>
+<HR>
+<PRE>- Setup a project that contains a *.gif resource&#013; - release project to CVS&#013; - edit the *.gif resource with an external editor, e.g. PaintShop&#013; - save and close external editor&#013; - in Navigator open the icon resource and verify that your changes are there&#013; - release project&#013; -&gt; nothing to release!&#013; - in Navigator open the icon resource and verify that your changes are still there&#013;&#013; Problem: because I never &quot;Refreshed from local&quot;, the workspace hasn't changed so &quot;Release&quot; didn't find anything.&#013; However opening the resource with an external editor found the modified file on disk and showed the changes.&#013;&#013; The real problem occurs if &quot;Release&quot; actually finds something to release but you don't spot that some resources are missing.&#013; This is extremely error prone: one of my changes didn't made it into build 110 because of this!&#013;&#013;NOTES:&#013;EG (5/23/01 3:00:33 PM)&#013; Release should do a refresh from local before doing the release.&#013; Moving to VCM&#013;&#013;&#013;KM (05/27/01 5:10:19 PM)&#013; Comments from JM in related email:&#013;&#013; Should not do this for free. Could have a setting which made it optoinal but should nt be mandatory. Default setting could be to have it on.&#013; Consider the SWT team who keep their workspaces on network drives. This will be slow. &#013;&#013; Side effects will be that a build runs when the refresh is completed unless you somehow do it in a workspace runnable and don't end the&#013; runnable until after the release. This would be less than optimal as some builders may be responsible for maintaining some invariants and deriving resources which are releasable. If you don't run the builders before releasing, the invariants will not be maintained and you will release inconsistent state.&#013;&#013; Summary: Offer to &quot;ensure local consistency&quot; before releasing.&#013;&#013;KM (5/31/01 1:30:35 PM)&#013; See also 1GEAG1A: ITPVCM:WINNT - Internal error comparing with a document&#013; which failed with an error. Never got log from Tod though.</PRE>
+<BR><BR><I>------- Additional Comments From <A HREF="mailto:James_Moody@oti.com">James Moody</A> 2001-10-19 06:32 -------</I><BR>
+<PRE>*** <strike><a href="show_bug.cgi?id=183" title="RESOLVED DUPLICATE - readme: must refresh from local if using external editors (1GFBQNI)">Bug 183</a></strike> has been marked as a duplicate of this bug. ***</PRE>
+<BR><BR><I>------- Additional Comments From <A HREF="mailto:James_Moody@oti.com">James Moody</A> 2001-10-19 12:36 -------</I><BR>
+<PRE>Implemented 'auto refresh' option. Default value is off.</PRE>
+<BR><BR><I>------- Additional Comments From <A HREF="mailto:DJ_Houghton@oti.com">DJ Houghton</A> 2001-10-23 19:39 -------</I><BR>
+<PRE>PRODUCT VERSION:&#013; 109&#013;&#013;</PRE>
+<BR><BR><I>------- Additional Comments From <A HREF="mailto:James_Moody@oti.com">James Moody</A> 2001-10-25 06:19 -------</I><BR>
+<PRE>Fixed in v206</PRE>
+
+<HR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<A HREF=query.cgi>Query page</A>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<A HREF=enter_bug.cgi>Enter new bug</A>
+<hr>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a HREF=query.cgi>Query page</a>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a HREF=enter_bug.cgi>Enter new bug</a>
+<table BORDER="0"><tr><td BGCOLOR="#000000" VALIGN="TOP">
+<table BORDER="0" CELLPADDING="10" CELLSPACING="0" WIDTH="100%"
+BGCOLOR="lightyellow">
+<tr><td>
+<form METHOD=GET ACTION="show_bug.cgi">
+<table width="100%"><tr><td>
+Actions:
+</td><td VALIGN="middle" NOWRAP>
+<a href='enter_bug.cgi'>New</a> | <a href='query.cgi'>Query</a> |
+ <input TYPE=SUBMIT VALUE="Find"> bug # <input NAME=id SIZE=6> | <a
+href='reports.cgi'>Reports</a></td><td>&nbsp;</td><td valign=middle align=right>
+
+ <a href="createaccount.cgi"><nobr>New account</nobr></a>
+ | <nobr><a href=query.cgi?GoAheadAndLogIn=1>Log in</a></nobr></td></tr></form>
+</table><br>
+<a HREF="index.html">Eclipse Bugs Home</a>
+</td></tr>
diff --git a/org.eclipse.mylyn.bugzilla.tests/TestPages/platform-page.html b/org.eclipse.mylyn.bugzilla.tests/TestPages/platform-page.html
new file mode 100644
index 000000000..d41b5c84d
--- /dev/null
+++ b/org.eclipse.mylyn.bugzilla.tests/TestPages/platform-page.html
@@ -0,0 +1,299 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head><!-- 1.0@bugzilla.org --><!-- 1.0@bugzilla.org --><title>Enter Bug</title></head>
+
+
+
+
+
+
+
+
+ <body bgcolor="#ffffff" onload="" text="#000000" link="#0000ee" vlink="#551a8b" alink="#ff0000">
+
+
+<!-- 1.0@bugzilla.org -->
+
+
+
+
+
+<table border="0" cellspacing="0" cellpadding="0" width="100%"><tbody><tr><td width="100%"><table border="0" cellspacing="0" cellpadding="0" width="100%" bgcolor="#006699"><tbody><tr><td bgcolor="#000000" width="116"><img src="main_data/EclipseBannerPic.jpg" width="115" height="50"></td><td width="637"><a href="http://www.eclipse.org/"><img src="main_data/gradient.jpg" border="0" height="50" width="282"></a></td><td width="250"><img src="main_data/eproject-simple.gif" width="250" height="48"></td></tr></tbody></table></td></tr></tbody></table>
+
+ <table border="0" cellspacing="0">
+ <tbody><tr>
+ <td valign="top" align="left">
+ <table border="0" cellpadding="0" cellspacing="2">
+ <tbody><tr>
+ <td valign="top" align="left" nowrap="nowrap">
+ <font size="+1"><b>Enter Bug</b></font>
+ </td>
+ </tr>
+ </tbody></table>
+ </td>
+ <td valign="middle">&nbsp;</td>
+ <td valign="middle" align="left">This page lets you enter a new bug into Bugzilla.</td>
+ </tr>
+ </tbody></table>
+
+<form method="post" action="post_bug.cgi">
+<input type="hidden" name="product" value="Platform">
+
+<input type="hidden" name="priority" value="P3">
+<input type="hidden" name="bug_status" value="NEW">
+
+ <table cellspacing="2" cellpadding="0" border="0">
+
+ <tbody><tr>
+ <td><br></td>
+ </tr>
+
+ <tr>
+ <td></td>
+ <td colspan="3">
+ <!-- 1.0@bugzilla.org -->
+
+
+
+
+
+
+Before reporting a bug, please read the <a href="https://bugs.eclipse.org/bugs/bugwritinghelp.html">
+bug writing guidelines</a>, please look at the list of
+<a href="https://bugs.eclipse.org/bugs/duplicates.cgi">most frequently reported bugs</a>, and please
+<a href="https://bugs.eclipse.org/bugs/query.cgi">search</a> for the bug.
+ </td>
+ </tr>
+
+ <tr>
+ <td><br></td>
+ </tr>
+
+ <tr>
+ <td align="right" valign="top"><strong>Reporter:</strong></td>
+ <td valign="top">tanya@cs.ubc.ca</td>
+
+ <td align="right" valign="top"><strong>Product:</strong></td>
+ <td valign="top">Platform</td>
+ </tr>
+
+
+ <tr>
+ <td align="right" valign="top">
+ <strong>Version:</strong>
+ </td>
+ <td>
+ <select name="version" size="5"><option value="1.0">1.0 </option><option value="2.0">2.0 </option><option value="2.0.1">2.0.1 </option><option value="2.0.2">2.0.2 </option><option value="2.1">2.1 </option><option value="2.1.1">2.1.1 </option><option value="2.1.2">2.1.2 </option><option value="3.0" selected="selected">3.0 </option></select>
+ </td>
+
+ <td align="right" valign="top">
+ <strong>
+ <a href="https://bugs.eclipse.org/bugs/describecomponents.cgi?product=Platform">
+ Component</a>:
+ </strong>
+ </td>
+ <td>
+ <select name="component" size="5"><option value="Ant">Ant </option><option value="Compare">Compare </option><option value="Core">Core </option><option value="CVS">CVS </option><option value="Debug">Debug </option><option value="Doc">Doc </option><option value="Help">Help </option><option value="Releng">Releng </option><option value="Scripting">Scripting </option><option value="Search">Search </option><option value="SWT">SWT </option><option value="Team">Team </option><option value="Text">Text </option><option value="UI">UI </option><option value="Update">Update </option><option value="WebDAV">WebDAV </option></select>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+ <td colspan="3"></td>
+ </tr>
+
+ <tr><td align="right">
+ <strong>
+ <a href="https://bugs.eclipse.org/bugs/bug_status.html#rep_platform">Platform</a>:
+ </strong>
+ </td>
+
+ <td>
+ <select name="rep_platform"><option value="All">All </option><option value="Macintosh">Macintosh </option><option value="PC" selected="selected">PC </option><option value="Power PC">Power PC </option><option value="Sun">Sun </option><option value="Other">Other </option></select>
+ </td>
+ <td align="right">
+ <strong>
+ <a href="https://bugs.eclipse.org/bugs/bug_status.html#op_sys">OS</a>:
+ </strong>
+ </td>
+
+ <td>
+ <select name="op_sys"><option value="All">All </option><option value="AIX Motif">AIX Motif </option><option value="Windows 95">Windows 95 </option><option value="Windows 98">Windows 98 </option><option value="Windows CE">Windows CE </option><option value="Windows ME">Windows ME </option><option value="Windows 2000">Windows 2000 </option><option value="Windows NT">Windows NT </option><option value="Windows XP" selected="selected">Windows XP </option><option value="Windows All">Windows All </option><option value="MacOS X">MacOS X </option><option value="Linux">Linux </option><option value="Linux-GTK">Linux-GTK </option><option value="Linux-Motif">Linux-Motif </option><option value="HP-UX">HP-UX </option><option value="Neutrino">Neutrino </option><option value="QNX-Photon">QNX-Photon </option><option value="Solaris">Solaris </option><option value="Unix All">Unix All </option><option value="other">other </option></select>
+ </td>
+ </tr>
+
+ <tr>
+ <td align="right">
+ <strong>
+ <a href="https://bugs.eclipse.org/bugs/bug_status.html#bug_severity">Severity</a>:
+ </strong>
+ </td>
+
+ <td>
+ <select name="bug_severity"><option value="blocker">blocker </option><option value="critical">critical </option><option value="major">major </option><option value="normal" selected="selected">normal </option><option value="minor">minor </option><option value="trivial">trivial </option><option value="enhancement">enhancement </option></select>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+ <td colspan="3"></td>
+ </tr>
+
+ <tr>
+ <td align="right">
+ <strong>
+ <a href="https://bugs.eclipse.org/bugs/bug_status.html#assigned_to">Assigned To</a>:
+ </strong>
+ </td>
+ <td colspan="3">
+ <input name="assigned_to" size="32" value="">
+ (Leave blank to assign to default component owner)
+ </td>
+ </tr>
+
+ <tr>
+ <td align="right"><strong>Cc:</strong></td>
+ <td colspan="3">
+ <input name="cc" size="45" value="">
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+ <td colspan="3"></td>
+ </tr>
+
+ <tr>
+ <td colspan="3">
+ <input type="hidden" input="" name="bug_file_loc" size="60" value="">
+ </td>
+ </tr>
+
+ <tr>
+ <td align="right"><strong>Summary:</strong></td>
+ <td colspan="3">
+ <input name="short_desc" size="60" value="">
+ </td>
+ </tr>
+
+ <tr><td align="right" valign="top"><strong>Description:</strong></td>
+ <td colspan="3">
+ <textarea wrap="hard" name="comment" rows="10" cols="80"></textarea>
+ <br>
+ </td>
+ </tr>
+
+ <tr>
+ <td></td>
+ <td colspan="3">
+ </td>
+ </tr>
+
+ <tr>
+ <td></td>
+ <td colspan="3">
+ <input type="submit" value=" Commit " onclick="if (this.form.short_desc.value == '')
+ { alert('Please enter a summary sentence for this bug.');
+ return false; } return true;">
+ &nbsp;&nbsp;&nbsp;&nbsp;
+ <input type="submit" name="maketemplate" value="Remember values as bookmarkable template">
+ </td>
+ </tr>
+
+ <tr>
+ <td></td>
+ <td colspan="3">
+ <br>
+ We've made a guess at your operating system and platform.
+ Please check them and, if we got it wrong, email webmaster@eclipse.org.
+ </td>
+ </tr>
+
+ </tbody></table>
+ <input type="hidden" name="form_name" value="enter_bug">
+</form>
+<!-- 1.0@bugzilla.org -->
+
+
+
+
+
+
+<table border="0">
+ <tbody><tr>
+ <td bgcolor="#000000" valign="top">
+ <table border="0" cellpadding="10" cellspacing="0" width="100%" bgcolor="lightyellow">
+ <tbody><tr>
+ <td>
+
+
+
+ This is <b>Bugzilla</b>: the Mozilla bug system. For more
+ information about what Bugzilla is and what it can do, see
+ <a href="http://www.bugzilla.org/">bugzilla.org</a>.
+
+
+
+ <br>
+
+
+<!-- 1.0@bugzilla.org -->
+
+
+
+
+
+
+<form method="get" action="show_bug.cgi">
+ <table width="100%">
+ <tbody><tr>
+ <td>
+ Actions:
+ </td>
+
+ <td valign="middle" nowrap="nowrap">
+ <a href="https://bugs.eclipse.org/bugs/enter_bug.cgi">New</a> |
+ <a href="https://bugs.eclipse.org/bugs/query.cgi">Query</a> |
+
+ <input type="submit" value="Find"> bug #
+ <input name="id" size="6"> |
+
+ <a href="https://bugs.eclipse.org/bugs/reports.cgi">Reports</a>
+
+ | <a href="https://bugs.eclipse.org/bugs/votes.cgi?action=show_user">My Votes</a>
+ </td>
+
+ <td>&nbsp;</td>
+
+
+ <td valign="middle">
+ Edit <a href="https://bugs.eclipse.org/bugs/userprefs.cgi">prefs</a>
+
+ | <a href="https://bugs.eclipse.org/bugs/relogin.cgi">Log&nbsp;out</a>&nbsp;tanya@cs.ubc.ca
+ </td>
+ </tr>
+
+
+
+
+ <tr>
+ <td>
+ Preset&nbsp;Queries:
+ </td>
+
+ <td colspan="3">
+ <a href="https://bugs.eclipse.org/bugs/buglist.cgi?bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=REOPENED&amp;email1=tanya%40cs.ubc.ca&amp;emailtype1=exact&amp;emailassigned_to1=1&amp;emailreporter1=1">My&nbsp;Bugs</a>
+
+ </td>
+ </tr>
+
+
+ </tbody></table>
+</form>
+
+ </td>
+ </tr>
+ </tbody></table>
+ </td>
+ </tr>
+</tbody></table>
+
+</body></html> \ No newline at end of file
diff --git a/org.eclipse.mylyn.bugzilla.tests/TestPages/product-page-1-product-hipikat.html b/org.eclipse.mylyn.bugzilla.tests/TestPages/product-page-1-product-hipikat.html
new file mode 100644
index 000000000..53805b2d2
--- /dev/null
+++ b/org.eclipse.mylyn.bugzilla.tests/TestPages/product-page-1-product-hipikat.html
@@ -0,0 +1,256 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<!-- saved from url=(0073)http://hipikat.cs.ubc.ca:8081/bugzilla-test/bugzilla-2.17.6/enter_bug.cgi -->
+<!-- 1.0@bugzilla.org --><!-- 1.0@bugzilla.org --><HTML><HEAD><TITLE>Enter Bug</TITLE>
+<META http-equiv=Content-Type content="text/html; charset=windows-1252"><!-- 1.0@bugzilla.org --><!-- 1.0@bugzilla.org -->
+<SCRIPT
+type=text/javascript>
+ <!--
+
+ function initHelp() {}
+ // -->
+ </SCRIPT>
+
+<META content="MSHTML 6.00.2800.1400" name=GENERATOR></HEAD>
+<BODY bgColor=#ffffff onload=set_assign_to();><!-- 1.0@bugzilla.org -->
+<TABLE cellSpacing=0 cellPadding=0 width="100%" bgColor=#000000 border=0>
+ <TBODY>
+ <TR>
+ <TD>
+ <CENTER><FONT color=#ffffff size=8>This is Bugzilla
+ </FONT></CENTER></TD></TR></TBODY></TABLE>
+<CENTER><FONT size=-1><A href="http://www.bugzilla.org/">Bugzilla</A> Version
+2.17.6 </FONT></CENTER>
+<TABLE cellSpacing=0 width="100%" border=0>
+ <TBODY>
+ <TR>
+ <TD vAlign=top align=left>
+ <TABLE cellSpacing=2 cellPadding=0 border=0>
+ <TBODY>
+ <TR>
+ <TD vAlign=top noWrap align=left><FONT size=+1><B>Enter
+ Bug</B></FONT> </TD></TR></TBODY></TABLE></TD>
+ <TD vAlign=center align=left>&nbsp;</TD>
+ <TD vAlign=center align=left>This page lets you enter a new bug into
+ Bugzilla.</TD></TR></TBODY></TABLE>
+<SCRIPT language=JavaScript type=text/javascript>
+<!--
+
+var default_owners = new Array(1);
+var components = new Array(1);
+ components[0] = "TestComponent";
+ default_owners[0] = "cubranic\x40cs.ubc.ca";
+var last_default_owner;
+function set_assign_to() {
+ // Based on the selected component, fill the "Assign To:" field
+ // with the default component owner.
+ var form = document.Create;
+ assigned_to = form.assigned_to.value
+ var index = -1;
+ if (form.component.type == 'select-one') {
+ index = form.component.selectedIndex;
+ } else if (form.component.type == 'hidden') {
+ // Assume there is only one component in the list
+ index = 0;
+ }
+ if (index != -1) {
+ var owner = default_owners[index];
+ var component = components[index];
+ if (assigned_to == last_default_owner
+ || assigned_to == owner
+ || assigned_to == ''
+ || confirm('Would you like to change\n\n' +
+ ' "Assign To: ' + assigned_to + '"\n\n' +
+ 'to the default "' + component + '" owner:\n\n' +
+ ' ' + owner + "?")) {
+ form.assigned_to.value = owner;
+ last_default_owner = owner;
+ }
+ }
+}
+-->
+</SCRIPT>
+
+<FORM id=Create name=Create action=post_bug.cgi method=post><INPUT type=hidden
+value=TestProduct name=product>
+<TABLE cellSpacing=2 cellPadding=0 border=0>
+ <TBODY>
+ <TR>
+ <TD><BR></TD></TR>
+ <TR>
+ <TD></TD>
+ <TD colSpan=3><!-- 1.0@bugzilla.org -->Before reporting a bug, please read
+ the <A
+ href="http://hipikat.cs.ubc.ca:8081/bugzilla-test/bugzilla-2.17.6/bugwritinghelp.html">bug
+ writing guidelines</A>, please look at the list of <A
+ href="http://hipikat.cs.ubc.ca:8081/bugzilla-test/bugzilla-2.17.6/duplicates.cgi">most
+ frequently reported bugs</A>, and please <A
+ href="http://hipikat.cs.ubc.ca:8081/bugzilla-test/bugzilla-2.17.6/query.cgi">search</A>
+ for the bug. </TD></TR>
+ <TR>
+ <TD><BR></TD></TR>
+ <TR>
+ <TD vAlign=top align=right><STRONG>Reporter:</STRONG></TD>
+ <TD vAlign=top>tanya@cs.ubc.ca</TD>
+ <TD vAlign=top align=right><STRONG>Product:</STRONG></TD>
+ <TD vAlign=top>TestProduct</TD></TR>
+ <TR>
+ <TD vAlign=top align=right><STRONG>Version:</STRONG> </TD>
+ <TD><SELECT size=5 name=version> <OPTION value=other
+ selected>other</OPTION></SELECT> </TD>
+ <TD vAlign=top align=right><STRONG><A
+ href="http://hipikat.cs.ubc.ca:8081/bugzilla-test/bugzilla-2.17.6/describecomponents.cgi?product=TestProduct">Component</A>:
+ </STRONG></TD>
+ <TD><SELECT onchange=set_assign_to(); size=5 name=component> <OPTION
+ value=TestComponent selected>TestComponent</OPTION></SELECT> </TD></TR>
+ <TR>
+ <TD>&nbsp;</TD>
+ <TD colSpan=3></TD></TR>
+ <TR>
+ <TD align=right><STRONG><A
+ href="http://hipikat.cs.ubc.ca:8081/bugzilla-test/bugzilla-2.17.6/bug_status.html#rep_platform">Platform</A>:
+ </STRONG></TD>
+ <TD><SELECT name=rep_platform> <OPTION value=All>All</OPTION> <OPTION
+ value=DEC>DEC</OPTION> <OPTION value=HP>HP</OPTION> <OPTION
+ value=Macintosh>Macintosh</OPTION> <OPTION value=PC selected>PC</OPTION>
+ <OPTION value=SGI>SGI</OPTION> <OPTION value=Sun>Sun</OPTION> <OPTION
+ value=Other>Other</OPTION></SELECT> </TD>
+ <TD align=right><STRONG><A
+ href="http://hipikat.cs.ubc.ca:8081/bugzilla-test/bugzilla-2.17.6/bug_status.html#op_sys">OS</A>:
+ </STRONG></TD>
+ <TD><SELECT name=op_sys> <OPTION value=All>All</OPTION> <OPTION
+ value="Windows 3.1">Windows 3.1</OPTION> <OPTION
+ value="Windows 95">Windows 95</OPTION> <OPTION
+ value="Windows 98">Windows 98</OPTION> <OPTION
+ value="Windows ME">Windows ME</OPTION> <OPTION
+ value="Windows 2000">Windows 2000</OPTION> <OPTION
+ value="Windows NT">Windows NT</OPTION> <OPTION value="Windows XP"
+ selected>Windows XP</OPTION> <OPTION value="Windows Server 2003">Windows
+ Server 2003</OPTION> <OPTION value="Mac System 7">Mac System 7</OPTION>
+ <OPTION value="Mac System 7.5">Mac System 7.5</OPTION> <OPTION
+ value="Mac System 7.6.1">Mac System 7.6.1</OPTION> <OPTION
+ value="Mac System 8.0">Mac System 8.0</OPTION> <OPTION
+ value="Mac System 8.5">Mac System 8.5</OPTION> <OPTION
+ value="Mac System 8.6">Mac System 8.6</OPTION> <OPTION
+ value="Mac System 9.x">Mac System 9.x</OPTION> <OPTION
+ value="Mac OS X 10.0">Mac OS X 10.0</OPTION> <OPTION
+ value="Mac OS X 10.1">Mac OS X 10.1</OPTION> <OPTION
+ value="Mac OS X 10.2">Mac OS X 10.2</OPTION> <OPTION
+ value=Linux>Linux</OPTION> <OPTION value=BSD/OS>BSD/OS</OPTION> <OPTION
+ value=FreeBSD>FreeBSD</OPTION> <OPTION value=NetBSD>NetBSD</OPTION>
+ <OPTION value=OpenBSD>OpenBSD</OPTION> <OPTION value=AIX>AIX</OPTION>
+ <OPTION value=BeOS>BeOS</OPTION> <OPTION value=HP-UX>HP-UX</OPTION>
+ <OPTION value=IRIX>IRIX</OPTION> <OPTION
+ value=Neutrino>Neutrino</OPTION> <OPTION value=OpenVMS>OpenVMS</OPTION>
+ <OPTION value=OS/2>OS/2</OPTION> <OPTION value=OSF/1>OSF/1</OPTION>
+ <OPTION value=Solaris>Solaris</OPTION> <OPTION
+ value=SunOS>SunOS</OPTION> <OPTION value=other>other</OPTION></SELECT>
+ </TD></TR>
+ <TR>
+ <TD align=right><STRONG><A
+ href="http://hipikat.cs.ubc.ca:8081/bugzilla-test/bugzilla-2.17.6/bug_status.html#priority">Priority</A>:
+ </STRONG></TD>
+ <TD><SELECT name=priority> <OPTION value=P1>P1</OPTION> <OPTION value=P2
+ selected>P2</OPTION> <OPTION value=P3>P3</OPTION> <OPTION
+ value=P4>P4</OPTION> <OPTION value=P5>P5</OPTION></SELECT> </TD>
+ <TD align=right><STRONG><A
+ href="http://hipikat.cs.ubc.ca:8081/bugzilla-test/bugzilla-2.17.6/bug_status.html#bug_severity">Severity</A>:
+ </STRONG></TD>
+ <TD><SELECT name=bug_severity> <OPTION value=blocker>blocker</OPTION>
+ <OPTION value=critical>critical</OPTION> <OPTION
+ value=major>major</OPTION> <OPTION value=normal selected>normal</OPTION>
+ <OPTION value=minor>minor</OPTION> <OPTION
+ value=trivial>trivial</OPTION> <OPTION
+ value=enhancement>enhancement</OPTION></SELECT> </TD></TR>
+ <TR>
+ <TD>&nbsp;</TD>
+ <TD colSpan=3></TD></TR><INPUT type=hidden value=NEW name=bug_status>
+ <TR>
+ <TD align=right><STRONG><A
+ href="http://hipikat.cs.ubc.ca:8081/bugzilla-test/bugzilla-2.17.6/bug_status.html#assigned_to">Assign
+ To</A>: </STRONG></TD>
+ <TD colSpan=3><INPUT size=32 name=assigned_to> <NOSCRIPT>(Leave blank to
+ assign to default component owner)</NOSCRIPT> </TD></TR>
+ <TR>
+ <TD align=right><STRONG>Cc:</STRONG></TD>
+ <TD colSpan=3><INPUT size=45 name=cc> </TD></TR>
+ <TR>
+ <TD>&nbsp;</TD>
+ <TD colSpan=3></TD></TR>
+ <TR>
+ <TD align=right><STRONG>URL:</STRONG></TD>
+ <TD colSpan=3><INPUT size=60 value=http:// name=bug_file_loc> </TD></TR>
+ <TR>
+ <TD align=right><STRONG>Summary:</STRONG></TD>
+ <TD colSpan=3><INPUT size=60 name=short_desc> </TD></TR>
+ <TR>
+ <TD vAlign=top align=right><STRONG>Description:</STRONG></TD>
+ <TD colSpan=3><TEXTAREA name=comment rows=10 wrap=hard cols=80></TEXTAREA>
+ <BR></TD></TR>
+ <TR>
+ <TD vAlign=top align=right><STRONG><A
+ href="http://hipikat.cs.ubc.ca:8081/bugzilla-test/bugzilla-2.17.6/describekeywords.cgi">Keywords</A>:
+ </STRONG></TD>
+ <TD colSpan=3><INPUT size=60 name=keywords> (optional) </TD></TR>
+ <TR>
+ <TD align=right><STRONG>Depends on:</STRONG> </TD>
+ <TD><INPUT accessKey=d name=dependson> </TD></TR>
+ <TR>
+ <TD align=right><STRONG>Blocks:</STRONG> </TD>
+ <TD><INPUT accessKey=b name=blocked> </TD></TR>
+ <TR>
+ <TD></TD>
+ <TD colSpan=3></TD></TR>
+ <TR>
+ <TD></TD>
+ <TD colSpan=3><INPUT onclick="if (this.form.short_desc.value == '')&#10; { alert('Please enter a summary sentence for this bug.');&#10; return false; } return true;" type=submit value=" Commit ">
+ &nbsp;&nbsp;&nbsp;&nbsp; <INPUT type=submit value="Remember values as bookmarkable template" name=maketemplate>
+ </TD></TR>
+ <TR>
+ <TD></TD>
+ <TD colSpan=3><BR>We've made a guess at your operating system and
+ platform. Please check them and, if we got it wrong, emailTHE MAINTAINER
+ HAS NOT YET BEEN SET. </TD></TR></TBODY></TABLE><INPUT type=hidden
+value=enter_bug name=form_name> </FORM><!-- 1.0@bugzilla.org --><!-- 1.0@bugzilla.org -->
+<TABLE border=0>
+ <TBODY>
+ <TR>
+ <TD vAlign=top bgColor=#000000>
+ <TABLE cellSpacing=0 cellPadding=10 width="100%" bgColor=lightyellow
+ border=0>
+ <TBODY>
+ <TR>
+ <TD><!-- 1.0@bugzilla.org -->
+ <FORM action=show_bug.cgi method=get>
+ <TABLE width="100%">
+ <TBODY>
+ <TR>
+ <TD>Actions: </TD>
+ <TD vAlign=center noWrap><A
+ href="http://hipikat.cs.ubc.ca:8081/bugzilla-test/bugzilla-2.17.6/enter_bug.cgi">New</A>
+ | <A
+ href="http://hipikat.cs.ubc.ca:8081/bugzilla-test/bugzilla-2.17.6/query.cgi">Search</A>
+ | <INPUT type=submit value=Find> bug # <INPUT size=6 name=id>
+ | <A
+ href="http://hipikat.cs.ubc.ca:8081/bugzilla-test/bugzilla-2.17.6/report.cgi">Reports</A>
+ | <A
+ href="http://hipikat.cs.ubc.ca:8081/bugzilla-test/bugzilla-2.17.6/request.cgi?requester=tanya%40cs.ubc.ca&amp;requestee=tanya%40cs.ubc.ca&amp;do_union=1&amp;group=type">My
+ Requests</A> | <A
+ href="http://hipikat.cs.ubc.ca:8081/bugzilla-test/bugzilla-2.17.6/votes.cgi?action=show_user">My
+ Votes</A> </TD>
+ <TD>&nbsp;</TD>
+ <TD vAlign=center>Edit <A
+ href="http://hipikat.cs.ubc.ca:8081/bugzilla-test/bugzilla-2.17.6/userprefs.cgi">prefs</A>,
+ <A
+ href="http://hipikat.cs.ubc.ca:8081/bugzilla-test/bugzilla-2.17.6/editproducts.cgi">products</A>,
+ <A
+ href="http://hipikat.cs.ubc.ca:8081/bugzilla-test/bugzilla-2.17.6/editflagtypes.cgi">flags</A>,
+ <A
+ href="http://hipikat.cs.ubc.ca:8081/bugzilla-test/bugzilla-2.17.6/editkeywords.cgi">keywords</A>
+ | <A
+ href="http://hipikat.cs.ubc.ca:8081/bugzilla-test/bugzilla-2.17.6/relogin.cgi">Log&nbsp;out</A>&nbsp;tanya@cs.ubc.ca
+ </TD></TR>
+ <TR>
+ <TD>Saved&nbsp;Searches: </TD>
+ <TD colSpan=3><A
+ href="http://hipikat.cs.ubc.ca:8081/bugzilla-test/bugzilla-2.17.6/buglist.cgi?bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=REOPENED&amp;email1=tanya%40cs.ubc.ca&amp;emailtype1=exact&amp;emailassigned_to1=1&amp;emailreporter1=1">My&nbsp;Bugs</A>
+ </TD></TR></TBODY></TABLE></FORM></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE></BODY></HTML>
diff --git a/org.eclipse.mylyn.bugzilla.tests/TestPages/product-page.html b/org.eclipse.mylyn.bugzilla.tests/TestPages/product-page.html
new file mode 100644
index 000000000..f45028d4b
--- /dev/null
+++ b/org.eclipse.mylyn.bugzilla.tests/TestPages/product-page.html
@@ -0,0 +1,237 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head><!-- 1.0@bugzilla.org --><!-- 1.0@bugzilla.org --><title>Enter Bug</title></head>
+
+
+
+
+
+
+
+
+
+
+ <body bgcolor="#ffffff" onload="" text="#000000" link="#0000ee" vlink="#551a8b" alink="#ff0000">
+
+
+<!-- 1.0@bugzilla.org -->
+
+
+
+
+
+<table border="0" cellspacing="0" cellpadding="0" width="100%"><tbody><tr><td width="100%"><table border="0" cellspacing="0" cellpadding="0" width="100%" bgcolor="#006699"><tbody><tr><td bgcolor="#000000" width="116"><img src="main_data/EclipseBannerPic.jpg" width="115" height="50"></td><td width="637"><a href="http://www.eclipse.org/"><img src="main_data/gradient.jpg" border="0" height="50" width="282"></a></td><td width="250"><img src="main_data/eproject-simple.gif" width="250" height="48"></td></tr></tbody></table></td></tr></tbody></table>
+
+ <table border="0" cellspacing="0">
+ <tbody><tr>
+ <td valign="top" align="left">
+ <table border="0" cellpadding="0" cellspacing="2">
+ <tbody><tr>
+ <td valign="top" align="left" nowrap="nowrap">
+ <font size="+1"><b>Enter Bug</b></font>
+ </td>
+ </tr>
+ </tbody></table>
+ </td>
+ <td valign="middle">&nbsp;</td>
+ <td valign="middle" align="left">First, you must pick a product on which to enter a bug.</td>
+ </tr>
+ </tbody></table>
+
+<table>
+
+ <tbody><tr>
+ <th align="right" valign="top">
+ <a href="https://bugs.eclipse.org/bugs/enter_bug.cgi?product=AJDT">AJDT</a>:
+ </th>
+
+ <td valign="top">&nbsp;AJDT Development Tools</td>
+ </tr>
+ <tr>
+ <th align="right" valign="top">
+ <a href="https://bugs.eclipse.org/bugs/enter_bug.cgi?product=AspectJ">AspectJ</a>:
+ </th>
+
+ <td valign="top">&nbsp;AspectJ Development Tools</td>
+ </tr>
+ <tr>
+ <th align="right" valign="top">
+ <a href="https://bugs.eclipse.org/bugs/enter_bug.cgi?product=CDT">CDT</a>:
+ </th>
+
+ <td valign="top">&nbsp;C/C++ Development Toolkit</td>
+ </tr>
+ <tr>
+ <th align="right" valign="top">
+ <a href="https://bugs.eclipse.org/bugs/enter_bug.cgi?product=CME">CME</a>:
+ </th>
+
+ <td valign="top">&nbsp;CME Technology</td>
+ </tr>
+ <tr>
+ <th align="right" valign="top">
+ <a href="https://bugs.eclipse.org/bugs/enter_bug.cgi?product=ECESIS">ECESIS</a>:
+ </th>
+
+ <td valign="top">&nbsp;Eclipse Techology Open Courseware Project</td>
+ </tr>
+ <tr>
+ <th align="right" valign="top">
+ <a href="https://bugs.eclipse.org/bugs/enter_bug.cgi?product=EMF">EMF</a>:
+ </th>
+
+ <td valign="top">&nbsp;Eclipse Modelling Framework</td>
+ </tr>
+ <tr>
+ <th align="right" valign="top">
+ <a href="https://bugs.eclipse.org/bugs/enter_bug.cgi?product=Equinox">Equinox</a>:
+ </th>
+
+ <td valign="top">&nbsp;Eclipse Runtime Exploration</td>
+ </tr>
+ <tr>
+ <th align="right" valign="top">
+ <a href="https://bugs.eclipse.org/bugs/enter_bug.cgi?product=GEF">GEF</a>:
+ </th>
+
+ <td valign="top">&nbsp;Graphical Editing Framework</td>
+ </tr>
+ <tr>
+ <th align="right" valign="top">
+ <a href="https://bugs.eclipse.org/bugs/enter_bug.cgi?product=GMT">GMT</a>:
+ </th>
+
+ <td valign="top">&nbsp;Generative Model Generator</td>
+ </tr>
+ <tr>
+ <th align="right" valign="top">
+ <a href="https://bugs.eclipse.org/bugs/enter_bug.cgi?product=Hyades">Hyades</a>:
+ </th>
+
+ <td valign="top">&nbsp;Automated Software Quality Tools</td>
+ </tr>
+ <tr>
+ <th align="right" valign="top">
+ <a href="https://bugs.eclipse.org/bugs/enter_bug.cgi?product=JDT">JDT</a>:
+ </th>
+
+ <td valign="top">&nbsp;Java Development Toolkit</td>
+ </tr>
+ <tr>
+ <th align="right" valign="top">
+ <a href="https://bugs.eclipse.org/bugs/enter_bug.cgi?product=PDE">PDE</a>:
+ </th>
+
+ <td valign="top">&nbsp;Plugin Development Environment</td>
+ </tr>
+ <tr>
+ <th align="right" valign="top">
+ <a href="https://bugs.eclipse.org/bugs/enter_bug.cgi?product=Platform">Platform</a>:
+ </th>
+
+ <td valign="top">&nbsp;Eclipse Platform</td>
+ </tr>
+ <tr>
+ <th align="right" valign="top">
+ <a href="https://bugs.eclipse.org/bugs/enter_bug.cgi?product=Stellation">Stellation</a>:
+ </th>
+
+ <td valign="top">&nbsp;Stellation Project</td>
+ </tr>
+ <tr>
+ <th align="right" valign="top">
+ <a href="https://bugs.eclipse.org/bugs/enter_bug.cgi?product=UML2">UML2</a>:
+ </th>
+
+ <td valign="top">&nbsp;UML2 Tools</td>
+ </tr>
+ <tr>
+ <th align="right" valign="top">
+ <a href="https://bugs.eclipse.org/bugs/enter_bug.cgi?product=VE">VE</a>:
+ </th>
+
+ <td valign="top">&nbsp;Visual Editor Tools</td>
+ </tr>
+ <tr>
+ <th align="right" valign="top">
+ <a href="https://bugs.eclipse.org/bugs/enter_bug.cgi?product=WSVT">WSVT</a>:
+ </th>
+
+ <td valign="top">&nbsp;Web Service Validation Tools</td>
+ </tr>
+ <tr>
+ <th align="right" valign="top">
+ <a href="https://bugs.eclipse.org/bugs/enter_bug.cgi?product=XSD">XSD</a>:
+ </th>
+
+ <td valign="top">&nbsp;XML Schema Infoset Model</td>
+ </tr>
+
+</tbody></table>
+<!-- 1.0@bugzilla.org -->
+
+
+
+
+
+
+<table border="0">
+ <tbody><tr>
+ <td bgcolor="#000000" valign="top">
+ <table border="0" cellpadding="10" cellspacing="0" width="100%" bgcolor="lightyellow">
+ <tbody><tr>
+ <td>
+
+
+
+ This is <b>Bugzilla</b>: the Mozilla bug system. For more
+ information about what Bugzilla is and what it can do, see
+ <a href="http://www.bugzilla.org/">bugzilla.org</a>.
+
+
+
+ <br>
+
+
+<!-- 1.0@bugzilla.org -->
+
+
+
+
+
+
+<form method="get" action="show_bug.cgi">
+ <table width="100%">
+ <tbody><tr>
+ <td>
+ Actions:
+ </td>
+
+ <td valign="middle" nowrap="nowrap">
+ <a href="https://bugs.eclipse.org/bugs/enter_bug.cgi">New</a> |
+ <a href="https://bugs.eclipse.org/bugs/query.cgi">Query</a> |
+
+ <input type="submit" value="Find"> bug #
+ <input name="id" size="6"> |
+
+ <a href="https://bugs.eclipse.org/bugs/reports.cgi">Reports</a>
+
+ </td>
+
+ <td>&nbsp;</td>
+
+ <td valign="middle" align="right">
+ <a href="https://bugs.eclipse.org/bugs/createaccount.cgi">New&nbsp;Account</a> |
+ <a href="https://bugs.eclipse.org/bugs/query.cgi?GoAheadAndLogIn=1">Log&nbsp;In</a>
+ </td>
+ </tr>
+
+ </tbody></table>
+</form>
+
+ </td>
+ </tr>
+ </tbody></table>
+ </td>
+ </tr>
+</tbody></table>
+
+</body></html> \ No newline at end of file
diff --git a/org.eclipse.mylyn.bugzilla.tests/TestPages/ve-page.html b/org.eclipse.mylyn.bugzilla.tests/TestPages/ve-page.html
new file mode 100644
index 000000000..e5423da71
--- /dev/null
+++ b/org.eclipse.mylyn.bugzilla.tests/TestPages/ve-page.html
@@ -0,0 +1,178 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<!-- saved from url=(0054)https://bugs.eclipse.org/bugs/enter_bug.cgi?product=VE -->
+<!-- 1.0@bugzilla.org --><!-- 1.0@bugzilla.org --><HTML><HEAD><TITLE>Enter Bug</TITLE>
+<META http-equiv=Content-Type content="text/html; charset=iso-8859-1">
+<META content="MSHTML 6.00.2800.1400" name=GENERATOR></HEAD>
+<BODY text=#000000 vLink=#551a8b aLink=#ff0000 link=#0000ee bgColor=#ffffff
+onload=""><!-- 1.0@bugzilla.org -->
+<TABLE cellSpacing=0 cellPadding=0 width="100%" border=0>
+ <TBODY>
+ <TR>
+ <TD width="100%">
+ <TABLE cellSpacing=0 cellPadding=0 width="100%" bgColor=#006699
+ border=0><TBODY>
+ <TR>
+ <TD width=116 bgColor=#000000><IMG height=50
+ src="VE_files/EclipseBannerPic.jpg" width=115></TD>
+ <TD width=637><A href="http://www.eclipse.org/"><IMG height=50
+ src="VE_files/gradient.jpg" width=282 border=0></A></TD>
+ <TD width=250><IMG height=48 src="VE_files/eproject-simple.gif"
+ width=250></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE>
+<TABLE cellSpacing=0 border=0>
+ <TBODY>
+ <TR>
+ <TD vAlign=top align=left>
+ <TABLE cellSpacing=2 cellPadding=0 border=0>
+ <TBODY>
+ <TR>
+ <TD vAlign=top noWrap align=left><FONT size=+1><B>Enter
+ Bug</B></FONT> </TD></TR></TBODY></TABLE></TD>
+ <TD vAlign=center>&nbsp;</TD>
+ <TD vAlign=center align=left>This page lets you enter a new bug into
+ Bugzilla.</TD></TR></TBODY></TABLE>
+<FORM action=post_bug.cgi method=post><INPUT type=hidden value=VE name=product>
+<TABLE cellSpacing=2 cellPadding=0 border=0>
+ <TBODY>
+ <TR>
+ <TD><BR></TD></TR>
+ <TR>
+ <TD></TD>
+ <TD colSpan=3><!-- 1.0@bugzilla.org -->Before reporting a bug, please read
+ the <A href="https://bugs.eclipse.org/bugs/bugwritinghelp.html">bug
+ writing guidelines</A>, please look at the list of <A
+ href="https://bugs.eclipse.org/bugs/duplicates.cgi">most frequently
+ reported bugs</A>, and please <A
+ href="https://bugs.eclipse.org/bugs/query.cgi">search</A> for the bug.
+ </TD></TR>
+ <TR>
+ <TD><BR></TD></TR>
+ <TR>
+ <TD vAlign=top align=right><STRONG>Reporter:</STRONG></TD>
+ <TD vAlign=top>tanya@cs.ubc.ca</TD>
+ <TD vAlign=top align=right><STRONG>Product:</STRONG></TD>
+ <TD vAlign=top>VE</TD></TR>
+ <TR>
+ <TD vAlign=top align=right><STRONG>Version:</STRONG> </TD>
+ <TD><SELECT size=5 name=version> <OPTION value=0.5.0>0.5.0</OPTION>
+ <OPTION value=1.0.0>1.0.0</OPTION> <OPTION value=unspecified
+ selected>unspecified</OPTION></SELECT> </TD>
+ <TD vAlign=top align=right><STRONG><A
+ href="https://bugs.eclipse.org/bugs/describecomponents.cgi?product=VE">Component</A>:
+ </STRONG></TD>
+ <TD><SELECT size=5 name=component> <OPTION value=CDE>CDE</OPTION>
+ <OPTION value=Doc>Doc</OPTION> <OPTION value="Java Core">Java
+ Core</OPTION> <OPTION value="Java Model (JEM)">Java Model (JEM)</OPTION>
+ <OPTION value=JFC/Swing>JFC/Swing</OPTION> <OPTION
+ value=SWT>SWT</OPTION></SELECT> </TD></TR>
+ <TR>
+ <TD>&nbsp;</TD>
+ <TD colSpan=3></TD></TR>
+ <TR>
+ <TD align=right><STRONG><A
+ href="https://bugs.eclipse.org/bugs/bug_status.html#rep_platform">Platform</A>:
+ </STRONG></TD>
+ <TD><SELECT name=rep_platform> <OPTION value=All>All</OPTION> <OPTION
+ value=Macintosh>Macintosh</OPTION> <OPTION value=PC selected>PC</OPTION>
+ <OPTION value="Power PC">Power PC</OPTION> <OPTION
+ value=Sun>Sun</OPTION> <OPTION value=Other>Other</OPTION></SELECT> </TD>
+ <TD align=right><STRONG><A
+ href="https://bugs.eclipse.org/bugs/bug_status.html#op_sys">OS</A>:
+ </STRONG></TD>
+ <TD><SELECT name=op_sys> <OPTION value=All>All</OPTION> <OPTION
+ value="AIX Motif">AIX Motif</OPTION> <OPTION value="Windows 95">Windows
+ 95</OPTION> <OPTION value="Windows 98">Windows 98</OPTION> <OPTION
+ value="Windows CE">Windows CE</OPTION> <OPTION
+ value="Windows ME">Windows ME</OPTION> <OPTION
+ value="Windows 2000">Windows 2000</OPTION> <OPTION
+ value="Windows NT">Windows NT</OPTION> <OPTION value="Windows XP"
+ selected>Windows XP</OPTION> <OPTION value="Windows All">Windows
+ All</OPTION> <OPTION value="MacOS X">MacOS X</OPTION> <OPTION
+ value=Linux>Linux</OPTION> <OPTION value=Linux-GTK>Linux-GTK</OPTION>
+ <OPTION value=Linux-Motif>Linux-Motif</OPTION> <OPTION
+ value=HP-UX>HP-UX</OPTION> <OPTION value=Neutrino>Neutrino</OPTION>
+ <OPTION value=QNX-Photon>QNX-Photon</OPTION> <OPTION
+ value=Solaris>Solaris</OPTION> <OPTION value="Unix All">Unix
+ All</OPTION> <OPTION value=other>other</OPTION></SELECT> </TD></TR>
+ <TR><INPUT type=hidden value=P3 name=priority>
+ <TD align=right><STRONG><A
+ href="https://bugs.eclipse.org/bugs/bug_status.html#bug_severity">Severity</A>:
+ </STRONG></TD>
+ <TD><SELECT name=bug_severity> <OPTION value=blocker>blocker</OPTION>
+ <OPTION value=critical>critical</OPTION> <OPTION
+ value=major>major</OPTION> <OPTION value=normal selected>normal</OPTION>
+ <OPTION value=minor>minor</OPTION> <OPTION
+ value=trivial>trivial</OPTION> <OPTION
+ value=enhancement>enhancement</OPTION></SELECT> </TD></TR>
+ <TR>
+ <TD>&nbsp;</TD>
+ <TD colSpan=3></TD></TR><INPUT type=hidden value=NEW name=bug_status>
+ <TR>
+ <TD align=right><STRONG><A
+ href="https://bugs.eclipse.org/bugs/bug_status.html#assigned_to">Assigned
+ To</A>: </STRONG></TD>
+ <TD colSpan=3><INPUT size=32 name=assigned_to> (Leave blank to assign to
+ default component owner) </TD></TR>
+ <TR>
+ <TD align=right><STRONG>Cc:</STRONG></TD>
+ <TD colSpan=3><INPUT size=45 name=cc> </TD></TR>
+ <TR>
+ <TD>&nbsp;</TD>
+ <TD colSpan=3></TD></TR>
+ <TR>
+ <TD colSpan=3><INPUT type=hidden size=60 name=bug_file_loc input> </TD></TR>
+ <TR>
+ <TD align=right><STRONG>Summary:</STRONG></TD>
+ <TD colSpan=3><INPUT size=60 name=short_desc> </TD></TR>
+ <TR>
+ <TD vAlign=top align=right><STRONG>Description:</STRONG></TD>
+ <TD colSpan=3><TEXTAREA name=comment rows=10 wrap=hard cols=80></TEXTAREA>
+ <BR></TD></TR>
+ <TR>
+ <TD></TD>
+ <TD colSpan=3></TD></TR>
+ <TR>
+ <TD></TD>
+ <TD colSpan=3><INPUT onclick="if (this.form.short_desc.value == '') &#10; { alert('Please enter a summary sentence for this bug.'); &#10; return false; } return true;" type=submit value=" Commit ">
+ &nbsp;&nbsp;&nbsp;&nbsp; <INPUT type=submit value="Remember values as bookmarkable template" name=maketemplate>
+ </TD></TR>
+ <TR>
+ <TD></TD>
+ <TD colSpan=3><BR>We've made a guess at your operating system and
+ platform. Please check them and, if we got it wrong, email
+ webmaster@eclipse.org. </TD></TR></TBODY></TABLE><INPUT type=hidden
+value=enter_bug name=form_name> </FORM><!-- 1.0@bugzilla.org -->
+<TABLE border=0>
+ <TBODY>
+ <TR>
+ <TD vAlign=top bgColor=#000000>
+ <TABLE cellSpacing=0 cellPadding=10 width="100%" bgColor=lightyellow
+ border=0>
+ <TBODY>
+ <TR>
+ <TD>This is <B>Bugzilla</B>: the Mozilla bug system. For more
+ information about what Bugzilla is and what it can do, see <A
+ href="http://www.bugzilla.org/">bugzilla.org</A>. <BR><!-- 1.0@bugzilla.org -->
+ <FORM action=show_bug.cgi method=get>
+ <TABLE width="100%">
+ <TBODY>
+ <TR>
+ <TD>Actions: </TD>
+ <TD vAlign=center noWrap><A
+ href="https://bugs.eclipse.org/bugs/enter_bug.cgi">New</A> |
+ <A href="https://bugs.eclipse.org/bugs/query.cgi">Query</A> | <INPUT type=submit value=Find> bug # <INPUT size=6 name=id> |
+ <A
+ href="https://bugs.eclipse.org/bugs/reports.cgi">Reports</A> |
+ <A
+ href="https://bugs.eclipse.org/bugs/votes.cgi?action=show_user">My
+ Votes</A> </TD>
+ <TD>&nbsp;</TD>
+ <TD vAlign=center>Edit <A
+ href="https://bugs.eclipse.org/bugs/userprefs.cgi">prefs</A> |
+ <A
+ href="https://bugs.eclipse.org/bugs/relogin.cgi">Log&nbsp;out</A>&nbsp;tanya@cs.ubc.ca
+ </TD></TR>
+ <TR>
+ <TD>Preset&nbsp;Queries: </TD>
+ <TD colSpan=3><A
+ href="https://bugs.eclipse.org/bugs/buglist.cgi?bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=REOPENED&amp;email1=tanya%40cs.ubc.ca&amp;emailtype1=exact&amp;emailassigned_to1=1&amp;emailreporter1=1">My&nbsp;Bugs</A>
+ </TD></TR></TBODY></TABLE></FORM></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE></BODY></HTML>
diff --git a/org.eclipse.mylyn.bugzilla.tests/about.html b/org.eclipse.mylyn.bugzilla.tests/about.html
new file mode 100644
index 000000000..60ca57b4b
--- /dev/null
+++ b/org.eclipse.mylyn.bugzilla.tests/about.html
@@ -0,0 +1,22 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3c.org/TR/1999/REC-html401-19991224/loose.dtd">
+<!-- saved from url=(0043)http://www.eclipse.org/legal/epl/about.html -->
+<HTML><HEAD><TITLE>About</TITLE>
+<META http-equiv=Content-Type content="text/html; charset=ISO-8859-1">
+<META content="MSHTML 6.00.2900.2627" name=GENERATOR></HEAD>
+<BODY lang=EN-US>
+<H2>About This Content</H2>
+<P>February 24, 2005</P>
+<H3>License</H3>
+<P>The Eclipse Foundation makes available all content in this plug-in
+("Content"). Unless otherwise indicated below, the Content is provided to you
+under the terms and conditions of the Eclipse Public License Version 1.0
+("EPL"). A copy of the EPL is available at <A
+href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</A>.
+For purposes of the EPL, "Program" will mean the Content.</P>
+<P>If you did not receive this Content directly from the Eclipse Foundation, the
+Content is being redistributed by another party ("Redistributor") and different
+terms and conditions may apply to your use of any object code in the Content.
+Check the Redistributor's license that was provided with the Content. If no such
+license exists, contact the Redistributor. Unless otherwise indicated below, the
+terms and conditions of the EPL still apply to any source code in the
+Content.</P></BODY></HTML>
diff --git a/org.eclipse.mylyn.bugzilla.tests/build.properties b/org.eclipse.mylyn.bugzilla.tests/build.properties
new file mode 100644
index 000000000..8f6e824e1
--- /dev/null
+++ b/org.eclipse.mylyn.bugzilla.tests/build.properties
@@ -0,0 +1,13 @@
+bin.includes = plugin.xml,\
+ bugzilla-test.jar,\
+ META-INF/,\
+ TestPages/,\
+ about.html
+jars.compile.order = bugzilla-test.jar
+source.bugzilla-test.jar = src/
+output.bugzilla-test.jar = bin/
+src.includes = src/,\
+ plugin.xml,\
+ about.html,\
+ TestPages/,\
+ META-INF/
diff --git a/org.eclipse.mylyn.bugzilla.tests/plugin.xml b/org.eclipse.mylyn.bugzilla.tests/plugin.xml
new file mode 100644
index 000000000..80e8dd15c
--- /dev/null
+++ b/org.eclipse.mylyn.bugzilla.tests/plugin.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.0"?>
+<?eclipse version="3.0"?>
+<plugin>
+
+</plugin>
diff --git a/org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/test/AllTests.java b/org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/test/AllTests.java
new file mode 100644
index 000000000..09a1d069a
--- /dev/null
+++ b/org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/test/AllTests.java
@@ -0,0 +1,42 @@
+/*******************************************************************************
+ * Copyright (c) 2003 University Of British Columbia and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Common Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/cpl-v10.html
+ *
+ * Contributors:
+ * University Of British Columbia - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.mylar.bugzilla.test;
+
+import junit.framework.Test;
+import junit.framework.TestSuite;
+
+//TODO add tests for 2.18 bugzilla
+
+/**
+ * @author tanya
+ *
+ * To change the template for this generated type comment go to
+ * Window&gt;Preferences&gt;Java&gt;Code Generation&gt;Code and Comments
+ */
+public class AllTests {
+
+ public static Test suite() {
+ TestSuite suite = new TestSuite("Test for org.eclipse.mylar.bugzilla.test");
+ //$JUnit-BEGIN$
+ suite.addTest(new TestSuite(BugzillaNewBugParserTestCDT.class));
+ suite.addTest(new TestSuite(BugzillaNewBugParserTestEquinox.class));
+ suite.addTest(new TestSuite(BugzillaNewBugParserTestGMT.class));
+ suite.addTest(new TestSuite(BugzillaNewBugParserTestPlatform.class));
+ suite.addTest(new TestSuite(BugzillaNewBugParserTestVE.class));
+ suite.addTest(new TestSuite(BugzillaParserTest.class));
+ suite.addTest(new TestSuite(BugzillaParserTestNoBug.class));
+ suite.addTest(new TestSuite(
+ BugzillaProductParser1ProductHipikatTest.class));
+ suite.addTest(new TestSuite(BugzillaProductParserTest.class));
+ //$JUnit-END$
+ return suite;
+ }
+} \ No newline at end of file
diff --git a/org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/test/BugzillaNewBugParserTestCDT.java b/org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/test/BugzillaNewBugParserTestCDT.java
new file mode 100644
index 000000000..fc43f250b
--- /dev/null
+++ b/org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/test/BugzillaNewBugParserTestCDT.java
@@ -0,0 +1,231 @@
+/*******************************************************************************
+ * Copyright (c) 2003 University Of British Columbia and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Common Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/cpl-v10.html
+ *
+ * Contributors:
+ * University Of British Columbia - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.mylar.bugzilla.test;
+
+import java.io.File;
+import java.io.FileReader;
+import java.io.Reader;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+
+import junit.framework.TestCase;
+
+import org.eclipse.core.runtime.Path;
+import org.eclipse.mylar.bugzilla.core.Attribute;
+import org.eclipse.mylar.bugzilla.core.internal.NewBugParser;
+import org.eclipse.mylar.bugzilla.ui.wizard.NewBugModel;
+
+
+/**
+ * Tests NewBugParser -- parses product attributes for new bug reports
+ */
+public class BugzillaNewBugParserTestCDT extends TestCase {
+
+ public BugzillaNewBugParserTestCDT() {
+ super();
+ }
+
+ public BugzillaNewBugParserTestCDT(String arg0) {
+ super(arg0);
+ }
+
+ public void testProductCDT() throws Exception {
+
+ File f = FileTool.getFileInPlugin(BugzillaTestPlugin.getDefault(), new Path("TestPages/cdt-page.html"));
+
+ Reader in = new FileReader(f);
+
+ NewBugModel nbm = new NewBugModel();
+ new NewBugParser(in).parseBugAttributes(nbm, true); // ** TRUE vs FALSE **
+
+ // attributes for this bug model
+ List<Attribute> attributes = nbm.getAttributes();
+// printList(attributes);
+
+ Iterator<Attribute> itr = attributes.iterator();
+ Attribute att = itr.next();
+
+ // Attribute: Severity
+ assertEquals("Attribute: Severity", "Severity", att.getName());
+
+ Map<String, String> attOptions = att.getOptionValues(); // HashMap of
+ // options for the
+ // current
+ // attribute
+ Object[] options = attOptions.keySet().toArray(); // Array of keys for
+ // the options of the
+ // current attribute
+ assertEquals("# Severity options", 7, options.length);
+
+ int i = 0;
+ while (i < options.length) {
+ assertEquals("severity options", "blocker", options[i++]);
+ assertEquals("severity options", "critical", options[i++]);
+ assertEquals("severity options", "major", options[i++]);
+ assertEquals("severity options", "normal", options[i++]);
+ assertEquals("severity options", "minor", options[i++]);
+ assertEquals("severity options", "trivial", options[i++]);
+ assertEquals("severity options", "enhancement", options[i++]);
+ }
+
+ // Attribute: product
+ att = itr.next();
+ assertEquals("Attribute: product", "product", att.getName());
+
+ attOptions = att.getOptionValues();
+ options = attOptions.keySet().toArray();
+ assertEquals("No product options", 0, options.length);
+
+ // Attribute: AssignedTo
+ att = itr.next();
+ assertEquals("Attribute: AssignedTo", "AssignedTo", att.getName());
+
+ attOptions = att.getOptionValues();
+ options = attOptions.keySet().toArray();
+ assertEquals("No AssignedTo options", 0, options.length);
+
+ // Attribute: OS
+ att = itr.next();
+ assertEquals("Attribute: OS", "OS", att.getName());
+
+ attOptions = att.getOptionValues();
+ options = attOptions.keySet().toArray();
+ assertEquals("# of options", 20, options.length);
+
+ i = 0;
+ while (i < options.length) {
+ assertEquals("OS options", "All", options[i++]);
+ assertEquals("OS options", "AIX Motif", options[i++]);
+ assertEquals("OS options", "Windows 95", options[i++]);
+ assertEquals("OS options", "Windows 98", options[i++]);
+ assertEquals("OS options", "Windows CE", options[i++]);
+ assertEquals("OS options", "Windows ME", options[i++]);
+ assertEquals("OS options", "Windows 2000", options[i++]);
+ assertEquals("OS options", "Windows NT", options[i++]);
+ assertEquals("OS options", "Windows XP", options[i++]);
+ assertEquals("OS options", "Windows All", options[i++]);
+ assertEquals("OS options", "MacOS X", options[i++]);
+ assertEquals("OS options", "Linux", options[i++]);
+ assertEquals("OS options", "Linux-GTK", options[i++]);
+ assertEquals("OS options", "Linux-Motif", options[i++]);
+ assertEquals("OS options", "HP-UX", options[i++]);
+ assertEquals("OS options", "Neutrino", options[i++]);
+ assertEquals("OS options", "QNX-Photon", options[i++]);
+ assertEquals("OS options", "Solaris", options[i++]);
+ assertEquals("OS options", "Unix All", options[i++]);
+ assertEquals("OS options", "other", options[i++]);
+ }
+
+ // Attribute: Version
+ att = itr.next();
+ assertEquals("Attribute: Version", "Version", att.getName());
+
+ //attOptions = (HashMap) att.getOptionValues();
+ options = att.getOptionValues().keySet().toArray();
+ assertEquals("# Version options", 5, options.length);
+
+ i = 0;
+ while (i < options.length) {
+ assertEquals("Version options", "1.0", options[i++]);
+ assertEquals("Version options", "1.0.1", options[i++]);
+ assertEquals("Version options", "1.1", options[i++]);
+ assertEquals("Version options", "1.2", options[i++]);
+ assertEquals("Version options", "2.0", options[i++]);
+ }
+
+ // Attribute: Platform
+ att = itr.next();
+ assertEquals("Attribute: Platform", "Platform", att.getName());
+
+ options = att.getOptionValues().keySet().toArray();
+ assertEquals("# Platform options", 6, options.length);
+
+ i = 0;
+ while (i < options.length) {
+ assertEquals("Platform options", "All", options[i++]);
+ assertEquals("Platform options", "Macintosh", options[i++]);
+ assertEquals("Platform options", "PC", options[i++]);
+ assertEquals("Platform options", "Power PC", options[i++]);
+ assertEquals("Platform options", "Sun", options[i++]);
+ assertEquals("Platform options", "Other", options[i++]);
+ }
+
+ // Attribute: Component
+ att = itr.next();
+ assertEquals("Attribute: Component", "Component", att.getName());
+
+ options = att.getOptionValues().keySet().toArray();
+ assertEquals("# Component options", 9, options.length);
+
+ i = 0;
+ while (i < options.length) {
+ assertEquals("Component options", "CDT-parser", options[i++]);
+ assertEquals("Component options", "Core", options[i++]);
+ assertEquals("Component options", "Cpp-Extensions", options[i++]);
+ assertEquals("Component options", "Debug", options[i++]);
+ assertEquals("Component options", "Debug-MI", options[i++]);
+ assertEquals("Component options", "Doc", options[i++]);
+ assertEquals("Component options", "Generic-Extensions",
+ options[i++]);
+ assertEquals("Component options", "Launcher", options[i++]);
+ assertEquals("Component options", "UI", options[i++]);
+ }
+
+ // Attribute: bug_status
+ att = itr.next();
+ assertEquals("Attribute: bug_status", "bug_status", att.getName());
+
+ options = att.getOptionValues().keySet().toArray();
+ assertEquals("# bug_status options [none]", 0, options.length);
+
+ // Attribute: form_name
+ att = itr.next();
+ assertEquals("Attribute: form_name", "form_name", att.getName());
+
+ options = att.getOptionValues().keySet().toArray();
+ assertEquals("No form_name options", 0, options.length);
+
+ // Attribute: bug_file_loc
+ att = itr.next();
+ assertEquals("Attribute: bug_file_loc", "bug_file_loc", att.getName());
+
+ options = att.getOptionValues().keySet().toArray();
+ assertEquals("No bug_file_loc options", 0, options.length);
+
+ // Attribute: priority
+ att = itr.next();
+ assertEquals("Attribute: priority", "priority", att.getName());
+
+ options = att.getOptionValues().keySet().toArray();
+ assertEquals("No priority options", 0, options.length);
+
+ }
+
+// private void printList(List<Attribute> attributes) {
+//
+// Iterator<Attribute> itr = attributes.iterator();
+// System.out.println("Attributes for this Product:");
+// System.out.println("============================");
+//
+// while (itr.hasNext()) {
+// Attribute attr = itr.next();
+// System.out.println();
+// System.out.println(attr.getName() + ": ");
+// System.out.println("-----------");
+//
+// Map<String, String> options = attr.getOptionValues();
+// Object[] it = options.keySet().toArray();
+// for (int i = 0; i < it.length; i++)
+// System.out.println((String) it[i]);
+// }
+// }
+} \ No newline at end of file
diff --git a/org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/test/BugzillaNewBugParserTestEquinox.java b/org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/test/BugzillaNewBugParserTestEquinox.java
new file mode 100644
index 000000000..e670561fa
--- /dev/null
+++ b/org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/test/BugzillaNewBugParserTestEquinox.java
@@ -0,0 +1,216 @@
+/*******************************************************************************
+ * Copyright (c) 2003 University Of British Columbia and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Common Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/cpl-v10.html
+ *
+ * Contributors:
+ * University Of British Columbia - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.mylar.bugzilla.test;
+
+import java.io.File;
+import java.io.FileReader;
+import java.io.Reader;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+
+import junit.framework.TestCase;
+
+import org.eclipse.core.runtime.Path;
+import org.eclipse.mylar.bugzilla.core.Attribute;
+import org.eclipse.mylar.bugzilla.core.internal.NewBugParser;
+import org.eclipse.mylar.bugzilla.ui.wizard.NewBugModel;
+
+
+/**
+ * Tests NewBugParser -- parses product attributes
+ */
+public class BugzillaNewBugParserTestEquinox extends TestCase {
+
+ public BugzillaNewBugParserTestEquinox() {
+ super();
+ }
+
+ public BugzillaNewBugParserTestEquinox(String arg0) {
+ super(arg0);
+ }
+
+ public void testProductEquinox() throws Exception {
+
+ File f = FileTool.getFileInPlugin(BugzillaTestPlugin.getDefault(), new Path("TestPages/equinox-page.html"));
+
+ Reader in = new FileReader(f);
+
+ NewBugModel nbm = new NewBugModel();
+ new NewBugParser(in).parseBugAttributes(nbm, true); // ** TRUE vs FALSE **
+
+ // attributes for this bug model
+ List<Attribute> attributes = nbm.getAttributes();
+// printList(attributes);
+
+ Iterator<Attribute> itr = attributes.iterator();
+ Attribute att = itr.next();
+
+ // Attribute: Severity
+ assertEquals("Attribute: Severity", "Severity", att.getName());
+
+ Map<String, String> attOptions = att.getOptionValues(); // HashMap of
+ // options for the
+ // current
+ // attribute
+ Object[] options = attOptions.keySet().toArray(); // Array of keys for
+ // the options of the
+ // current attribute
+ assertEquals("# Severity options", 7, options.length);
+
+ int i = 0;
+ while (i < options.length) {
+ assertEquals("severity options", "blocker", options[i++]);
+ assertEquals("severity options", "critical", options[i++]);
+ assertEquals("severity options", "major", options[i++]);
+ assertEquals("severity options", "normal", options[i++]);
+ assertEquals("severity options", "minor", options[i++]);
+ assertEquals("severity options", "trivial", options[i++]);
+ assertEquals("severity options", "enhancement", options[i++]);
+ }
+
+ // Attribute: product
+ att = itr.next();
+ assertEquals("Attribute: prodcut", "product", att.getName());
+
+ options = att.getOptionValues().keySet().toArray();
+ assertEquals("No product options", 0, options.length);
+
+ // Attribute: AssignedTo
+ att = itr.next();
+ assertEquals("Attribute: AssignedTo", "AssignedTo", att.getName());
+
+ options = att.getOptionValues().keySet().toArray();
+ assertEquals("No AssignedTo options", 0, options.length);
+
+ // Attribute: OS
+ att = itr.next();
+ assertEquals("Attribute: OS", "OS", att.getName());
+
+ options = att.getOptionValues().keySet().toArray();
+ assertEquals("# OS options", 20, options.length);
+
+ i = 0;
+ while (i < options.length) {
+ assertEquals("OS options", "All", options[i++]);
+ assertEquals("OS options", "AIX Motif", options[i++]);
+ assertEquals("OS options", "Windows 95", options[i++]);
+ assertEquals("OS options", "Windows 98", options[i++]);
+ assertEquals("OS options", "Windows CE", options[i++]);
+ assertEquals("OS options", "Windows ME", options[i++]);
+ assertEquals("OS options", "Windows 2000", options[i++]);
+ assertEquals("OS options", "Windows NT", options[i++]);
+ assertEquals("OS options", "Windows XP", options[i++]);
+ assertEquals("OS options", "Windows All", options[i++]);
+ assertEquals("OS options", "MacOS X", options[i++]);
+ assertEquals("OS options", "Linux", options[i++]);
+ assertEquals("OS options", "Linux-GTK", options[i++]);
+ assertEquals("OS options", "Linux-Motif", options[i++]);
+ assertEquals("OS options", "HP-UX", options[i++]);
+ assertEquals("OS options", "Neutrino", options[i++]);
+ assertEquals("OS options", "QNX-Photon", options[i++]);
+ assertEquals("OS options", "Solaris", options[i++]);
+ assertEquals("OS options", "Unix All", options[i++]);
+ assertEquals("OS options", "other", options[i++]);
+ }
+
+ // Attribute: Version
+ att = itr.next();
+ assertEquals("Attribute: Version", "Version", att.getName());
+
+ options = att.getOptionValues().keySet().toArray();
+ assertEquals("# Version options", 1, options.length);
+
+ i = 0;
+ while (i < options.length) {
+ assertEquals("Version options", "unspecified", options[i++]);
+ }
+
+ // Attribute: Platform
+ att = itr.next();
+ assertEquals("Attribute: Platform", "Platform", att.getName());
+
+ options = att.getOptionValues().keySet().toArray();
+ assertEquals("# Platform options", 6, options.length);
+
+ i = 0;
+ while (i < options.length) {
+ assertEquals("Platform options", "All", options[i++]);
+ assertEquals("Platform options", "Macintosh", options[i++]);
+ assertEquals("Platform options", "PC", options[i++]);
+ assertEquals("Platform options", "Power PC", options[i++]);
+ assertEquals("Platform options", "Sun", options[i++]);
+ assertEquals("Platform options", "Other", options[i++]);
+ }
+
+ // Attribute: Component
+ att = itr.next();
+ assertEquals("Attribute: Component", "Component", att.getName());
+
+ options = att.getOptionValues().keySet().toArray();
+ assertEquals("# Component options", 3, options.length);
+
+ i = 0;
+ while (i < options.length) {
+ assertEquals("Component options", "Dynamic Plugins", options[i++]);
+ assertEquals("Component options", "General", options[i++]);
+ assertEquals("Component options", "OSGi", options[i++]);
+ }
+
+ // Attribute: bug_status
+ att = itr.next();
+ assertEquals("Attribute: bug_status", "bug_status", att.getName());
+
+ options = att.getOptionValues().keySet().toArray();
+ assertEquals("No bug_status options", 0, options.length);
+
+ // Attribute: form_name
+ att = itr.next();
+ assertEquals("Attribute: form_name", "form_name", att.getName());
+
+ options = att.getOptionValues().keySet().toArray();
+ assertEquals("No form_name options", 0, options.length);
+
+ // Attribute: bug_file_loc
+ att = itr.next();
+ assertEquals("Attribute: bug_file_loc", "bug_file_loc", att.getName());
+
+ options = att.getOptionValues().keySet().toArray();
+ assertEquals("No bug_file_loc options", 0, options.length);
+
+ // Attribute: priority
+ att = itr.next();
+ assertEquals("Attribute: priority", "priority", att.getName());
+
+ options = att.getOptionValues().keySet().toArray();
+ assertEquals("No priority options", 0, options.length);
+
+ }
+
+// private void printList(List<Attribute> attributes) {
+//
+// Iterator<Attribute> itr = attributes.iterator();
+// System.out.println("Attributes for this Product:");
+// System.out.println("============================");
+//
+// while (itr.hasNext()) {
+// Attribute attr = itr.next();
+// System.out.println();
+// System.out.println(attr.getName() + ": ");
+// System.out.println("-----------");
+//
+// Map<String, String> options = attr.getOptionValues();
+// Object[] it = options.keySet().toArray();
+// for (int i = 0; i < it.length; i++)
+// System.out.println((String) it[i]);
+// }
+// }
+} \ No newline at end of file
diff --git a/org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/test/BugzillaNewBugParserTestGMT.java b/org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/test/BugzillaNewBugParserTestGMT.java
new file mode 100644
index 000000000..bf55c8013
--- /dev/null
+++ b/org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/test/BugzillaNewBugParserTestGMT.java
@@ -0,0 +1,217 @@
+/*******************************************************************************
+ * Copyright (c) 2003 University Of British Columbia and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Common Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/cpl-v10.html
+ *
+ * Contributors:
+ * University Of British Columbia - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.mylar.bugzilla.test;
+
+import java.io.File;
+import java.io.FileReader;
+import java.io.Reader;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+
+import junit.framework.TestCase;
+
+import org.eclipse.core.runtime.Path;
+import org.eclipse.mylar.bugzilla.core.Attribute;
+import org.eclipse.mylar.bugzilla.core.internal.NewBugParser;
+import org.eclipse.mylar.bugzilla.ui.wizard.NewBugModel;
+
+
+/**
+ * Tests NewBugParser -- parses product attributes
+ */
+public class BugzillaNewBugParserTestGMT extends TestCase {
+
+ public BugzillaNewBugParserTestGMT() {
+ super();
+ }
+
+ public BugzillaNewBugParserTestGMT(String arg0) {
+ super(arg0);
+ }
+
+ public void testProductGMT() throws Exception {
+
+ File f = FileTool.getFileInPlugin(BugzillaTestPlugin.getDefault(), new Path("TestPages/gmt-page.html"));
+
+ Reader in = new FileReader(f);
+
+ NewBugModel nbm = new NewBugModel();
+ new NewBugParser(in).parseBugAttributes(nbm, true); // ** TRUE vs FALSE **
+
+ // attributes for this bug model
+ List<Attribute> attributes = nbm.getAttributes();
+// printList(attributes);
+
+ Iterator<Attribute> itr = attributes.iterator();
+ Attribute att = itr.next();
+
+ // Attribute: Severity
+ assertEquals("Attribute: Severity", "Severity", att.getName());
+
+ Map<String, String> attOptions = att.getOptionValues(); // HashMap of
+ // options for the
+ // current
+ // attribute
+ Object[] options = attOptions.keySet().toArray(); // Array of keys for
+ // the options of the
+ // current attribute
+ assertEquals("# Severity options", 7, options.length);
+
+ int i = 0;
+ while (i < options.length) {
+ assertEquals("severity options", "blocker", options[i++]);
+ assertEquals("severity options", "critical", options[i++]);
+ assertEquals("severity options", "major", options[i++]);
+ assertEquals("severity options", "normal", options[i++]);
+ assertEquals("severity options", "minor", options[i++]);
+ assertEquals("severity options", "trivial", options[i++]);
+ assertEquals("severity options", "enhancement", options[i++]);
+ }
+
+ // Attribute: product
+ att = itr.next();
+ assertEquals("Attribute: product", "product", att.getName());
+
+ attOptions = att.getOptionValues();
+ options = attOptions.keySet().toArray();
+ assertEquals("No product options", 0, options.length);
+
+ // Attribute: AssignedTo
+ att = itr.next();
+ assertEquals("Attribute: AssignedTo", "AssignedTo", att.getName());
+
+ attOptions = att.getOptionValues();
+ options = attOptions.keySet().toArray();
+ assertEquals("No AssignedTo options", 0, options.length);
+
+ // Attribute: OS
+ att = itr.next();
+ assertEquals("Attribute: OS", "OS", att.getName());
+
+ attOptions = att.getOptionValues();
+ options = attOptions.keySet().toArray();
+ assertEquals("# of options", 20, options.length);
+
+ i = 0;
+ while (i < options.length) {
+ assertEquals("OS options", "All", options[i++]);
+ assertEquals("OS options", "AIX Motif", options[i++]);
+ assertEquals("OS options", "Windows 95", options[i++]);
+ assertEquals("OS options", "Windows 98", options[i++]);
+ assertEquals("OS options", "Windows CE", options[i++]);
+ assertEquals("OS options", "Windows ME", options[i++]);
+ assertEquals("OS options", "Windows 2000", options[i++]);
+ assertEquals("OS options", "Windows NT", options[i++]);
+ assertEquals("OS options", "Windows XP", options[i++]);
+ assertEquals("OS options", "Windows All", options[i++]);
+ assertEquals("OS options", "MacOS X", options[i++]);
+ assertEquals("OS options", "Linux", options[i++]);
+ assertEquals("OS options", "Linux-GTK", options[i++]);
+ assertEquals("OS options", "Linux-Motif", options[i++]);
+ assertEquals("OS options", "HP-UX", options[i++]);
+ assertEquals("OS options", "Neutrino", options[i++]);
+ assertEquals("OS options", "QNX-Photon", options[i++]);
+ assertEquals("OS options", "Solaris", options[i++]);
+ assertEquals("OS options", "Unix All", options[i++]);
+ assertEquals("OS options", "other", options[i++]);
+ }
+
+ // Attribute: Version
+ att = itr.next();
+ assertEquals("Attribute: Version", "Version", att.getName());
+
+ //attOptions = (HashMap) att.getOptionValues();
+ options = att.getOptionValues().keySet().toArray();
+ assertEquals("# Version options", 1, options.length);
+
+ i = 0;
+ while (i < options.length) {
+ assertEquals("Version options", "unspecified", options[i++]);
+ }
+
+ // Attribute: Platform
+ att = itr.next();
+ assertEquals("Attribute: Platform", "Platform", att.getName());
+
+ options = att.getOptionValues().keySet().toArray();
+ assertEquals("# Platform options", 6, options.length);
+
+ i = 0;
+ while (i < options.length) {
+ assertEquals("Platform options", "All", options[i++]);
+ assertEquals("Platform options", "Macintosh", options[i++]);
+ assertEquals("Platform options", "PC", options[i++]);
+ assertEquals("Platform options", "Power PC", options[i++]);
+ assertEquals("Platform options", "Sun", options[i++]);
+ assertEquals("Platform options", "Other", options[i++]);
+ }
+
+ att = itr.next();
+ assertEquals("Attribute: Component", "Component", att.getName());
+
+ options = att.getOptionValues().keySet().toArray();
+ assertEquals("# Component options", 1, options.length);
+
+ i = 0;
+ while (i < options.length) {
+ assertEquals("Component options", "Core", options[i++]);
+ }
+
+ // Attribute: bug_status
+ att = itr.next();
+ assertEquals("Attribute: bug_status", "bug_status", att.getName());
+
+ options = att.getOptionValues().keySet().toArray();
+ assertEquals("No bug_status options", 0, options.length);
+
+ // Attribute: form_name
+ att = itr.next();
+ assertEquals("Attribute: form_name", "form_name", att.getName());
+
+ options = att.getOptionValues().keySet().toArray();
+ assertEquals("No form_name options", 0, options.length);
+
+ // Attribute: bug_file_loc
+ att = itr.next();
+ assertEquals("Attribute: bug_file_loc", "bug_file_loc", att.getName());
+
+ options = att.getOptionValues().keySet().toArray();
+ assertEquals("No bug_file_loc options", 0, options.length);
+
+ // Attribute: priority
+ att = itr.next();
+ assertEquals("Attribute: priority", "priority", att.getName());
+
+ options = att.getOptionValues().keySet().toArray();
+ assertEquals("No priority options", 0, options.length);
+
+ }
+
+// private void printList(List<Attribute> attributes) {
+//
+// Iterator<Attribute> itr = attributes.iterator();
+// System.out.println("Attributes for this Product:");
+// System.out.println("============================");
+//
+// while (itr.hasNext()) {
+// Attribute attr = itr.next();
+// System.out.println();
+// System.out.println(attr.getName() + ": ");
+// System.out.println("-----------");
+//
+// Map<String, String> options = attr.getOptionValues();
+// Object[] it = options.keySet().toArray();
+// for (int i = 0; i < it.length; i++)
+// System.out.println((String) it[i]);
+// }
+// }
+} \ No newline at end of file
diff --git a/org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/test/BugzillaNewBugParserTestPlatform.java b/org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/test/BugzillaNewBugParserTestPlatform.java
new file mode 100644
index 000000000..1e8d17d24
--- /dev/null
+++ b/org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/test/BugzillaNewBugParserTestPlatform.java
@@ -0,0 +1,243 @@
+/*******************************************************************************
+ * Copyright (c) 2003 University Of British Columbia and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Common Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/cpl-v10.html
+ *
+ * Contributors:
+ * University Of British Columbia - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.mylar.bugzilla.test;
+
+import java.io.File;
+import java.io.FileReader;
+import java.io.Reader;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+
+import junit.framework.TestCase;
+
+import org.eclipse.core.runtime.Path;
+import org.eclipse.mylar.bugzilla.core.Attribute;
+import org.eclipse.mylar.bugzilla.core.internal.NewBugParser;
+import org.eclipse.mylar.bugzilla.ui.wizard.NewBugModel;
+
+
+/**
+ * Tests NewBugParser -- parses product attributes
+ */
+public class BugzillaNewBugParserTestPlatform extends TestCase {
+
+ public BugzillaNewBugParserTestPlatform() {
+ super();
+ }
+
+ public BugzillaNewBugParserTestPlatform(String arg0) {
+ super(arg0);
+ }
+
+ public void testProductPlatform() throws Exception {
+
+ File f = FileTool.getFileInPlugin(BugzillaTestPlugin.getDefault(), new Path("TestPages/platform-page.html"));
+
+ Reader in = new FileReader(f);
+
+ NewBugModel nbm = new NewBugModel();
+ new NewBugParser(in).parseBugAttributes(nbm, true); // ** TRUE vs FALSE **
+
+ // attributes for this bug model
+ List<Attribute> attributes = nbm.getAttributes();
+// printList(attributes);
+
+ // to iterator over the ArrayList of attributes
+ Iterator<Attribute> itr = attributes.iterator();
+
+ // Attribute: Severity
+ Attribute att = itr.next(); // current attribute
+
+ // Attribute: Severity
+ assertEquals("Attribute: Severity", "Severity", att.getName());
+
+ Map<String, String> attOptions = att.getOptionValues(); // HashMap of
+ // options for the
+ // current
+ // attribute
+ Object[] options = attOptions.keySet().toArray(); // Array of keys for
+ // the options of the
+ // current attribute
+ assertEquals("# Severity options", 7, options.length);
+
+ int i = 0;
+ while (i < options.length) {
+ assertEquals("severity options", "blocker", options[i++]);
+ assertEquals("severity options", "critical", options[i++]);
+ assertEquals("severity options", "major", options[i++]);
+ assertEquals("severity options", "normal", options[i++]);
+ assertEquals("severity options", "minor", options[i++]);
+ assertEquals("severity options", "trivial", options[i++]);
+ assertEquals("severity options", "enhancement", options[i++]);
+ }
+
+ // Attribute: product
+ att = itr.next();
+ assertEquals("Attribute: product", "product", att.getName());
+
+ attOptions = att.getOptionValues();
+ options = attOptions.keySet().toArray();
+ assertEquals("No product optins", 0, options.length);
+
+ // Attribute: AssignedTo
+ att = itr.next();
+ assertEquals("Attribute: Assigned To", "Assigned To", att.getName());
+
+ options = att.getOptionValues().keySet().toArray();
+ assertEquals("No AssingedTo options", 0, options.length);
+
+ // Attribute: OS
+ att = itr.next();
+ assertEquals("Attribute: OS", "OS", att.getName());
+
+ attOptions = att.getOptionValues();
+ options = attOptions.keySet().toArray();
+ assertEquals("# OS options", 20, options.length);
+
+ i = 0;
+ while (i < options.length) {
+ assertEquals("OS options", "All", options[i++]);
+ assertEquals("OS options", "AIX Motif", options[i++]);
+ assertEquals("OS options", "Windows 95", options[i++]);
+ assertEquals("OS options", "Windows 98", options[i++]);
+ assertEquals("OS options", "Windows CE", options[i++]);
+ assertEquals("OS options", "Windows ME", options[i++]);
+ assertEquals("OS options", "Windows 2000", options[i++]);
+ assertEquals("OS options", "Windows NT", options[i++]);
+ assertEquals("OS options", "Windows XP", options[i++]);
+ assertEquals("OS options", "Windows All", options[i++]);
+ assertEquals("OS options", "MacOS X", options[i++]);
+ assertEquals("OS options", "Linux", options[i++]);
+ assertEquals("OS options", "Linux-GTK", options[i++]);
+ assertEquals("OS options", "Linux-Motif", options[i++]);
+ assertEquals("OS options", "HP-UX", options[i++]);
+ assertEquals("OS options", "Neutrino", options[i++]);
+ assertEquals("OS options", "QNX-Photon", options[i++]);
+ assertEquals("OS options", "Solaris", options[i++]);
+ assertEquals("OS options", "Unix All", options[i++]);
+ assertEquals("OS options", "other", options[i++]);
+ }
+
+ // Attribute: Version
+ att = itr.next();
+ assertEquals("Attribute: Version", "Version", att.getName());
+
+ attOptions = att.getOptionValues();
+ options = attOptions.keySet().toArray();
+ assertEquals("# Version options", 8, options.length);
+
+ i = 0;
+ while (i < options.length) {
+ assertEquals("Version options", "1.0", options[i++]);
+ assertEquals("Version options", "2.0", options[i++]);
+ assertEquals("Version options", "2.0.1", options[i++]);
+ assertEquals("Version options", "2.0.2", options[i++]);
+ assertEquals("Version options", "2.1", options[i++]);
+ assertEquals("Version options", "2.1.1", options[i++]);
+ assertEquals("Version options", "2.1.2", options[i++]);
+ assertEquals("Version options", "3.0", options[i++]);
+ }
+
+ // Attribute: Platform
+ att = itr.next();
+ assertEquals("Attribute: Platform", "Platform", att.getName());
+
+ options = att.getOptionValues().keySet().toArray();
+ assertEquals("# Platform options", 6, options.length);
+
+ i = 0;
+ while (i < options.length) {
+ assertEquals("Platform options", "All", options[i++]);
+ assertEquals("Platform options", "Macintosh", options[i++]);
+ assertEquals("Platform options", "PC", options[i++]);
+ assertEquals("Platform options", "Power PC", options[i++]);
+ assertEquals("Platform options", "Sun", options[i++]);
+ assertEquals("Platform options", "Other", options[i++]);
+ }
+
+ // Attribute: Component
+ att = itr.next();
+ assertEquals("Attribute: Component", "Component", att.getName());
+
+ attOptions = att.getOptionValues();
+ options = attOptions.keySet().toArray();
+ assertEquals("# Component options", 16, options.length);
+
+ i = 0;
+ while (i < options.length) {
+ assertEquals("Component options", "Ant", options[i++]);
+ assertEquals("Component options", "Compare", options[i++]);
+ assertEquals("Component options", "Core", options[i++]);
+ assertEquals("Component options", "CVS", options[i++]);
+ assertEquals("Component options", "Debug", options[i++]);
+ assertEquals("Component options", "Doc", options[i++]);
+ assertEquals("Component options", "Help", options[i++]);
+ assertEquals("Component options", "Releng", options[i++]);
+ assertEquals("Component options", "Scripting", options[i++]);
+ assertEquals("Component options", "Search", options[i++]);
+ assertEquals("Component options", "SWT", options[i++]);
+ assertEquals("Component options", "Team", options[i++]);
+ assertEquals("Component options", "Text", options[i++]);
+ assertEquals("Component options", "UI", options[i++]);
+ assertEquals("Component options", "Update", options[i++]);
+ assertEquals("Component options", "WebDAV", options[i++]);
+ }
+
+ // Attribute: bug_status
+ att = itr.next();
+ assertEquals("Attribute: bug_status", "bug_status", att.getName());
+
+ attOptions = att.getOptionValues();
+ options = attOptions.keySet().toArray();
+ assertEquals("No bug_status options", 0, options.length);
+
+ // Attribute: form_name
+ att = itr.next();
+ assertEquals("Attribute: form_name", "form_name", att.getName());
+
+ options = att.getOptionValues().keySet().toArray();
+ assertEquals("No form_name options", 0, options.length);
+
+ // Attribute: bug_file_loc
+ att = itr.next();
+ assertEquals("Attribute: bug_file_loc", "bug_file_loc", att.getName());
+
+ options = att.getOptionValues().keySet().toArray();
+ assertEquals("No bug_file_loc options", 0, options.length);
+
+ // Attribute: priority
+ att = itr.next();
+ assertEquals("Attribute: priority", "priority", att.getName());
+
+ options = att.getOptionValues().keySet().toArray();
+ assertEquals("No priority options", 0, options.length);
+ }
+
+// private void printList(List<Attribute> attributes) {
+//
+// Iterator<Attribute> itr = attributes.iterator();
+// System.out.println("Attributes for this Product:");
+// System.out.println("============================");
+//
+// while (itr.hasNext()) {
+// Attribute attr = itr.next();
+// System.out.println();
+// System.out.println(attr.getName() + ": ");
+// System.out.println("-----------");
+//
+// Map<String, String> options = attr.getOptionValues();
+// Object[] it = options.keySet().toArray();
+// for (int i = 0; i < it.length; i++)
+// System.out.println((String) it[i]);
+// }
+// }
+} \ No newline at end of file
diff --git a/org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/test/BugzillaNewBugParserTestVE.java b/org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/test/BugzillaNewBugParserTestVE.java
new file mode 100644
index 000000000..49604178c
--- /dev/null
+++ b/org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/test/BugzillaNewBugParserTestVE.java
@@ -0,0 +1,223 @@
+/*******************************************************************************
+ * Copyright (c) 2003 University Of British Columbia and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Common Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/cpl-v10.html
+ *
+ * Contributors:
+ * University Of British Columbia - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.mylar.bugzilla.test;
+
+import java.io.File;
+import java.io.FileReader;
+import java.io.Reader;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+
+import junit.framework.TestCase;
+
+import org.eclipse.core.runtime.Path;
+import org.eclipse.mylar.bugzilla.core.Attribute;
+import org.eclipse.mylar.bugzilla.core.internal.NewBugParser;
+import org.eclipse.mylar.bugzilla.ui.wizard.NewBugModel;
+
+
+/**
+ * Tests NewBugParser -- parses product attributes
+ */
+public class BugzillaNewBugParserTestVE extends TestCase {
+
+ public BugzillaNewBugParserTestVE() {
+ super();
+ }
+
+ public BugzillaNewBugParserTestVE(String arg0) {
+ super(arg0);
+ }
+
+ public void testProductVE() throws Exception {
+ File f = FileTool.getFileInPlugin(BugzillaTestPlugin.getDefault(), new Path("TestPages/ve-page.html"));
+
+ Reader in = new FileReader(f);
+
+ NewBugModel nbm = new NewBugModel();
+ new NewBugParser(in).parseBugAttributes(nbm, true); // ** TRUE vs FALSE **
+
+ // attributes for this but model
+ List<Attribute> attributes = nbm.getAttributes();
+// printList(attributes);
+
+ Iterator<Attribute> itr = attributes.iterator();
+ Attribute att = itr.next();
+
+ // Attribute: Severity
+ assertEquals("Attribute: Severity", "Severity", att.getName());
+
+ Map<String, String> attOptions = att.getOptionValues(); // HashMap of
+ // options for the
+ // current
+ // attribute
+ Object[] options = attOptions.keySet().toArray(); // Array of keys for
+ // the options of the
+ // current attribute
+ assertEquals("# Severity options", 7, options.length);
+
+ int i = 0;
+ while (i < options.length) {
+ assertEquals("severity options", "blocker", options[i++]);
+ assertEquals("severity options", "critical", options[i++]);
+ assertEquals("severity options", "major", options[i++]);
+ assertEquals("severity options", "normal", options[i++]);
+ assertEquals("severity options", "minor", options[i++]);
+ assertEquals("severity options", "trivial", options[i++]);
+ assertEquals("severity options", "enhancement", options[i++]);
+ }
+
+ // Attribute: product
+ att = itr.next();
+ assertEquals("Attribute: product", "product", att.getName());
+
+ attOptions = att.getOptionValues();
+ options = attOptions.keySet().toArray();
+ assertEquals("No product options", 0, options.length);
+
+ // Attribute: AssignedTo
+ att = itr.next();
+ assertEquals("Attribute: AssignedTo", "AssignedTo", att.getName());
+
+ attOptions = att.getOptionValues();
+ options = attOptions.keySet().toArray();
+ assertEquals("No AssignedTo options", 0, options.length);
+
+ // Attribute: OS
+ att = itr.next();
+ assertEquals("Attribute: OS", "OS", att.getName());
+
+ attOptions = att.getOptionValues();
+ options = attOptions.keySet().toArray();
+ assertEquals("# of options", 20, options.length);
+
+ i = 0;
+ while (i < options.length) {
+ assertEquals("OS options", "All", options[i++]);
+ assertEquals("OS options", "AIX Motif", options[i++]);
+ assertEquals("OS options", "Windows 95", options[i++]);
+ assertEquals("OS options", "Windows 98", options[i++]);
+ assertEquals("OS options", "Windows CE", options[i++]);
+ assertEquals("OS options", "Windows ME", options[i++]);
+ assertEquals("OS options", "Windows 2000", options[i++]);
+ assertEquals("OS options", "Windows NT", options[i++]);
+ assertEquals("OS options", "Windows XP", options[i++]);
+ assertEquals("OS options", "Windows All", options[i++]);
+ assertEquals("OS options", "MacOS X", options[i++]);
+ assertEquals("OS options", "Linux", options[i++]);
+ assertEquals("OS options", "Linux-GTK", options[i++]);
+ assertEquals("OS options", "Linux-Motif", options[i++]);
+ assertEquals("OS options", "HP-UX", options[i++]);
+ assertEquals("OS options", "Neutrino", options[i++]);
+ assertEquals("OS options", "QNX-Photon", options[i++]);
+ assertEquals("OS options", "Solaris", options[i++]);
+ assertEquals("OS options", "Unix All", options[i++]);
+ assertEquals("OS options", "other", options[i++]);
+ }
+
+ // Attribute: Version
+ att = itr.next();
+ assertEquals("Attribute: Version", "Version", att.getName());
+
+ //attOptions = (HashMap) att.getOptionValues();
+ options = att.getOptionValues().keySet().toArray();
+ assertEquals("# Version options", 3, options.length);
+
+ i = 0;
+ while (i < options.length) {
+ assertEquals("Version options", "0.5.0", options[i++]);
+ assertEquals("Version options", "1.0.0", options[i++]);
+ assertEquals("Version options", "unspecified", options[i++]);
+ }
+
+ // Attribute: Platform
+ att = itr.next();
+ assertEquals("Attribute: Platform", "Platform", att.getName());
+
+ options = att.getOptionValues().keySet().toArray();
+ assertEquals("# Platform options", 6, options.length);
+
+ i = 0;
+ while (i < options.length) {
+ assertEquals("Platform options", "All", options[i++]);
+ assertEquals("Platform options", "Macintosh", options[i++]);
+ assertEquals("Platform options", "PC", options[i++]);
+ assertEquals("Platform options", "Power PC", options[i++]);
+ assertEquals("Platform options", "Sun", options[i++]);
+ assertEquals("Platform options", "Other", options[i++]);
+ }
+
+ att = itr.next();
+ assertEquals("Attribute: Component", "Component", att.getName());
+
+ options = att.getOptionValues().keySet().toArray();
+ assertEquals("# Component options", 6, options.length);
+
+ i = 0;
+ while (i < options.length) {
+ assertEquals("Component options", "CDE", options[i++]);
+ assertEquals("Component options", "Doc", options[i++]);
+ assertEquals("Component options", "Java Core", options[i++]);
+ assertEquals("Component options", "Java Model (JEM)", options[i++]);
+ assertEquals("Component options", "JFC/Swing", options[i++]);
+ assertEquals("Component options", "SWT", options[i++]);
+ }
+
+ // Attribute: bug_status
+ att = itr.next();
+ assertEquals("Attribute: bug_status", "bug_status", att.getName());
+
+ options = att.getOptionValues().keySet().toArray();
+ assertEquals("No bug_status options", 0, options.length);
+
+ // Attribute: form_name
+ att = itr.next();
+ assertEquals("Attribute: form_name", "form_name", att.getName());
+
+ options = att.getOptionValues().keySet().toArray();
+ assertEquals("No form_name options", 0, options.length);
+
+ // Attribute: bug_file_loc
+ att = itr.next();
+ assertEquals("Attribute: bug_file_loc", "bug_file_loc", att.getName());
+
+ options = att.getOptionValues().keySet().toArray();
+ assertEquals("No bug_file_loc options", 0, options.length);
+
+ // Attribute: priority
+ att = itr.next();
+ assertEquals("Attribute: priority", "priority", att.getName());
+
+ options = att.getOptionValues().keySet().toArray();
+ assertEquals("No priority options", 0, options.length);
+
+ }
+
+// private void printList(List<Attribute> attributes) {
+//
+// Iterator<Attribute> itr = attributes.iterator();
+// System.out.println("Attributes for this Product:");
+// System.out.println("============================");
+//
+// while (itr.hasNext()) {
+// Attribute attr = itr.next();
+// System.out.println();
+// System.out.println(attr.getName() + ": ");
+// System.out.println("-----------");
+//
+// Map<String, String> options = attr.getOptionValues();
+// Object[] it = options.keySet().toArray();
+// for (int i = 0; i < it.length; i++)
+// System.out.println((String) it[i]);
+// }
+// }
+} \ No newline at end of file
diff --git a/org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/test/BugzillaParserTest.java b/org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/test/BugzillaParserTest.java
new file mode 100644
index 000000000..f453c0c04
--- /dev/null
+++ b/org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/test/BugzillaParserTest.java
@@ -0,0 +1,215 @@
+/*******************************************************************************
+ * Copyright (c) 2003 University Of British Columbia and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Common Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/cpl-v10.html
+ *
+ * Contributors:
+ * University Of British Columbia - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.mylar.bugzilla.test;
+
+import java.io.File;
+import java.io.FileReader;
+import java.io.Reader;
+import java.util.Iterator;
+
+import junit.framework.TestCase;
+
+import org.eclipse.core.runtime.Path;
+import org.eclipse.mylar.bugzilla.core.BugReport;
+import org.eclipse.mylar.bugzilla.core.Comment;
+import org.eclipse.mylar.bugzilla.core.internal.BugParser;
+
+
+/**
+ * Tests for parsing Bugzilla reports
+ */
+public class BugzillaParserTest extends TestCase {
+
+ public BugzillaParserTest() {
+ super();
+ }
+
+ public BugzillaParserTest(String arg0) {
+ super(arg0);
+ }
+
+ public void testFullReportBug1() throws Exception {
+
+ File f = FileTool.getFileInPlugin(BugzillaTestPlugin.getDefault(), new Path("TestPages/bug-1-full.html"));
+
+ Reader in = new FileReader(f);
+
+ BugReport bug = BugParser.parseBug(in, 1, "<server>", false, null, null);
+
+// displayBug(bug);
+ assertEquals("Bug id", 1, bug.getId());
+ assertEquals("Bug summary",
+ "Usability issue with external editors (1GE6IRL)", bug
+ .getSummary());
+ assertEquals("Reporter", "andre_weinand@ch.ibm.com (Andre Weinand)",
+ bug.getReporter());
+ assertEquals("Reporter", "andre_weinand@ch.ibm.com (Andre Weinand)",
+ bug.getAttribute("Reporter").getValue());
+ assertEquals("Summary",
+ "Usability issue with external editors (1GE6IRL)", bug
+ .getSummary());
+ assertEquals("Status", "VERIFIED", bug.getStatus());
+ assertEquals("Resolution", "FIXED", bug.getResolution());
+ assertEquals("Keywords", null, bug.getKeywords());
+ assertEquals("Assigned To", "James_Moody@ca.ibm.com (James Moody)", bug
+ .getAssignedTo());
+ assertEquals("Priority", "P3", bug.getAttribute("Priority").getValue());
+ assertEquals("OS", "All", bug.getAttribute("OS").getValue());
+ assertEquals("Version", "2.0", bug.getAttribute("Version").getValue());
+ assertEquals("Target Milestone", "---", bug.getAttribute(
+ "Target Milestone").getValue());
+ assertEquals("Keywords", "", bug.getAttribute("Keywords").getValue());
+ assertEquals("Severity", "normal", bug.getAttribute("Severity")
+ .getValue());
+ assertEquals("Component", "VCM", bug.getAttribute("Component")
+ .getValue());
+ assertEquals("CC", "Kevin_McGuire@oti.com", bug.getCC()
+ .iterator().next());
+ assertEquals("Platform", "All", bug.getAttribute("Platform").getValue());
+ assertEquals("Product", "Platform", bug.getAttribute("Product")
+ .getValue());
+ assertEquals("URL", "", bug.getAttribute("URL").getValue());
+ assertEquals("Bug#", "1", bug.getAttribute("Bug#").getValue());
+
+ // Description
+ String description = "- Setup a project that contains a *.gif resource\n"
+ + "\t- release project to CVS\n"
+ + "\t- edit the *.gif resource with an external editor, e.g. PaintShop\n"
+ + "\t- save and close external editor\n"
+ + "\t- in Navigator open the icon resource and verify that your changes are there\n"
+ + "\t- release project\n"
+ + "\t\t-> nothing to release!\n"
+ + "\t- in Navigator open the icon resource and verify that your changes are still there\n\n"
+ +
+
+ "\tProblem: because I never \"Refreshed from local\", the workspace hasn't changed so \"Release\" didn't find anything.\n"
+ + "\tHowever opening the resource with an external editor found the modified file on disk and showed the changes.\n\n"
+ +
+
+ "\tThe real problem occurs if \"Release\" actually finds something to release but you don't spot that some resources are missing.\n"
+ + "\tThis is extremely error prone: one of my changes didn't made it into build 110 because of this!\n\n"
+ +
+
+ "NOTES:\n"
+ + "EG (5/23/01 3:00:33 PM)\n"
+ + "\tRelease should do a refresh from local before doing the release.\n"
+ + "\tMoving to VCM\n\n\n"
+ +
+
+ "KM (05/27/01 5:10:19 PM)\n"
+ + "\tComments from JM in related email:\n\n"
+ +
+
+ "\tShould not do this for free. Could have a setting which made it optoinal but should nt be mandatory. Default setting could be to have it on.\n"
+ + "\tConsider the SWT team who keep their workspaces on network drives. This will be slow. \n\n"
+ +
+
+ "\tSide effects will be that a build runs when the refresh is completed unless you somehow do it in a workspace runnable and don't end the\n"
+ + "\trunnable until after the release. This would be less than optimal as some builders may be responsible for maintaining some invariants and deriving resources which are releasable. If you don't run the builders before releasing, the invariants will not be maintained and you will release inconsistent state.\n\n"
+ +
+
+ "\tSummary: Offer to \"ensure local consistency\" before releasing.\n\n"
+ +
+
+ "KM (5/31/01 1:30:35 PM)\n"
+ + "\tSee also 1GEAG1A: ITPVCM:WINNT - Internal error comparing with a document\n"
+ + "\twhich failed with an error. Never got log from Tod though.";
+
+ assertTrue(description.length() == bug.getDescription().length());
+ assertEquals("Description", description, bug.getDescription());
+
+ // Comments:
+ Iterator<Comment> it = bug.getComments().iterator();
+ while (it.hasNext()) {
+ // COMMENT #1
+ Comment comment = it.next();
+ assertEquals("Author1", "James_Moody@ca.ibm.com", comment
+ .getAuthor());
+ assertEquals("Name1", "James Moody", comment.getAuthorName());
+ assertEquals(
+ "Text1",
+ "*** Bug 183 has been marked as a duplicate of this bug. ***",
+ comment.getText());
+
+ // COMMENT #2
+ comment = it.next();
+ assertEquals("Author2", "James_Moody@ca.ibm.com", comment
+ .getAuthor());
+ assertEquals("Name2", "James Moody", comment.getAuthorName());
+ assertEquals("Text2",
+ "Implemented 'auto refresh' option. Default value is off.",
+ comment.getText());
+
+ // COMMENT 3
+ comment = it.next();
+ assertEquals("Author3", "dj_houghton@ca.ibm.com", comment
+ .getAuthor());
+ assertEquals("Name3", "DJ Houghton", comment.getAuthorName());
+ assertEquals("Text3", "PRODUCT VERSION:\n\t109\n\n", comment
+ .getText());
+
+ // COMMENT 4
+ comment = it.next();
+ assertEquals("Author4", "James_Moody@ca.ibm.com", comment
+ .getAuthor());
+ assertEquals("Name4", "James Moody", comment.getAuthorName());
+ assertEquals("Text4", "Fixed in v206", comment.getText());
+ }
+ }
+
+// private static void displayBug(BugReport bug) {
+// System.out.println("Bug " + bug.getId() + ": " + bug.getSummary());
+// System.out.println("Opened: " + bug.getCreated());
+// for (Iterator<Attribute> it = bug.getAttributes().iterator(); it.hasNext();) {
+// Attribute attribute = it.next();
+// String key = attribute.getName();
+// System.out.println(key + ": " + attribute.getValue()
+// + (attribute.isEditable() ? " [OK]" : " %%"));
+// }
+//
+// System.out.print("CC: ");
+// for (Iterator<String> it = bug.getCC().iterator(); it.hasNext();) {
+// String email = it.next();
+// System.out.print(email + " ");
+// }
+// System.out.println();
+//
+// System.out.println(bug.getDescription());
+// for (Iterator<Comment> it = bug.getComments().iterator(); it.hasNext();) {
+// Comment comment = it.next();
+// System.out.println(comment.getAuthorName() + " <"
+// + comment.getAuthor() + "> (" + comment.getCreated() + ")");
+// System.out.print(comment.getText());
+// System.out.println();
+// }
+// }
+//
+// private static void printComments(BugReport bug) {
+// for (Iterator<Comment> it = bug.getComments().iterator(); it.hasNext();) {
+// Comment comment = it.next();
+// System.out.println("Author: " + comment.getAuthor());
+// System.out.println("Name: " + comment.getAuthorName());
+// System.out.println("Date: " + comment.getCreated());
+// System.out.println("Bug ID: " + comment.getBug().getId());
+// System.out.println("Comment: " + comment.getText());
+// System.out.println();
+// }
+// }
+//
+// /** prints names of attributes */
+// private static void printAttributes(BugReport bug) {
+// System.out.println("ATTRIBUTE KEYS:");
+// for (Iterator<Attribute> it = bug.getAttributes().iterator(); it.hasNext();) {
+// Attribute att = it.next();
+// System.out.println(att.getName());
+// }
+// }
+} \ No newline at end of file
diff --git a/org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/test/BugzillaParserTestNoBug.java b/org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/test/BugzillaParserTestNoBug.java
new file mode 100644
index 000000000..d8e955d44
--- /dev/null
+++ b/org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/test/BugzillaParserTestNoBug.java
@@ -0,0 +1,46 @@
+/*******************************************************************************
+ * Copyright (c) 2003 University Of British Columbia and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Common Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/cpl-v10.html
+ *
+ * Contributors:
+ * University Of British Columbia - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.mylar.bugzilla.test;
+
+import java.io.File;
+import java.io.FileReader;
+import java.io.Reader;
+
+import junit.framework.TestCase;
+
+import org.eclipse.core.runtime.Path;
+import org.eclipse.mylar.bugzilla.core.BugReport;
+import org.eclipse.mylar.bugzilla.core.internal.BugParser;
+
+
+/**
+ * Tests for parsing Bugzilla reports
+ */
+public class BugzillaParserTestNoBug extends TestCase {
+
+ public BugzillaParserTestNoBug() {
+ super();
+ }
+
+ public BugzillaParserTestNoBug(String arg0) {
+ super(arg0);
+ }
+
+ public void testBugNotFound() throws Exception {
+
+ File f = FileTool.getFileInPlugin(BugzillaTestPlugin.getDefault(), new Path("TestPages/bug-not-found-eclipse.html"));
+
+ Reader in = new FileReader(f);
+
+ BugReport bug = BugParser.parseBug(in, 666, "<server>", false, null, null);
+ assertNull(bug);
+ }
+} \ No newline at end of file
diff --git a/org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/test/BugzillaProductParser1ProductHipikatTest.java b/org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/test/BugzillaProductParser1ProductHipikatTest.java
new file mode 100644
index 000000000..4258ff8f2
--- /dev/null
+++ b/org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/test/BugzillaProductParser1ProductHipikatTest.java
@@ -0,0 +1,68 @@
+/*******************************************************************************
+ * Copyright (c) 2003 University Of British Columbia and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Common Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/cpl-v10.html
+ *
+ * Contributors:
+ * University Of British Columbia - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.mylar.bugzilla.test;
+
+import java.io.File;
+import java.io.FileReader;
+import java.io.Reader;
+import java.util.ArrayList;
+import java.util.List;
+
+import junit.framework.TestCase;
+
+import org.eclipse.core.runtime.Path;
+import org.eclipse.mylar.bugzilla.core.internal.ProductParser;
+
+
+/**
+ * Tests for parsing Product Page for new Bugzilla reports
+ */
+public class BugzillaProductParser1ProductHipikatTest extends TestCase {
+
+ public BugzillaProductParser1ProductHipikatTest() {
+ super();
+ }
+
+ public BugzillaProductParser1ProductHipikatTest(String arg0) {
+ super(arg0);
+ }
+
+ public void testOneProduct() throws Exception {
+
+ // If only one product, should skip product page (nothing in product
+ // list
+ // and display the attributes for that product
+
+ File f = FileTool.getFileInPlugin(BugzillaTestPlugin.getDefault(), new Path("TestPages/product-page-1-product-hipikat.html"));
+
+ Reader in = new FileReader(f);
+
+ List<String> productList = new ArrayList<String>();
+ productList = new ProductParser(in).getProducts();
+// printList(productList);
+
+ assertNull("There were products parsed, and there shouldn't have been", productList);
+ }
+
+// private void printList(List<String> productList) {
+//
+// if(productList == null){
+// System.out.println("No products");
+// return;
+// }
+// Iterator<String> itr = productList.iterator();
+// System.out.println("Product List:");
+// if (!itr.hasNext())
+// System.out.println("No products");
+// while (itr.hasNext())
+// System.out.println(itr.next());
+// }
+} \ No newline at end of file
diff --git a/org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/test/BugzillaProductParserTest.java b/org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/test/BugzillaProductParserTest.java
new file mode 100644
index 000000000..f6ec72157
--- /dev/null
+++ b/org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/test/BugzillaProductParserTest.java
@@ -0,0 +1,80 @@
+/*******************************************************************************
+ * Copyright (c) 2003 University Of British Columbia and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Common Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/cpl-v10.html
+ *
+ * Contributors:
+ * University Of British Columbia - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.mylar.bugzilla.test;
+
+import java.io.File;
+import java.io.FileReader;
+import java.io.Reader;
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+
+import junit.framework.TestCase;
+
+import org.eclipse.core.runtime.Path;
+import org.eclipse.mylar.bugzilla.core.internal.ProductParser;
+
+
+/**
+ * Tests for parsing Product Page for new Bugzilla reports
+ */
+public class BugzillaProductParserTest extends TestCase {
+
+ public BugzillaProductParserTest() {
+ super();
+ }
+
+ public BugzillaProductParserTest(String arg0) {
+ super(arg0);
+ }
+
+ public void testFullReportBugNoBug() throws Exception {
+
+ File f = FileTool.getFileInPlugin(BugzillaTestPlugin.getDefault(), new Path("TestPages/product-page.html"));
+
+ Reader in = new FileReader(f);
+
+ List<String> productList = new ArrayList<String>();
+ productList = new ProductParser(in).getProducts();
+// printList(productList);
+
+ Iterator<String> itr = productList.iterator();
+
+ while (itr.hasNext()) {
+ assertEquals("AJDT", "AJDT", itr.next());
+ assertEquals("AspectJ", "AspectJ", itr.next());
+ assertEquals("CDT", "CDT", itr.next());
+ assertEquals("CME", "CME", itr.next());
+ assertEquals("ECESIS", "ECESIS", itr.next());
+ assertEquals("EMF", "EMF", itr.next());
+ assertEquals("Equinox", "Equinox", itr.next());
+ assertEquals("GEF", "GEF", itr.next());
+ assertEquals("GMT", "GMT", itr.next());
+ assertEquals("Hyades", "Hyades", itr.next());
+ assertEquals("JDT", "JDT", itr.next());
+ assertEquals("PDE", "PDE", itr.next());
+ assertEquals("Platform", "Platform", itr.next());
+ assertEquals("Stellation", "Stellation", itr.next());
+ assertEquals("UML2", "UML2", itr.next());
+ assertEquals("VE", "VE", itr.next());
+ assertEquals("WSVT", "WSVT", itr.next());
+ assertEquals("XSD", "XSD", itr.next());
+ }
+ }
+
+// private void printList(List<String> productList) {
+//
+// Iterator<String> itr = productList.iterator();
+// System.out.println("Product List:");
+// while (itr.hasNext())
+// System.out.println(itr.next());
+// }
+} \ No newline at end of file
diff --git a/org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/test/BugzillaTestPlugin.java b/org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/test/BugzillaTestPlugin.java
new file mode 100644
index 000000000..8fac0a765
--- /dev/null
+++ b/org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/test/BugzillaTestPlugin.java
@@ -0,0 +1,86 @@
+package org.eclipse.mylar.bugzilla.test;
+
+import org.eclipse.ui.plugin.*;
+import org.eclipse.jface.resource.ImageDescriptor;
+import org.osgi.framework.BundleContext;
+import java.util.*;
+
+/**
+ * The main plugin class to be used in the desktop.
+ */
+public class BugzillaTestPlugin extends AbstractUIPlugin {
+ //The shared instance.
+ private static BugzillaTestPlugin plugin;
+ //Resource bundle.
+ private ResourceBundle resourceBundle;
+
+ /**
+ * The constructor.
+ */
+ public BugzillaTestPlugin() {
+ super();
+ plugin = this;
+ }
+
+ /**
+ * This method is called upon plug-in activation
+ */
+ @Override
+ public void start(BundleContext context) throws Exception {
+ super.start(context);
+ }
+
+ /**
+ * This method is called when the plug-in is stopped
+ */
+ @Override
+ public void stop(BundleContext context) throws Exception {
+ super.stop(context);
+ plugin = null;
+ resourceBundle = null;
+ }
+
+ /**
+ * Returns the shared instance.
+ */
+ public static BugzillaTestPlugin getDefault() {
+ return plugin;
+ }
+
+ /**
+ * Returns the string from the plugin's resource bundle,
+ * or 'key' if not found.
+ */
+ public static String getResourceString(String key) {
+ ResourceBundle bundle = BugzillaTestPlugin.getDefault().getResourceBundle();
+ try {
+ return (bundle != null) ? bundle.getString(key) : key;
+ } catch (MissingResourceException e) {
+ return key;
+ }
+ }
+
+ /**
+ * Returns the plugin's resource bundle,
+ */
+ public ResourceBundle getResourceBundle() {
+ try {
+ if (resourceBundle == null)
+ resourceBundle = ResourceBundle.getBundle("org.eclipse.mylar.bugzilla.tests.TestsPluginResources");
+ } catch (MissingResourceException x) {
+ resourceBundle = null;
+ }
+ return resourceBundle;
+ }
+
+ /**
+ * Returns an image descriptor for the image file at the given
+ * plug-in relative path.
+ *
+ * @param path the path
+ * @return the image descriptor
+ */
+ public static ImageDescriptor getImageDescriptor(String path) {
+ return AbstractUIPlugin.imageDescriptorFromPlugin("org.eclipse.mylar.bugzilla.tests", path);
+ }
+}
diff --git a/org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/test/FileTool.java b/org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/test/FileTool.java
new file mode 100644
index 000000000..2f8c66c56
--- /dev/null
+++ b/org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/test/FileTool.java
@@ -0,0 +1,256 @@
+/*******************************************************************************
+ * Copyright (c) 2000, 2005 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.mylar.bugzilla.test;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
+import java.io.FileReader;
+import java.io.FileWriter;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.io.Reader;
+import java.io.Writer;
+import java.net.URL;
+import java.util.Enumeration;
+import java.util.zip.ZipEntry;
+import java.util.zip.ZipFile;
+
+import org.eclipse.core.runtime.IPath;
+import org.eclipse.core.runtime.Platform;
+import org.eclipse.core.runtime.Plugin;
+
+
+public class FileTool {
+
+ private final static int MAX_RETRY= 5;
+
+ /**
+ * A buffer.
+ */
+ private static byte[] buffer = new byte[8192];
+
+ /**
+ * Unzips the given zip file to the given destination directory
+ * extracting only those entries the pass through the given
+ * filter.
+ *
+ * @param zipFile the zip file to unzip
+ * @param dstDir the destination directory
+ * @throws IOException in case of problem
+ */
+ public static void unzip(ZipFile zipFile, File dstDir) throws IOException {
+ unzip(zipFile, dstDir, dstDir, 0);
+ }
+
+ private static void unzip(ZipFile zipFile, File rootDstDir, File dstDir, int depth) throws IOException {
+
+ Enumeration<? extends ZipEntry> entries = zipFile.entries();
+
+ try {
+ while(entries.hasMoreElements()){
+ ZipEntry entry = entries.nextElement();
+ if(entry.isDirectory()){
+ continue;
+ }
+ String entryName = entry.getName();
+ File file = new File(dstDir, changeSeparator(entryName, '/', File.separatorChar));
+ file.getParentFile().mkdirs();
+ InputStream src = null;
+ OutputStream dst = null;
+ try {
+ src = zipFile.getInputStream(entry);
+ dst = new FileOutputStream(file);
+ transferData(src, dst);
+ } finally {
+ if(dst != null){
+ try {
+ dst.close();
+ } catch(IOException e){
+ // don't worry in the finally
+ }
+ }
+ if(src != null){
+ try {
+ src.close();
+ } catch(IOException e){
+ // don't worry in the finally
+ }
+ }
+ }
+ }
+ } finally {
+ try {
+ zipFile.close();
+ } catch(IOException e){
+ // don't worry in the finally
+ }
+ }
+ }
+
+ /**
+ * Returns the given file path with its separator
+ * character changed from the given old separator to the
+ * given new separator.
+ *
+ * @param path a file path
+ * @param oldSeparator a path separator character
+ * @param newSeparator a path separator character
+ * @return the file path with its separator character
+ * changed from the given old separator to the given new
+ * separator
+ */
+ public static String changeSeparator(String path, char oldSeparator, char newSeparator){
+ return path.replace(oldSeparator, newSeparator);
+ }
+
+ /**
+ * Copies all bytes in the given source file to
+ * the given destination file.
+ *
+ * @param source the given source file
+ * @param destination the given destination file
+ * @throws IOException in case of error
+ */
+ public static void transferData(File source, File destination) throws IOException {
+ destination.getParentFile().mkdirs();
+ InputStream is = null;
+ OutputStream os = null;
+ try {
+ is = new FileInputStream(source);
+ os = new FileOutputStream(destination);
+ transferData(is, os);
+ } finally {
+ if(os != null){
+ try {
+ os.close();
+ } catch(IOException e){
+ // don't worry in the finally
+ }
+ }
+ if(is != null){
+ try {
+ is.close();
+ } catch(IOException e){
+ // don't worry in the finally
+ }
+ }
+ }
+ }
+
+ /**
+ * Copies all bytes in the given source stream to
+ * the given destination stream. Neither streams
+ * are closed.
+ *
+ * @param source the given source stream
+ * @param destination the given destination stream
+ * @throws IOException in case of error
+ */
+ public static void transferData(InputStream source, OutputStream destination) throws IOException {
+ int bytesRead = 0;
+ while(bytesRead != -1){
+ bytesRead = source.read(buffer, 0, buffer.length);
+ if(bytesRead != -1){
+ destination.write(buffer, 0, bytesRead);
+ }
+ }
+ }
+
+ /**
+ * Copies the given source file to the given destination file.
+ *
+ * @param src the given source file
+ * @param dst the given destination file
+ * @throws IOException in case of error
+ */
+ public static void copy(File src, File dst) throws IOException {
+ if(src.isDirectory()){
+ String[] srcChildren = src.list();
+ for(int i = 0; i < srcChildren.length; ++i){
+ File srcChild= new File(src, srcChildren[i]);
+ File dstChild= new File(dst, srcChildren[i]);
+ copy(srcChild, dstChild);
+ }
+ } else
+ transferData(src, dst);
+ }
+
+ public static File getFileInPlugin(Plugin plugin, IPath path) {
+ try {
+ URL installURL= plugin.getBundle().getEntry(path.toString());
+ URL localURL= Platform.asLocalURL(installURL);
+ return new File(localURL.getFile());
+ } catch (IOException e) {
+ return null;
+ }
+ }
+
+ public static File createTempFileInPlugin(Plugin plugin, IPath path) {
+ IPath stateLocation= plugin.getStateLocation();
+ stateLocation= stateLocation.append(path);
+ return stateLocation.toFile();
+ }
+
+ public static StringBuffer read(String fileName) throws IOException {
+ return read(new FileReader(fileName));
+ }
+
+ public static StringBuffer read(Reader reader) throws IOException {
+ StringBuffer s= new StringBuffer();
+ try {
+ char[] charBuffer= new char[8196];
+ int chars= reader.read(charBuffer);
+ while (chars != -1) {
+ s.append(charBuffer, 0, chars);
+ chars= reader.read(charBuffer);
+ }
+ } finally {
+ try {
+ reader.close();
+ } catch (IOException e) {
+ // don't worry in the finally
+ }
+ }
+ return s;
+ }
+
+ public static void write(String fileName, StringBuffer content) throws IOException {
+ Writer writer= new FileWriter(fileName);
+ try {
+ writer.write(content.toString());
+ } finally {
+ try {
+ writer.close();
+ } catch (IOException e) {
+ // don't worry in the finally
+ }
+ }
+ }
+
+ public static void delete(File file) {
+ if (file.exists()) {
+ for (int i= 0; i < MAX_RETRY; i++) {
+ if (file.delete())
+ i= MAX_RETRY;
+ else {
+ try {
+ Thread.sleep(1000); // sleep a second
+ } catch (InterruptedException e) {
+ // don't care if the sleep is interrupted
+ }
+ }
+ }
+ }
+ }
+}

Back to the top