001: package com.ecyrd.jspwiki.render;
002:
003: import java.io.IOException;
004: import java.io.StringReader;
005: import java.util.Properties;
006:
007: import junit.framework.Test;
008: import junit.framework.TestCase;
009: import junit.framework.TestSuite;
010:
011: import com.ecyrd.jspwiki.TestEngine;
012: import com.ecyrd.jspwiki.WikiContext;
013: import com.ecyrd.jspwiki.WikiPage;
014: import com.ecyrd.jspwiki.parser.JSPWikiMarkupParser;
015: import com.ecyrd.jspwiki.parser.WikiDocument;
016:
017: public class WysiwygEditingRendererTest extends TestCase {
018: protected TestEngine m_testEngine;
019:
020: protected void setUp() throws Exception {
021: Properties props = new Properties();
022: props.load(TestEngine.findTestProperties());
023: m_testEngine = new TestEngine(props);
024: super .setUp();
025:
026: m_testEngine
027: .saveText("WysiwygEditingRendererTest", "test page");
028: m_testEngine.saveText("This Pagename Has Spaces",
029: "This Pagename Has Spaces");
030: }
031:
032: public void tearDown() {
033: TestEngine.deleteTestPage("WysiwygEditingRendererTest");
034: TestEngine.deleteTestPage("This Pagename Has Spaces");
035: }
036:
037: private String render(String s) throws IOException {
038: WikiPage dummyPage = new WikiPage(m_testEngine, "TestPage");
039: WikiContext ctx = new WikiContext(m_testEngine, dummyPage);
040:
041: StringReader in = new StringReader(s);
042:
043: JSPWikiMarkupParser p = new JSPWikiMarkupParser(ctx, in);
044: WikiDocument d = p.parse();
045:
046: WysiwygEditingRenderer wer = new WysiwygEditingRenderer(ctx, d);
047:
048: return wer.getString();
049: }
050:
051: public void testDefinedPageLink() throws Exception {
052: String src = "[WysiwygEditingRendererTest]";
053: assertEquals(
054: "<a class=\"wikipage\" href=\"WysiwygEditingRendererTest\">WysiwygEditingRendererTest</a>",
055: render(src));
056:
057: src = "[WysiwygEditingRendererTest#Footnotes]";
058: assertEquals(
059: "<a class=\"wikipage\" href=\"WysiwygEditingRendererTest#Footnotes\">WysiwygEditingRendererTest#Footnotes</a>",
060: render(src));
061:
062: src = "[test page|WysiwygEditingRendererTest|class='notWikipageClass']";
063: assertEquals(
064: "<a class=\"notWikipageClass\" href=\"WysiwygEditingRendererTest\">test page</a>",
065: render(src));
066:
067: src = "[This Pagename Has Spaces]";
068: assertEquals(
069: "<a class=\"wikipage\" href=\"This Pagename Has Spaces\">This Pagename Has Spaces</a>",
070: render(src));
071: }
072:
073: public void testUndefinedPageLink() throws Exception {
074: String src = "[UndefinedPageLinkHere]";
075: assertEquals(
076: "<a class=\"createpage\" href=\"UndefinedPageLinkHere\">UndefinedPageLinkHere</a>",
077: render(src));
078:
079: src = "[UndefinedPageLinkHere#SomeSection]";
080: assertEquals(
081: "<a class=\"createpage\" href=\"UndefinedPageLinkHere\">UndefinedPageLinkHere#SomeSection</a>",
082: render(src));
083:
084: src = "[test page|UndefinedPageLinkHere|class='notEditpageClass']";
085: assertEquals(
086: "<a class=\"notEditpageClass\" href=\"UndefinedPageLinkHere\">test page</a>",
087: render(src));
088:
089: src = "[Non-existent Pagename with Spaces]";
090: assertEquals(
091: "<a class=\"createpage\" href=\"Non-existent Pagename with Spaces\">Non-existent Pagename with Spaces</a>",
092: render(src));
093: }
094:
095: public static Test suite() {
096: TestSuite suite = new TestSuite(
097: WysiwygEditingRendererTest.class);
098:
099: return suite;
100: }
101:
102: }
|