You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jspwiki.apache.org by aj...@apache.org on 2008/09/07 05:32:11 UTC

svn commit: r692770 [2/2] - in /incubator/jspwiki/branches/JSPWIKI_2_9_STRIPES_BRANCH: ./ etc/ etc/db/hsql/ etc/db/postgresql/ etc/i18n/ etc/i18n/templates/ etc/ini/ src/com/ecyrd/jspwiki/ src/com/ecyrd/jspwiki/action/ src/com/ecyrd/jspwiki/auth/ src/c...

Modified: incubator/jspwiki/branches/JSPWIKI_2_9_STRIPES_BRANCH/src/com/ecyrd/jspwiki/ui/WikiServletFilter.java
URL: http://svn.apache.org/viewvc/incubator/jspwiki/branches/JSPWIKI_2_9_STRIPES_BRANCH/src/com/ecyrd/jspwiki/ui/WikiServletFilter.java?rev=692770&r1=692769&r2=692770&view=diff
==============================================================================
--- incubator/jspwiki/branches/JSPWIKI_2_9_STRIPES_BRANCH/src/com/ecyrd/jspwiki/ui/WikiServletFilter.java (original)
+++ incubator/jspwiki/branches/JSPWIKI_2_9_STRIPES_BRANCH/src/com/ecyrd/jspwiki/ui/WikiServletFilter.java Sat Sep  6 20:32:08 2008
@@ -51,7 +51,6 @@
  * this method contains all of the logic needed to grab any user login credentials set 
  * by the container or by cookies.
  *  
- *  @author Janne Jalkanen
  *  @author Andrew Jaquith
  *
  */
@@ -60,6 +59,9 @@
     protected static final Logger log = Logger.getLogger( WikiServletFilter.class );
     protected WikiEngine m_engine = null;
 
