Package org.codehaus.xfire.attachments

Source Code of org.codehaus.xfire.attachments.DataHandlerTest

package org.codehaus.xfire.attachments;

import javax.activation.DataHandler;
import javax.activation.DataSource;
import javax.activation.FileDataSource;
import javax.activation.FileTypeMap;
import javax.activation.MimetypesFileTypeMap;

import java.io.File;
import java.io.InputStream;
import java.io.FileInputStream;

import org.codehaus.xfire.test.AbstractXFireTest;

/**
* This test exercises more the Activation framework than XFire itself.
* @author <a href="mailto:dan@envoisolutiosn.com">Dan Diephouse</a>
*/
public class DataHandlerTest
    extends AbstractXFireTest
{
    // on some Linux systems, file type mapping is stored in a location
    // not searched by default, thus breaking this test. Let's override it temporarily
    private static final FileTypeMap DEFAULT_FILE_TYPE_MAP = FileTypeMap.getDefaultFileTypeMap();
    private static final FileTypeMap OVERRIDING_FILE_TYPE_MAP = createOverridingFileTypeMap();

    // Note: this is not perfect: in a perfect world /etc/mime.types should be overriden by
    // the user ~/.mime.types file. Because of what we do here, it won't.
    private static final FileTypeMap createOverridingFileTypeMap()
    {
        File file = new File("/etc/mime.types");
        FileTypeMap result = DEFAULT_FILE_TYPE_MAP;
        if (file.exists())
        {
            try {
                InputStream inputStream = new FileInputStream(file);
                result = new MimetypesFileTypeMap(inputStream);
                inputStream.close();
            } catch(Exception ignored) {
            }
        }
        return result;
    }

    protected void setUp()
    {
        FileTypeMap.setDefaultFileTypeMap(OVERRIDING_FILE_TYPE_MAP);
    }

    protected void tearDown()
    {
        FileTypeMap.setDefaultFileTypeMap(DEFAULT_FILE_TYPE_MAP);
    }


    public void testText()
        throws Exception
    {
        DataSource ds = new FileDataSource(
            getTestFile("src/test/org/codehaus/xfire/attachments/test.txt"));

        DataHandler handler = new DataHandler(ds);

        Object content = handler.getContent();
        assertNotNull(content);
        assertTrue("The content data type was not correctly detected. Check you computer/activation framework setup. "
                   + "Expected String but got: " + content.getClass(), content instanceof String);
        assertEquals("bleh", content);
    }
   
    public void testImages()
        throws Exception
    {
        DataSource ds = new FileDataSource(
            getTestFile("src/test/org/codehaus/xfire/attachments/xfire_logo.jpg"));
   
        DefaultDataContentHandlerFactory factory = new DefaultDataContentHandlerFactory();

        Object content = factory.createDataContentHandler("image/jpeg").getContent(ds);
        assertNotNull(content);
        assertTrue(content instanceof java.awt.Image);
       
        ds = new FileDataSource(getTestFile("src/test/org/codehaus/xfire/attachments/fax.tif"));
        assertNotNull(ds);
       
        content = factory.createDataContentHandler("image/tiff").getContent(ds);
        assertNotNull(content);
        assertTrue("The content data type was not correctly detected. Check you computer/activation framework setup. "
                   + "Expected java.awt.Image but got: " + content.getClass(), content instanceof java.awt.Image);
    }
}
TOP

Related Classes of org.codehaus.xfire.attachments.DataHandlerTest

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.