You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jspwiki.apache.org by ju...@apache.org on 2020/03/17 13:42:14 UTC

[jspwiki] 02/03: test whole page filter backwards compatibility

This is an automated email from the ASF dual-hosted git repository.

juanpablo pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/jspwiki.git

commit 8ea86d262f30edadb7908d442f7dce21b5934da6
Author: juanpablo <ju...@apache.org>
AuthorDate: Tue Mar 17 14:39:31 2020 +0100

    test whole page filter backwards compatibility
---
 .../org/apache/wiki/filters/FilterFrom210Test.java | 15 +++++++++----
 .../main/java/com/example/filters/TwoXFilter.java  | 26 +++++++++++++++++++++-
 2 files changed, 36 insertions(+), 5 deletions(-)

diff --git a/jspwiki-210-adapters/src/test/java/org/apache/wiki/filters/FilterFrom210Test.java b/jspwiki-210-adapters/src/test/java/org/apache/wiki/filters/FilterFrom210Test.java
index 0bf6fc3..c7c55a2 100644
--- a/jspwiki-210-adapters/src/test/java/org/apache/wiki/filters/FilterFrom210Test.java
+++ b/jspwiki-210-adapters/src/test/java/org/apache/wiki/filters/FilterFrom210Test.java
@@ -3,8 +3,8 @@ package org.apache.wiki.filters;
 import com.example.filters.TwoXFilter;
 import org.apache.wiki.TestEngine;
 import org.apache.wiki.WikiContext;
-import org.apache.wiki.WikiEngine;
 import org.apache.wiki.WikiPage;
+import org.apache.wiki.api.exceptions.WikiException;
 import org.apache.wiki.render.RenderingManager;
 import org.junit.jupiter.api.Assertions;
 import org.junit.jupiter.api.Test;
@@ -15,17 +15,24 @@ import java.util.Properties;
 public class FilterFrom210Test {
 
     @Test
-    public void testFilterNotUsingPublicApiStillWorks() {
+    public void testFilterNotUsingPublicApiStillWorks() throws WikiException {
         final Properties props = TestEngine.getTestProperties();
         // props.setProperty( FilterManager.PROP_FILTERXML, "filters.xml" );
-        final WikiEngine engine = TestEngine.build( props ); // trigger page filter#initialize
+        final TestEngine engine = TestEngine.build( props ); // trigger page filter#initialize
         final FilterManager fm = engine.getManager( FilterManager.class );
         final RenderingManager rm = engine.getManager( RenderingManager.class );
         Assertions.assertTrue( fm.getFilterList().stream().anyMatch( f -> f instanceof TwoXFilter ) );
 
+        engine.saveText( "Testpage", "Incredible and super important content here" ); // trigger pre / post methods
+        final TwoXFilter txf = ( TwoXFilter )fm.getFilterList().stream().filter( f -> f instanceof TwoXFilter ).findAny().get();
+        // post save triggers page references' update which in turn renders the page, which in turn triggers the preTranslate
+        // filter method, so we end up with 5 invocations to any given filter on a page save + 1 more from initialize
+        Assertions.assertEquals( 6, txf.invocations() );
+
         final WikiContext context = new WikiContext( engine, new WikiPage( engine, "Testpage" ) );
-        final String res = rm.textToHTML( context,"Incredible and super important content here" ); // trigger pre / post translate
+        final String res = rm.textToHTML( context,"Incredible and super important content here" ); // test only pre / post translate
         Assertions.assertEquals( "see how I care about yor content - hmmm...", res );
+
     }
 
 }
diff --git a/jspwiki-210-test-adaptees/src/main/java/com/example/filters/TwoXFilter.java b/jspwiki-210-test-adaptees/src/main/java/com/example/filters/TwoXFilter.java
index d0dfd38..b9d7fe6 100644
--- a/jspwiki-210-test-adaptees/src/main/java/com/example/filters/TwoXFilter.java
+++ b/jspwiki-210-test-adaptees/src/main/java/com/example/filters/TwoXFilter.java
@@ -11,18 +11,42 @@ import java.util.Properties;
 public class TwoXFilter extends BasicPageFilter {
 
     String newContent = "";
+    int invocations = 0;
 
     /** {@inheritDoc} */
     @Override
     public void initialize( final WikiEngine engine, final Properties properties ) throws FilterException {
         super.initialize( engine, properties );
-        newContent = "see how I care about yor content - hmmm...";
+        invocations++;
+    }
+
+    @Override
+    public String preTranslate( final WikiContext wikiContext, final String content ) throws FilterException {
+        invocations++;
+        return content;
     }
 
     /** {@inheritDoc} */
     @Override
     public String postTranslate( final WikiContext wikiContext, final String htmlContent ) {
+        invocations++;
+        newContent = "see how I care about yor content - hmmm...";
         return newContent;
     }
 
+    @Override
+    public String preSave( final WikiContext wikiContext, final String content ) throws FilterException {
+        invocations++;
+        return content;
+    }
+
+    @Override
+    public void postSave( final WikiContext wikiContext, final String content ) throws FilterException {
+        invocations++;
+    }
+
+    public int invocations() {
+        return invocations;
+    }
+
 }