jspwiki-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From ajaqu...@apache.org
Subject svn commit: r639114 - in /incubator/jspwiki/trunk/tests/etc: selenium/readme.txt selenium/tests/JSPWikiTestNoDeletePage.html webtests.xml
Date Thu, 20 Mar 2008 02:11:12 GMT
Author: ajaquith
Date: Wed Mar 19 19:11:10 2008
New Revision: 639114

URL: http://svn.apache.org/viewvc?rev=639114&view=rev
Log:
Fixed failing Selenium web unit tests so that they run correctly, with two exceptions. See
tests/etc/selenium/readme.txt; this file includes a few notes on how to write Selenium tests
so that they will run automatically via the Ant "webtests" target.

Added:
    incubator/jspwiki/trunk/tests/etc/selenium/tests/JSPWikiTestNoDeletePage.html
Modified:
    incubator/jspwiki/trunk/tests/etc/selenium/readme.txt
    incubator/jspwiki/trunk/tests/etc/webtests.xml

Modified: incubator/jspwiki/trunk/tests/etc/selenium/readme.txt
URL: http://svn.apache.org/viewvc/incubator/jspwiki/trunk/tests/etc/selenium/readme.txt?rev=639114&r1=639113&r2=639114&view=diff
==============================================================================
--- incubator/jspwiki/trunk/tests/etc/selenium/readme.txt (original)
+++ incubator/jspwiki/trunk/tests/etc/selenium/readme.txt Wed Mar 19 19:11:10 2008
@@ -43,19 +43,49 @@
 Add the new test file (in this case, JSPWikiTestAnonymousView.html) to the test
 directory (tests/etc/selenium/tests).
 
-However, simply adding the file to the suited is NOT enough. To make it run
-for all of the five sample webapp contexts we test, you MUST add a short
-preamble to each test file so that the Selenium-RC test runner starts at
-the correct URL. Here is that preamble:
+However, simply adding the file to the suite is NOT enough. To make it run
+for all of the five sample webapp contexts we test (test-custom, test-container, etc),
+you MUST add a short preamble to each test file so that the Selenium-RC
+test runner starts at the correct URL. Here is that preamble:
 
-    <tr><td>store</td><td>/@selenium.context@/</td>	<td>baseUrl</td></tr>
+    <tr><td>store</td>	<td>/@selenium.context@</td>	<td>baseUrl</td></tr>
     <tr><td>open</td>	<td>$${baseUrl}/Wiki.jsp?page=Main</td>
<td>&nbsp;</td></tr>
 
 The first line is important: at build time (that is, when the Ant webtests
 target executes), the @selenium.context@ variable will be replaced with the
-correct test context. You MUST ensure that the first Selenese 'open' command
-(such as the one shown in the second line, above) opens to the correct context.
-Setting, then using, the ${baseUrl} property is the recommended way.
+correct test context (e.g., test-custom). You MUST ensure that the first
+Selenese 'open' command (such as the one shown in the second line, above)
+opens to the correct context. Setting, then using, the ${baseUrl} property
+is the recommended way.
+
+To put it simply: just make sure you add somethign similar to the two lines shown above
+to the top of your test, and you should be good to go.
+
+You need to keep in mind two other issues:
+1) Creating unique resources for each test
+2) Restoring the correct session state at the end of your test
+
+Web unit tests should NOT make any assumptions about what wiki pages, users and groups
+are present in the test context, other than these:
+Users: janne, admin, user
+Groups: Admin
+Pages: Main
+
+If you need to run tests that create, delete  or rename users, groups or pages,
+you should always write tests that use unique names for those resources.
+The best way to do this is to store a unique value in a variable, then
+use the value of that variable in your script. Generating unique values is easy:
+
+	<tr><td>store</td>	<td>javascript{'Test-group-'+new Date().getTime()}</td>
<td>group</td></tr>
+
+(from JSPWikiTestCreateGroupWikiName.html)
+
+Second, you should make sure that a particular unit test doesn't hose the next one, and 
+restore the user session to an anonymous state. Make sure your unit test includes
+the following Selenese at the end of the test script:
+
+    <!-- Log out -->
+    <tr><td>clickAndWait</td>	<td>link=Log out</td> 	<td>&nbsp;</td></tr>
 
 
 BUILD NOTES

