You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jspwiki.apache.org by me...@apache.org on 2009/02/09 20:37:03 UTC
svn commit: r742695 - in /incubator/jspwiki/branches/JSPWIKI_2_8_BRANCH: ./
src/com/ecyrd/jspwiki/ src/com/ecyrd/jspwiki/plugin/
tests/com/ecyrd/jspwiki/plugin/
Author: metskem
Date: Mon Feb 9 19:37:02 2009
New Revision: 742695
URL: http://svn.apache.org/viewvc?rev=742695&view=rev
Log:
2.8.2-svn-10 JSPWIKI-496 RecentChangesPlugin should filter pages
Added:
incubator/jspwiki/branches/JSPWIKI_2_8_BRANCH/tests/com/ecyrd/jspwiki/plugin/RecentChangesPluginTest.java
Modified:
incubator/jspwiki/branches/JSPWIKI_2_8_BRANCH/ChangeLog
incubator/jspwiki/branches/JSPWIKI_2_8_BRANCH/src/com/ecyrd/jspwiki/Release.java
incubator/jspwiki/branches/JSPWIKI_2_8_BRANCH/src/com/ecyrd/jspwiki/plugin/AbstractReferralPlugin.java
incubator/jspwiki/branches/JSPWIKI_2_8_BRANCH/src/com/ecyrd/jspwiki/plugin/RecentChangesPlugin.java
incubator/jspwiki/branches/JSPWIKI_2_8_BRANCH/tests/com/ecyrd/jspwiki/plugin/AllTests.java
Modified: incubator/jspwiki/branches/JSPWIKI_2_8_BRANCH/ChangeLog
URL: http://svn.apache.org/viewvc/incubator/jspwiki/branches/JSPWIKI_2_8_BRANCH/ChangeLog?rev=742695&r1=742694&r2=742695&view=diff
==============================================================================
--- incubator/jspwiki/branches/JSPWIKI_2_8_BRANCH/ChangeLog (original)
+++ incubator/jspwiki/branches/JSPWIKI_2_8_BRANCH/ChangeLog Mon Feb 9 19:37:02 2009
@@ -1,3 +1,9 @@
+2009-02-09 Harry Metske <me...@apache.org>
+
+ * 2.8.2-svn-10
+
+ * JSPWIKI-496 RecentChangesPlugin should filter pages
+
2009-02-06 Harry Metske <me...@apache.org>
* 2.8.2-svn-9
Modified: incubator/jspwiki/branches/JSPWIKI_2_8_BRANCH/src/com/ecyrd/jspwiki/Release.java
URL: http://svn.apache.org/viewvc/incubator/jspwiki/branches/JSPWIKI_2_8_BRANCH/src/com/ecyrd/jspwiki/Release.java?rev=742695&r1=742694&r2=742695&view=diff
==============================================================================
--- incubator/jspwiki/branches/JSPWIKI_2_8_BRANCH/src/com/ecyrd/jspwiki/Release.java (original)
+++ incubator/jspwiki/branches/JSPWIKI_2_8_BRANCH/src/com/ecyrd/jspwiki/Release.java Mon Feb 9 19:37:02 2009
@@ -77,7 +77,7 @@
* <p>
* If the build identifier is empty, it is not added.
*/
- public static final String BUILD = "9";
+ public static final String BUILD = "10";
/**
* This is the generic version string you should use
Modified: incubator/jspwiki/branches/JSPWIKI_2_8_BRANCH/src/com/ecyrd/jspwiki/plugin/AbstractReferralPlugin.java
URL: http://svn.apache.org/viewvc/incubator/jspwiki/branches/JSPWIKI_2_8_BRANCH/src/com/ecyrd/jspwiki/plugin/AbstractReferralPlugin.java?rev=742695&r1=742694&r2=742695&view=diff
==============================================================================
--- incubator/jspwiki/branches/JSPWIKI_2_8_BRANCH/src/com/ecyrd/jspwiki/plugin/AbstractReferralPlugin.java (original)
+++ incubator/jspwiki/branches/JSPWIKI_2_8_BRANCH/src/com/ecyrd/jspwiki/plugin/AbstractReferralPlugin.java Mon Feb 9 19:37:02 2009
@@ -28,7 +28,6 @@
import org.apache.log4j.Logger;
import org.apache.oro.text.GlobCompiler;
import org.apache.oro.text.regex.*;
-
import com.ecyrd.jspwiki.*;
import com.ecyrd.jspwiki.parser.MarkupParser;
import com.ecyrd.jspwiki.parser.WikiDocument;
@@ -230,13 +229,22 @@
*/
protected Collection filterCollection( Collection c )
{
- ArrayList<String> result = new ArrayList<String>();
+ ArrayList<Object> result = new ArrayList<Object>();
PatternMatcher pm = new Perl5Matcher();
for( Iterator i = c.iterator(); i.hasNext(); )
{
- String pageName = (String) i.next();
+ String pageName = null;
+ Object objectje = i.next();
+ if( objectje instanceof WikiPage )
+ {
+ pageName = ((WikiPage) objectje).getName();
+ }
+ else
+ {
+ pageName = (String) objectje;
+ }
//
// If include parameter exists, then by default we include only those
@@ -272,7 +280,14 @@
if( includeThis )
{
- result.add( pageName );
+ if( objectje instanceof WikiPage )
+ {
+ result.add( objectje );
+ }
+ else
+ {
+ result.add( pageName );
+ }
//
// if we want to show the last modified date of the most recently change page, we keep a "high watermark" here:
WikiPage page = null;
Modified: incubator/jspwiki/branches/JSPWIKI_2_8_BRANCH/src/com/ecyrd/jspwiki/plugin/RecentChangesPlugin.java
URL: http://svn.apache.org/viewvc/incubator/jspwiki/branches/JSPWIKI_2_8_BRANCH/src/com/ecyrd/jspwiki/plugin/RecentChangesPlugin.java?rev=742695&r1=742694&r2=742695&view=diff
==============================================================================
--- incubator/jspwiki/branches/JSPWIKI_2_8_BRANCH/src/com/ecyrd/jspwiki/plugin/RecentChangesPlugin.java (original)
+++ incubator/jspwiki/branches/JSPWIKI_2_8_BRANCH/src/com/ecyrd/jspwiki/plugin/RecentChangesPlugin.java Mon Feb 9 19:37:02 2009
@@ -48,8 +48,7 @@
* </ul>
*
*/
-public class RecentChangesPlugin
- implements WikiPlugin
+public class RecentChangesPlugin extends AbstractReferralPlugin implements WikiPlugin
{
/** Parameter name for the separator format. Value is <tt>{@value}</tt>. */
public static final String PARAM_FORMAT = "format";
@@ -80,8 +79,7 @@
public String execute( WikiContext context, Map params )
throws PluginException
{
- int since = TextUtil.parseIntParameter( (String) params.get("since"),
- DEFAULT_DAYS );
+ int since = TextUtil.parseIntParameter( (String) params.get( "since" ), DEFAULT_DAYS );
int spacing = 4;
boolean showAuthor = true;
boolean showChangenote = true;
@@ -108,7 +106,9 @@
// FIXME: Should really have a since date on the getRecentChanges
// method.
Collection changes = engine.getRecentChanges();
-
+ super.initialize( context, params );
+ changes = super.filterCollection( changes );
+
if( changes != null )
{
Date olddate = new Date(0);
Modified: incubator/jspwiki/branches/JSPWIKI_2_8_BRANCH/tests/com/ecyrd/jspwiki/plugin/AllTests.java
URL: http://svn.apache.org/viewvc/incubator/jspwiki/branches/JSPWIKI_2_8_BRANCH/tests/com/ecyrd/jspwiki/plugin/AllTests.java?rev=742695&r1=742694&r2=742695&view=diff
==============================================================================
--- incubator/jspwiki/branches/JSPWIKI_2_8_BRANCH/tests/com/ecyrd/jspwiki/plugin/AllTests.java (original)
+++ incubator/jspwiki/branches/JSPWIKI_2_8_BRANCH/tests/com/ecyrd/jspwiki/plugin/AllTests.java Mon Feb 9 19:37:02 2009
@@ -25,6 +25,7 @@
suite.addTest( ReferringPagesPluginTest.suite() );
suite.addTest( TableOfContentsTest.suite() );
suite.addTest( UndefinedPagesPluginTest.suite() );
+ suite.addTest( RecentChangesPluginTest.suite() );
return suite;
}
Added: incubator/jspwiki/branches/JSPWIKI_2_8_BRANCH/tests/com/ecyrd/jspwiki/plugin/RecentChangesPluginTest.java
URL: http://svn.apache.org/viewvc/incubator/jspwiki/branches/JSPWIKI_2_8_BRANCH/tests/com/ecyrd/jspwiki/plugin/RecentChangesPluginTest.java?rev=742695&view=auto
==============================================================================
--- incubator/jspwiki/branches/JSPWIKI_2_8_BRANCH/tests/com/ecyrd/jspwiki/plugin/RecentChangesPluginTest.java (added)
+++ incubator/jspwiki/branches/JSPWIKI_2_8_BRANCH/tests/com/ecyrd/jspwiki/plugin/RecentChangesPluginTest.java Mon Feb 9 19:37:02 2009
@@ -0,0 +1,130 @@
+/*
+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.plugin;
+
+import java.util.Properties;
+
+import com.ecyrd.jspwiki.TestEngine;
+import com.ecyrd.jspwiki.WikiContext;
+import com.ecyrd.jspwiki.WikiPage;
+import com.ecyrd.jspwiki.plugin.PluginManager;
+
+import junit.framework.Test;
+import junit.framework.TestCase;
+import junit.framework.TestSuite;
+
+
+public class RecentChangesPluginTest extends TestCase
+{
+Properties props = new Properties();
+
+TestEngine engine;
+
+WikiContext context;
+
+PluginManager manager;
+
+public void setUp() throws Exception
+{
+ props.load( TestEngine.findTestProperties() );
+
+ engine = new TestEngine( props );
+
+ engine.saveText( "TestPage01", "Some Text for testing 01" );
+ engine.saveText( "TestPage02", "Some Text for testing 02" );
+ engine.saveText( "TestPage03", "Some Text for testing 03" );
+
+ manager = new PluginManager( engine, props );
+}
+
+public void tearDown()
+{
+ TestEngine.deleteTestPage( "TestPage01" );
+ TestEngine.deleteTestPage( "TestPage02" );
+ TestEngine.deleteTestPage( "TestPage03" );
+
+ TestEngine.emptyWorkDir();
+}
+
+/**
+ * Plain test without parameters
+ *
+ * @throws Exception
+ */
+public void testSimple() throws Exception
+{
+ context = new WikiContext( engine, new WikiPage(engine,"TestPage01") );
+
+ String res = manager.execute( context, "{INSERT com.ecyrd.jspwiki.plugin.RecentChangesPlugin}" );
+
+ // we don't want to compare the complete html returned, but check if certain Strings are present and other
+ // Strings are not present
+ assertTrue(res.contains( "<table cellpadding='4' class='recentchanges'>"));
+ assertTrue(res.contains( "<a href='/Wiki.jsp?page=TestPage01'>Test Page 01</a>" ));
+ assertTrue(res.contains( "<a href='/Wiki.jsp?page=TestPage02'>Test Page 02</a>" ));
+ assertTrue(res.contains( "<a href='/Wiki.jsp?page=TestPage03'>Test Page 03</a>" ));
+
+}
+
+/**
+ * Test with the include parameter
+ *
+ * @throws Exception
+ */
+public void testParmInClude() throws Exception
+{
+ context = new WikiContext( engine, new WikiPage(engine,"TestPage02") );
+
+ String res = manager.execute( context,
+ "{INSERT com.ecyrd.jspwiki.plugin.RecentChangesPlugin include='TestPage02*'}" );
+
+ assertTrue(res.contains( "<table cellpadding='4' class='recentchanges'>"));
+ assertFalse(res.contains( "<a href='/Wiki.jsp?page=TestPage01'>Test Page 01</a>" ));
+ assertTrue(res.contains( "<a href='/Wiki.jsp?page=TestPage02'>Test Page 02</a>" ));
+ assertFalse(res.contains( "<a href='/Wiki.jsp?page=TestPage03'>Test Page 03</a>" ));
+
+}
+
+/**
+ * Test with the exclude parameter
+ *
+ * @throws Exception
+ */
+public void testParmExClude() throws Exception
+{
+ context = new WikiContext( engine, new WikiPage(engine,"TestPage03") );
+
+ String res = manager.execute( context,
+ "{INSERT com.ecyrd.jspwiki.plugin.RecentChangesPlugin exclude='TestPage03*'}" );
+
+ assertTrue(res.contains( "<table cellpadding='4' class='recentchanges'>"));
+ assertTrue(res.contains( "<a href='/Wiki.jsp?page=TestPage01'>Test Page 01</a>" ));
+ assertTrue(res.contains( "<a href='/Wiki.jsp?page=TestPage02'>Test Page 02</a>" ));
+ assertFalse(res.contains( "<a href='/Wiki.jsp?page=TestPage03'>Test Page 03</a>" ));
+
+}
+
+public static Test suite()
+{
+ return new TestSuite( RecentChangesPluginTest.class );
+}
+}