// $Id: UseModFilterTest.java,v 1.1 2006/11/09 22:09:35 peter Exp $

package de.jalin.jspwiki.filter.test;

import junit.framework.TestCase;

import com.ecyrd.jspwiki.filters.FilterException;
import com.ecyrd.jspwiki.filters.PageFilter;

import de.jalin.jspwiki.filter.UseModFilter;

public class UseModFilterTest extends TestCase
{

    protected void setUp() throws Exception
    {
        super.setUp();
    }

    protected void tearDown() throws Exception
    {
        super.tearDown();
    }

    public void testPreTranslateTitle()
    {
        PageFilter useModFilter = new UseModFilter();
        try
        {
            assertEquals("*Item\n", useModFilter.preTranslate(null, "*Item\n"));
            assertEquals("__Item__\n", useModFilter.preTranslate(null, "====Item====\n"));
            assertEquals("!! Title\n", useModFilter.preTranslate(null, "!! Title\n"));
            assertEquals("!!!Title\n", useModFilter.preTranslate(null, "=Title=\n"));
            assertEquals("!!!Title \nText.\n", useModFilter.preTranslate(null, "=Title\n=\nText.\n"));
            assertEquals("!!!Title Title\n", useModFilter.preTranslate(null, "=Title\nTitle=\n"));
            assertEquals("! SubSubtitle \n", useModFilter.preTranslate(null, "=== SubSubtitle ===\n"));
            assertEquals("!! Subtitle \n", useModFilter.preTranslate(null, "== Subtitle ==\n"));
            assertEquals("== Subtitle =\n", useModFilter.preTranslate(null, "== Subtitle =\n"));
            assertEquals("== Subtitle\n", useModFilter.preTranslate(null, "== Subtitle\n"));
            assertEquals("== Subtitle Text1 Text2 Text3\n", useModFilter.preTranslate(null, "== Subtitle\nText1\nText2\nText3\n"));
        }
        catch (FilterException e)
        {
            fail(e.getMessage());
        }
    }

    public void testPreTranslateItemize()
    {
        PageFilter useModFilter = new UseModFilter();
        try
        {
            assertEquals("*Item\n", useModFilter.preTranslate(null, "*Item\n"));
            assertEquals("*Item Item\n", useModFilter.preTranslate(null, "*Item\nItem\n"));
            assertEquals("*Item Item\n*Item\n", useModFilter.preTranslate(null, "*Item\nItem\n*Item\n"));
            assertEquals("#Item\n", useModFilter.preTranslate(null, "#Item\n"));
            assertEquals("#Item Item\n", useModFilter.preTranslate(null, "#Item\nItem\n"));
            assertEquals("#Item __Item__\n", useModFilter.preTranslate(null, "#Item\n'''Item'''\n"));
            assertEquals("#Item Item\n\nItem\n", useModFilter.preTranslate(null, "#Item\nItem\n\nItem\n"));
            assertEquals("*__Item__ Item\n#Item\n", useModFilter.preTranslate(null, "*'''Item'''\nItem\n#Item\n"));
        }
        catch (FilterException e)
        {
            fail(e.getMessage());
        }
    }

    public void testPreTranslateBoldItalics()
    {
        PageFilter useModFilter = new UseModFilter();
        try
        {
            assertEquals("*__''Item''__\n", useModFilter.preTranslate(null, "*'''''Item'''''\n"));
            assertEquals("__Item__\n", useModFilter.preTranslate(null, "'''Item'''\n"));
            assertEquals("!!!Title \n__Text__.\n", useModFilter.preTranslate(null, "=Title\n=\n'''Text'''.\n"));
        }
        catch (FilterException e)
        {
            fail(e.getMessage());
        }
    }

    public void testPreTranslatePre()
    {
        PageFilter useModFilter = new UseModFilter();
        try
        {
            assertEquals("{{{\n$ cat file.txt\n}}}\n", useModFilter.preTranslate(null, "<pre>\n$ cat file.txt\n</pre>\n"));
            assertEquals("{{{\n==Header==\n}}}\n", useModFilter.preTranslate(null, "<pre>\n==Header==\n</pre>\n"));
            assertEquals("{{{\n==Header==\n}}}\n", useModFilter.preTranslate(null, "{{{\n==Header==\n}}}\n"));
            assertEquals("__{{{Item}}}__\n", useModFilter.preTranslate(null, "'''<pre>Item</pre>'''\n"));
            assertEquals("{{{\n  Item\n  Item\n}}}\n", useModFilter.preTranslate(null, "  Item\n  Item\n"));
            assertEquals("{{{\n  Item\n  Item Item\n}}}\n", useModFilter.preTranslate(null, "  Item\n  Item\nItem\n"));
        }
        catch (FilterException e)
        {
            fail(e.getMessage());
        }
    }

    public void testPreTranslateIndent()
    {
        PageFilter useModFilter = new UseModFilter();
        try
        {
            assertEquals("%%(margin-bottom: 12pt; margin-top: 12pt; margin-left: 24pt)\nMein Kommentar\n%%\n", useModFilter.preTranslate(null, ":Mein Kommentar\n"));
            assertEquals("%%(margin-bottom: 12pt; margin-top: 12pt; margin-left: 48pt)\nMein Kommentar\n%%\n", useModFilter.preTranslate(null, "::Mein Kommentar\n"));
            assertEquals("%%(margin-bottom: 12pt; margin-top: 12pt; margin-left: 48pt)\nKommentar Eins\n%%\n%%(margin-bottom: 12pt; margin-top: 12pt; margin-left: 72pt)\nKommentar Zwo\n%%\n", useModFilter.preTranslate(null, "::Kommentar Eins\n:::Kommentar Zwo\n"));
            assertEquals("%%(margin-bottom: 12pt; margin-top: 12pt; margin-left: 48pt)\nMein Kommentar\nmit Folgezeile\n%%\n", useModFilter.preTranslate(null, "::Mein Kommentar\nmit Folgezeile\n"));
        }
        catch (FilterException e)
        {
            fail(e.getMessage());
        }
    }
    
    public void testPreTranslateLink() {
        PageFilter useModFilter = new UseModFilter();
        try
        {
            assertEquals("Der Link ist [http://www.hormanns-wenz.de]\n", useModFilter.preTranslate(null, "Der Link ist http://www.hormanns-wenz.de\n"));
            assertEquals("Unsere [Homepage|http://www.hormanns-wenz.de]\n", useModFilter.preTranslate(null, "Unsere [http://www.hormanns-wenz.de Homepage]\n"));
            assertEquals("Unsere [Homepage|http://www.hormanns-wenz.de]\n", useModFilter.preTranslate(null, "Unsere [http://www.hormanns-wenz.de\nHomepage]\n"));
            assertEquals("\n{{{\n  deb http://ftp.freenet.de/debian/ woody main non-free contrib\n}}}\n", useModFilter.preTranslate(null, "\n  deb http://ftp.freenet.de/debian/ woody main non-free contrib\n"));
            assertEquals("Der Link ist [http://www.hormanns-wenz.de]\n", useModFilter.preTranslate(null, "Der Link ist [http://www.hormanns-wenz.de]\n"));
            assertEquals("Unsere [tolle Homepage|http://www.hormanns-wenz.de]\n", useModFilter.preTranslate(null, "Unsere [tolle Homepage|http://www.hormanns-wenz.de]\n"));
        }
        catch (FilterException e)
        {
            fail(e.getMessage());
        }
    }

}
//
// $Log: UseModFilterTest.java,v $
// Revision 1.1  2006/11/09 22:09:35  peter
// Diese Version taugt schon was...
//
//