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 <[email protected]> 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; + } + }