+    /**
+     *  Creates a Wiki Servlet Filter.
+     */
     public WikiServletFilter()
     {
         super();
@@ -67,6 +69,9 @@
 
     /**
      * Initializes the WikiServletFilter.
+     * 
+     * @param config The FilterConfig.
+     * @throws ServletException If a WikiEngine cannot be started.
      */
     public void init( FilterConfig config ) throws ServletException
     {
@@ -89,8 +94,10 @@
     * {@link WikiRequestWrapper}.
     * @param request the current HTTP request object
     * @param response the current HTTP response object
+    * @param chain The Filter chain passed down.
     * @throws ServletException if {@link AuthenticationManager#login(HttpServletRequest)} fails for any reason
-     */
+    * @throws IOException If writing to the servlet response fails. 
+    */
     public void doFilter( ServletRequest request, ServletResponse response, FilterChain chain ) throws IOException, ServletException
     {
         //

Added: incubator/jspwiki/branches/JSPWIKI_2_9_STRIPES_BRANCH/src/com/ecyrd/jspwiki/util/UtilJ2eeCompat.java
URL: http://svn.apache.org/viewvc/incubator/jspwiki/branches/JSPWIKI_2_9_STRIPES_BRANCH/src/com/ecyrd/jspwiki/util/UtilJ2eeCompat.java?rev=692770&view=auto
==============================================================================
--- incubator/jspwiki/branches/JSPWIKI_2_9_STRIPES_BRANCH/src/com/ecyrd/jspwiki/util/UtilJ2eeCompat.java (added)
+++ incubator/jspwiki/branches/JSPWIKI_2_9_STRIPES_BRANCH/src/com/ecyrd/jspwiki/util/UtilJ2eeCompat.java Sat Sep  6 20:32:08 2008
@@ -0,0 +1,156 @@
+/* 
+    JSPWiki - a JSP-based WikiWiki clone.
+
+    Licensed to the Apache Software Foundation (ASF) under one
+    or more contributor license agreements.  See the NOTICE file
+    distributed with this work for additional information
+    regarding copyright ownership.  The ASF licenses this file
+    to you under the Apache License, Version 2.0 (the
+    "License"); you may not use this file except in compliance
+    with the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing,
+    software distributed under the License is distributed on an
+    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+    KIND, either express or implied.  See the License for the
+    specific language governing permissions and limitations
+    under the License.  
+ */
+package com.ecyrd.jspwiki.util;
+
+import org.apache.log4j.Logger;
+
+/**
+ * Misc J2EE Compatibility Utility Functions
+ */
+public class UtilJ2eeCompat
+{
+    private static Logger log = Logger.getLogger( UtilJ2eeCompat.class.getName() );
+
+    public static final String TOMCAT = "Apache Tomcat";
+
+    public static final String ORION = "Orion";
+
+    public static final String RESIN = "Resin";
+
+    public static final String REX_IP = "TradeCity";
+
+    public static final String OC4J = "Oracle";
+
+    public static final String JRUN = "JRun";
+
+    public static final String JETTY = "Jetty";
+
+    public static final String WEBSPHERE = "Websphere";
+
+    public static final String WEBLOGIC = "WebLogic";
+
+    public static final String GLASSFISH = "Sun Java System Application Server";
+
+    /**
+     * 
+     */
+    protected static Boolean useOutputStreamValue = null;
+
+    private static String m_serverInfo;
+
+    /**
+     * Determines the response wrapper for the servlet filters
+     * 
+     * @param serverInfo The string returned from context.getServerInfo()
+     * @return <code>true</code> if standard response wrapper does not work
+     *         properly; <code>false</code> default, otherwise
+     */
+    public static boolean useOutputStream( String serverInfo )
+    {
+        if( useOutputStreamValue == null )
+        {
+            initCompatibilityOptions( serverInfo );
+        }
+        return useOutputStreamValue.booleanValue();
+    }
+
+    /**
+     * For testing only
+     * 
+     * @param serverInfo The string returned from context.getServerInfo()
+     * @param boolInitialize True, if you want to force initialization again
+     * @return <code>true</code> if standard response wrapper does not work
+     *         properly; <code>false</code> default, otherwise
+     */
+    public static boolean useOutputStream( String serverInfo, Boolean boolInitialize )
+    {
+        if( (useOutputStreamValue == null) | (boolInitialize) )
+        {
+            initCompatibilityOptions( serverInfo );
+        }
+        return useOutputStreamValue.booleanValue();
+    }
+
+    /**
+     * Simple check of the servlet container
+     * 
+     * @param serverInfo The string returned from context.getServerInfo()
+     */
+    protected static void initCompatibilityOptions( String serverInfo )
+    {
+        log.info( "serverInfo: " + serverInfo );
+        m_serverInfo = serverInfo;
+        // response.getWriter is the default
+        boolean useStream = false;
+        if( serverInfo.indexOf( RESIN ) >= 0 )
+        {
+            log.info( RESIN + " detected" );
+        }
+        else if( serverInfo.indexOf( REX_IP ) >= 0 )
+        {
+            log.info( REX_IP + " detected" );
+        }
+        else if( serverInfo.indexOf( TOMCAT ) >= 0 )
+        {
+            log.info( TOMCAT + " detected" );
+        }
+        else if( serverInfo.indexOf( JRUN ) >= 0 )
+        {
+            log.info( JRUN + " detected" );
+        }
+        else if( serverInfo.indexOf( JETTY ) >= 0 )
+        {
+            log.info( JETTY + " detected" );
+        }
+        else if( serverInfo.indexOf( ORION ) >= 0 )
+        {
+            log.info( ORION + " detected" );
+        }
+        else if( serverInfo.indexOf( WEBSPHERE ) >= 0 )
+        {
+            log.info( WEBSPHERE + " detected" );
+        }
+        else if( serverInfo.indexOf( WEBLOGIC ) >= 0 )
+        {
+            log.info( WEBLOGIC + " detected" );
+        }
+        else if( serverInfo.indexOf( GLASSFISH ) >= 0 )
+        {
+            log.info( GLASSFISH + " detected" );
+        }
+        else if( serverInfo.indexOf( OC4J ) >= 0 )
+        {
+            log.info( "Oracle Container for JEE detected" );
+            // use response.getOutputStream instead of response.getWriter
+            useStream = true;
+        }
+        useOutputStreamValue = new Boolean( useStream );
+    }
+
+    /**
+     * @return the Container type that has been detected
+     */
+    public static String getServerInfo()
+    {
+        return m_serverInfo;
+    }
+
+}

Modified: incubator/jspwiki/branches/JSPWIKI_2_9_STRIPES_BRANCH/src/com/ecyrd/jspwiki/util/WikiBackgroundThread.java
URL: http://svn.apache.org/viewvc/incubator/jspwiki/branches/JSPWIKI_2_9_STRIPES_BRANCH/src/com/ecyrd/jspwiki/util/WikiBackgroundThread.java?rev=692770&r1=692769&r2=692770&view=diff
==============================================================================
--- incubator/jspwiki/branches/JSPWIKI_2_9_STRIPES_BRANCH/src/com/ecyrd/jspwiki/util/WikiBackgroundThread.java (original)
+++ incubator/jspwiki/branches/JSPWIKI_2_9_STRIPES_BRANCH/src/com/ecyrd/jspwiki/util/WikiBackgroundThread.java Sat Sep  6 20:32:08 2008
@@ -115,8 +115,8 @@
      * The thread will initially pause for a full sleep interval
      * before starting, after which it will execute 
      * {@link #startupTask()}. This method will cleanly 
-     * terminates the thread if the it has previously 
-     * been marked for death, before which it will execute
+     * terminate the thread if it has previously 
+     * been marked as dead, before which it will execute
      * {@link #shutdownTask()}. If any of the three methods
      * return an exception, it will be re-thrown as a
      * {@link com.ecyrd.jspwiki.InternalWikiException}.
@@ -139,8 +139,8 @@
                 // log.debug( "Running background task: " + name + "." );
                 backgroundTask();
                 
-                // Sleep for the interval we're supposed do, but
-                // wake up every second to see if thread should die
+                // Sleep for the interval we're supposed to, but
+                // wake up every POLLING_INTERVAL to see if thread should die
                 boolean interrupted = false;
                 try
                 {

Modified: incubator/jspwiki/branches/JSPWIKI_2_9_STRIPES_BRANCH/src/webdocs/Comment.jsp
URL: http://svn.apache.org/viewvc/incubator/jspwiki/branches/JSPWIKI_2_9_STRIPES_BRANCH/src/webdocs/Comment.jsp?rev=692770&r1=692769&r2=692770&view=diff
==============================================================================
--- incubator/jspwiki/branches/JSPWIKI_2_9_STRIPES_BRANCH/src/webdocs/Comment.jsp (original)
+++ incubator/jspwiki/branches/JSPWIKI_2_9_STRIPES_BRANCH/src/webdocs/Comment.jsp Sat Sep  6 20:32:08 2008
@@ -94,6 +94,9 @@
 
     session.setAttribute( "link", link );
 
+    if( changenote != null )
+       session.setAttribute( "changenote", changenote );
+    
     //
     //  Branch
     //
@@ -132,12 +135,11 @@
 
         modifiedPage.setAuthor( storedUser );
 
-        if( changenote == null ) changenote = (String) session.getAttribute("changenote");
-
-        session.removeAttribute("changenote");
-
-        modifiedPage.setAttribute( WikiPage.CHANGENOTE, "Comment by "+storedUser );
-
+        if( changenote != null )
+            modifiedPage.setAttribute( WikiPage.CHANGENOTE, changenote );
+        else
+            modifiedPage.removeAttribute( WikiPage.CHANGENOTE );
+        
         //
         //  Build comment part
         //

Modified: incubator/jspwiki/branches/JSPWIKI_2_9_STRIPES_BRANCH/src/webdocs/Rename.jsp
URL: http://svn.apache.org/viewvc/incubator/jspwiki/branches/JSPWIKI_2_9_STRIPES_BRANCH/src/webdocs/Rename.jsp?rev=692770&r1=692769&r2=692770&view=diff
==============================================================================
--- incubator/jspwiki/branches/JSPWIKI_2_9_STRIPES_BRANCH/src/webdocs/Rename.jsp (original)
+++ incubator/jspwiki/branches/JSPWIKI_2_9_STRIPES_BRANCH/src/webdocs/Rename.jsp Sat Sep  6 20:32:08 2008
@@ -17,7 +17,7 @@
     if(!wikiContext.hasAccess( response )) return;
 
     String renameFrom = wikiContext.getName();
-    String renameTo = request.getParameter( "renameto");
+    String renameTo = request.getParameter("renameto");
 
     boolean changeReferences = false;
 
@@ -28,9 +28,6 @@
         changeReferences = true;
     }
 
-    // Set the content type and include the response content
-    response.setContentType("text/html; charset="+wiki.getContentEncoding() );
-
     log.info("Page rename request for page '"+renameFrom+ "' to new name '"+renameTo+"' from "+request.getRemoteAddr()+" by "+request.getRemoteUser() );
 
     WikiSession wikiSession = wikiContext.getWikiSession();
@@ -47,54 +44,39 @@
         }
         else
         {
-            wikiSession.addMessage(rb.getString("rename.empty"));
+            wikiSession.addMessage("rename", rb.getString("rename.empty"));
 
             log.info("Page rename request failed because new page name was left blank");
-
-%>
-            <h3><fmt:message key="rename.error.title"/></h3>
-
-            <dl>
-               <dt><b><fmt:message key="rename.error.reason"/></b></dt>
-               <dd>
-                  <wiki:Messages div="error" />
-               </dd>
-            </dl>
-<%
         }
-
     }
     catch (WikiException e)
     {
-        if (e.getMessage().equals("Page exists"))
+        if (e.getMessage().equals("You cannot rename the page to itself"))
         {
-            if (renameTo.equals( renameFrom ))
-            {
-                log.info("Page rename request failed because page names are identical");
-                wikiSession.addMessage( rb.getString("rename.identical") );
-            }
-            else
-            {
-                log.info("Page rename request failed because new page name is already in use");
-                Object[] args = { renameTo };
-                wikiSession.addMessage(MessageFormat.format(rb.getString("rename.exists"),args));
-            }
+            log.info("Page rename request failed because page names are identical");
+            wikiSession.addMessage("rename", rb.getString("rename.identical") );
+        }
+        else if (e.getMessage().startsWith("Page already exists "))
+        {
+            log.info("Page rename request failed because new page name is already in use");
+            Object[] args = { renameTo };
+            wikiSession.addMessage("rename", MessageFormat.format(rb.getString("rename.exists"),args));
         }
         else
         {
             Object[] args = { e.toString() };
-            wikiSession.addMessage( MessageFormat.format(rb.getString("rename.unknownerror"),args));
+            wikiSession.addMessage("rename",  MessageFormat.format(rb.getString("rename.unknownerror"),args));
         }
 
-%>
-       <h3><fmt:message key="rename.error.title"/></h3>
-
-       <dl>
-          <dt><b><fmt:message key="rename.error.reason"/></b></dt>
-          <dd>
-             <wiki:Messages div="error" />
-          </dd>
-       </dl>
-<%
     }
-%>
+
+    pageContext.setAttribute( "renameto",
+                              TextUtil.replaceEntities( renameTo ),
+                              PageContext.REQUEST_SCOPE );
+
+    response.setContentType("text/html; charset="+wiki.getContentEncoding() );
+    String contentPage = wiki.getTemplateManager().findJSP( pageContext,
+                                                            wikiContext.getTemplate(),
+                                                            "ViewTemplate.jsp" );
+    
+%><wiki:Include page="<%=contentPage%>" />
\ No newline at end of file

Modified: incubator/jspwiki/branches/JSPWIKI_2_9_STRIPES_BRANCH/src/webdocs/scripts/jspwiki-common.js
URL: http://svn.apache.org/viewvc/incubator/jspwiki/branches/JSPWIKI_2_9_STRIPES_BRANCH/src/webdocs/scripts/jspwiki-common.js?rev=692770&r1=692769&r2=692770&view=diff
==============================================================================
--- incubator/jspwiki/branches/JSPWIKI_2_9_STRIPES_BRANCH/src/webdocs/scripts/jspwiki-common.js (original)
+++ incubator/jspwiki/branches/JSPWIKI_2_9_STRIPES_BRANCH/src/webdocs/scripts/jspwiki-common.js Sat Sep  6 20:32:08 2008
@@ -242,6 +242,16 @@
 		var p = $('page'); if(p) this.renderPage(p, Wiki.PageName);
 		var f = $('favorites'); if(f) this.renderPage(f, "Favorites");
 	},
+	/* show popup alert, which allows any html msg to be displayed */
+	alert: function(msg){
+		return alert(msg); //standard js
+		
+	},
+	/* show popup prompt, which allows any html msg to be displayed and replied to */
+	prompt: function(msg, defaultreply, callback){
+		return callback( prompt(msg,defaultreply) ); //standard js
+		
+	},
 
 	renderPage: function(page, name){
 		this.$pageHandlers.each(function(obj){
@@ -281,21 +291,6 @@
 				.replace(/[^A-Za-z0-9()&+,-=._$ ]/g, '');
 	},
 
-	savePrefs: function(){
-		var prefs = {
-			'prefSkin':'SkinName',
-			'prefTimeZone':'TimeZone',
-			'prefTimeFormat':'DateFormat',
-			'prefOrientation':'Orientation',
-			'editor':'editor',
-			'prefLanguage':'Language',
-			'prefSectionEditing':'SectionEditing'
-		};
-		for(var el in prefs){
-			if($(el)) this.prefs.set(prefs[el],$(el).getValue());
-		};
-	},
-
 	changeOrientation: function(){
 		var fav = $('prefOrientation').getValue();
 		$('wikibody')
@@ -361,16 +356,6 @@
 		location = location.href; /* now jump to the #hash */
 	},
 	
-	alert: function(msg){
-		/* TODO: create popup alert, which allowed any html msg to be displayed */
-		alert(msg);
-	},
-
-	prompt: function(title, msg){
-		/* TODO: create popup prompt */
-		return prompt(title,msg);
-	},
-
 	/* SubmitOnce: disable all buttons to avoid double submit */
 	submitOnce: function(form){
 		window.onbeforeunload = null; /* regular exit of this page -- see jspwiki-edit.js */
@@ -399,10 +384,12 @@
 		url = url + (url.contains('?') ? '&' : '?') + 'section=';
 
 		var aa = new Element('a').setHTML('quick.edit'.localize()), 
-			ee = new Element('span',{'class':'editsection'}).adopt(aa);
+			ee = new Element('span',{'class':'editsection'}).adopt(aa),
+			i = 0;
 
-		$$('#pagecontent *[id^=section]').each(function(el,i){
-			aa.set({'href':url+i});
+		$$('#pagecontent *[id^=section]').each(function(el){
+			if(el.id=='section-TOC') return;
+			aa.set({'href':url + i++ });
 			el.adopt(ee.clone());
 		});
 	},
@@ -935,7 +922,7 @@
 			s = this.query.value;			
 		if(s == this.query.defaultValue) s = '';
 
-		var handleResult=function(s){
+		var handleResult = function(s){
 			if(s == '') return;
 			if(!search)	s = Wiki.cleanLink(s);//remove invalid chars from the pagename
 		
@@ -946,24 +933,11 @@
 			location.href = url.replace('__PAGEHERE__', s );
 		};
 		
-		if(s!='') handleResult(s); //????
-		//handleResult(Wiki.prompt(promptText, (clone) ? p+'sbox.clone.suffix'.localize() : p));
-		//return;
-
-		Wiki.prompt(promptText, defaultResult, handleResult.bind(this));
-
-		return;
-/*		
-		new Popup({
-			caption:'',
-			body:promptText,
-			promptDefault:(clone) ? p+'sbox.clone.suffix'.localize() : p,
-			buttons:({
-				'Cancel':Class.empty,
-				'Ok':function(result){ doNavigate(result); }
-			})
-		});
-*/
+		if(s!='') {
+			handleResult(s); 
+		} else {
+			Wiki.prompt(promptText, defaultResult, handleResult.bind(this));
+		} 
 	}
 }
 

Modified: incubator/jspwiki/branches/JSPWIKI_2_9_STRIPES_BRANCH/src/webdocs/scripts/jspwiki-commonstyles.js
URL: http://svn.apache.org/viewvc/incubator/jspwiki/branches/JSPWIKI_2_9_STRIPES_BRANCH/src/webdocs/scripts/jspwiki-commonstyles.js?rev=692770&r1=692769&r2=692770&view=diff
==============================================================================
--- incubator/jspwiki/branches/JSPWIKI_2_9_STRIPES_BRANCH/src/webdocs/scripts/jspwiki-commonstyles.js (original)
+++ incubator/jspwiki/branches/JSPWIKI_2_9_STRIPES_BRANCH/src/webdocs/scripts/jspwiki-commonstyles.js Sat Sep  6 20:32:08 2008
@@ -131,15 +131,15 @@
 
 		$ES('.accordion, .tabbedAccordion, .leftAccordion, .rightAccordion',page).each( function(tt){
 			
-			var toggles=[], contents=[], togglemenu=false;
+			var toggles=[], contents=[], menu=false;
 			if(tt.hasClass('tabbedAccordion')){
-				togglemenu = new Element('div',{'class':'togglemenu'}).injectBefore(tt);
+				menu = new Element('div',{'class':'menu top'}).injectBefore(tt);
 			}
 			else if(tt.hasClass('leftAccordion')){
-				togglemenu = new Element('div',{'class':'sidemenu left'}).injectBefore(tt);
+				menu = new Element('div',{'class':'menu left'}).injectBefore(tt);
 			}
 			else if(tt.hasClass('rightAccordion')){
-				togglemenu = new Element('div',{'class':'sidemenu right'}).injectBefore(tt);
+				menu = new Element('div',{'class':'menu right'}).injectBefore(tt);
 			}
 			
 			tt.getChildren().each(function(tab) {
@@ -150,17 +150,15 @@
 
 				var title = tab.className.substr(4).deCamelize(),
 					t = toggle.clone().appendText(title);
-				if(togglemenu) {
-					toggles.push(t.inject(togglemenu));
-				} else {
-					toggles.push(t.adopt(bullet.clone()).injectBefore(tab));
-				}        
+				menu ? t.inject(menu) : bullet.clone().injectTop(t.injectBefore(tab));
+
+				toggles.push(t);
 				contents.push(tab.addClass('tab'));
 			});
 			
 			new Accordion(toggles, contents, {     
 				height: true,
-				alwaysHide: !togglemenu,
+				alwaysHide: !menu,
 				onComplete: function(){
 					var el = $(this.elements[this.previous]);
 					if (el.offsetHeight > 0) el.setStyle('height', 'auto');  
@@ -180,7 +178,7 @@
 				} 
 			});
 		});
-		bullet=toggle=null;
+		bullet=toggle=null; //avoid memory leaks
 	}
 }
 Wiki.addPageRender(WikiAccordion);

Modified: incubator/jspwiki/branches/JSPWIKI_2_9_STRIPES_BRANCH/src/webdocs/scripts/jspwiki-edit.js
URL: http://svn.apache.org/viewvc/incubator/jspwiki/branches/JSPWIKI_2_9_STRIPES_BRANCH/src/webdocs/scripts/jspwiki-edit.js?rev=692770&r1=692769&r2=692770&view=diff
==============================================================================
--- incubator/jspwiki/branches/JSPWIKI_2_9_STRIPES_BRANCH/src/webdocs/scripts/jspwiki-edit.js (original)
+++ incubator/jspwiki/branches/JSPWIKI_2_9_STRIPES_BRANCH/src/webdocs/scripts/jspwiki-edit.js Sat Sep  6 20:32:08 2008
@@ -166,43 +166,33 @@
 
 		Wiki.onPageLoad(); //Wiki.onpageload should always run first, but seems not guaranteed on ie so let's do this for sure
 		
-		this.textarea = $('editorarea'); 
-		if(!this.textarea || !this.textarea.visible) return;
-
-		/* Duplicate the textarea into a main and work area.
-		   The workarea is used for actual editing.
-		   The mainarea reflects at all times the whole document
-		*/
-		var m = this.mainarea = this.textarea;
-		this.textarea = m.clone()
-			.removeProperty('id')
-			.removeProperty('name')
-			.injectBefore( m.hide() ); 
-		
-		//this.ta = new TextArea( this.textarea );
-		this.ta = TextArea.initialize( this.textarea );
-
 		window.onbeforeunload = (function(){
 			var ta = $('editorarea');
 			if(ta.value != ta.defaultValue) return "edit.areyousure".localize();
 		}).bind(this);
 
-		//alert($('scroll').getValue());
-
 		this.wikisnippets = WikiSnippets.getSnippets();
 		this.wikismartpairs = WikiSnippets.getSmartPairs();
 
-		this.onPageLoadSectionToc();
+		this.mainarea = this.textarea = $('editorarea'); 
+		if(!this.textarea || !this.textarea.visible) return;
+
+		/* may insert a new this.textarea */
+		this.onPageLoadSectionEdit( );
+
+		//this.ta = new TextArea( this.textarea );
+		this.ta = TextArea.initialize( this.textarea ); //FIXME
+
 		this.onPageLoadResizeTextarea();
 		this.onPageLoadToolbar();
 
 		this.onPageLoadPostEditor();
 		this.onPageLoadPreview();
 
-		/* add textarea suggestion events */
 		this.textarea
-			.addEvent('click',this.getSuggestions.bind(this))
-			.addEvent('keyup',this.getSuggestions.bind(this))
+			.addEvent('click', this.getSuggestions.bind(this))
+			.addEvent('keyup', this.getSuggestions.bind(this))
+			.addEvent('change', this.onChangeTextarea.bind(this))
 			.focus();
 	},
 
@@ -400,7 +390,8 @@
 		var textarea = this.textarea,
 			sel = TextArea.getSelectionCoordinates(textarea),
 			val = textarea.value,
-			searchword = '';
+			searchword = '',
+			searchlen = 0;
 			
 		var	suggestID = 'findSuggestionMenu',
 			suggest = $(suggestID) || new Element('div',{
@@ -409,21 +400,24 @@
 
 		/* find a partial jspwiki-link 'searchword' */
 		/* look backwards for the start of a wiki-link bracket */
-		for( i = sel.start-1; i >= 0; i-- ){
+		for( var i = sel.start-1; i >= 0; i-- ){
 			if( val.charAt(i) == ']' ) break;
 			if( val.charAt(i) == '[' && i < val.length-1 ) { 
 				searchword = val.substring(i+1,sel.start); 
+                if( searchword.charAt(0) == '{' ) return; // Ignore plugins.
 				if(searchword.indexOf('|') != -1) searchword = searchword.split('|')[1];
+				searchlen = searchword.length;
+
+				if(searchlen == 0) searchword=Wiki.PageName+'/'; /* by default - get list of attachments, if any */
 				break; 
 			}
 		}
 		if(searchword =='') return suggest.hide();
 
-		var searchlen = searchword.length;		
-
-		if(sel.start == sel.end) { //when no selection, extend till next ]
-			var i = val.indexOf(']',sel.start);
-			if( i>0 ) sel.end = i
+		if(sel.start == sel.end) { //when no selection, extend till next ]  or end of the line
+			var ss = val.substring(sel.start),
+				end = ss.search(/[\n\r\]]/);
+			if(end!=-1) sel.end = sel.start+end;
 		}
 
 		Wiki.jsonrpc('search.getSuggestions', [searchword,30], function(result,exception){
@@ -452,7 +446,7 @@
 			} /* endif */
 		});
 	},
-	
+
 	onPageLoadPreview : function(){
 		if( $$('#sneakpreview','#autopreview').length != 2) return;
 		$('autopreview')
@@ -492,37 +486,47 @@
 		}).request();
 	},
 
-	onPageLoadSectionToc : function(){
+	onPageLoadSectionEdit : function( ){
 
-		if(Wiki.prefs.get('SectionEditing') != 'on') return;
+		/* section editing is only valid for edit context, not valid in the comment context */
+		if( (Wiki.Context!='edit') 
+		  ||(Wiki.prefs.get('SectionEditing') != 'on') ) return;
 
+		/* Duplicate the textarea into a main and work area.
+		   The workarea is used for actual editing.
+		   The mainarea reflects at all times the whole document
+		*/
+		this.textarea = this.mainarea.clone()
+			.removeProperty('id')
+			.removeProperty('name')
+			.injectBefore( this.mainarea.hide() ); 
+		
 		var tt = new Element('div',{'id':'toctoc'}).adopt(
 			new Element('label').setHTML('sectionediting.label'.localize()),
-			this.selector = new Element('ul')
+			this.sections = new Element('ul')
 		).injectTop($('favorites'))
 
-		/* initialise the section selectors */
-		this.onSelectorLoad();
+		/* initialise the section sections */
+		this.onSectionLoad();
     
 		var cursor = location.search.match(/[&?]section=(\d+)/);
 		cursor = (cursor && cursor[1]) ? 1+cursor[1].toInt() : 0;
 		if((cursor>0) && this.textarea.sop) cursor++;
 
 		/* initialise the selected section */
-		this.onChangeSelector(cursor);
+		this.onChangeSection(cursor);
 
-		this.textarea.addEvent('change', this.onChangeTextarea.bind(this));		
 	},	
 	
 	/* 
-	 * UPDATE/RFEFRESH the section selector dropdown
+	 * UPDATE/RFEFRESH the section dropdown
 	 * This function is called at startup, and everytime the section textarea changes
-	 * Postcondition: the sectiontoc dropdown contains following entries
+	 * Postcondition: the section-edit dropdown contains following entries
 	 *   0. ( all )
 	 *   1. start-of-page (if applicable)
-	 *   2. text==<<header 1...n>> , <<selector.offset stores start-offset in main textarea>>
+	 *   2. text==<<header 1...n>> , <<sections.offset stores start-offset in main textarea>>
 	 */  
-	 onSelectorLoad : function(){
+	 onSectionLoad : function(){
 		var mainarea = this.mainarea.value,
 			ta = this.textarea,
 			DELIM = "\u00a4";
@@ -534,9 +538,9 @@
 
 		var tt = mainarea.replace( /^([!]{1,3})/mg, DELIM+"$1"+DELIM ).split(DELIM);
 		
-		this.newSelector();
+		this.newSection();
 		ta.sop = (tt.length>1) && (tt[0] != ''); //start of page section has no !!!header 
-		if(ta.sop) this.addSelector("edit.startOfPage".localize(), 0, 0);
+		if(ta.sop) this.addSection("edit.startOfPage".localize(), 0, 0);
 		
 		var pos = tt.shift().length,
 			ttlen = tt.map(function(i){ return i.length });
@@ -546,29 +550,29 @@
 				indent = (hlen==2) ? 1 : (hlen==1) ? 2 : 0,
 				title = tt[i+1].match(/.*?$/m)[0]; //title is first line only
 
-			this.addSelector(title, pos, indent);
+			this.addSection(title, pos, indent);
 			pos += hlen + ttlen[i+1];
 		};
 	},
 
-	setSelector: function( cursor ){
-		var els = this.selector.getChildren();
+	setSection: function( cursor ){
+		var els = this.sections.getChildren();
 		
 		if(cursor <0 || cursor >= els.length) cursor = 0;
 		els.removeClass('cursor');
 		els[cursor].addClass('cursor');
 	},
 
-	newSelector: function(){
-		this.selector.empty();
-		this.selector.offsets = [];
-		this.addSelector("edit.allsections".localize(),-1,0);
+	newSection: function(){
+		this.sections.empty();
+		this.sections.offsets = [];
+		this.addSection("edit.allsections".localize(),-1,0);
 	},
 
-	addSelector: function(text,offset,indent){
+	addSection: function(text,offset,indent){
 		text = text.replace(/~([^~])/g, '$1'); /*remove wiki-markup escape chars ~ */
-		this.selector.offsets.push(offset);
-		this.selector.adopt( 
+		this.sections.offsets.push(offset);
+		this.sections.adopt( 
 			new Element('li').adopt(
 				new Element('a',{
 					'class':'action',
@@ -577,22 +581,22 @@
 					},
 					'title':text,
 					'events':{
-						'click':this.onChangeSelector.pass([this.selector.offsets.length-1],this) 
+						'click':this.onChangeSection.pass([this.sections.offsets.length-1],this) 
 					}
 				}).setHTML(text.trunc(30))
 			) 
 		);	
 	},
 
-	/* the USER clicks a new item from the section selector dropdown
+	/* the USER clicks a new item from the section dropdown
 	 * copy a part of the main textarea to the section textarea
 	 */
-	onChangeSelector: function(cursor){
-		var se = this.selector.offsets, 
+	onChangeSection: function(cursor){
+		var se = this.sections.offsets, 
 			ta = this.textarea, 
 			ma = this.mainarea.value;
 
-		this.setSelector(cursor);
+		this.setSection(cursor);
 		ta.cursor = cursor;
 		ta.begin = (cursor==0) ? 0 : se[cursor];
 		ta.end = ((cursor==0) || (cursor+1 >= se.length)) ? ma.length : se[cursor+1]; 
@@ -608,18 +612,20 @@
 	 *  (ii) user clicks a toolbar-button
 	 *  
 	 * 1) copy section textarea at the right offset of the main textarea
-	 * 2) refresh the sectiontoc menu
+	 * 2) refresh the section-edit menu
 	 */
 	onChangeTextarea : function(){
 		var	ta = this.textarea,	ma = this.mainarea;
 
-		var	s = ta.value;
-		if( s.lastIndexOf("\n") + 1 != s.length ) ta.value += '\n';
-		 
-		s = ma.value;
-		ma.value = s.substring(0, ta.begin) + ta.value + s.substring(ta.end);
-		ta.end = ta.begin + ta.value.length;
-		this.onSelectorLoad();  //refresh selectortoc menu
+		if( this.sections ){
+			var	s = ta.value;
+			if( s.lastIndexOf("\n") + 1 != s.length ) ta.value += '\n';
+
+			s = ma.value;
+			ma.value = s.substring(0, ta.begin) + ta.value + s.substring(ta.end);
+			ta.end = ta.begin + ta.value.length;
+			this.onSectionLoad();  //refresh section-edit menu
+		}		
 		ta.fireEvent('preview');
 	 }
 } 

Modified: incubator/jspwiki/branches/JSPWIKI_2_9_STRIPES_BRANCH/src/webdocs/scripts/jspwiki-prefs.js
URL: http://svn.apache.org/viewvc/incubator/jspwiki/branches/JSPWIKI_2_9_STRIPES_BRANCH/src/webdocs/scripts/jspwiki-prefs.js?rev=692770&r1=692769&r2=692770&view=diff
==============================================================================
Binary files - no diff available.

Modified: incubator/jspwiki/branches/JSPWIKI_2_9_STRIPES_BRANCH/src/webdocs/templates/default/InfoContent.jsp
URL: http://svn.apache.org/viewvc/incubator/jspwiki/branches/JSPWIKI_2_9_STRIPES_BRANCH/src/webdocs/templates/default/InfoContent.jsp?rev=692770&r1=692769&r2=692770&view=diff
==============================================================================
--- incubator/jspwiki/branches/JSPWIKI_2_9_STRIPES_BRANCH/src/webdocs/templates/default/InfoContent.jsp (original)
+++ incubator/jspwiki/branches/JSPWIKI_2_9_STRIPES_BRANCH/src/webdocs/templates/default/InfoContent.jsp Sat Sep  6 20:32:08 2008
@@ -3,6 +3,7 @@
 <%@ page import="com.ecyrd.jspwiki.auth.*" %>
 <%@ page import="com.ecyrd.jspwiki.auth.permissions.*" %>
 <%@ page import="com.ecyrd.jspwiki.attachment.*" %>
+<%@ page import="com.ecyrd.jspwiki.i18n.InternationalizationManager" %>
 <%@ page import="java.security.Permission" %>
 <%@ page import="javax.servlet.jsp.jstl.fmt.*" %>
 <%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
@@ -16,6 +17,9 @@
   String attTitle = LocaleSupport.getLocalizedMessage(pageContext, "attach.tab");
   if( attCount != 0 ) attTitle += " (" + attCount + ")";
 
+  String parm_renameto = (String)request.getParameter( "renameto" );
+  if( parm_renameto == null ) parm_renameto = wikiPage.getName();
+
   String creationAuthor ="";
 
   //FIXME -- seems not to work correctly for attachments !!
@@ -23,6 +27,15 @@
   if( firstPage != null )
   {
     creationAuthor = firstPage.getAuthor();
+
+    if( creationAuthor != null && creationAuthor.length() > 0 )
+    {
+      creationAuthor = TextUtil.replaceEntities(creationAuthor);
+    }
+    else
+    {
+      creationAuthor = c.getBundle( InternationalizationManager.CORE_BUNDLE ).getString( "common.unknownauthor" );
+    }
   }
 
   int itemcount = 0;  //number of page versions
@@ -33,14 +46,16 @@
   catch( Exception  e )  { /* dont care */ }
 
   int pagesize = 20;
-  int startitem = itemcount;
-  if( startitem == pagesize ) startitem = 0;
+  int startitem = itemcount-1; /* itemcount==1-20 -> startitem=0-19 ... */
 
   String parm_start = (String)request.getParameter( "start" );
   if( parm_start != null ) startitem = Integer.parseInt( parm_start ) ;
-  /*round to start of a pagination block */
-  if( startitem > -1 ) startitem = ( (startitem/pagesize) * pagesize );
 
+  /* round to start of block: 0-19 becomes 0; 20-39 becomes 20 ... */
+  if( startitem > -1 ) startitem = ((startitem)/pagesize) * pagesize;
+
+  /* startitem drives the pagination logic */
+  /* startitem=-1:show all; startitem=0:show block 1-20; startitem=20:block 21-40 ... */
 %>
 <wiki:PageExists>
 
@@ -91,6 +106,11 @@
   </wiki:CheckVersion>
 
   <wiki:Permission permission="rename">
+
+    <div class="formhelp">
+      <wiki:Messages div="error" topic="rename" prefix='<%=LocaleSupport.getLocalizedMessage(pageContext,"prefs.errorprefix.rename")%>'/>
+    </div>
+
     <form action="<wiki:Link format='url' jsp='Rename.jsp'/>"
            class="wikiform"
               id="renameform"
@@ -99,7 +119,7 @@
       <p>
       <input type="hidden" name="page" value="<wiki:Variable var='pagename' />" />
       <input type="submit" name="rename" value="<fmt:message key='info.rename.submit' />" />
-      <input type="text" name="renameto" value="<wiki:Variable var='pagename' />" size="40" />
+      <input type="text" name="renameto" value="<%= parm_renameto %>" size="40" />
       &nbsp;&nbsp;
       <input type="checkbox" name="references" checked="checked" />
       <fmt:message key="info.updatereferrers"/>

Modified: incubator/jspwiki/branches/JSPWIKI_2_9_STRIPES_BRANCH/src/webdocs/templates/default/PageActionsTop.jsp
URL: http://svn.apache.org/viewvc/incubator/jspwiki/branches/JSPWIKI_2_9_STRIPES_BRANCH/src/webdocs/templates/default/PageActionsTop.jsp?rev=692770&r1=692769&r2=692770&view=diff
==============================================================================
--- incubator/jspwiki/branches/JSPWIKI_2_9_STRIPES_BRANCH/src/webdocs/templates/default/PageActionsTop.jsp (original)
+++ incubator/jspwiki/branches/JSPWIKI_2_9_STRIPES_BRANCH/src/webdocs/templates/default/PageActionsTop.jsp Sat Sep  6 20:32:08 2008
@@ -7,7 +7,7 @@
 <div id="actionsTop" class="pageactions"> 
   <ul>
 
-    <wiki:CheckRequestContext context='view|info|diff|upload'>
+    <wiki:CheckRequestContext context='view|info|diff|upload|rename'>
     <wiki:Permission permission="edit">
 	<li>
         <wiki:PageType type="page">

Modified: incubator/jspwiki/branches/JSPWIKI_2_9_STRIPES_BRANCH/src/webdocs/templates/default/PreferencesTab.jsp
URL: http://svn.apache.org/viewvc/incubator/jspwiki/branches/JSPWIKI_2_9_STRIPES_BRANCH/src/webdocs/templates/default/PreferencesTab.jsp?rev=692770&r1=692769&r2=692770&view=diff
==============================================================================
--- incubator/jspwiki/branches/JSPWIKI_2_9_STRIPES_BRANCH/src/webdocs/templates/default/PreferencesTab.jsp (original)
+++ incubator/jspwiki/branches/JSPWIKI_2_9_STRIPES_BRANCH/src/webdocs/templates/default/PreferencesTab.jsp Sat Sep  6 20:32:08 2008
@@ -37,7 +37,7 @@
        class="wikiform" 
           id="setCookie"
       method="post" accept-charset="<wiki:ContentEncoding />"
-    onsubmit="Wiki.savePrefs(); return Wiki.submitOnce(this);" >
+    onsubmit="WikiPreferences.savePrefs(); return Wiki.submitOnce(this);" >
 <table>
 
   <tr>
@@ -82,7 +82,7 @@
   <td><label for="prefSectionEditing"><fmt:message key="prefs.user.sectionediting"/></label></td>
   <td>
   <input id="prefSectionEditing" name="prefSectionEditing" 
-       type="checkbox" <c:if test='${"on" == prefs["SectionEditing"]}'>checked="checked"</c:if> ></input>
+       type="checkbox" <c:if test='${"on" == prefs.SectionEditing}'>checked="checked"</c:if> ></input>
   <fmt:message key="prefs.user.sectionediting.text"/>
   </td>
   </tr>
@@ -92,7 +92,7 @@
   <td>
   <select id="prefSkin" name="prefSkin">
     <c:forEach items="${skins}" var="i">
-      <option value='<c:out value='${i}'/>' <c:if test='${i == prefs["SkinName"]}'>selected="selected"</c:if> ><c:out value="${i}"/></option>
+      <option value='<c:out value='${i}'/>' <c:if test='${i == prefs.SkinName}'>selected="selected"</c:if> ><c:out value="${i}"/></option>
     </c:forEach>
   </select>
   </td>
@@ -150,7 +150,7 @@
   <td><label for="prefShowQuickLinks">Show Quick Links</label></td>
   <td>
   <input class='checkbox' type='checkbox' id='prefShowQuickLinks' name='prefShowQuickLinks' 
-         <c:if test='${"on" == prefs["SectionEdit"]}'>selected="selected"</c:if> />
+         <c:if test='${"on" == prefs.SectionEdit}'>selected="selected"</c:if> />
          <span class="quicklinks"><span 
                class='quick2Top'><a href='#wikibody' title='Go to Top' >&laquo;</a></span><span 
                class='quick2Prev'><a href='#' title='Go to Previous Section'>&lsaquo;</a></span><span 

Modified: incubator/jspwiki/branches/JSPWIKI_2_9_STRIPES_BRANCH/src/webdocs/templates/default/commonheader.jsp
URL: http://svn.apache.org/viewvc/incubator/jspwiki/branches/JSPWIKI_2_9_STRIPES_BRANCH/src/webdocs/templates/default/commonheader.jsp?rev=692770&r1=692769&r2=692770&view=diff
==============================================================================
--- incubator/jspwiki/branches/JSPWIKI_2_9_STRIPES_BRANCH/src/webdocs/templates/default/commonheader.jsp (original)
+++ incubator/jspwiki/branches/JSPWIKI_2_9_STRIPES_BRANCH/src/webdocs/templates/default/commonheader.jsp Sat Sep  6 20:32:08 2008
@@ -95,15 +95,15 @@
 <wiki:FeedDiscovery />
 
 <%-- SKINS : extra stylesheets, extra javascript --%>
-<c:if test='${(!empty prefs["SkinName"]) && (prefs["SkinName"]!="PlainVanilla") }'>
+<c:if test='${(!empty prefs.SkinName) && (prefs.SkinName!="PlainVanilla") }'>
 <link rel="stylesheet" type="text/css" media="screen, projection, print"
-     href="<wiki:Link format='url' templatefile='skins/' /><c:out value='${prefs["SkinName"]}/skin.css' />" />
+     href="<wiki:Link format='url' templatefile='skins/' /><c:out value='${prefs.SkinName}/skin.css' />" />
 <%--
 <link rel="stylesheet" type="text/css" media="print"
-     href="<wiki:Link format='url' templatefile='skins/' /><c:out value='${prefs["SkinName"]}/print_skin.css' />" />
+     href="<wiki:Link format='url' templatefile='skins/' /><c:out value='${prefs.SkinName}/print_skin.css' />" />
 --%>
 <script type="text/javascript"
-         src="<wiki:Link format='url' templatefile='skins/' /><c:out value='${prefs["SkinName"]}/skin.js' />" ></script>
+         src="<wiki:Link format='url' templatefile='skins/' /><c:out value='${prefs.SkinName}/skin.js' />" ></script>
 </c:if>
 
 <wiki:Include page="localheader.jsp"/>
\ No newline at end of file

Modified: incubator/jspwiki/branches/JSPWIKI_2_9_STRIPES_BRANCH/src/webdocs/templates/default/editors/FCK.jsp
URL: http://svn.apache.org/viewvc/incubator/jspwiki/branches/JSPWIKI_2_9_STRIPES_BRANCH/src/webdocs/templates/default/editors/FCK.jsp?rev=692770&r1=692769&r2=692770&view=diff
==============================================================================
--- incubator/jspwiki/branches/JSPWIKI_2_9_STRIPES_BRANCH/src/webdocs/templates/default/editors/FCK.jsp (original)
+++ incubator/jspwiki/branches/JSPWIKI_2_9_STRIPES_BRANCH/src/webdocs/templates/default/editors/FCK.jsp Sat Sep  6 20:32:08 2008
@@ -119,12 +119,10 @@
   <div class="error"><fmt:message key="editor.fck.noscript" /></div>
 </noscript>
 
-   <wiki:CheckRequestContext context="edit">
-    <p>
-    <label for="changenote"><fmt:message key='editor.plain.changenote'/></label>
-    <input type="text" id="changenote" name="changenote" size="80" maxlength="80" value="<c:out value='${changenote}'/>"/>
-    </p>
-   </wiki:CheckRequestContext>
+   <p>
+     <label for="changenote"><fmt:message key='editor.plain.changenote'/></label>
+     <input type="text" id="changenote" name="changenote" size="80" maxlength="80" value="<c:out value='${changenote}'/>"/>
+   </p>
    <wiki:CheckRequestContext context="comment">
     <fieldset>
 	<legend><fmt:message key="editor.commentsignature"/></legend>
@@ -143,9 +141,9 @@
   </wiki:CheckRequestContext>
 
   <p>
-        <input name='ok' type='submit' value='<fmt:message key="editor.plain.save.submit"/>' />
-        <input name='preview' type='submit' value='<fmt:message key="editor.plain.preview.submit"/>' />
-        <input name='cancel' type='submit' value='<fmt:message key="editor.plain.cancel.submit"/>' />
+    <input name='ok' type='submit' value='<fmt:message key="editor.plain.save.submit"/>' />
+    <input name='preview' type='submit' value='<fmt:message key="editor.plain.preview.submit"/>' />
+    <input name='cancel' type='submit' value='<fmt:message key="editor.plain.cancel.submit"/>' />
   </p>
 </div>
 </form>

Modified: incubator/jspwiki/branches/JSPWIKI_2_9_STRIPES_BRANCH/src/webdocs/templates/default/editors/preview.jsp
URL: http://svn.apache.org/viewvc/incubator/jspwiki/branches/JSPWIKI_2_9_STRIPES_BRANCH/src/webdocs/templates/default/editors/preview.jsp?rev=692770&r1=692769&r2=692770&view=diff
==============================================================================
--- incubator/jspwiki/branches/JSPWIKI_2_9_STRIPES_BRANCH/src/webdocs/templates/default/editors/preview.jsp (original)
+++ incubator/jspwiki/branches/JSPWIKI_2_9_STRIPES_BRANCH/src/webdocs/templates/default/editors/preview.jsp Sat Sep  6 20:32:08 2008
@@ -31,6 +31,7 @@
     <input type="hidden" name="author" value="<c:out value='${author}' />" />
     <input type="hidden" name="link" value="<c:out value='${link}' />" />
     <input type="hidden" name="remember" value="<c:out value='${remember}' />" />
+    <input type="hidden" name="changenote" value="<c:out value='${changenote}' />" />
 
     <input type="hidden" name="page" value="<wiki:Variable var='pagename' />" />
     <input type="hidden" name="action" value="save" />

Modified: incubator/jspwiki/branches/JSPWIKI_2_9_STRIPES_BRANCH/src/webdocs/templates/default/jspwiki.css
URL: http://svn.apache.org/viewvc/incubator/jspwiki/branches/JSPWIKI_2_9_STRIPES_BRANCH/src/webdocs/templates/default/jspwiki.css?rev=692770&r1=692769&r2=692770&view=diff
==============================================================================
--- incubator/jspwiki/branches/JSPWIKI_2_9_STRIPES_BRANCH/src/webdocs/templates/default/jspwiki.css (original)
+++ incubator/jspwiki/branches/JSPWIKI_2_9_STRIPES_BRANCH/src/webdocs/templates/default/jspwiki.css Sat Sep  6 20:32:08 2008
@@ -54,6 +54,7 @@
 	float:left;
 	margin-top:1.75em;
 	width:18%;
+	padding:0.5em;
 }
 #favorites .userbox {
 	border:1px solid #ddd;
@@ -126,7 +127,7 @@
 	padding:0;
 	border:0;
 	outline:none;
-	vertical-align:baseline;
+	/* vertical-align:baseline; seems to give printing errors in FF */
 }
 /* remember to define focus styles! */
 :focus {
@@ -1081,12 +1082,6 @@
 	float:right;
  	background:url(images/arrup.gif) no-repeat 3px 3px;
 }
-/* obsolete
-a.action.quick2bottom {
- 	background:url(images/arrdown.png) no-repeat 3px 3px;
- 	height:16px;
-}
-*/
 
 /*********/
 .popup ul {
@@ -1479,33 +1474,59 @@
 	line-height:1.4;
 	padding:0.25em 1em 0.25em 0;
 }
-.accordion .toggle:hover, .togglemenu .toggle:hover, .sidemenu .toggle:hover {
+.accordion .toggle:hover, .menu .toggle:hover {
 	background:#eee;
 }
 .accordion .tab {
 	padding:0 1em;
 }
-.togglemenu {
+.menu {
     clear:both; /* check out */
 	color:gray;
 	font-weight:bold; 
-	padding:0.25em 0.5em;
 }
-.togglemenu .toggle {
+.menu.top {
+	margin-left:0.5em; /* small left indent of first toggle */
+}
+.menu.left {
 	float:left;
+	margin-top:0.5em; /* small top indent of first toggle */
+}
+.menu.right {
+	float:right;
+	margin-top:0.5em; /* small top indent of first toggle */
+}
+.menu .toggle {
 	background:#f9f9f9;
 	border:1px solid #ddd;
 	cursor:pointer;
-	display:inline;
-	margin:0 0 -1px -1px;
 	padding:0.25em 0.5em;
 }
-.togglemenu .toggle.active {
+.menu.top .toggle { 
+	float:left;
+	margin:0 0 -1px -1px; /* adjacent toggle will stick: let 1px border overlap.*/
+	display:inline;
+}
+.menu.left .toggle {
+	margin:0 -1px -1px 0; /* adjacent toggle will stick: let 1px border overlap.*/
+}
+.menu.right .toggle {
+	margin:0 0 -1px -1px; /* adjacent toggle will stick: let 1px border overlap.*/
+}
+.menu .toggle.active {
 	background:transparent;
-	border-bottom:1px solid white;
 	cursor:default;
 	color:black;
 } 
+.menu.top .toggle.active {
+	border-bottom:1px solid white;
+}
+.menu.left .toggle.active {
+	border-right:1px solid white;
+}
+.menu.right .toggle.active {
+	border-left:1px solid white;
+} 
 .tabbedAccordion {
 	padding:0.5em;
 }
@@ -1514,38 +1535,8 @@
 }
 .leftAccordion .tab, .rightAccordion .tab {
 	border:1px solid #ddd !important;
-	margin:0 0 -2px 0; /* nice trick :: -2px to reveal top and bottom borders the tabs */
+	margin:0 0 -2px 0; /* trick :: -2px to reveal top and bottom borders the tabs */
 	padding:0.25em 0.5em;
-}
-.sidemenu {
-	clear:both;
-	color:gray;
-	font-weight:bold; 
-	margin-top:0.5em;
-}
-.sidemenu.left {
-	float:left;
-}
-.sidemenu.right {
-	float:right;
-}
-.sidemenu .toggle {
-	background:#f9f9f9;
-	border:1px solid #ddd;
-	cursor:pointer;
-	margin:0 0 -1px 0;
-	padding:0.25em 0.5em;
-}
-.sidemenu.left .toggle {
-	border-right:none;
-}
-.sidemenu.right .toggle {
-	border-left:none;
-}
-.sidemenu .toggle.active {
-	background:transparent;
-	cursor:default;
-	color:black;
 } 
 
 /* ie only hack no needed ?

Added: incubator/jspwiki/branches/JSPWIKI_2_9_STRIPES_BRANCH/src/webdocs/templates/default/skins/OrderedList/images/arrdown.gif
URL: http://svn.apache.org/viewvc/incubator/jspwiki/branches/JSPWIKI_2_9_STRIPES_BRANCH/src/webdocs/templates/default/skins/OrderedList/images/arrdown.gif?rev=692770&view=auto
==============================================================================
Binary file - no diff available.

Propchange: incubator/jspwiki/branches/JSPWIKI_2_9_STRIPES_BRANCH/src/webdocs/templates/default/skins/OrderedList/images/arrdown.gif
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: incubator/jspwiki/branches/JSPWIKI_2_9_STRIPES_BRANCH/src/webdocs/templates/default/skins/OrderedList/images/bulletDown.gif
URL: http://svn.apache.org/viewvc/incubator/jspwiki/branches/JSPWIKI_2_9_STRIPES_BRANCH/src/webdocs/templates/default/skins/OrderedList/images/bulletDown.gif?rev=692770&view=auto
==============================================================================
Binary file - no diff available.

Propchange: incubator/jspwiki/branches/JSPWIKI_2_9_STRIPES_BRANCH/src/webdocs/templates/default/skins/OrderedList/images/bulletDown.gif
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: incubator/jspwiki/branches/JSPWIKI_2_9_STRIPES_BRANCH/src/webdocs/templates/default/skins/OrderedList/images/bulletUp.gif
URL: http://svn.apache.org/viewvc/incubator/jspwiki/branches/JSPWIKI_2_9_STRIPES_BRANCH/src/webdocs/templates/default/skins/OrderedList/images/bulletUp.gif?rev=692770&view=auto
==============================================================================
Binary file - no diff available.

Propchange: incubator/jspwiki/branches/JSPWIKI_2_9_STRIPES_BRANCH/src/webdocs/templates/default/skins/OrderedList/images/bulletUp.gif
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: incubator/jspwiki/branches/JSPWIKI_2_9_STRIPES_BRANCH/src/webdocs/templates/default/skins/OrderedList/images/smart-logo.gif
URL: http://svn.apache.org/viewvc/incubator/jspwiki/branches/JSPWIKI_2_9_STRIPES_BRANCH/src/webdocs/templates/default/skins/OrderedList/images/smart-logo.gif?rev=692770&view=auto
==============================================================================
Binary file - no diff available.

Propchange: incubator/jspwiki/branches/JSPWIKI_2_9_STRIPES_BRANCH/src/webdocs/templates/default/skins/OrderedList/images/smart-logo.gif
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: incubator/jspwiki/branches/JSPWIKI_2_9_STRIPES_BRANCH/src/webdocs/templates/default/skins/OrderedList/images/sortable.gif
URL: http://svn.apache.org/viewvc/incubator/jspwiki/branches/JSPWIKI_2_9_STRIPES_BRANCH/src/webdocs/templates/default/skins/OrderedList/images/sortable.gif?rev=692770&view=auto
==============================================================================
Binary file - no diff available.

Propchange: incubator/jspwiki/branches/JSPWIKI_2_9_STRIPES_BRANCH/src/webdocs/templates/default/skins/OrderedList/images/sortable.gif
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Modified: incubator/jspwiki/branches/JSPWIKI_2_9_STRIPES_BRANCH/src/webdocs/templates/default/skins/OrderedList/skin.css
URL: http://svn.apache.org/viewvc/incubator/jspwiki/branches/JSPWIKI_2_9_STRIPES_BRANCH/src/webdocs/templates/default/skins/OrderedList/skin.css?rev=692770&r1=692769&r2=692770&view=diff
==============================================================================
Binary files - no diff available.

Modified: incubator/jspwiki/branches/JSPWIKI_2_9_STRIPES_BRANCH/tests/com/ecyrd/jspwiki/auth/user/JDBCUserDatabaseTest.java
URL: http://svn.apache.org/viewvc/incubator/jspwiki/branches/JSPWIKI_2_9_STRIPES_BRANCH/tests/com/ecyrd/jspwiki/auth/user/JDBCUserDatabaseTest.java?rev=692770&r1=692769&r2=692770&view=diff
==============================================================================
--- incubator/jspwiki/branches/JSPWIKI_2_9_STRIPES_BRANCH/tests/com/ecyrd/jspwiki/auth/user/JDBCUserDatabaseTest.java (original)
+++ incubator/jspwiki/branches/JSPWIKI_2_9_STRIPES_BRANCH/tests/com/ecyrd/jspwiki/auth/user/JDBCUserDatabaseTest.java Sat Sep  6 20:32:08 2008
@@ -166,7 +166,7 @@
         try
         {
             UserProfile profile = m_db.findByEmail( "janne@ecyrd.com" );
-            assertEquals( -7739839977499061014L, profile.getUid() );
+            assertEquals( "-7739839977499061014", profile.getUid() );
             assertEquals( "janne", profile.getLoginName() );
             assertEquals( "Janne Jalkanen", profile.getFullname() );
             assertEquals( "JanneJalkanen", profile.getWikiName() );
@@ -196,7 +196,7 @@
         try
         {
             UserProfile profile = m_db.findByFullName( "Janne Jalkanen" );
-            assertEquals( -7739839977499061014L, profile.getUid() );
+            assertEquals( "-7739839977499061014", profile.getUid() );
             assertEquals( "janne", profile.getLoginName() );
             assertEquals( "Janne Jalkanen", profile.getFullname() );
             assertEquals( "JanneJalkanen", profile.getWikiName() );
@@ -225,8 +225,8 @@
     {
         try
         {
-            UserProfile profile = m_db.findByUid( -7739839977499061014L );
-            assertEquals( -7739839977499061014L, profile.getUid() );
+            UserProfile profile = m_db.findByUid( "-7739839977499061014" );
+            assertEquals( "-7739839977499061014", profile.getUid() );
             assertEquals( "janne", profile.getLoginName() );
             assertEquals( "Janne Jalkanen", profile.getFullname() );
             assertEquals( "JanneJalkanen", profile.getWikiName() );
@@ -256,7 +256,7 @@
         try
         {
             UserProfile profile = m_db.findByWikiName( "JanneJalkanen" );
-            assertEquals( -7739839977499061014L, profile.getUid() );
+            assertEquals( "-7739839977499061014", profile.getUid() );
             assertEquals( "janne", profile.getLoginName() );
             assertEquals( "Janne Jalkanen", profile.getFullname() );
             assertEquals( "JanneJalkanen", profile.getWikiName() );
@@ -286,7 +286,7 @@
         try
         {
             UserProfile profile = m_db.findByLoginName( "janne" );
-            assertEquals( -7739839977499061014L, profile.getUid() );
+            assertEquals( "-7739839977499061014", profile.getUid() );
             assertEquals( "janne", profile.getLoginName() );
             assertEquals( "Janne Jalkanen", profile.getFullname() );
             assertEquals( "JanneJalkanen", profile.getWikiName() );

Modified: incubator/jspwiki/branches/JSPWIKI_2_9_STRIPES_BRANCH/tests/com/ecyrd/jspwiki/auth/user/UserProfileTest.java
URL: http://svn.apache.org/viewvc/incubator/jspwiki/branches/JSPWIKI_2_9_STRIPES_BRANCH/tests/com/ecyrd/jspwiki/auth/user/UserProfileTest.java?rev=692770&r1=692769&r2=692770&view=diff
==============================================================================
--- incubator/jspwiki/branches/JSPWIKI_2_9_STRIPES_BRANCH/tests/com/ecyrd/jspwiki/auth/user/UserProfileTest.java (original)
+++ incubator/jspwiki/branches/JSPWIKI_2_9_STRIPES_BRANCH/tests/com/ecyrd/jspwiki/auth/user/UserProfileTest.java Sat Sep  6 20:32:08 2008
@@ -82,9 +82,9 @@
     public void testSetUid()
     {
         UserProfile p = m_db.newProfile();
-        assertNotSame( 1234567890, p.getUid() );
-        p.setUid( 1234567890 );
-        assertEquals( 1234567890, p.getUid() );
+        assertNotSame( "1234567890", p.getUid() );
+        p.setUid( "1234567890" );
+        assertEquals( "1234567890", p.getUid() );
     }
 
     public void testEquals()

Modified: incubator/jspwiki/branches/JSPWIKI_2_9_STRIPES_BRANCH/tests/com/ecyrd/jspwiki/auth/user/XMLUserDatabaseTest.java
URL: http://svn.apache.org/viewvc/incubator/jspwiki/branches/JSPWIKI_2_9_STRIPES_BRANCH/tests/com/ecyrd/jspwiki/auth/user/XMLUserDatabaseTest.java?rev=692770&r1=692769&r2=692770&view=diff
==============================================================================
--- incubator/jspwiki/branches/JSPWIKI_2_9_STRIPES_BRANCH/tests/com/ecyrd/jspwiki/auth/user/XMLUserDatabaseTest.java (original)
+++ incubator/jspwiki/branches/JSPWIKI_2_9_STRIPES_BRANCH/tests/com/ecyrd/jspwiki/auth/user/XMLUserDatabaseTest.java Sat Sep  6 20:32:08 2008
@@ -102,7 +102,7 @@
     try
     {
         UserProfile profile = m_db.findByEmail("janne@ecyrd.com");
-        assertEquals( -7739839977499061014L, profile.getUid() );
+        assertEquals( "-7739839977499061014", profile.getUid() );
         assertEquals("janne",           profile.getLoginName());
         assertEquals("Janne Jalkanen",  profile.getFullname());
         assertEquals("JanneJalkanen",   profile.getWikiName());
@@ -130,7 +130,7 @@
       try
       {
           UserProfile profile = m_db.findByFullName( "Janne Jalkanen" );
-          assertEquals( -7739839977499061014L, profile.getUid() );
+          assertEquals( "-7739839977499061014", profile.getUid() );
           assertEquals( "janne", profile.getLoginName() );
           assertEquals( "Janne Jalkanen", profile.getFullname() );
           assertEquals( "JanneJalkanen", profile.getWikiName() );
@@ -159,8 +159,8 @@
   {
       try
       {
-          UserProfile profile = m_db.findByUid( -7739839977499061014L );
-          assertEquals( -7739839977499061014L, profile.getUid() );
+          UserProfile profile = m_db.findByUid( "-7739839977499061014" );
+          assertEquals( "-7739839977499061014", profile.getUid() );
           assertEquals( "janne", profile.getLoginName() );
           assertEquals( "Janne Jalkanen", profile.getFullname() );
           assertEquals( "JanneJalkanen", profile.getWikiName() );
@@ -190,7 +190,7 @@
       try
       {
           UserProfile profile = m_db.findByWikiName("JanneJalkanen");
-          assertEquals( -7739839977499061014L, profile.getUid() );
+          assertEquals( "-7739839977499061014", profile.getUid() );
           assertEquals("janne",           profile.getLoginName());
           assertEquals("Janne Jalkanen",  profile.getFullname());
           assertEquals("JanneJalkanen",   profile.getWikiName());
@@ -218,7 +218,7 @@
       try
       {
           UserProfile profile = m_db.findByLoginName("janne");
-          assertEquals( -7739839977499061014L, profile.getUid() );
+          assertEquals( "-7739839977499061014", profile.getUid() );
           assertEquals("janne",           profile.getLoginName());
           assertEquals("Janne Jalkanen",  profile.getFullname());
           assertEquals("JanneJalkanen",   profile.getWikiName());

Modified: incubator/jspwiki/branches/JSPWIKI_2_9_STRIPES_BRANCH/tests/com/ecyrd/jspwiki/search/SearchManagerTest.java
URL: http://svn.apache.org/viewvc/incubator/jspwiki/branches/JSPWIKI_2_9_STRIPES_BRANCH/tests/com/ecyrd/jspwiki/search/SearchManagerTest.java?rev=692770&r1=692769&r2=692770&view=diff
==============================================================================
--- incubator/jspwiki/branches/JSPWIKI_2_9_STRIPES_BRANCH/tests/com/ecyrd/jspwiki/search/SearchManagerTest.java (original)
+++ incubator/jspwiki/branches/JSPWIKI_2_9_STRIPES_BRANCH/tests/com/ecyrd/jspwiki/search/SearchManagerTest.java Sat Sep  6 20:32:08 2008
@@ -61,7 +61,7 @@
 
         Thread.yield();
 
-        Thread.sleep( 5000L ); // Should cover for both index and initial delay
+        Thread.sleep( 10000L ); // Should cover for both index and initial delay
         
         Collection res = m_mgr.findPages( "mankind" );
      
@@ -82,7 +82,7 @@
         
         Thread.yield();
 
-        Thread.sleep( 2000L ); // Should cover for both index and initial delay
+        Thread.sleep( 10000L ); // Should cover for both index and initial delay
     
         Collection res = m_mgr.findPages( "mankind" );
  
@@ -108,7 +108,7 @@
      
         Thread.yield();
 
-        Thread.sleep( 2000L ); // Should cover for both index and initial delay
+        Thread.sleep( 10000L ); // Should cover for both index and initial delay
  
         Collection res = m_mgr.findPages( "mankind" );
 
@@ -131,7 +131,7 @@
      
         Thread.yield();
 
-        Thread.sleep( 2000L ); // Should cover for both index and initial delay
+        Thread.sleep( 5000L ); // Should cover for both index and initial delay
  
         Collection res = m_mgr.findPages( "Test" );
 
@@ -150,7 +150,7 @@
  
         Thread.yield();
 
-        Thread.sleep( 2000L ); // Should cover for both index and initial delay
+        Thread.sleep( 5000L ); // Should cover for both index and initial delay
 
         Collection res = m_mgr.findPages( "TestPage" );
 

Modified: incubator/jspwiki/branches/JSPWIKI_2_9_STRIPES_BRANCH/tests/com/ecyrd/jspwiki/ui/InputValidatorTest.java
URL: http://svn.apache.org/viewvc/incubator/jspwiki/branches/JSPWIKI_2_9_STRIPES_BRANCH/tests/com/ecyrd/jspwiki/ui/InputValidatorTest.java?rev=692770&r1=692769&r2=692770&view=diff
==============================================================================
--- incubator/jspwiki/branches/JSPWIKI_2_9_STRIPES_BRANCH/tests/com/ecyrd/jspwiki/ui/InputValidatorTest.java (original)
+++ incubator/jspwiki/branches/JSPWIKI_2_9_STRIPES_BRANCH/tests/com/ecyrd/jspwiki/ui/InputValidatorTest.java Sat Sep  6 20:32:08 2008
@@ -12,7 +12,8 @@
 import junit.framework.TestSuite;
 
 import com.ecyrd.jspwiki.TestEngine;
-import com.ecyrd.jspwiki.WikiSession;
+import com.ecyrd.jspwiki.WikiContext;
+import com.ecyrd.jspwiki.WikiPage;
 
 public class InputValidatorTest extends TestCase
 {
@@ -27,8 +28,8 @@
         Properties props = new Properties();
         props.load( TestEngine.findTestProperties() );
         testEngine = new TestEngine( props );
-        WikiSession session = WikiSession.getWikiSession( testEngine, testEngine.newHttpRequest() );
-        val = new InputValidator( TEST, session );
+        WikiContext context = testEngine.getWikiActionBeanFactory().newViewActionBean( null, null, new WikiPage(testEngine,"dummyPage") );
+        val = new InputValidator( TEST, context );
     }
 
     public void testUnsafePattern()

Added: incubator/jspwiki/branches/JSPWIKI_2_9_STRIPES_BRANCH/tests/com/ecyrd/jspwiki/util/UtilJ2eeCompatTest.java
URL: http://svn.apache.org/viewvc/incubator/jspwiki/branches/JSPWIKI_2_9_STRIPES_BRANCH/tests/com/ecyrd/jspwiki/util/UtilJ2eeCompatTest.java?rev=692770&view=auto
==============================================================================
--- incubator/jspwiki/branches/JSPWIKI_2_9_STRIPES_BRANCH/tests/com/ecyrd/jspwiki/util/UtilJ2eeCompatTest.java (added)
+++ incubator/jspwiki/branches/JSPWIKI_2_9_STRIPES_BRANCH/tests/com/ecyrd/jspwiki/util/UtilJ2eeCompatTest.java Sat Sep  6 20:32:08 2008
@@ -0,0 +1,53 @@
+/* 
+    JSPWiki - a JSP-based WikiWiki clone.
+
+    Licensed to the Apache Software Foundation (ASF) under one
+    or more contributor license agreements.  See the NOTICE file
+    distributed with this work for additional information
+    regarding copyright ownership.  The ASF licenses this file
+    to you under the Apache License, Version 2.0 (the
+    "License"); you may not use this file except in compliance
+    with the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing,
+    software distributed under the License is distributed on an
+    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+    KIND, either express or implied.  See the License for the
+    specific language governing permissions and limitations
+    under the License.  
+ */
+package com.ecyrd.jspwiki.util;
+
+import junit.framework.Test;
+import junit.framework.TestCase;
+import junit.framework.TestSuite;
+import com.ecyrd.jspwiki.util.UtilJ2eeCompat;
+
+public class UtilJ2eeCompatTest extends TestCase
+{
+
+    public void testOracle()
+    {
+        assertTrue( UtilJ2eeCompat.useOutputStream( "Oracle Containers for J2EE 10g(10.1.3.1.0 )", true ) );
+        // Do not reinitialize
+        assertTrue( UtilJ2eeCompat.useOutputStream( "Apache Tomcat/5.5.20" ) );
+    }
+
+    public void testGlassfish()
+    {
+        assertTrue( UtilJ2eeCompat.useOutputStream( "Sun Java System Application Server 9.1_02" ) );
+    }
+
+    public void testTomcat()
+    {
+        // Reinitialize
+        assertFalse( UtilJ2eeCompat.useOutputStream( "Apache Tomcat/5.5.20", true ) );
+    }
+
+    public static Test suite()
+    {
+        return new TestSuite( UtilJ2eeCompatTest.class );
+    }
+}

Modified: incubator/jspwiki/branches/JSPWIKI_2_9_STRIPES_BRANCH/tests/etc/selenium/readme.txt
URL: http://svn.apache.org/viewvc/incubator/jspwiki/branches/JSPWIKI_2_9_STRIPES_BRANCH/tests/etc/selenium/readme.txt?rev=692770&r1=692769&r2=692770&view=diff
==============================================================================
--- incubator/jspwiki/branches/JSPWIKI_2_9_STRIPES_BRANCH/tests/etc/selenium/readme.txt (original)
+++ incubator/jspwiki/branches/JSPWIKI_2_9_STRIPES_BRANCH/tests/etc/selenium/readme.txt Sat Sep  6 20:32:08 2008
@@ -22,7 +22,7 @@
 
 Start the Selenium server...
 
-java -jar tests/lib/selenium-server-0.9.2-patched.jar -interactive
+java -jar tests/lib/selenium-server-1.0-beta1.jar -interactive
 
 Open Firefox.
 Set the browser proxy to localhost:4444
@@ -33,7 +33,7 @@
 CREATING TESTS
 --------------
 Selenium-IDE is the preferred way to create test files. The master
-test suite file is tests/etc/selenium/tests/JSPWikiTestSuite.html.
+test suite file is tests/etc/selenium/tests/TestSuite.html.
 
 You can add a new test file (such as one recorded in Selenium-IDE) to
 the suite file by appending a table row like this:

Modified: incubator/jspwiki/branches/JSPWIKI_2_9_STRIPES_BRANCH/tests/etc/selenium/tests/all/TestSuite.html
URL: http://svn.apache.org/viewvc/incubator/jspwiki/branches/JSPWIKI_2_9_STRIPES_BRANCH/tests/etc/selenium/tests/all/TestSuite.html?rev=692770&r1=692769&r2=692770&view=diff
==============================================================================
--- incubator/jspwiki/branches/JSPWIKI_2_9_STRIPES_BRANCH/tests/etc/selenium/tests/all/TestSuite.html (original)
+++ incubator/jspwiki/branches/JSPWIKI_2_9_STRIPES_BRANCH/tests/etc/selenium/tests/all/TestSuite.html Sat Sep  6 20:32:08 2008
@@ -45,9 +45,12 @@
         <tr><td><a href="./CreateGroupLoginName.html">Create Group (LoginName)</a></td></tr>
         <tr><td><a href="./CreateGroupWikiName.html">Create Group (WikiName)</a></td></tr>
         
-        <!-- User profile/preferences tests -->
-        <tr><td><a href="./RenameProfile.html">Rename Profile</a></td></tr>
-
+        <!-- User profile/preferences tests -->
+        <tr><td><a href="./RenameProfile.html">Rename Profile</a></td></tr>
+
+        <!-- View Page Source Test -->
+        <tr><td><a href="./ViewPageSource.html">View Page Source</a></td></tr>
+
         </tbody>
     </table>
 

Added: incubator/jspwiki/branches/JSPWIKI_2_9_STRIPES_BRANCH/tests/etc/selenium/tests/all/ViewPageSource.html
URL: http://svn.apache.org/viewvc/incubator/jspwiki/branches/JSPWIKI_2_9_STRIPES_BRANCH/tests/etc/selenium/tests/all/ViewPageSource.html?rev=692770&view=auto
==============================================================================
--- incubator/jspwiki/branches/JSPWIKI_2_9_STRIPES_BRANCH/tests/etc/selenium/tests/all/ViewPageSource.html (added)
+++ incubator/jspwiki/branches/JSPWIKI_2_9_STRIPES_BRANCH/tests/etc/selenium/tests/all/ViewPageSource.html Sat Sep  6 20:32:08 2008
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head profile="http://selenium-ide.openqa.org/profiles/test-case">
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+<link rel="selenium.base" href="" />
+<title>ViewPageSource</title>
+</head>
+<body>
+<table cellpadding="1" cellspacing="1" border="1">
+<thead>
+<tr><td rowspan="1" colspan="3">ViewPageSource</td></tr>
+</thead><tbody>
+    <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>
+	<tr><td>verifyTextPresent</td>	<td>You have successfully installed</td>								<td>&nbsp;</td></tr>
+	<tr><td rowspan="1" colspan="3"> Simply do View Page Source and check if you get it<br/></td>						</tr>
+    <tr><td>open</td>							<td>${baseUrl}/Wiki.jsp?page=Main&skin=raw</td>			<td>&nbsp;</td></tr>
+	<tr><td>verifyTextPresent</td>	<td>You have successfully installed [JSPWiki|About].</td>	<td>&nbsp;</td></tr>
+</tbody></table>
+</body>
+</html>