You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jspwiki.apache.org by ja...@apache.org on 2008/12/04 09:59:30 UTC

svn commit: r723255 - /incubator/jspwiki/trunk/tests/com/ecyrd/jspwiki/plugin/DenouncePluginTest.java

Author: jalkanen
Date: Thu Dec  4 00:59:30 2008
New Revision: 723255

URL: http://svn.apache.org/viewvc?rev=723255&view=rev
Log:
[JSPWIKI-291] Added patch from Thomas Engelschmidt to replace ORO
regexp library with Java built-in regexps for DenouncePlugin, as well
as DenouncePluginTest.

Added:
    incubator/jspwiki/trunk/tests/com/ecyrd/jspwiki/plugin/DenouncePluginTest.java

Added: incubator/jspwiki/trunk/tests/com/ecyrd/jspwiki/plugin/DenouncePluginTest.java
URL: http://svn.apache.org/viewvc/incubator/jspwiki/trunk/tests/com/ecyrd/jspwiki/plugin/DenouncePluginTest.java?rev=723255&view=auto
==============================================================================
--- incubator/jspwiki/trunk/tests/com/ecyrd/jspwiki/plugin/DenouncePluginTest.java (added)
+++ incubator/jspwiki/trunk/tests/com/ecyrd/jspwiki/plugin/DenouncePluginTest.java Thu Dec  4 00:59:30 2008
@@ -0,0 +1,118 @@
+package com.ecyrd.jspwiki.plugin;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.Properties;
+
+import junit.framework.Test;
+import junit.framework.TestCase;
+import junit.framework.TestSuite;
+import net.sourceforge.stripes.mock.MockHttpServletRequest;
+
+import com.ecyrd.jspwiki.TestEngine;
+import com.ecyrd.jspwiki.WikiContext;
+
+public class DenouncePluginTest extends TestCase {
+    Properties props = new Properties();
+    TestEngine engine;
+    WikiContext context;
+    PluginManager manager;
+    Properties denounceProps;
+    private final String pluginCmdLine = "[{Denounce link='http://www.mobileasses.com' text='peoples asses'}]";
+
+    public DenouncePluginTest(String s) {
+        super(s);
+    }
+
+    public void setUp()
+            throws Exception {
+        props.load(TestEngine.findTestProperties());
+
+        engine = new TestEngine(props);
+        try {
+
+
+            ClassLoader loader = Denounce.class.getClassLoader();
+            InputStream in = loader.getResourceAsStream("com/ecyrd/jspwiki/plugin/denounce.properties");
+
+            if (in == null) {
+                throw new IOException("No property file found! (Check the installation, it should be there.)");
+            }
+            denounceProps = new Properties();
+            denounceProps.load(in);
+        } catch (IOException e) {
+            fail("failed to load denounce.properties");
+        }
+
+
+    }
+
+    private void setupHTTPRequest(String host, String header) {
+        MockHttpServletRequest request = engine.newHttpRequest();
+        if (header != null)
+            request.addHeader("User-Agent", header);
+        //if(host != null)
+
+        request.getParameterMap().put("page", new String[]{"TestPage"});
+        context = engine.createContext( request, WikiContext.VIEW );
+        manager = new PluginManager(engine, props);
+    }
+
+    public void tearDown() {
+        TestEngine.deleteTestPage("TestPage");
+        TestEngine.deleteTestPage("Foobar");
+        TestEngine.emptyWorkDir();
+    }
+
+    public void testSLURPBot() throws Exception {
+        setupHTTPRequest(null, "Slurp/2.1");
+        String res = manager.execute(context, pluginCmdLine);
+        assertEquals(getDenounceText(), res);
+        //
+        setupHTTPRequest(null, "ETSlurp/");
+        res = manager.execute(context, pluginCmdLine);
+        assertEquals(getDenounceText(), res);
+
+        setupHTTPRequest(null, "Slurp");
+        res = manager.execute(context, pluginCmdLine);
+        assertFalse(getDenounceText().equalsIgnoreCase(res));
+
+    }
+      public void testGoogleBotWithWrongCase() throws Exception {
+        setupHTTPRequest(null, "gOOglebot/2.1");
+        String res = manager.execute(context, pluginCmdLine);
+        assertFalse(getDenounceText().equalsIgnoreCase(res));
+      }
+    public void testGoogleBot() throws Exception {
+        setupHTTPRequest(null, "Googlebot/2.1");
+        String res = manager.execute(context, pluginCmdLine);
+        assertEquals(getDenounceText(), res);
+        //
+        setupHTTPRequest(null, "ETSGooglebot/2.1");
+        res = manager.execute(context, pluginCmdLine);
+        assertEquals(getDenounceText(), res);
+
+        setupHTTPRequest(null, "ETSGooglebot");
+        res = manager.execute(context, pluginCmdLine);
+        assertEquals(getDenounceText(), res);
+
+    }
+
+    public void testPlugin() throws Exception {
+        setupHTTPRequest(null, null);
+
+        String res = manager.execute(context, pluginCmdLine);
+
+        assertEquals("<a href=\"http://www.mobileasses.com\">peoples asses</a>", res);
+
+    }
+
+    private String getDenounceText() {
+        return denounceProps.getProperty("denounce.denouncetext");
+    }
+
+
+    public static Test suite() {
+        return new TestSuite(DenouncePluginTest.class);
+    }
+}
\ No newline at end of file