⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 attachmentmanagertest.java

📁 jspwiki source code,jspwiki source code
💻 JAVA
字号:
package com.ecyrd.jspwiki.attachment;import java.io.*;import java.util.Collection;import java.util.Properties;import junit.framework.Test;import junit.framework.TestCase;import junit.framework.TestSuite;import com.ecyrd.jspwiki.FileUtil;import com.ecyrd.jspwiki.TestEngine;import com.ecyrd.jspwiki.WikiContext;import com.ecyrd.jspwiki.WikiPage;import com.ecyrd.jspwiki.providers.ProviderException;public class AttachmentManagerTest extends TestCase{    public static final String NAME1 = "TestPage";    public static final String NAMEU = "TestPage\u00e6";    Properties props = new Properties();    TestEngine m_engine;    AttachmentManager m_manager;    static String c_fileContents = "ABCDEFGHIJKLMNOPQRSTUVWxyz";    public AttachmentManagerTest( String s )    {        super( s );    }    public void setUp()        throws Exception    {        props.load( TestEngine.findTestProperties() );        m_engine  = new TestEngine(props);        m_manager = m_engine.getAttachmentManager();        m_engine.saveText( NAME1, "Foobar" );        m_engine.saveText( NAMEU, "Foobar" );    }    private File makeAttachmentFile()        throws Exception    {        File tmpFile = File.createTempFile("test","txt");        tmpFile.deleteOnExit();        FileWriter out = new FileWriter( tmpFile );                FileUtil.copyContents( new StringReader( c_fileContents ), out );        out.close();                return tmpFile;    }    public void tearDown()    {        TestEngine.deleteTestPage( NAME1 );        TestEngine.deleteTestPage( NAMEU );        m_engine.deleteAttachments(NAME1);        m_engine.deleteAttachments(NAMEU);        TestEngine.emptyWorkDir();    }    public void testEnabled()            {        assertTrue( "not enabled", m_manager.attachmentsEnabled() );    }    public void testSimpleStore()        throws Exception    {        Attachment att = new Attachment( m_engine, NAME1, "test1.txt" );        att.setAuthor( "FirstPost" );        m_manager.storeAttachment( att, makeAttachmentFile() );        Attachment att2 = m_manager.getAttachmentInfo( new WikiContext(m_engine,                                                                       new WikiPage(m_engine, NAME1)),                                                        "test1.txt" );        assertNotNull( "attachment disappeared", att2 );        assertEquals( "name", att.getName(), att2.getName() );        assertEquals( "author", att.getAuthor(), att2.getAuthor() );        assertEquals( "size", c_fileContents.length(), att2.getSize() );        InputStream in = m_manager.getAttachmentStream( att2 );        assertNotNull( "stream", in );        StringWriter sout = new StringWriter();        FileUtil.copyContents( new InputStreamReader(in), sout );        in.close();        sout.close();        assertEquals( "contents", c_fileContents, sout.toString() );    }    public void testSimpleStoreSpace()        throws Exception    {        Attachment att = new Attachment( m_engine, NAME1, "test file.txt" );        att.setAuthor( "FirstPost" );        m_manager.storeAttachment( att, makeAttachmentFile() );        Attachment att2 = m_manager.getAttachmentInfo( new WikiContext(m_engine,                                                                       new WikiPage(m_engine, NAME1)),                                                        "test file.txt" );        assertNotNull( "attachment disappeared", att2 );        assertEquals( "name", att.getName(), att2.getName() );        assertEquals( "author", att.getAuthor(), att2.getAuthor() );        assertEquals( "size", c_fileContents.length(), att2.getSize() );        InputStream in = m_manager.getAttachmentStream( att2 );        assertNotNull( "stream", in );        StringWriter sout = new StringWriter();        FileUtil.copyContents( new InputStreamReader(in), sout );        in.close();        sout.close();        assertEquals( "contents", c_fileContents, sout.toString() );    }    public void testSimpleStoreByVersion()        throws Exception    {        Attachment att = new Attachment( m_engine, NAME1, "test1.txt" );        att.setAuthor( "FirstPost" );        m_manager.storeAttachment( att, makeAttachmentFile() );        Attachment att2 = m_manager.getAttachmentInfo( new WikiContext(m_engine,                                                                       new WikiPage(m_engine, NAME1)),                                                        "test1.txt", 1 );        assertNotNull( "attachment disappeared", att2 );        assertEquals( "version", 1, att2.getVersion() );        assertEquals( "name", att.getName(), att2.getName() );        assertEquals( "author", att.getAuthor(), att2.getAuthor() );        assertEquals( "size", c_fileContents.length(), att2.getSize() );        InputStream in = m_manager.getAttachmentStream( att2 );        assertNotNull( "stream", in );        StringWriter sout = new StringWriter();        FileUtil.copyContents( new InputStreamReader(in), sout );        in.close();        sout.close();        assertEquals( "contents", c_fileContents, sout.toString() );    }    public void testMultipleStore()        throws Exception    {        Attachment att = new Attachment( m_engine, NAME1, "test1.txt" );        att.setAuthor( "FirstPost" );        m_manager.storeAttachment( att, makeAttachmentFile() );        att.setAuthor( "FooBar" );        m_manager.storeAttachment( att, makeAttachmentFile() );                Attachment att2 = m_manager.getAttachmentInfo( new WikiContext(m_engine,                                                                       new WikiPage(m_engine, NAME1)),                                                        "test1.txt" );        assertNotNull( "attachment disappeared", att2 );        assertEquals( "name", att.getName(), att2.getName() );        assertEquals( "author", att.getAuthor(), att2.getAuthor() );        assertEquals( "version", 2, att2.getVersion() );        InputStream in = m_manager.getAttachmentStream( att2 );        assertNotNull( "stream", in );        StringWriter sout = new StringWriter();        FileUtil.copyContents( new InputStreamReader(in), sout );        in.close();        sout.close();        assertEquals( "contents", c_fileContents, sout.toString() );        //        // Check that first author did not disappear        //        Attachment att3 = m_manager.getAttachmentInfo( new WikiContext(m_engine,                                                                       new WikiPage(m_engine, NAME1)),                                                        "test1.txt",                                                       1 );        assertEquals( "version of v1", 1, att3.getVersion() );        assertEquals( "name of v1", "FirstPost", att3.getAuthor() );    }    public void testListAttachments()        throws Exception    {        Attachment att = new Attachment( m_engine, NAME1, "test1.txt" );        att.setAuthor( "FirstPost" );        m_manager.storeAttachment( att, makeAttachmentFile() );        Collection c = m_manager.listAttachments( new WikiPage(m_engine, NAME1) );        assertEquals( "Length", 1, c.size() );        Attachment att2 = (Attachment) c.toArray()[0];        assertEquals( "name", att.getName(), att2.getName() );        assertEquals( "author", att.getAuthor(), att2.getAuthor() );            }    public void testSimpleStoreWithoutExt() throws Exception    {        Attachment att = new Attachment( m_engine, NAME1, "test1" );        att.setAuthor( "FirstPost" );        m_manager.storeAttachment( att, makeAttachmentFile() );        Attachment att2 = m_manager.getAttachmentInfo( new WikiContext(m_engine,                                                                       new WikiPage(m_engine, NAME1)),                                                       "test1" );        assertNotNull( "attachment disappeared", att2 );        assertEquals( "name", att.getName(), att2.getName() );        assertEquals( "author", "FirstPost", att2.getAuthor() );        assertEquals( "size", c_fileContents.length(), att2.getSize() );        assertEquals( "version", 1, att2.getVersion() );        InputStream in = m_manager.getAttachmentStream( att2 );        assertNotNull( "stream", in );        StringWriter sout = new StringWriter();        FileUtil.copyContents( new InputStreamReader(in), sout );        in.close();        sout.close();        assertEquals( "contents", c_fileContents, sout.toString() );    }    public void testExists() throws Exception    {        Attachment att = new Attachment( m_engine, NAME1, "test1" );        att.setAuthor( "FirstPost" );        m_manager.storeAttachment( att, makeAttachmentFile() );        assertTrue( "attachment disappeared",                     m_engine.pageExists( NAME1+"/test1" ) );    }    public void testExists2() throws Exception    {        Attachment att = new Attachment( m_engine, NAME1, "test1.bin" );        att.setAuthor( "FirstPost" );        m_manager.storeAttachment( att, makeAttachmentFile() );        assertTrue( "attachment disappeared",                     m_engine.pageExists( att.getName() ) );    }    public void testExistsSpace() throws Exception    {        Attachment att = new Attachment( m_engine, NAME1, "test file.bin" );        att.setAuthor( "FirstPost" );        m_manager.storeAttachment( att, makeAttachmentFile() );        assertTrue( "attachment disappeared",                     m_engine.pageExists( NAME1+"/test file.bin" ) );    }    public void testExistsUTF1() throws Exception    {        Attachment att = new Attachment( m_engine, NAME1, "test\u00e4.bin" );        att.setAuthor( "FirstPost" );        m_manager.storeAttachment( att, makeAttachmentFile() );        assertTrue( "attachment disappeared",                     m_engine.pageExists( att.getName() ) );    }    public void testExistsUTF2() throws Exception    {        Attachment att = new Attachment( m_engine, NAMEU, "test\u00e4.bin" );        att.setAuthor( "FirstPost" );        m_manager.storeAttachment( att, makeAttachmentFile() );        assertTrue( "attachment disappeared",                     m_engine.pageExists( att.getName() ) );    }    public void testNonexistantPage() throws Exception    {        try        {            m_engine.saveText( "TestPage", "xx" );                    Attachment att = new Attachment( m_engine, "TestPages", "foo.bin" );                    att.setAuthor("MonicaBellucci");            m_manager.storeAttachment( att, makeAttachmentFile() );                    fail("Attachment was stored even when the page does not exist");        }        catch( ProviderException ex )        {            // This is the intended exception        }        finally        {            m_engine.deletePage("TestPage");        }    }        public void testValidateFileName() throws Exception    {        assertEquals( "foo.jpg", "foo.jpg", AttachmentManager.validateFileName( "foo.jpg" ) );                assertEquals( "C:\\Windows\\test.jpg", "test.jpg", AttachmentManager.validateFileName( "C:\\Windows\\test.jpg" ));    }        public static Test suite()    {        return new TestSuite( AttachmentManagerTest.class );    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -