xpcgi-cvs-reports Mailing List for XPCGI
Status: Beta
Brought to you by:
joiellis
You can subscribe to this list here.
| 2000 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
(2) |
Oct
(26) |
Nov
(8) |
Dec
|
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2001 |
Jan
|
Feb
|
Mar
(9) |
Apr
(4) |
May
(19) |
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(12) |
Nov
(22) |
Dec
|
|
From: Joi E. <joi...@us...> - 2001-11-13 21:05:06
|
Update of /cvsroot/xpcgi/XP
In directory usw-pr-cvs1:/tmp/cvs-serv27933
Modified Files:
project.pl
Log Message:
Repaired merge conflict.
Index: project.pl
===================================================================
RCS file: /cvsroot/xpcgi/XP/project.pl,v
retrieving revision 1.36
retrieving revision 1.37
diff -C2 -r1.36 -r1.37
*** project.pl 2001/11/12 04:48:07 1.36
--- project.pl 2001/11/13 21:05:04 1.37
***************
*** 19,22 ****
--- 19,24 ----
# ('$Id$' =~ /Id\:\s+(\S+),v\s+(\d+\.\d+) (\d+\/\d+\/\d+) /);
+ $ENV{"BASH_ENV"}="";
+ $ENV{"PATH"}="/bin;/usr/bin;/usr/local/bin";
require "./Debug.pl";
require "./local.pl";
|
|
From: Joi E. <joi...@us...> - 2001-11-12 17:43:49
|
Update of /cvsroot/xpcgi/XP
In directory usw-pr-cvs1:/tmp/cvs-serv18144
Modified Files:
XPCGI.jpx
Added Files:
tests.sh
Log Message:
Added shell command to launch unit tests.
--- NEW FILE ---
/usr/local/JBuilder6/jdk1.3.1/bin/java -classpath "/usr/local/home/joi/jbproject/XPCGI/classes:/usr/local/home/joi/jbproject/HttpUnitSF/classes:/usr/local/home/joi/jbproject/HttpUnitSF/lib/Tidy.jar:/usr/local/JBuilder6/lib/xerces.jar:/usr/local/JBuilder6/lib/junit.jar:/usr/local/JBuilder6/lib/unittest.jar:/usr/local/JBuilder6/jdk1.3.1/jre/lib/i18n.jar:/usr/local/JBuilder6/jdk1.3.1/jre/lib/rt.jar:/usr/local/JBuilder6/jdk1.3.1/lib/dt.jar:/usr/local/JBuilder6/jdk1.3.1/lib/tools.jar:/usr/local/JBuilder6/jdk1.3.1/jre/lib/sunrsasign.jar" junit.textui.TestRunner com.visi.gyles19.xpcgi.AllTests
Index: XPCGI.jpx
===================================================================
RCS file: /cvsroot/xpcgi/XP/XPCGI.jpx,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -r1.1 -r1.2
*** XPCGI.jpx 2001/11/12 05:01:58 1.1
--- XPCGI.jpx 2001/11/12 17:43:46 1.2
***************
*** 85,88 ****
--- 85,89 ----
<file path="task.cgi"/>
<file path="test_project.pl"/>
+ <file path="tests.sh"/>
<file path="test/com/visi/gyles19/xpcgi/ValidatingTest.java"/>
<file path="xpcgi.filelist"/>
|
|
From: Joi E. <joi...@us...> - 2001-11-12 05:02:00
|
Update of /cvsroot/xpcgi/XP In directory usw-pr-cvs1:/tmp/cvs-serv7845 Added Files: XPCGI.jpx Log Message: --- NEW FILE --- <?xml version="1.0" encoding="UTF-8"?> <!--JBuilder XML Project--> <project> <property category="UnitTestFixtures" name="AvailableFixture.0" value="com.visi.gyles19.xpcgi.MyActiveTestSuite"/> <property category="UnitTestFixtures" name="AvailableFixture.1" value="com.visi.gyls19.xpcgi.MyFixture"/> <property category="UnitTestFixtures" name="UsedFixture.0" value="com.visi.gyles19.xpcgi.MyActiveTestSuite"/> <property category="UnitTestFixtures" name="UsedFixture.1" value="com.visi.gyls19.xpcgi.MyFixture"/> <property category="idl" name="ProcessIDL" value="false"/> <property category="runtime" name="ConfigurationCount" value="2"/> <property category="runtime.0" name="RunnableType" value="com.borland.jbuilder.runtime.TestRunner"/> <property category="runtime.0" name="appserver.ejbJarsSaved" value="1"/> <property category="runtime.0" name="appserver.parameters" value="-jts -jns -jss -jdb"/> <property category="runtime.0" name="appserver.servername" value="ejbcontainer"/> <property category="runtime.0" name="appserver.vmparameters" value="-Dvbroker.agent.port=14000 -Djava.library.path=/BorlandEnterpriseServer/lib:/BorlandEnterpriseServer/bin"/> <property category="runtime.0" name="jsprunner.launchuri" value="/"/> <property category="runtime.0" name="test.class" value="com.visi.gyles19.xpcgi.AllTests"/> <property category="runtime.0" name="test.harness" value="junit.textui.TestRunner"/> <property category="runtime.1" name="ConfigurationName" value="xpcgi.AllTests"/> <property category="runtime.1" name="RunnableType" value="com.borland.jbuilder.runtime.TestRunner"/> <property category="runtime.1" name="appserver.ejbJarsSaved" value="1"/> <property category="runtime.1" name="appserver.parameters" value="-jts -jns -jss -jdb"/> <property category="runtime.1" name="appserver.servername" value="ejbcontainer"/> <property category="runtime.1" name="appserver.vmparameters" value="-Dvbroker.agent.port=14000 -Djava.library.path=/BorlandEnterpriseServer/lib:/BorlandEnterpriseServer/bin"/> <property category="runtime.1" name="jsprunner.launchuri" value="/"/> <property category="runtime.1" name="test.class" value="com.visi.gyles19.xpcgi.AllTests"/> <property category="runtime.1" name="test.harness" value="com.borland.jbuilder.unittest.JBTestRunner"/> <property category="runtime.2" name="ConfigurationName" value="xpcgi.AllTests Text"/> <property category="runtime.2" name="RunnableType" value="com.borland.jbuilder.runtime.TestRunner"/> <property category="runtime.2" name="appserver.ejbJarsSaved" value="1"/> <property category="runtime.2" name="appserver.parameters" value="-jts -jns -jss -jdb"/> <property category="runtime.2" name="appserver.servername" value="ejbcontainer"/> <property category="runtime.2" name="appserver.vmparameters" value="-Dvbroker.agent.port=14000 -Djava.library.path=/BorlandEnterpriseServer/lib:/BorlandEnterpriseServer/bin"/> <property category="runtime.2" name="jsprunner.launchuri" value="/"/> <property category="runtime.2" name="test.class" value="com.visi.gyles19.xpcgi.AllTests"/> <property category="runtime.2" name="test.harness" value="junit.textui.TestRunner"/> <property category="sys" name="AuthorLabel" value="@author"/> <property category="sys" name="BackupPath" value="bak"/> <property category="sys" name="CheckStable" value="1"/> <property category="sys" name="Company" value=""/> <property category="sys" name="CompanyLabel" value="Company:"/> <property category="sys" name="Copyright" value="Copyright (c) 2001"/> <property category="sys" name="CopyrightLabel" value="Copyright:"/> <property category="sys" name="DefaultPath" value="src"/> <property category="sys" name="Description" value=""/> <property category="sys" name="DescriptionLabel" value="Description:"/> <property category="sys" name="DocPath" value=""/> <property category="sys" name="ExcludeClassEnabled" value="0"/> <property category="sys" name="IncludeTestPath" value="1"/> <property category="sys" name="JDK" value="java 1.3.1-b24"/> <property category="sys" name="LastTag" value="0"/> <property category="sys" name="Libraries" value="HttpUnit;JUnit"/> <property category="sys" name="MakeStable" value="0"/> <property category="sys" name="OutPath" value="classes"/> <property category="sys" name="SourcePath" value="src;test"/> <property category="sys" name="TestPath" value="test"/> <property category="sys" name="Title" value=""/> <property category="sys" name="TitleLabel" value="Title:"/> <property category="sys" name="Version" value="1.0"/> <property category="sys" name="VersionLabel" value="@version"/> <property category="sys" name="WorkingDirectory" value="."/> <property category="team" name="ignorePath.0" value="bak"/> <property category="team" name="ignorePath.1" value="spike"/> <property category="team" name="ignorePath.2" value="local.pl"/> <property category="team" name="ignorePath.3" value="classes"/> <file path="add_project"/> <file path="spike/bag.cgi"/> <file path="cgi-lib.pl"/> <file path="Credits.pl"/> <file path="cvs2cl.users"/> <file path="Debug.pl"/> <file path="delete_bag"/> <file path="delete_project"/> <file path="export"/> <file path="gpl.inc"/> <file path="gpl.txt"/> <file path="import"/> <file path="local.pl"/> <file path="local.pl.sample"/> <file path="Makefile"/> <file path="project.cgi"/> <file path="project.pl"/> <file path="README"/> <file path="story.cgi"/> <file path="story.pl"/> <file path="task.cgi"/> <file path="test_project.pl"/> <file path="test/com/visi/gyles19/xpcgi/ValidatingTest.java"/> <file path="xpcgi.filelist"/> <file path="XPCGI.html"/> </project> |
|
From: Joi E. <joi...@us...> - 2001-11-12 05:01:21
|
Update of /cvsroot/xpcgi/XPwww/XP In directory usw-pr-cvs1:/tmp/cvs-serv7644/XP Modified Files: XP-help.html Log Message: Validated some HTML. Index: XP-help.html =================================================================== RCS file: /cvsroot/xpcgi/XPwww/XP/XP-help.html,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -r1.3 -r1.4 *** XP-help.html 2001/05/07 19:31:23 1.3 --- XP-help.html 2001/11/12 05:01:18 1.4 *************** *** 6,23 **** <H1> ! <img src="logo_88_44aa.gif" align="right" height="44" width="88" alt=""> XP Help</H1> <DL> ! <DT><a name="assignedto">Assigned To</a> <DD>The email address for the Engineer who has accepted responsiblity for completing this task. ! <DT><a name="close_date">Close Date<a> <DD>The date Engineering finished the story. <P> <DT><a name="customer_priority">Customer Priority</a> <DD> <DL> <DT>High <DD>This feature is an absolute must-have. <DT>Medium <DD>This feature is important. <DT>Low <DD>This feature would be nice to have. </DL> <P> ! <DT><a name="description">Description</a> <DD>The text of the <a href="#story">story</a> or <a href="#task">task</a>. This should be rather short, no more than a paragraph. If you need more space, consider breaking it into multiple smaller items. <P> <DT><a name="engineering_priority">Engineering Priority</a> <DD> <DL> <DT>High <DD> Many other tasks depend upon this task's completion. <DT>Medium <DD> A few tasks depend upon this task's completion. <DT>Low <DD> No other tasks depend upon this task's completion. </DL> <P> <DT><a name="ied">Ideal Engineering Days</a> <DD>The measure of an estimation tactic where the engineer asks himself, "How long would this take without distractions and disasters?" This number is always some fraction of calendar time. <P>A Story has an IED value which represents an estimate for the entire story. Also displayed are values for the IED estimates assigned to that Story's tasks, and how many of those IED represented completed Tasks. This provides an idea of how close to completion a story should be. Tasks which are New or Accepted do not have IED estimates assigned to them, so their values are not reflected in the summary.<P> <DT><a name="notes">Engineering Notes</a> <DD>Comments and questions the Engineering staff has about this story. <P> <DT><a name="open_date">Open Date</a> <DD>The date the story was first created <P> ! <DT><a name="regexp">Regular Expression</a> <DD>This system supports searching using Perl5 Regular Expressions. All results are case insensitive. Here is a summary of the format. <P> <DL> <DT>Simple word search <DD> keyword <DT>OR search <DD><strong>(</strong>keyword1<strong>|</strong>keyword2<strong>)</strong> <DT>AND search (keyword1 followed by keyword2) <DD> keyword1<strong>.+</strong>keyword2 </DL> <DT><a name="risk">Risk</a> <DD> <DL> <DT>High <DD>Engineering has no idea how to implement this. <DT>Medium <DD>Engineering think it knows how to implement this. <DT>Low <DD>Engineering knows exactly how to implement this. </DL> <P> <DT><a name="see_also">See Also</a> <DD>A list of story numbers to which interested customers and engineers should refer. Usually blank. <P> --- 6,24 ---- <H1> ! <img src="../logo_88_44aa.gif" align="right" height="44" width="88" alt=""> XP Help</H1> <DL> ! <DT><a name="assignedto">Assigned To</a> <DD>The email address for the Engineer who has accepted responsiblity for completing this task. <P> ! <DT><a name="bags">Bags</a> <DD>External files attached to a project, story, or task card.<P> ! <DT><a name="close_date">Close Date</a> <DD>The date Engineering finished the story. <P> <DT><a name="customer_priority">Customer Priority</a> <DD> <DL> <DT>High <DD>This feature is an absolute must-have. <DT>Medium <DD>This feature is important. <DT>Low <DD>This feature would be nice to have. </DL> <P> ! <DT><a name="description">Description</a> <DD>The text of the <a href="#story">story</a> or <a href="#task">task</a>. This should be rather short, no more than a paragraph. If you need more space, consider breaking it into multiple smaller items. <P> <DT><a name="engineering_priority">Engineering Priority</a> <DD> <DL> <DT>High <DD> Many other tasks depend upon this task's completion. <DT>Medium <DD> A few tasks depend upon this task's completion. <DT>Low <DD> No other tasks depend upon this task's completion. </DL> <P> <DT><a name="ied">Ideal Engineering Days</a> <DD>The measure of an estimation tactic where the engineer asks himself, "How long would this take without distractions and disasters?" This number is always some fraction of calendar time. <P>A Story has an IED value which represents an estimate for the entire story. Also displayed are values for the IED estimates assigned to that Story's tasks, and how many of those IED represented completed Tasks. This provides an idea of how close to completion a story should be. Tasks which are New or Accepted do not have IED estimates assigned to them, so their values are not reflected in the summary.<P> <DT><a name="notes">Engineering Notes</a> <DD>Comments and questions the Engineering staff has about this story. <P> <DT><a name="open_date">Open Date</a> <DD>The date the story was first created <P> ! <DT><a name="regexp">Regular Expression</a> <DD>This system supports searching using Perl5 Regular Expressions. All results are case insensitive. Here is a summary of the format. <P> <DL> <DT>Simple word search <DD> keyword <DT>OR search <DD><strong>(</strong>keyword1<strong>|</strong>keyword2<strong>)</strong> <DT>AND search (keyword1 followed by keyword2) <DD> keyword1<strong>.+</strong>keyword2 </DL> <DT><a name="risk">Risk</a> <DD> <DL> <DT>High <DD>Engineering has no idea how to implement this. <DT>Medium <DD>Engineering think it knows how to implement this. <DT>Low <DD>Engineering knows exactly how to implement this. </DL> <P> <DT><a name="see_also">See Also</a> <DD>A list of story numbers to which interested customers and engineers should refer. Usually blank. <P> *************** *** 26,35 **** <DT><a name="story">Story</a> <DD>One thing the customer wants the system to do. Stories should be estimable at between one to five ideal programming weeks. Stories should be testable. <P> <DT><a name="storynumber">Story Number</a> <DD>A number used to uniquely track stories. This is assigned by XPCGI when the card is created and may not be changed.<P> ! <DT><a name="storytitle">Story Title</a> <DD>A sentence 58 characters or less in length describing this story. <P> <DT><a name="story_rank">Story Rank</a> <DD>The order in which the customer(s) wish the stories to be implemented. <P> <DT><a name="submittedby">Submitted By</a> <DD>An email address where the story's author may be contacted. <P> ! <DT><a name="task">Task</a> <DD>A Story is broken into a number of individual tasks. <P> <DT><a name="tasknumber">Task Number</a> <DD>Each task is assigned a unique number in the task database. This is assigned by XPCGI when the card is created and may not be changed.<P> ! <DT><a name="tasktitle">Task Title</a> <DD>A sentence 58 characters or less in length describing this task. <P> <DT><a name="type">Type</a> <DD>A field to categorize the story as one of: <OL> <LI>A request to add a brand new feature <LI>A request to enhance an existing feature <LI>A request to fix a bug in an existing feature </OL> <P> <DT><a name="velocity">Velocity</a> <DD>A ratio specifying Ideal Engineering Day/Calendar Day. IE, a common ratio is 0.5 IED per calendar day. 0.5 is used by default. This number is used when computing the timeline, and is stored on the project card. You specify this value.<P> --- 27,36 ---- <DT><a name="story">Story</a> <DD>One thing the customer wants the system to do. Stories should be estimable at between one to five ideal programming weeks. Stories should be testable. <P> <DT><a name="storynumber">Story Number</a> <DD>A number used to uniquely track stories. This is assigned by XPCGI when the card is created and may not be changed.<P> ! <DT><a name="storytitle">Story Title</a> <DD>A sentence 58 characters or less in length describing this story. <P> <DT><a name="story_rank">Story Rank</a> <DD>The order in which the customer(s) wish the stories to be implemented. <P> <DT><a name="submittedby">Submitted By</a> <DD>An email address where the story's author may be contacted. <P> ! <DT><a name="task">Task</a> <DD>A Story is broken into a number of individual tasks. <P> <DT><a name="tasknumber">Task Number</a> <DD>Each task is assigned a unique number in the task database. This is assigned by XPCGI when the card is created and may not be changed.<P> ! <DT><a name="tasktitle">Task Title</a> <DD>A sentence 58 characters or less in length describing this task. <P> <DT><a name="type">Type</a> <DD>A field to categorize the story as one of: <OL> <LI>A request to add a brand new feature <LI>A request to enhance an existing feature <LI>A request to fix a bug in an existing feature </OL> <P> <DT><a name="velocity">Velocity</a> <DD>A ratio specifying Ideal Engineering Day/Calendar Day. IE, a common ratio is 0.5 IED per calendar day. 0.5 is used by default. This number is used when computing the timeline, and is stored on the project card. You specify this value.<P> |
|
From: Joi E. <joi...@us...> - 2001-11-12 05:01:21
|
Update of /cvsroot/xpcgi/XPwww
In directory usw-pr-cvs1:/tmp/cvs-serv7644
Modified Files:
WhatIsXP.shtml footer.inc icons.inc
Added Files:
valid-html401.gif
Log Message:
Validated some HTML.
--- NEW FILE ---
GIF89aX
sÝz«q½OÎ\¯î°z(õk
â{¡b0ø*+yÐC%êð:°?þÒ¼åÑ«`
E1pi¹à°&ìoC¸®0Áxa kÐË\`²¼øHFRcÃ#¥ð
XàǨ*ðH&]âÓ4ñ"âÙ jØÂ
}À,f3»Y(xö³
íg3ËÙÎrVbèÂû
Index: WhatIsXP.shtml
===================================================================
RCS file: /cvsroot/xpcgi/XPwww/WhatIsXP.shtml,v
retrieving revision 1.6
retrieving revision 1.7
diff -C2 -r1.6 -r1.7
*** WhatIsXP.shtml 2001/03/30 00:53:18 1.6
--- WhatIsXP.shtml 2001/11/12 05:01:18 1.7
***************
*** 1,4 ****
--- 1,7 ----
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
+ "http://www.w3.org/TR/1999/REC-html401-19991224/loose.dtd">
<HTML>
<HEAD>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<TITLE>XPCGI What Is XP?</TITLE>
</HEAD>
***************
*** 15,19 ****
<HR>
<blockquote>
! XP is a light-weight methodology for small-to-medium-sized teams
developing software in the face of vague or rapidly changing requirements.
<cite><a href="http://www.amazon.com/exec/obidos/ASIN/0201616416/armatiesA/102-4930864-8113731">Extreme Programming Explained</a>, page xiii, by Kent Beck, Addison Wesley, 2000</cite>
--- 18,22 ----
<HR>
<blockquote>
! XP is a light-weight methodology for small-to-medium-sized teams
developing software in the face of vague or rapidly changing requirements.
<cite><a href="http://www.amazon.com/exec/obidos/ASIN/0201616416/armatiesA/102-4930864-8113731">Extreme Programming Explained</a>, page xiii, by Kent Beck, Addison Wesley, 2000</cite>
***************
*** 27,34 ****
index cards to record <a href="http://extremeprogramming.org/rules/userstories.html"><em>stories</em></a> (user requirements) and "tasks" (programmer
assignments.) Using physical index cards has many advantages, but there are
! some disadvantages as well.
<H2>Disadvantages of Index Cards</H2>
! <P>During Release Planning, the cards are sorted several different ways, by
both the project customer and by the developers. If there are large numbers
of cards, performing this sort manually can take considerable effort. XPCGI
--- 30,37 ----
index cards to record <a href="http://extremeprogramming.org/rules/userstories.html"><em>stories</em></a> (user requirements) and "tasks" (programmer
assignments.) Using physical index cards has many advantages, but there are
! some disadvantages as well.
<H2>Disadvantages of Index Cards</H2>
! <P>During Release Planning, the cards are sorted several different ways, by
both the project customer and by the developers. If there are large numbers
of cards, performing this sort manually can take considerable effort. XPCGI
***************
*** 36,46 ****
eliminating the need to manually sort index cards and making it simple to
physically reorganize the cards in the desired order.
!
! <P>Another problem with hand-written index cards is that some managers
! simply don't like them, especially when you're practicing guerrilla-XP.
! If your handwriting is as bad as mine, this is even more of a problem.
Many managers expect project documentation be presented to them in a
formal, professional-looking document and simply dismiss a set of index
! cards without reading them.
The really particular sort can be presented with the printed report instead
of the cards, concealing the physical nature of the index cards altogether.
--- 39,49 ----
eliminating the need to manually sort index cards and making it simple to
physically reorganize the cards in the desired order.
!
! <P>Another problem with hand-written index cards is that some managers
! simply don't like them, especially when you're practicing guerrilla-XP.
! If your handwriting is as bad as mine, this is even more of a problem.
Many managers expect project documentation be presented to them in a
formal, professional-looking document and simply dismiss a set of index
! cards without reading them.
The really particular sort can be presented with the printed report instead
of the cards, concealing the physical nature of the index cards altogether.
***************
*** 49,55 ****
<P>Card loss is another concern. The janitorial services in my building
! are quite aggressive about picking up stray papers near the wastebaskets.
! Cards dropped nearby are likely to be irretrievably lost. Having cards in an
! online form allows them to be quickly reprinted if some disappear.
<H2>Why use XPCGI?</H2>
--- 52,58 ----
<P>Card loss is another concern. The janitorial services in my building
! are quite aggressive about picking up stray papers near the wastebaskets.
! Cards dropped nearby are likely to be irretrievably lost. Having cards in an
! online form allows them to be quickly reprinted if some disappear.
<H2>Why use XPCGI?</H2>
***************
*** 59,63 ****
cards, as well as providing sorted reports and listings. This naturally
eliminates the basic problem of chicken-scratch handwriting.
!
<HR>
<H2><a name="links">More XP Links</a></H2>
--- 62,66 ----
cards, as well as providing sorted reports and listings. This naturally
eliminates the basic problem of chicken-scratch handwriting.
!
<HR>
<H2><a name="links">More XP Links</a></H2>
***************
*** 72,76 ****
<td>
<table border="0" cellpadding="0">
! <tr><td>
<a href="http://www.c2.com/cgi/wiki?PlanningGame">Wiki PlanningGame</a><br>
<a href="http://www.c2.com/cgi/wiki?ExtremeProgrammingRoadmap">Wiki ExtremeProgrammingRoadmap</a><br>
--- 75,79 ----
<td>
<table border="0" cellpadding="0">
! <tr><td>
<a href="http://www.c2.com/cgi/wiki?PlanningGame">Wiki PlanningGame</a><br>
<a href="http://www.c2.com/cgi/wiki?ExtremeProgrammingRoadmap">Wiki ExtremeProgrammingRoadmap</a><br>
Index: footer.inc
===================================================================
RCS file: /cvsroot/xpcgi/XPwww/footer.inc,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -r1.3 -r1.4
*** footer.inc 2000/09/03 19:15:46 1.3
--- footer.inc 2001/11/12 05:01:18 1.4
***************
*** 6,14 ****
<FONT color="#ffffff">
<small>
! XPCGI is copyright ©2000 Joi Ellis<br>
XPCGI "Idea Man" logo courtesy <a href="http://www.FusionFly.com/">
<font color="white">Fusion^Fly</font></a><Br>
! All trademarks and copyrights on this page are properties of their
! respective owners.
</small>
</FONT>
--- 6,14 ----
<FONT color="#ffffff">
<small>
! XPCGI is copyright ©2000 Joi Ellis<br>
XPCGI "Idea Man" logo courtesy <a href="http://www.FusionFly.com/">
<font color="white">Fusion^Fly</font></a><Br>
! All trademarks and copyrights on this page are properties of their
! respective owners.
</small>
</FONT>
Index: icons.inc
===================================================================
RCS file: /cvsroot/xpcgi/XPwww/icons.inc,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -r1.1 -r1.2
*** icons.inc 2000/09/03 19:05:15 1.1
--- icons.inc 2001/11/12 05:01:18 1.2
***************
*** 1,2 ****
! <a href="http://sourceforge.net/projects/xpcgi"><img src="logo_88_44aa.gif" width="88" height="44" align="left" border="0" alt=""></a>
! <A href="http://sourceforge.net/"><IMG src="http://sourceforge.net/sflogo.php?group_id=10523&type=1" width="88" height="31" border="0" align="right" alt=""></A>
--- 1,4 ----
! <a href="http://sourceforge.net/projects/xpcgi">
! <img src="logo_88_44aa.gif" width="88" height="44" align="left" border="0" alt=""></a>
! <A href="http://sourceforge.net/">
! <IMG src="http://sourceforge.net/sflogo.php?group_id=10523&type=1" width="88" height="31" border="0" align="right" alt=""></A>
|
|
From: Joi E. <joi...@us...> - 2001-11-12 04:48:10
|
Update of /cvsroot/xpcgi/XP
In directory usw-pr-cvs1:/tmp/cvs-serv3500
Modified Files:
Credits.pl project.cgi project.pl story.cgi
Log Message:
Taint work, use strict work, and some unit tests written and applied to validate some of the html
produced by the cgi scripts.
Index: Credits.pl
===================================================================
RCS file: /cvsroot/xpcgi/XP/Credits.pl,v
retrieving revision 1.10
retrieving revision 1.11
diff -C2 -r1.10 -r1.11
*** Credits.pl 2001/05/07 22:11:53 1.10
--- Credits.pl 2001/11/12 04:48:07 1.11
***************
*** 1,15 ****
# XPCGI - A Task and Story card utility for use with Extreme Programming.
# Copyright (C) 2000 Joi Ellis
! #
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
! #
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
! #
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
--- 1,15 ----
# XPCGI - A Task and Story card utility for use with Extreme Programming.
# Copyright (C) 2000 Joi Ellis
! #
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
! #
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
! #
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
***************
*** 20,24 ****
# ('$Id$' =~ /Id\:\s+(\S+),v\s+(\d+\.\d+) (\d+\/\d+\/\d+) /);
! require "project.pl";
$HOMEPAGE="http://xpcgi.sourceforge.net/";
--- 20,24 ----
# ('$Id$' =~ /Id\:\s+(\S+),v\s+(\d+\.\d+) (\d+\/\d+\/\d+) /);
! require "./project.pl";
$HOMEPAGE="http://xpcgi.sourceforge.net/";
Index: project.cgi
===================================================================
RCS file: /cvsroot/xpcgi/XP/project.cgi,v
retrieving revision 1.19
retrieving revision 1.20
diff -C2 -r1.19 -r1.20
*** project.cgi 2001/10/31 05:40:37 1.19
--- project.cgi 2001/11/12 04:48:07 1.20
***************
*** 402,406 ****
<TR><TH ROWSPAN="2">Project</TH><TH ROWSPAN="2">Cards</TH>
<TH>Author</TH>
! </TH><TH>Open</TH><TH>Close</TH><TH>Status</TH><TH>Velocity</TH></TR>
<TR><TH COLSPAN="5">Description</TH></TR>
EOF
--- 402,406 ----
<TR><TH ROWSPAN="2">Project</TH><TH ROWSPAN="2">Cards</TH>
<TH>Author</TH>
! <TH>Open</TH><TH>Close</TH><TH>Status</TH><TH>Velocity</TH></TR>
<TR><TH COLSPAN="5">Description</TH></TR>
EOF
***************
*** 433,440 ****
print <<EOF;
<TR>
! <TD ROWSPAN="2"><a href="$script?ACTION=SHOW+PROJECT&PROJECT=$project&THISUSER=$thisuser$debugurl">$project</a></TD>
<TD ROWSPAN="2" ALIGN="center">
! <a href="$storyscript?ACTION=LIST+STORIES&PROJECT=$project&THISUSER=$thisuser$debugurl">Stories</a><BR>
! <a href="$taskscript?ACTION=LIST+TASKS&PROJECT=$project&THISUSER=$thisuser$debugurl">Tasks</a>
</TD>
<TD>$ownerurl</TD>
--- 433,440 ----
print <<EOF;
<TR>
! <TD ROWSPAN="2"><a href="$script?ACTION=SHOW+PROJECT&PROJECT=$project&THISUSER=$thisuser$debugurl">$project</a></TD>
<TD ROWSPAN="2" ALIGN="center">
! <a href="$storyscript?ACTION=LIST+STORIES&PROJECT=$project&THISUSER=$thisuser$debugurl">Stories</a><BR>
! <a href="$taskscript?ACTION=LIST+TASKS&PROJECT=$project&THISUSER=$thisuser$debugurl">Tasks</a>
</TD>
<TD>$ownerurl</TD>
***************
*** 622,627 ****
print "</TABLE>\n";
print <<EOF;
- <TABLE BORDER="0" CELLPADDING="3">
<FORM ACTION="$script" METHOD="POST">
EOF
print &ListButtons2();
--- 622,627 ----
print "</TABLE>\n";
print <<EOF;
<FORM ACTION="$script" METHOD="POST">
+ <TABLE BORDER="0" CELLPADDING="3">
EOF
print &ListButtons2();
Index: project.pl
===================================================================
RCS file: /cvsroot/xpcgi/XP/project.pl,v
retrieving revision 1.35
retrieving revision 1.36
diff -C2 -r1.35 -r1.36
*** project.pl 2001/10/31 22:21:20 1.35
--- project.pl 2001/11/12 04:48:07 1.36
***************
*** 19,24 ****
# ('$Id$' =~ /Id\:\s+(\S+),v\s+(\d+\.\d+) (\d+\/\d+\/\d+) /);
! require "Debug.pl";
! require "local.pl";
require Date::Parse;
require Date::Format;
--- 19,24 ----
# ('$Id$' =~ /Id\:\s+(\S+),v\s+(\d+\.\d+) (\d+\/\d+\/\d+) /);
! require "./Debug.pl";
! require "./local.pl";
require Date::Parse;
require Date::Format;
Index: story.cgi
===================================================================
RCS file: /cvsroot/xpcgi/XP/story.cgi,v
retrieving revision 1.47
retrieving revision 1.48
diff -C2 -r1.47 -r1.48
*** story.cgi 2001/10/31 15:39:16 1.47
--- story.cgi 2001/11/12 04:48:07 1.48
***************
*** 1,3 ****
! #! ./perl
# /usr/bin/perl
# XPCGI - A Task and Story card utility for use with Extreme Programming.
--- 1,3 ----
! #! ./perl -wT
# /usr/bin/perl
# XPCGI - A Task and Story card utility for use with Extreme Programming.
***************
*** 18,21 ****
--- 18,24 ----
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
# USA.
+
+ # use strict;
+
$|=1;
***************
*** 23,30 ****
('$Id$' =~ /Id\:\s+(\S+),v\s+(\d+\.\d+) (\d+\/\d+\/\d+) /);
! require "story.pl";
! require "Credits.pl";
! require "Debug.pl";
$debugurl = $debug ? "&DEBUG=1" : "";
$card_number = $type = $see_also = $open_date = $close_date = $priority =
--- 26,33 ----
('$Id$' =~ /Id\:\s+(\S+),v\s+(\d+\.\d+) (\d+\/\d+\/\d+) /);
! require "./story.pl";
! require "./Credits.pl";
! require "./Debug.pl";
$debugurl = $debug ? "&DEBUG=1" : "";
$card_number = $type = $see_also = $open_date = $close_date = $priority =
***************
*** 40,44 ****
($projectscript = $script) =~ s/story/project/;
! require "project.pl";
$datapath = &ComputeDataPath();
--- 43,47 ----
($projectscript = $script) =~ s/story/project/;
! require "./project.pl";
$datapath = &ComputeDataPath();
***************
*** 48,51 ****
--- 51,55 ----
use CGI;
+ use CGI::Carp qw(fatalsToBrowser);
$q = new CGI;
&CGI::ReadParse();
|
|
From: Joi E. <joi...@us...> - 2001-11-12 04:48:02
|
Update of /cvsroot/xpcgi/XP/test/com/visi/gyles19/xpcgi
In directory usw-pr-cvs1:/tmp/cvs-serv3434
Added Files:
ValidatingTest.java
Log Message:
Taint work, use strict work, and some unit tests written and applied to validate some of the html
produced by the cgi scripts.
--- NEW FILE ---
package com.visi.gyles19.xpcgi;
import junit.framework.Test;
import junit.framework.TestCase;
import junit.framework.TestSuite;
import com.meterware.httpunit.WebConversation;
import com.meterware.httpunit.WebRequest;
import com.meterware.httpunit.GetMethodWebRequest;
import com.meterware.httpunit.WebResponse;
import org.w3c.dom.Document;
import org.w3c.dom.NodeList;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import java.lang.StringBuffer;
import org.w3c.dom.CDATASection;
import org.w3c.dom.Text;
public class ValidatingTest extends TestCase {
public static String VALIDATOR =
"http://validator.gyles19.visi.com/cgi-bin/check?uri=";
public static String VALIDATOR2 = "";
// public static String VALIDATOR2 = ";ss=1"; // display source in result
// public static String VALIDATOR2 = ";sp=1"; // display parse tree in result
public static String VALIDMSG = "No errors found!";
public static String BADLOGIC = "Unexpected Logic";
public static String WARNINGS = "Warnings";
public static boolean DEBUG = false;
public static boolean VERBOSE = true;
public static boolean FAILWARNINGS = false;
public static String DOCTYPE =
"<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\"" +
" \"http://www.w3.org/TR/1999/REC-html401-19991224/loose.dtd\">";
public static boolean PROVIDEDOCTYPE = true; // if doctype warning happens
public static String OVERRIDEDOCTYPE = "HTML+4.01+Transitional";
public static String MISSINGDOCTYPE = "no document type declaration";
public static String VALIDATOR3 = "&doctype=" + OVERRIDEDOCTYPE;
WebConversation wc = new WebConversation();
String URL;
boolean expectBadLogic = false;
String match = null;
public ValidatingTest( String url, boolean expectBadLogic, String match ) {
super( "testURL" );
this.URL = url;
this.expectBadLogic = expectBadLogic;
this.match = match;
}
// public TestSuite suite() {
// TestSuite suite = new TestSuite();
// suite.addTest( "testURL" );
// return suite;
// }
public void testURL() throws Exception {
multiTestPage(URL, expectBadLogic, match );
}
void multiTestPage( String URL ) throws Exception {
multiTestPage( URL, false, null );
}
void multiTestPage( String URL, boolean expectBadLogic ) throws Exception {
multiTestPage( URL, expectBadLogic, null );
}
void multiTestPage( String URL, String match ) throws Exception {
multiTestPage( URL, false, match );
}
void multiTestPage( String URL, boolean expectBadLogic,
String match ) throws Exception {
// System.out.println("Running " + URL);
// System.err.println("Running Stderr " + URL);
/*
ensure we get a 200 response for the URL
*/
WebRequest request =
new GetMethodWebRequest( URL );
WebResponse response = wc.getResponse( request );
assertEquals( "Page " + URL + " unexpected status code", 200, response.getResponseCode());
/*
If match is not null, its a string which we should find embedded somewhere
in the result.
*/
if ( match != null ) {
assertTrue("Expected to find:" + match, response.getText().indexOf( match ) > -1 );
}
/*
if this url should trigger an Unexpected Logic because its inputs are
incomplete/invalid, check for it.
*/
if ( expectBadLogic ) {
assertTrue( "Expected 'Unexpected Logic' result", ! isGoodLogic( response ) );
} else {
assertTrue( "Unexpected 'Unexpected Logic' result", isGoodLogic( response ) );
}
/*
now run the url through the validator and ensure the output is valid
HTML (even the error pages.)
*/
response = wc.getResponse( VALIDATOR + URL + VALIDATOR2 );
assertEquals( "Page " + URL + VALIDATOR2 +
": unexpected status code ", 200, response.getResponseCode());
if ( PROVIDEDOCTYPE && isMissingDoctype( response ) ) {
response = wc.getResponse( VALIDATOR + URL + VALIDATOR2 + VALIDATOR3 );
assertEquals( "Page " + URL + VALIDATOR2 + VALIDATOR3 +
": unexpected status code ", 200, response.getResponseCode());
assertTrue(URL + " does not validate with doctype."+ response.getText(),
isGoodHTML( response ));
} else {
assertTrue(URL + " does not validate.\n"+ response.getText(),
isGoodHTML( response ));
assertTrue(URL + " has warnings,\n" + response.getText(),
! hasWarnings(response));
}
}
boolean isMissingDoctype( WebResponse res ) throws Exception {
boolean missing = res.getText().indexOf( MISSINGDOCTYPE ) > -1;
return missing;
}
boolean isGoodHTML( WebResponse res ) throws Exception {
boolean good = res.getText().indexOf( VALIDMSG ) > -1;
// if (! good && VERBOSE ) {
// //NodeList liList = getListItems( res.getDOM() );
// System.out.println( res.getText() );
// } else if ( DEBUG ) {
// System.out.println( res.getText() );
// }
return good;
}
boolean isGoodLogic( WebResponse res ) throws Exception {
boolean good = res.getText().indexOf( BADLOGIC ) == -1;
//System.out.println("Logic test: " + good );
return good;
}
boolean hasWarnings( WebResponse res ) throws Exception {
if ( FAILWARNINGS ) {
boolean warnings = res.getText().indexOf(WARNINGS) > -1;
return warnings;
} else {
return false;
}
}
public NodeList getListItems( Document doc ) {
NodeList nl;
Node node;
nl = doc.getElementsByTagName( "ul" );
System.out.println("Printing elements from doc: " + nl.getLength() );
for (int j = 0; j < nl.getLength(); j++) {
node = nl.item(j);
System.out.println( "Item " + j + ": " + node.getNodeName() +
" " + dumpKids( node ) );
}
return nl;
}
String dumpKids( Node node ) {
if ( node.hasChildNodes() ) {
StringBuffer buf = new StringBuffer();
NodeList kids = node.getChildNodes();
for (int i = 0; i < kids.getLength(); i++) {
Node kid = kids.item(i);
buf.append( interestingStuff( kid ));
dumpKids( kid );
}
return buf.toString();
} else {
return node.getNodeValue();
}
}
String interestingStuff( Node kid ) {
switch (kid.getNodeType()) {
case Node.CDATA_SECTION_NODE:
return ( "CData:" + ((CDATASection) kid).getData());
case Node.TEXT_NODE:
return( "Text:" + ((Text) kid).getData());
default:
return( "Other: " + kid.getNodeName() + " " + kid.getNodeValue() );
}
}
}
|
|
From: Joi E. <joi...@us...> - 2001-11-12 04:47:54
|
Update of /cvsroot/xpcgi/XP/test/com/visi/gyles19/xpcgi
In directory usw-pr-cvs1:/tmp/cvs-serv3368
Added Files:
Validate.java.foo
Log Message:
Taint work, use strict work, and some unit tests written and applied to validate some of the html
produced by the cgi scripts.
--- NEW FILE ---
package com.visi.gyles19.xpcgi;
import junit.framework.Test;
import junit.framework.TestCase;
import junit.framework.TestSuite;
import com.meterware.httpunit.WebConversation;
import com.meterware.httpunit.WebRequest;
import com.meterware.httpunit.GetMethodWebRequest;
import com.meterware.httpunit.WebResponse;
import org.w3c.dom.Document;
import org.w3c.dom.NodeList;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import java.lang.StringBuffer;
import org.w3c.dom.CDATASection;
import org.w3c.dom.Text;
public class Validate extends TestCase {
public static String SERVER = "http://artoo.gyles19.visi.com/";
public static String VALIDATOR = "http://validator.gyles19.visi.com/cgi-bin/check?uri=";
public static String VALIDATOR2 = "";
// public static String VALIDATOR2 = ";ss=1"; // display source in result
// public static String VALIDATOR2 = ";sp=1"; // display parse tree in result
public static String VALIDMSG = "No errors found!";
public static String BADLOGIC = "Unexpected Logic";
public static String WARNINGS = "Warnings";
public static boolean DEBUG = false;
public static boolean VERBOSE = true;
public static boolean FAILWARNINGS = false;
public static String DOCTYPE =
"<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\"" +
"\"http://www.w3.org/TR/1999/REC-html401-19991224/loose.dtd\">";
public static boolean PROVIDEDOCTYPE = true; // if doctype warning happens
public static String OVERRIDEDOCTYPE = "HTML+4.01+Transitional";
public static String MISSINGDOCTYPE = "no document type declaration";
public static String VALIDATOR3 = "&doctype=" + OVERRIDEDOCTYPE;
WebConversation wc = new WebConversation();
public Validate( String name ) {
super( name );
}
public static void main( String[] argv ) {
junit.textui.TestRunner.main( new String[]{"com.visi.gyles19.xpcgi.Validate"} );
}
public static Test suite() {
TestSuite suite = new MyActiveTestSuite();
suite.addTestSuite(com.visi.gyles19.xpcgi.Validate.class);
return suite;
}
public void testServer() throws Exception {
multiTestPage( SERVER );
}
public void testJoi() throws Exception {
multiTestPage( SERVER + "~joi/" );
}
public void testHack() throws Exception {
multiTestPage( SERVER + "~joi/hints.shtml" );
}
public void testRant() throws Exception {
multiTestPage( SERVER + "~joi/rant.html" );
}
// for something with many errors...
// public void testMuxguide() throws Exception {
// multiTestPage( SERVER + "~joi/muxguide.html" );
// }
private void multiTestPage( String URL ) throws Exception {
multiTestPage( URL, false, null );
}
private void multiTestPage( String URL, boolean expectBadLogic ) throws Exception {
multiTestPage( URL, expectBadLogic, null );
}
private void multiTestPage( String URL, String match ) throws Exception {
multiTestPage( URL, false, match );
}
private void multiTestPage( String URL, boolean expectBadLogic,
String match ) throws Exception {
System.out.println("Running " + URL);
System.err.println("Running Stderr " + URL);
/*
ensure we get a 200 response for the URL
*/
WebRequest request =
new GetMethodWebRequest( URL );
WebResponse response = wc.getResponse( request );
assertEquals( "Page " + URL + " unexpected status code", 200, response.getResponseCode());
/*
If match is not null, its a string which we should find embedded somewhere
in the result.
*/
if ( match != null ) {
assertTrue("Expected to find:" + match, response.getText().indexOf( match ) > -1 );
}
/*
if this url should trigger an Unexpected Logic because its inputs are
incomplete/invalid, check for it.
*/
if ( expectBadLogic ) {
assertTrue( "Expected 'Unexpected Logic' result", ! isGoodLogic( response ) );
} else {
assertTrue( "Unexpected 'Unexpected Logic' result", isGoodLogic( response ) );
}
/*
now run the url through the validator and ensure the output is valid
HTML (even the error pages.)
*/
response = wc.getResponse( VALIDATOR + URL + VALIDATOR2 );
assertEquals( "Page " + URL + VALIDATOR2 +
": unexpected status code ", 200, response.getResponseCode());
if ( PROVIDEDOCTYPE && isMissingDoctype( response ) ) {
response = wc.getResponse( VALIDATOR + URL + VALIDATOR2 + VALIDATOR3 );
assertEquals( "Page " + URL + VALIDATOR2 + VALIDATOR3 +
": unexpected status code ", 200, response.getResponseCode());
assertTrue(URL + " does not validate with doctype."+ response.getText(),
isGoodHTML( response ));
} else {
assertTrue(URL + " does not validate.\n"+ response.getText(),
isGoodHTML( response ));
assertTrue(URL + " has warnings,\n" + response.getText(),
! hasWarnings(response));
}
}
private boolean isMissingDoctype( WebResponse res ) throws Exception {
boolean missing = res.getText().indexOf( MISSINGDOCTYPE ) > -1;
return missing;
}
private boolean isGoodHTML( WebResponse res ) throws Exception {
boolean good = res.getText().indexOf( VALIDMSG ) > -1;
// if (! good && VERBOSE ) {
// //NodeList liList = getListItems( res.getDOM() );
// System.out.println( res.getText() );
// } else if ( DEBUG ) {
// System.out.println( res.getText() );
// }
return good;
}
private boolean isGoodLogic( WebResponse res ) throws Exception {
boolean good = res.getText().indexOf( BADLOGIC ) == -1;
//System.out.println("Logic test: " + good );
return good;
}
private boolean hasWarnings( WebResponse res ) throws Exception {
if ( FAILWARNINGS ) {
boolean warnings = res.getText().indexOf(WARNINGS) > -1;
return warnings;
} else {
return false;
}
}
public NodeList getListItems( Document doc ) {
NodeList nl;
Node node;
nl = doc.getElementsByTagName( "ul" );
System.out.println("Printing elements from doc: " + nl.getLength() );
for (int j = 0; j < nl.getLength(); j++) {
node = nl.item(j);
System.out.println( "Item " + j + ": " + node.getNodeName() +
" " + dumpKids( node ) );
}
return nl;
}
private String dumpKids( Node node ) {
if ( node.hasChildNodes() ) {
StringBuffer buf = new StringBuffer();
NodeList kids = node.getChildNodes();
for (int i = 0; i < kids.getLength(); i++) {
Node kid = kids.item(i);
buf.append( interestingStuff( kid ));
dumpKids( kid );
}
return buf.toString();
} else {
return node.getNodeValue();
}
}
private String interestingStuff( Node kid ) {
switch (kid.getNodeType()) {
case Node.CDATA_SECTION_NODE:
return ( "CData:" + ((CDATASection) kid).getData());
case Node.TEXT_NODE:
return( "Text:" + ((Text) kid).getData());
default:
return( "Other: " + kid.getNodeName() + " " + kid.getNodeValue() );
}
}
}
|
|
From: Joi E. <joi...@us...> - 2001-11-12 04:47:47
|
Update of /cvsroot/xpcgi/XP/test/com/visi/gyles19/xpcgi
In directory usw-pr-cvs1:/tmp/cvs-serv3262
Added Files:
TestDefaultPage.java.foo
Log Message:
Taint work, use strict work, and some unit tests written and applied to validate some of the html
produced by the cgi scripts.
--- NEW FILE ---
package com.visi.gyles19.xpcgi;
public class TestDefaultPage extends ValidatingTest {
public static String SERVER = "http://artoo.gyles19.visi.com/";
public TestDefaultPage(String s) {
super(s);
}
// protected void setUp() {
// }
//
// protected void tearDown() {
// }
public void testDefaultPage() throws Exception {
multiTestPage( SERVER );
}
}
|
|
From: Joi E. <joi...@us...> - 2001-11-12 04:47:40
|
Update of /cvsroot/xpcgi/XP/test/com/visi/gyles19/xpcgi
In directory usw-pr-cvs1:/tmp/cvs-serv3151
Added Files:
MyActiveTestSuite.java
Log Message:
Taint work, use strict work, and some unit tests written and applied to validate some of the html
produced by the cgi scripts.
--- NEW FILE ---
package com.visi.gyles19.xpcgi;
import junit.extensions.ActiveTestSuite;
import junit.framework.Test;
import junit.framework.TestResult;
public class MyActiveTestSuite extends ActiveTestSuite {
public void runTest(final Test test, final TestResult result) {
System.out.println("Thread starting: " + test );
super.runTest( test, result);
}
synchronized public void runFinished(Test test) {
super.runFinished( test );
System.out.println("Thread finished: " + test);
}
}
|
|
From: Joi E. <joi...@us...> - 2001-11-12 04:47:33
|
Update of /cvsroot/xpcgi/XP/test/com/visi/gyles19/xpcgi
In directory usw-pr-cvs1:/tmp/cvs-serv3055
Added Files:
AllTests.java
Log Message:
Taint work, use strict work, and some unit tests written and applied to validate some of the html
produced by the cgi scripts.
--- NEW FILE ---
package com.visi.gyles19.xpcgi;
import junit.framework.*;
import junit.extensions.ActiveTestSuite;
public class AllTests extends TestCase {
public AllTests(String s) {
super("com.visi.gyles19.xpcgi.AllTests");
}
private static String SERVER="http://artoo.gyles19.visi.com";
public static Test suite() {
TestSuite suite = new ActiveTestSuite();
suite.addTest(
new ValidatingTest(SERVER,false,null)
);
suite.addTest(
new ValidatingTest(SERVER + "/XP/",false,null)
);
suite.addTest(
new ValidatingTest(SERVER + "/XP/WhatIsXP.shtml",false,null)
);
suite.addTest(
new ValidatingTest(SERVER + "/XP/notes.shtml",false,null)
);
suite.addTest(
new ValidatingTest(SERVER + "/cgi-bin/XP/project.cgi",false,null)
);
suite.addTest(
new ValidatingTest(SERVER + "/cgi-bin/XP/project.cgi?ACTION=LIST+PROJECTS",false,null)
);
suite.addTest(
new ValidatingTest(SERVER + "/cgi-bin/XP/project.cgi?ACTION=CREATE+NEW+PROJECT",false,null)
);
suite.addTest(
new ValidatingTest(SERVER + "/cgi-bin/XP/project.cgi?ACTION=SHOW+PROJECT&PROJECT=TEST",false,null)
);
suite.addTest(
new ValidatingTest(SERVER + "/cgi-bin/XP/story.cgi",false,null)
);
suite.addTest(
new ValidatingTest(SERVER + "/cgi-bin/XP/story.cgi?ACTION=LIST+STORIES&PROJECT=TEST",false,null)
);
suite.addTest(
new ValidatingTest(SERVER + "/cgi-bin/XP/task.cgi",false,null)
);
suite.addTest(
new ValidatingTest(SERVER + "/cgi-bin/XP/task.cgi?ACTION=LIST+TASKS&PROJECT=TEST",false,null)
);
return suite;
}
}
|
|
From: Joi E. <joi...@us...> - 2001-11-12 04:47:26
|
Update of /cvsroot/xpcgi/XP/test/com/visi/gyles19/xpcgi In directory usw-pr-cvs1:/tmp/cvs-serv2940/xpcgi Log Message: Directory /cvsroot/xpcgi/XP/test/com/visi/gyles19/xpcgi added to the repository |
|
From: Joi E. <joi...@us...> - 2001-11-12 04:47:21
|
Update of /cvsroot/xpcgi/XP/test/com/visi/gyles19 In directory usw-pr-cvs1:/tmp/cvs-serv2885/gyles19 Log Message: Directory /cvsroot/xpcgi/XP/test/com/visi/gyles19 added to the repository |
|
From: Joi E. <joi...@us...> - 2001-11-12 04:47:16
|
Update of /cvsroot/xpcgi/XP/test/com/visi In directory usw-pr-cvs1:/tmp/cvs-serv2841/visi Log Message: Directory /cvsroot/xpcgi/XP/test/com/visi added to the repository |
|
From: Joi E. <joi...@us...> - 2001-11-12 04:47:11
|
Update of /cvsroot/xpcgi/XP/test/com In directory usw-pr-cvs1:/tmp/cvs-serv2795/com Log Message: Directory /cvsroot/xpcgi/XP/test/com added to the repository |
|
From: Joi E. <joi...@us...> - 2001-11-12 04:47:07
|
Update of /cvsroot/xpcgi/XP/test In directory usw-pr-cvs1:/tmp/cvs-serv2734/test Log Message: Directory /cvsroot/xpcgi/XP/test added to the repository |
|
From: Joi E. <joi...@us...> - 2001-11-12 04:47:02
|
Update of /cvsroot/xpcgi/XP/doc/com/visi/gyls19/xpcgi In directory usw-pr-cvs1:/tmp/cvs-serv2666/xpcgi Log Message: Directory /cvsroot/xpcgi/XP/doc/com/visi/gyls19/xpcgi added to the repository |
|
From: Joi E. <joi...@us...> - 2001-11-12 04:46:57
|
Update of /cvsroot/xpcgi/XP/doc/com/visi/gyls19 In directory usw-pr-cvs1:/tmp/cvs-serv2630/gyls19 Log Message: Directory /cvsroot/xpcgi/XP/doc/com/visi/gyls19 added to the repository |
|
From: Joi E. <joi...@us...> - 2001-11-12 04:46:51
|
Update of /cvsroot/xpcgi/XP/doc/com/visi In directory usw-pr-cvs1:/tmp/cvs-serv2581/visi Log Message: Directory /cvsroot/xpcgi/XP/doc/com/visi added to the repository |
|
From: Joi E. <joi...@us...> - 2001-11-12 04:46:47
|
Update of /cvsroot/xpcgi/XP/doc/com In directory usw-pr-cvs1:/tmp/cvs-serv2542/com Log Message: Directory /cvsroot/xpcgi/XP/doc/com added to the repository |
|
From: Joi E. <joi...@us...> - 2001-11-12 04:46:42
|
Update of /cvsroot/xpcgi/XP/doc In directory usw-pr-cvs1:/tmp/cvs-serv2497/doc Log Message: Directory /cvsroot/xpcgi/XP/doc added to the repository |
|
From: Joi E. <joi...@us...> - 2001-11-12 04:43:16
|
Update of /cvsroot/xpcgi/XP In directory usw-pr-cvs1:/tmp/cvs-serv1318 Modified Files: .cvsignore Log Message: Item added to ignoreList Index: .cvsignore =================================================================== RCS file: /cvsroot/xpcgi/XP/.cvsignore,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -r1.2 -r1.3 *** .cvsignore 2001/10/31 15:37:54 1.2 --- .cvsignore 2001/11/12 04:43:11 1.3 *************** *** 2,3 **** --- 2,4 ---- spike local.pl + classes |
|
From: Joi E. <joi...@us...> - 2001-10-31 22:21:23
|
Update of /cvsroot/xpcgi/XP
In directory usw-pr-cvs1:/tmp/cvs-serv10181
Modified Files:
project.pl
Log Message:
Fixed more & entities.
Index: project.pl
===================================================================
RCS file: /cvsroot/xpcgi/XP/project.pl,v
retrieving revision 1.34
retrieving revision 1.35
diff -C2 -r1.34 -r1.35
*** project.pl 2001/10/31 15:39:16 1.34
--- project.pl 2001/10/31 22:21:20 1.35
***************
*** 377,381 ****
foreach $num (split(/[,\s]/,$see_also)) {
$seealsourls .= <<EOF;
! <a href="$script?ACTION=GOTO&GOTO=$num&PROJECT=$project&THISUSER=$thisuser$debugurl">$num</a>
EOF
}
--- 377,381 ----
foreach $num (split(/[,\s]/,$see_also)) {
$seealsourls .= <<EOF;
! <a href="$script?ACTION=GOTO&GOTO=$num&PROJECT=$project&THISUSER=$thisuser$debugurl">$num</a>
EOF
}
***************
*** 434,438 ****
This card may be viewed here:
! $WEBROOT$script?ACTION=GOTO&GOTO=$card&PROJECT=$proj
EOF
--- 434,438 ----
This card may be viewed here:
! $WEBROOT$script?ACTION=GOTO&GOTO=$card&PROJECT=$proj
EOF
|
|
From: Joi E. <joi...@us...> - 2001-10-31 15:54:00
|
Update of /cvsroot/xpcgi/XP In directory usw-pr-cvs1:/tmp/cvs-serv31595 Modified Files: README Log Message: Added notes for 0.4 Index: README =================================================================== RCS file: /cvsroot/xpcgi/XP/README,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -r1.7 -r1.8 *** README 2001/05/09 19:29:23 1.7 --- README 2001/10/31 15:53:57 1.8 *************** *** 1,2 **** --- 1,16 ---- + Changes made for 0.4 + Ability to attach arbitrary text or binary files to a project card. Called + 'bags', these are intended to hold copies of related documents, images, etc. + + Word done to make screens HTML 4.01 compliant. + + Scripts now specify Gnu DBM (gdbm) library usage rather than allowing perl to + provide its platform-specific default library. Solaris perl defaults to NDBM, + which has a 1024 character record size limit. 1024 is too small for cards which + have long descriptions, nor does it work for bags. The library selection is + presently made in local.pl to allow for alteration should a system not have + GDBM installed. + + Changes made for 0.3: |
|
From: Joi E. <joi...@us...> - 2001-10-31 15:39:19
|
Update of /cvsroot/xpcgi/XP
In directory usw-pr-cvs1:/tmp/cvs-serv26995
Modified Files:
Debug.pl delete_project project.pl story.cgi
Log Message:
<No Comment Entered>
Index: Debug.pl
===================================================================
RCS file: /cvsroot/xpcgi/XP/Debug.pl,v
retrieving revision 1.4
retrieving revision 1.5
diff -C2 -r1.4 -r1.5
*** Debug.pl 2000/11/17 04:12:32 1.4
--- Debug.pl 2001/10/31 15:39:16 1.5
***************
*** 1,15 ****
# XPCGI - A Task and Story card utility for use with Extreme Programming.
# Copyright (C) 2000 Joi Ellis
! #
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
! #
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
! #
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
--- 1,15 ----
# XPCGI - A Task and Story card utility for use with Extreme Programming.
# Copyright (C) 2000 Joi Ellis
! #
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
! #
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
! #
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
***************
*** 47,54 ****
}
return <<EOF;
! <UL>
$temp1
$temp2
! </UL>
EOF
}
--- 47,54 ----
}
return <<EOF;
!
$temp1
$temp2
!
EOF
}
Index: delete_project
===================================================================
RCS file: /cvsroot/xpcgi/XP/delete_project,v
retrieving revision 1.4
retrieving revision 1.5
diff -C2 -r1.4 -r1.5
*** delete_project 2000/09/03 00:20:59 1.4
--- delete_project 2001/10/31 15:39:16 1.5
***************
*** 1,3 ****
! #!/usr/bin/local/perl
# XPCGI - A Task and Story card utility for use with Extreme Programming.
# Copyright (C) 2000 Joi Ellis
--- 1,3 ----
! #!./perl
# XPCGI - A Task and Story card utility for use with Extreme Programming.
# Copyright (C) 2000 Joi Ellis
***************
*** 31,34 ****
--- 31,35 ----
('$Id$' =~ /Id\:\s+(\S+),v\s+(\d+\.\d+) (\d+\/\d+\/\d+) /);
+ require "local.pl";
require "Debug.pl";
$debugurl = $debug ? "&DEBUG=1" : "";
***************
*** 53,57 ****
chomp($num);
$num--;
! if ( $num > 0 && $num <= scalar(@keys)) {
print "Delete $keys[$num]: are you sure?\n";
$yorn = <STDIN>;
--- 54,58 ----
chomp($num);
$num--;
! if ( $num >= 0 && $num <= scalar(@keys)) {
print "Delete $keys[$num]: are you sure?\n";
$yorn = <STDIN>;
***************
*** 60,63 ****
--- 61,67 ----
print $PROJECTS{$keys[$num]}, "\nDeleted.\n";
delete($PROJECTS{$keys[$num]});
+ if (exists $PROJECTS{$keys[$num]} ) {
+ die "Unable to delete record $keys[$num].\n";
+ }
} else {
print "Delete canceled.\n";
Index: project.pl
===================================================================
RCS file: /cvsroot/xpcgi/XP/project.pl,v
retrieving revision 1.33
retrieving revision 1.34
diff -C2 -r1.33 -r1.34
*** project.pl 2001/10/31 05:40:37 1.33
--- project.pl 2001/10/31 15:39:16 1.34
***************
*** 99,103 ****
&SplitProjectData($data);
print <<EOF;
! <DT><a href="$storyscript?ACTION=LIST+STORIES&PROJECT=$project&THISUSER=$thisuser$debugurl">$project</a>
<DD>$project_title
EOF
--- 99,103 ----
&SplitProjectData($data);
print <<EOF;
! <DT><a href="$storyscript?ACTION=LIST+STORIES&PROJECT=$project&THISUSER=$thisuser$debugurl">$project</a>
<DD>$project_title
EOF
***************
*** 224,234 ****
</TR>
<TR>
! <TD COLSPAN="1"><small> <a href="$help#regexp" target="help">Regular Expression</a>: </td>
! <TD COLSPAN="1"><small><INPUT TYPE="TEXT" SIZE="20" NAME="REGEXP" VALUE=""> </td>
<td><small><INPUT TYPE="SUBMIT" NAME="ACTION" VALUE="SEARCH $whats"></small></TD>
</TR>
<TR>
! <TD><small>
! <INPUT TYPE="SUBMIT" NAME="ACTION" VALUE="$bbutton BURNT CARDS"></small></TD>
</TD>
</TR>
--- 224,233 ----
</TR>
<TR>
! <TD COLSPAN="1"><small> <a href="$help#regexp" target="help">Regular Expression</a>: </small></td>
! <TD COLSPAN="1"><small><INPUT TYPE="TEXT" SIZE="20" NAME="REGEXP" VALUE=""> </small></td>
<td><small><INPUT TYPE="SUBMIT" NAME="ACTION" VALUE="SEARCH $whats"></small></TD>
</TR>
<TR>
! <TD><small><INPUT TYPE="SUBMIT" NAME="ACTION" VALUE="$bbutton BURNT CARDS"></small>
</TD>
</TR>
***************
*** 244,249 ****
<TR>
<TD><small><a href="$projectscript?ACTION=LIST+PROJECTS&THISUSER=$thisuser"$debugurl>List Projects</a></small></TD>
! <TD><small><a href="$storyscript?ACTION=LIST+STORIES&PROJECT=$project&THISUSER=$thisuser$debugurl">List stories</a></small></TD>
! <TD><small><a href="$taskscript?ACTION=LIST+TASKS&PROJECT=$project&THISUSER=$thisuser$debugurl">List Tasks</a></small></TD>
</TR>
<TR><TD>
--- 243,248 ----
<TR>
<TD><small><a href="$projectscript?ACTION=LIST+PROJECTS&THISUSER=$thisuser"$debugurl>List Projects</a></small></TD>
! <TD><small><a href="$storyscript?ACTION=LIST+STORIES&PROJECT=$project&THISUSER=$thisuser$debugurl">List stories</a></small></TD>
! <TD><small><a href="$taskscript?ACTION=LIST+TASKS&PROJECT=$project&THISUSER=$thisuser$debugurl">List Tasks</a></small></TD>
</TR>
<TR><TD>
Index: story.cgi
===================================================================
RCS file: /cvsroot/xpcgi/XP/story.cgi,v
retrieving revision 1.46
retrieving revision 1.47
diff -C2 -r1.46 -r1.47
*** story.cgi 2001/10/31 05:40:37 1.46
--- story.cgi 2001/10/31 15:39:16 1.47
***************
*** 27,31 ****
require "Debug.pl";
! $debugurl = $debug ? "&DEBUG=1" : "";
$card_number = $type = $see_also = $open_date = $close_date = $priority =
$risk = $ied = $description = $submittedby = $notes = $regexp = $status = $rank = $storytitle = $markList = "";
--- 27,31 ----
require "Debug.pl";
! $debugurl = $debug ? "&DEBUG=1" : "";
$card_number = $type = $see_also = $open_date = $close_date = $priority =
$risk = $ied = $description = $submittedby = $notes = $regexp = $status = $rank = $storytitle = $markList = "";
***************
*** 354,358 ****
$submittedby = &SanitizeText($in{"SUBMITTEDBY"});
$debug = $debug || $in{"DEBUG"};
! $debugurl = $debug ? "&DEBUG=1" : "";
if ($in{"BURNT"} ne "") {
$skipburnt = $in{"BURNT"};
--- 354,358 ----
$submittedby = &SanitizeText($in{"SUBMITTEDBY"});
$debug = $debug || $in{"DEBUG"};
! $debugurl = $debug ? "&DEBUG=1" : "";
if ($in{"BURNT"} ne "") {
$skipburnt = $in{"BURNT"};
***************
*** 443,448 ****
<a href="$help#see_also" target="help">See Also</a>: <INPUT TYPE="TEXT" NAME="SEEALSO" size="5" VALUE="$see_also">
$seealsourls
! <a href="$taskscript?ACTION=LIST+TASKS+FOR+STORY&STORY=$card_number&THISUSER=$urlthisuser&PROJECT=$project$debugurl">List Tasks</a>
! <a href="$storyscript?ACTION=SPLITREQUEST&CARDNUMBER=$card_number&THISUSER=$urlthisuser&PROJECT=$project$debugurl">Split Story</a>
</TD>
</TR>
--- 443,448 ----
<a href="$help#see_also" target="help">See Also</a>: <INPUT TYPE="TEXT" NAME="SEEALSO" size="5" VALUE="$see_also">
$seealsourls
! <a href="$taskscript?ACTION=LIST+TASKS+FOR+STORY&STORY=$card_number&THISUSER=$urlthisuser&PROJECT=$project$debugurl">List Tasks</a>
! <a href="$storyscript?ACTION=SPLITREQUEST&CARDNUMBER=$card_number&THISUSER=$urlthisuser&PROJECT=$project$debugurl">Split Story</a>
</TD>
</TR>
***************
*** 794,797 ****
--- 794,800 ----
$foo = &ListButtons("STORY","STORIES");
$burntCaption= "Burnt cards are " . ($skipburnt ? "hidden." : "visible.");
+ #
+ # @todo: need to fix this.
+ #
print <<EOF;
<CAPTION>
***************
*** 877,881 ****
$seealsourls = &MakeSeeAlsos() || " ";
$url = <<EOF;
! <a href="$script?ACTION=GOTO&GOTO=$card_number&PROJECT=$project&THISUSER=$thisuser$debugurl">$card_number</a>
EOF
&LoadIED($card_number);
--- 880,884 ----
$seealsourls = &MakeSeeAlsos() || " ";
$url = <<EOF;
! <a href="$script?ACTION=GOTO&GOTO=$card_number&PROJECT=$project&THISUSER=$thisuser$debugurl">$card_number</a>
EOF
&LoadIED($card_number);
***************
*** 923,927 ****
} else {
return <<EOF;
! <a href="$script?ACTION=CHANGERANK&CARD=$card&DIRECTION=$rankdir&PROJECT=$project&THISUSER=$thisuser$debugurl">$rankdir</a>
EOF
}
--- 926,930 ----
} else {
return <<EOF;
! <a href="$script?ACTION=CHANGERANK&CARD=$card&DIRECTION=$rankdir&PROJECT=$project&THISUSER=$thisuser$debugurl">$rankdir</a>
EOF
}
***************
*** 1462,1466 ****
$card_number = $parent_number . "." . ($child_adj + $child);
&SaveCard();
! $spliturl = "$storyscript?ACTION=GOTO&GOTO=$card_number&PROJECT=$project&THISUSER=$thisuser$debugurl";
print "<LI><a href=\"$spliturl\">$card_number</a>\n";
}
--- 1465,1469 ----
$card_number = $parent_number . "." . ($child_adj + $child);
&SaveCard();
! $spliturl = "$storyscript?ACTION=GOTO&GOTO=$card_number&PROJECT=$project&THISUSER=$thisuser$debugurl";
print "<LI><a href=\"$spliturl\">$card_number</a>\n";
}
|