test whole page filter backwards compatibility
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 @@
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 @@
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 @@
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;
+ }
+
}