/*
* Copyright 2001-2008 Geert Bevin (gbevin[remove] at uwyn dot com)
* Licensed under the Apache License, Version 2.0 (the "License")
* $Id: TestMimeType.java 3918 2008-04-14 17:35:35Z gbevin $
*/
package com.uwyn.rife.cmf;
import com.uwyn.rife.cmf.validation.CmfPropertyValidationRule;
import com.uwyn.rife.site.ConstrainedProperty;
import junit.framework.TestCase;
public class TestMimeType extends TestCase
{
public TestMimeType(String name)
{
super(name);
}
public void testMimeTypeIdentifiers()
{
assertEquals("application/xhtml+xml", MimeType.APPLICATION_XHTML.toString());
assertEquals("text/plain", MimeType.TEXT_PLAIN.toString());
assertEquals("image/gif", MimeType.IMAGE_GIF.toString());
assertEquals("image/jpeg", MimeType.IMAGE_JPEG.toString());
assertEquals("image/png", MimeType.IMAGE_PNG.toString());
}
public void testGetMimeType()
{
assertSame(MimeType.getMimeType("application/xhtml+xml"), MimeType.APPLICATION_XHTML);
assertSame(MimeType.getMimeType("text/plain"), MimeType.TEXT_PLAIN);
assertSame(MimeType.getMimeType("image/gif"), MimeType.IMAGE_GIF);
assertSame(MimeType.getMimeType("image/jpeg"), MimeType.IMAGE_JPEG);
assertSame(MimeType.getMimeType("image/png"), MimeType.IMAGE_PNG);
}
public void testGetUnsupportedMimeType()
{
assertNull(MimeType.getMimeType("uwynsspecial/type"));
}
public void testFormatters()
{
assertNotNull(MimeType.APPLICATION_XHTML.getFormatter());
assertNotNull(MimeType.TEXT_PLAIN.getFormatter());
assertNotNull(MimeType.IMAGE_GIF.getFormatter());
assertNotNull(MimeType.IMAGE_JPEG.getFormatter());
assertNotNull(MimeType.IMAGE_PNG.getFormatter());
}
public void testValidationRuleApplicationXhtml()
{
CmfPropertyValidationRule rule = MimeType.APPLICATION_XHTML.getValidationRule(new ConstrainedProperty("xhtml"));
assertNotNull(rule);
rule.setBean(new TestBean(false));
assertTrue(rule.validate());
rule.setBean(new TestBean(true));
assertFalse(rule.validate());
}
public void testValidationRuleTextPlain()
{
CmfPropertyValidationRule rule = MimeType.TEXT_PLAIN.getValidationRule(new ConstrainedProperty("textplain"));
assertNull(rule);
}
public void testValidationRuleImageGif()
{
CmfPropertyValidationRule rule = MimeType.IMAGE_GIF.getValidationRule(new ConstrainedProperty("gif"));
assertNotNull(rule);
rule.setBean(new TestBean(false));
assertTrue(rule.validate());
rule.setBean(new TestBean(true));
assertFalse(rule.validate());
}
public void testValidationRuleImageJpeg()
{
CmfPropertyValidationRule rule = MimeType.IMAGE_JPEG.getValidationRule(new ConstrainedProperty("jpeg"));
assertNotNull(rule);
rule.setBean(new TestBean(false));
assertTrue(rule.validate());
rule.setBean(new TestBean(true));
assertFalse(rule.validate());
}
public void testValidationRuleImagePng()
{
CmfPropertyValidationRule rule = MimeType.IMAGE_PNG.getValidationRule(new ConstrainedProperty("png"));
assertNotNull(rule);
rule.setBean(new TestBean(false));
assertTrue(rule.validate());
rule.setBean(new TestBean(true));
assertFalse(rule.validate());
}
public static class TestBean
{
private String mXhtml = null;
private byte[] mGif = null;
private byte[] mJpeg = null;
private byte[] mPng = null;
public TestBean(boolean invalid)
{
if (invalid)
{
mXhtml = "invalid<sometag>";
mGif = "invalid".getBytes();
mJpeg = "invalid".getBytes();
mPng = "invalid".getBytes();
}
}
public String getXhtml()
{
return mXhtml;
}
public void setXhtml(String xhtml)
{
mXhtml = xhtml;
}
public byte[] getGif()
{
return mGif;
}
public void setGif(byte[] gif)
{
mGif = gif;
}
public byte[] getJpeg()
{
return mJpeg;
}
public void setJpeg(byte[] jpeg)
{
mJpeg = jpeg;
}
public byte[] getPng()
{
return mPng;
}
public void setPng(byte[] png)
{
mPng = png;
}
}
}