source = new ByteArraySource(DATA,MT_WITH_PARAM,FILE_NAME,HEADERS);
assertEquals(MT_WITH_PARAM, source.getMediaType());
}
@Test
public void checkMediaTypeForStringSource() throws IOException {
ContentSource source = new StringSource(TEST_STRING);
assertEquals(STRING_DEFAULT_MT, source.getMediaType());
source = new StringSource(TEST_STRING,null);
assertEquals(STRING_DEFAULT_MT, source.getMediaType());
source = new StringSource(TEST_STRING,UTF8,null);
assertEquals(STRING_DEFAULT_MT, source.getMediaType());
source = new StringSource(TEST_STRING,null,null);
assertEquals(STRING_DEFAULT_MT, source.getMediaType());
//this can be used to force the system default
source = new StringSource(TEST_STRING,Charset.defaultCharset(),null);
Map<String,String> mt = ContentItemHelper.parseMimeType(source.getMediaType());
assertEquals("text/plain", mt.get(null));
assertEquals(Charset.defaultCharset().name(), mt.get("charset"));
String OTHER_MT = "text/rtf";
source = new StringSource(TEST_STRING,OTHER_MT);
mt = ContentItemHelper.parseMimeType(source.getMediaType());
assertEquals(OTHER_MT, mt.get(null));
assertEquals(UTF8.name(), mt.get("charset"));
source = new StringSource(TEST_STRING, null,OTHER_MT);
mt = ContentItemHelper.parseMimeType(source.getMediaType());
assertEquals(OTHER_MT, mt.get(null));
assertEquals(UTF8.name(), mt.get("charset"));
Charset ISO8859_4 = Charset.forName("ISO-8859-4");
source = new StringSource(TEST_STRING, ISO8859_4,OTHER_MT);
mt = ContentItemHelper.parseMimeType(source.getMediaType());
assertEquals(OTHER_MT, mt.get(null));
assertEquals(ISO8859_4.name(), mt.get("charset"));
}