Added: incubator/jspwiki/trunk/tests/etc/selenium/tests/JSPWikiTestNoDeletePage.html
URL: http://svn.apache.org/viewvc/incubator/jspwiki/trunk/tests/etc/selenium/tests/JSPWikiTestNoDeletePage.html?rev=639114&view=auto
==============================================================================
--- incubator/jspwiki/trunk/tests/etc/selenium/tests/JSPWikiTestNoDeletePage.html (added)
+++ incubator/jspwiki/trunk/tests/etc/selenium/tests/JSPWikiTestNoDeletePage.html Wed Mar
19 19:11:10 2008
@@ -0,0 +1,54 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+  <meta content="text/html; charset=ISO-8859-1" http-equiv="content-type">
+  <title>JSPWiki Test Delete Page</title>
+</head>
+<body> 
+<table cellpadding="1" cellspacing="1" border="1">
+	<tbody>
+	<tr><td rowspan="1" colspan="3">JSPWiki Test Delete Page<br></td></tr>
+
+	<tr><td>store</td>	<td>/@selenium.context@</td>	<td>baseUrl</td></tr>
+	<tr><td>store</td>	<td>javascript{'Delete-page '+new Date().getTime()}</td>
<td>page</td></tr>
+	<tr><td>store</td>	<td>janne</td>		<td>TestUsername</td></tr>
+    <tr><td>store</td>	<td>myP@5sw0rd</td>		<td>TestPassword</td></tr>
+
+	<tr><td>store</td>	<td>${baseUrl}/Wiki.jsp?page=${page}</td>
<td>url</td></tr>
+	<tr><td>store</td>	<td>${baseUrl}/Edit.jsp?page=${page}</td>
<td>editurl</td></tr>
+	<tr><td>store</td>	<td>${baseUrl}/PageInfo.jsp?page=${page}</td><td>infourl</td></tr>
+	<tr><td>store</td>	<td>${baseUrl}/Login.jsp</td>				<td>loginurl</td></tr>
+    <tr><td>store</td>	<td>This page was created by the web unit
tests.</td>	<td>PageContent</td></tr>
+
+	<!-- Login --!>
+    <tr><td>open</td>	<td>${loginurl}</td>	<td>&nbsp;</td></tr>
+    <tr><td>type</td>	<td>j_username</td>	<td>${TestUsername}</td></tr>
+    <tr><td>type</td>	<td>j_password</td>	<td>${TestPassword}</td></tr>
+    <tr><td>clickAndWait</td>	<td>submitlogin</td>	<td>&nbsp;</td></tr>
+
+	<!-- Create page --!>
+    <tr><td>open</td>					<td>${editurl}</td>	<td>&nbsp;</td></tr>
+    <tr><td>verifyTitle</td>			<td>JSPWiki: Edit: ${page}</td>
<td>&nbsp;</td></tr>
+    <tr><td>verifyElementPresent</td>	<td>ok</td>	<td></td></tr>
+    <tr><td>verifyElementPresent</td>	<td>id=editorarea</td>
<td></td></tr>
+
+    <tr><td>type</td>			<td>id=editorarea</td>		<td>${PageContent}</td></tr>
+    <tr><td>clickAndWait</td>	<td>ok</td>	<td>&nbsp;</td></tr>
+
+    <tr><td>open</td>				<td>${url}</td>	<td>&nbsp;</td></tr>
+    <tr><td>verifyTitle</td>		<td>JSPWiki: ${page}</td>	<td>&nbsp;</td></tr>
+    <tr><td>verifyTextPresent</td>	<td>${PageContent}</td>
<td>&nbsp;</td></tr>	
+    
+	<!-- Delete Page --!>
+    <tr><td>open</td>					<td>${infourl}</td>	<td>&nbsp;</td></tr>
+    <tr><td>verifyTitle</td>			<td>JSPWiki: ${page}</td>	<td>&nbsp;</td></tr>
+    <tr><td>assertElementNotPresent</td>	<td>id=delete-all</td>
<td>&nbsp;</td></tr>	
+
+    <!-- Log out --!>
+    <tr><td>clickAndWait</td>	<td>link=Log out</td> 	<td>&nbsp;</td></tr>
+
+	</tbody>
+</table>
+
+</body>
+</html>

Modified: incubator/jspwiki/trunk/tests/etc/webtests.xml
URL: http://svn.apache.org/viewvc/incubator/jspwiki/trunk/tests/etc/webtests.xml?rev=639114&r1=639113&r2=639114&view=diff
==============================================================================
--- incubator/jspwiki/trunk/tests/etc/webtests.xml (original)
+++ incubator/jspwiki/trunk/tests/etc/webtests.xml Wed Mar 19 19:11:10 2008
@@ -196,9 +196,11 @@
              value="${basedir}/${tests.build}/@{context}/jspwiki.log" />
       </propertyfile>
       
-      <!-- Copy our sample user database -->
+      <!-- Copy our sample user and group databases -->
       <copy file="tests/etc/userdatabase.xml"
           toFile="${tests.build}/@{context}/userdatabase.xml" />
+      <copy file="tests/etc/groupdatabase.xml"
+          toFile="${tests.build}/@{context}/groupdatabase.xml" />
       
       <!-- Build the war -->
       <war warfile="${tests.build}/@{context}/@{context}.war"
@@ -213,10 +215,9 @@
            <include name="jspwiki.jaas" />
            <include name="jspwiki.policy" />
            <include name="*.tld" />
-           <include name="groupdatabase.xml" />
          </webinf>
          <webinf dir="${tests.build}/@{context}" 
-           includes="jspwiki.properties userdatabase.xml" />
+           includes="jspwiki.properties userdatabase.xml groupdatabase.xml" />
          <classes dir="etc" includes="oscache.properties" />
          <metainf dir="${tests.build}/@{context}" includes="context.xml" />
       </war>



Mime
View raw message