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;
+ }
+
}