/* * Copyright 2002-2005 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.springframework.mail.javamail; import java.io.File; import junit.framework.TestCase; import org.springframework.core.io.ClassPathResource; import org.springframework.core.io.Resource; /** * @author Rob Harrop * @author Juergen Hoeller */ public class ConfigurableMimeFileTypeMapTests extends TestCase { public void testAgainstDefaultConfiguration() throws Exception { ConfigurableMimeFileTypeMap ftm = new ConfigurableMimeFileTypeMap(); ftm.afterPropertiesSet(); assertEquals("Invalid content type for HTM", "text/html", ftm.getContentType("foobar.HTM")); assertEquals("Invalid content type for html", "text/html", ftm.getContentType("foobar.html")); assertEquals("Invalid content type for c++", "text/plain", ftm.getContentType("foobar.c++")); assertEquals("Invalid content type for svf", "image/vnd.svf", ftm.getContentType("foobar.svf")); assertEquals("Invalid content type for dsf", "image/x-mgx-dsf", ftm.getContentType("foobar.dsf")); assertEquals("Invalid default content type", "application/octet-stream", ftm.getContentType("foobar.foo")); } public void testAgainstDefaultConfigurationWithFilePath() throws Exception { ConfigurableMimeFileTypeMap ftm = new ConfigurableMimeFileTypeMap(); assertEquals("Invalid content type for HTM", "text/html", ftm.getContentType(new File("/tmp/foobar.HTM"))); } public void testWithAdditionalMappings() throws Exception { ConfigurableMimeFileTypeMap ftm = new ConfigurableMimeFileTypeMap(); ftm.setMappings(new String[] {"foo/bar HTM foo", "foo/cpp c++"}); ftm.afterPropertiesSet(); assertEquals("Invalid content type for HTM - override didn't work", "foo/bar", ftm.getContentType("foobar.HTM")); assertEquals("Invalid content type for c++ - override didn't work", "foo/cpp", ftm.getContentType("foobar.c++")); assertEquals("Invalid content type for foo - new mapping didn't work", "foo/bar", ftm.getContentType("bar.foo")); } public void testWithCustomMappingLocation() throws Exception { Resource resource = new ClassPathResource("test.mime.types", getClass()); ConfigurableMimeFileTypeMap ftm = new ConfigurableMimeFileTypeMap(); ftm.setMappingLocation(resource); ftm.afterPropertiesSet(); assertEquals("Invalid content type for foo", "text/foo", ftm.getContentType("foobar.foo")); assertEquals("Invalid content type for bar", "text/bar", ftm.getContentType("foobar.bar")); assertEquals("Invalid content type for fimg", "image/foo", ftm.getContentType("foobar.fimg")); assertEquals("Invalid content type for bimg", "image/bar", ftm.getContentType("foobar.bimg")); } }