📄 translatorreadertest.java
字号:
package com.ecyrd.jspwiki;import com.ecyrd.jspwiki.attachment.Attachment;import com.ecyrd.jspwiki.providers.*;import junit.framework.*;import java.io.*;import java.util.*;import javax.servlet.*;public class TranslatorReaderTest extends TestCase{ Properties props = new Properties(); Vector created = new Vector(); static final String PAGE_NAME = "testpage"; TestEngine testEngine; public TranslatorReaderTest( String s ) { super( s ); } public void setUp() throws Exception { props.load( TestEngine.findTestProperties() ); props.setProperty( "jspwiki.translatorReader.matchEnglishPlurals", "true" ); testEngine = new TestEngine( props ); } public void tearDown() { deleteCreatedPages(); } private void newPage( String name ) { testEngine.saveText( name, "<test>" ); created.addElement( name ); } private void deleteCreatedPages() { for( Iterator i = created.iterator(); i.hasNext(); ) { String name = (String) i.next(); testEngine.deletePage(name); } created.clear(); } private String translate( String src ) throws IOException, NoRequiredPropertyException, ServletException { WikiContext context = new WikiContext( testEngine, PAGE_NAME ); Reader r = new TranslatorReader( context, new BufferedReader( new StringReader(src)) ); StringWriter out = new StringWriter(); int c; while( ( c=r.read()) != -1 ) { out.write( c ); } return out.toString(); } public void testHyperlinks2() throws Exception { newPage("Hyperlink"); String src = "This should be a [hyperlink]"; assertEquals( "This should be a <A CLASS=\"wikipage\" HREF=\"Wiki.jsp?page=Hyperlink\">hyperlink</A>", translate(src) ); } public void testHyperlinks3() throws Exception { newPage("HyperlinkToo"); String src = "This should be a [hyperlink too]"; assertEquals( "This should be a <A CLASS=\"wikipage\" HREF=\"Wiki.jsp?page=HyperlinkToo\">hyperlink too</A>", translate(src) ); } public void testHyperlinks4() throws Exception { newPage("HyperLink"); String src = "This should be a [HyperLink]"; assertEquals( "This should be a <A CLASS=\"wikipage\" HREF=\"Wiki.jsp?page=HyperLink\">HyperLink</A>", translate(src) ); } public void testHyperlinks5() throws Exception { newPage("HyperLink"); String src = "This should be a [here|HyperLink]"; assertEquals( "This should be a <A CLASS=\"wikipage\" HREF=\"Wiki.jsp?page=HyperLink\">here</A>", translate(src) ); } // // Testing CamelCase hyperlinks // public void testHyperLinks6() throws Exception { newPage("DiscussionAboutWiki"); newPage("WikiMarkupDevelopment"); String src = "[DiscussionAboutWiki] [WikiMarkupDevelopment]."; assertEquals( "<A CLASS=\"wikipage\" HREF=\"Wiki.jsp?page=DiscussionAboutWiki\">DiscussionAboutWiki</A> <A CLASS=\"wikipage\" HREF=\"Wiki.jsp?page=WikiMarkupDevelopment\">WikiMarkupDevelopment</A>.", translate(src) ); } public void testHyperlinksCC() throws Exception { newPage("HyperLink"); String src = "This should be a HyperLink."; assertEquals( "This should be a <A CLASS=\"wikipage\" HREF=\"Wiki.jsp?page=HyperLink\">HyperLink</A>.", translate(src) ); } public void testHyperlinksCCNonExistant() throws Exception { String src = "This should be a HyperLink."; assertEquals( "This should be a <U>HyperLink</U><A HREF=\"Edit.jsp?page=HyperLink\">?</A>.", translate(src) ); } /** * Check if the CC hyperlink translator gets confused with * unorthodox bracketed links. */ public void testHyperlinksCC2() throws Exception { newPage("HyperLink"); String src = "This should be a [ HyperLink ]."; assertEquals( "This should be a <A CLASS=\"wikipage\" HREF=\"Wiki.jsp?page=HyperLink\"> HyperLink </A>.", translate(src) ); } public void testHyperlinksCC3() throws Exception { String src = "This should be a nonHyperLink."; assertEquals( "This should be a nonHyperLink.", translate(src) ); } /** Two links on same line. */ public void testHyperlinksCC4() throws Exception { newPage("HyperLink"); newPage("ThisToo"); String src = "This should be a HyperLink, and ThisToo."; assertEquals( "This should be a <A CLASS=\"wikipage\" HREF=\"Wiki.jsp?page=HyperLink\">HyperLink</A>, and <A CLASS=\"wikipage\" HREF=\"Wiki.jsp?page=ThisToo\">ThisToo</A>.", translate(src) ); } /** Two mixed links on same line. */ public void testHyperlinksCC5() throws Exception { newPage("HyperLink"); newPage("ThisToo"); String src = "This should be a [HyperLink], and ThisToo."; assertEquals( "This should be a <A CLASS=\"wikipage\" HREF=\"Wiki.jsp?page=HyperLink\">HyperLink</A>, and <A CLASS=\"wikipage\" HREF=\"Wiki.jsp?page=ThisToo\">ThisToo</A>.", translate(src) ); } /** Closing tags only. */ public void testHyperlinksCC6() throws Exception { newPage("HyperLink"); newPage("ThisToo"); String src = "] This ] should be a HyperLink], and ThisToo."; assertEquals( "] This ] should be a <A CLASS=\"wikipage\" HREF=\"Wiki.jsp?page=HyperLink\">HyperLink</A>], and <A CLASS=\"wikipage\" HREF=\"Wiki.jsp?page=ThisToo\">ThisToo</A>.", translate(src) ); } /** First and last words on line. */ public void testHyperlinksCCFirstAndLast() throws Exception { newPage("HyperLink"); newPage("ThisToo"); String src = "HyperLink, and ThisToo"; assertEquals( "<A CLASS=\"wikipage\" HREF=\"Wiki.jsp?page=HyperLink\">HyperLink</A>, and <A CLASS=\"wikipage\" HREF=\"Wiki.jsp?page=ThisToo\">ThisToo</A>", translate(src) ); } /** Hyperlinks inside URIs. */ public void testHyperlinksCCURLs() throws Exception { String src = "http://www.foo.bar/ANewHope/"; assertEquals( "http://www.foo.bar/ANewHope/", translate(src) ); } public void testHyperlinksCCNegated() throws Exception { String src = "This should not be a ~HyperLink."; assertEquals( "This should not be a HyperLink.", translate(src) ); } public void testHyperlinksCCNegated2() throws Exception { String src = "~HyperLinks should not be matched."; assertEquals( "HyperLinks should not be matched.", translate(src) ); } public void testCCLinkInList() throws Exception { newPage("HyperLink"); String src = "*HyperLink"; assertEquals( "<UL>\n<LI><A CLASS=\"wikipage\" HREF=\"Wiki.jsp?page=HyperLink\">HyperLink</A></LI>\n</UL>\n", translate(src) ); } public void testCCLinkBold() throws Exception { newPage("BoldHyperLink"); String src = "__BoldHyperLink__"; assertEquals( "<B><A CLASS=\"wikipage\" HREF=\"Wiki.jsp?page=BoldHyperLink\">BoldHyperLink</A></B>", translate(src) ); } public void testCCLinkBold2() throws Exception { newPage("HyperLink"); String src = "Let's see, if a bold __HyperLink__ is correct?"; assertEquals( "Let's see, if a bold <B><A CLASS=\"wikipage\" HREF=\"Wiki.jsp?page=HyperLink\">HyperLink</A></B> is correct?", translate(src) ); } public void testCCLinkItalic() throws Exception { newPage("ItalicHyperLink"); String src = "''ItalicHyperLink''"; assertEquals( "<I><A CLASS=\"wikipage\" HREF=\"Wiki.jsp?page=ItalicHyperLink\">ItalicHyperLink</A></I>", translate(src) ); } public void testCCLinkWithPunctuation() throws Exception { newPage("HyperLink"); String src = "Test. Punctuation. HyperLink."; assertEquals( "Test. Punctuation. <A CLASS=\"wikipage\" HREF=\"Wiki.jsp?page=HyperLink\">HyperLink</A>.", translate(src) ); } public void testCCLinkWithPunctuation2() throws Exception { newPage("HyperLink"); newPage("ThisToo"); String src = "Punctuations: HyperLink,ThisToo."; assertEquals( "Punctuations: <A CLASS=\"wikipage\" HREF=\"Wiki.jsp?page=HyperLink\">HyperLink</A>,<A CLASS=\"wikipage\" HREF=\"Wiki.jsp?page=ThisToo\">ThisToo</A>.", translate(src) ); } public void testCCLinkWithScandics() throws Exception { newPage("膇tiSy鲋ljy
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -