📄 wikienginetest.java
字号:
m_engine.deletePage(att.getName()); m_engine.deletePage( NAME1 ); assertNull( "Page not removed", m_engine.getPage(NAME1) ); assertNull( "Att not removed", m_engine.getPage(NAME1+"/TestAtt.txt") ); Collection refs = m_engine.getReferenceManager().findReferrers(NAME1); assertNull( "referrers", refs ); } public void testDeleteVersion() throws Exception { props.setProperty( "jspwiki.pageProvider", "VersioningFileProvider" ); TestEngine engine = new TestEngine( props ); engine.saveText( NAME1, "Test1" ); engine.saveText( NAME1, "Test2" ); engine.saveText( NAME1, "Test3" ); WikiPage page = engine.getPage( NAME1, 3 ); engine.deleteVersion( page ); assertNull( "got page", engine.getPage( NAME1, 3 ) ); String content = engine.getText( NAME1, WikiProvider.LATEST_VERSION ); assertEquals( "content", "Test2", content.trim() ); } public void testDeleteVersion2() throws Exception { props.setProperty( "jspwiki.pageProvider", "VersioningFileProvider" ); TestEngine engine = new TestEngine( props ); engine.saveText( NAME1, "Test1" ); engine.saveText( NAME1, "Test2" ); engine.saveText( NAME1, "Test3" ); WikiPage page = engine.getPage( NAME1, 1 ); engine.deleteVersion( page ); assertNull( "got page", engine.getPage( NAME1, 1 ) ); String content = engine.getText( NAME1, WikiProvider.LATEST_VERSION ); assertEquals( "content", "Test3", content.trim() ); assertEquals( "content1", "", engine.getText(NAME1, 1).trim() ); } /** * Assumes that CachingProvider is in use. */ public void testExternalModificationRefs() throws Exception { ReferenceManager refMgr = m_engine.getReferenceManager(); m_engine.saveText( NAME1, "[Foobar]" ); m_engine.getText( NAME1 ); // Ensure that page is cached. Collection c = refMgr.findUncreated(); assertTrue( "Non-existent reference not detected by ReferenceManager", Util.collectionContains( c, "Foobar" )); Thread.sleep( 2000L ); // Wait two seconds for filesystem granularity String files = props.getProperty( FileSystemProvider.PROP_PAGEDIR ); File saved = new File( files, NAME1+FileSystemProvider.FILE_EXT ); assertTrue( "No file!", saved.exists() ); FileWriter out = new FileWriter( saved ); FileUtil.copyContents( new StringReader("[Puppaa]"), out ); out.close(); Thread.sleep( 2000L*PAGEPROVIDER_RESCAN_PERIOD ); // Wait five seconds for CachingProvider to wake up. String text = m_engine.getText( NAME1 ); assertEquals( "wrong contents", "[Puppaa]", text ); c = refMgr.findUncreated(); assertTrue( "Non-existent reference after external page change " + "not detected by ReferenceManager", Util.collectionContains( c, "Puppaa" )); } /** * Assumes that CachingProvider is in use. */ public void testExternalModificationRefsDeleted() throws Exception { ReferenceManager refMgr = m_engine.getReferenceManager(); m_engine.saveText( NAME1, "[Foobar]" ); m_engine.getText( NAME1 ); // Ensure that page is cached. Collection c = refMgr.findUncreated(); assertEquals( "uncreated count", 1, c.size() ); assertEquals( "wrong referenced page", "Foobar", (String)c.iterator().next() ); Thread.sleep( 2000L ); // Wait two seconds for filesystem granularity String files = props.getProperty( FileSystemProvider.PROP_PAGEDIR ); File saved = new File( files, NAME1+FileSystemProvider.FILE_EXT ); assertTrue( "No file!", saved.exists() ); saved.delete(); assertFalse( "File not deleted!", saved.exists() ); Thread.sleep( 2000L*PAGEPROVIDER_RESCAN_PERIOD ); // Wait five seconds for CachingProvider to catch up. WikiPage p = m_engine.getPage( NAME1 ); assertNull( "Got page!", p ); String text = m_engine.getText( NAME1 ); assertEquals( "wrong contents", "", text ); c = refMgr.findUncreated(); assertEquals( "NEW: uncreated count", 0, c.size() ); } /** * Assumes that CachingProvider is in use. */ public void testExternalModification() throws Exception { m_engine.saveText( NAME1, "Foobar" ); m_engine.getText( NAME1 ); // Ensure that page is cached. Thread.sleep( 2000L ); // Wait two seconds for filesystem granularity String files = props.getProperty( FileSystemProvider.PROP_PAGEDIR ); File saved = new File( files, NAME1+FileSystemProvider.FILE_EXT ); assertTrue( "No file!", saved.exists() ); FileWriter out = new FileWriter( saved ); FileUtil.copyContents( new StringReader("Puppaa"), out ); out.close(); // Wait for the caching provider to notice a refresh. Thread.sleep( 2000L*PAGEPROVIDER_RESCAN_PERIOD ); // Trim - engine.saveText() may append a newline. String text = m_engine.getText( NAME1 ).trim(); assertEquals( "wrong contents", "Puppaa", text ); } /** * Tests BugReadingOfVariableNotWorkingForOlderVersions * @throws Exception */ public void testOldVersionVars() throws Exception { Properties pr = new Properties(); pr.load( TestEngine.findTestProperties("/jspwiki_vers.properties")); pr.setProperty( PageManager.PROP_USECACHE, "true" ); TestEngine engine = new TestEngine( pr ); engine.saveText( NAME1, "[{SET foo=bar}]" ); engine.saveText( NAME1, "[{SET foo=notbar}]"); WikiPage v1 = engine.getPage( NAME1, 1 ); WikiPage v2 = engine.getPage( NAME1, 2 ); assertEquals( "V1", "bar", v1.getAttribute("foo") ); // FIXME: The following must run as well assertEquals( "V2", "notbar", v2.getAttribute("foo") ); engine.deletePage( NAME1 ); } public void testSpacedNames1() throws Exception { m_engine.saveText("This is a test", "puppaa"); assertEquals( "normal", "puppaa", m_engine.getText("This is a test").trim() ); assertEquals( "lowercase", "puppaa", m_engine.getText("this is a test").trim() ); assertEquals( "randomcase", "puppaa", m_engine.getText("ThiS Is a teSt").trim() ); } public void testParsedVariables() throws Exception { m_engine.saveText( "TestPage", "[{SET foo=bar}][{SamplePlugin text='{$foo}'}]"); String res = m_engine.getHTML( "TestPage" ); assertEquals( "bar\n", res ); } /** * Tests BugReferenceToRenamedPageNotCleared * * @throws Exception */ public void testRename() throws Exception { m_engine.saveText( "RenameBugTestPage", "Mary had a little generic object" ); m_engine.saveText( "OldNameTestPage", "Linked to RenameBugTestPage" ); Collection pages = m_engine.getReferenceManager().findReferrers( "RenameBugTestPage" ); assertEquals( "has one", "OldNameTestPage", pages.iterator().next() ); WikiContext ctx = new WikiContext( m_engine, m_engine.getPage("OldNameTestPage") ); m_engine.renamePage( ctx, "OldNameTestPage", "NewNameTestPage", true ); assertFalse( "did not vanish", m_engine.pageExists( "OldNameTestPage") ); assertTrue( "did not appear", m_engine.pageExists( "NewNameTestPage") ); pages = m_engine.getReferenceManager().findReferrers( "RenameBugTestPage" ); assertEquals( "wrong # of referrers", 1, pages.size() ); assertEquals( "has wrong referrer", "NewNameTestPage", pages.iterator().next() ); } public void testChangeNoteOldVersion2() throws Exception { WikiPage p = new WikiPage( m_engine, NAME1 ); WikiContext context = new WikiContext(m_engine,p); context.getPage().setAttribute( WikiPage.CHANGENOTE, "Test change" ); m_engine.saveText( context, "test" ); for( int i = 0; i < 5; i++ ) { WikiPage p2 = (WikiPage)m_engine.getPage( NAME1 ).clone(); p2.removeAttribute(WikiPage.CHANGENOTE); context.setPage( p2 ); m_engine.saveText( context, "test"+i ); } WikiPage p3 = m_engine.getPage( NAME1, -1 ); assertEquals( null, p3.getAttribute(WikiPage.CHANGENOTE) ); } public void testCreatePage() throws Exception { String text = "Foobar.\r\n"; String name = "mrmyxpltz"; assertEquals( "page should not exist right now", false, m_engine.pageExists( name ) ); m_engine.saveText( name, text ); assertEquals( "page does not exist", true, m_engine.pageExists( name ) ); } public void testCreateEmptyPage() throws Exception { String text = ""; String name = "mrmxyzptlk"; assertEquals( "page should not exist right now", false, m_engine.pageExists( name ) ); m_engine.saveText( name, text ); assertEquals( "page should not exist right now neither", false, m_engine.pageExists( name ) ); } public void testSaveExistingPageWithEmptyContent() throws Exception { String text = "Foobar.\r\n"; String name = NAME1; m_engine.saveText( name, text ); assertEquals( "page does not exist", true, m_engine.pageExists( name ) ); // saveText uses normalizePostData to assure it conforms to certain rules assertEquals( "wrong content", TextUtil.normalizePostData( text ), m_engine.getText( name ) ); m_engine.saveText( name, "" ); assertEquals( "wrong content", TextUtil.normalizePostData( "" ), m_engine.getText( name ) ); }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -