/* * Copyright 2001-2008 Geert Bevin <gbevin[remove] at uwyn dot com> * Licensed under the Apache License, Version 2.0 (the "License") * $Id: TestCmfValidation.java 3918 2008-04-14 17:35:35Z gbevin $ */ package com.uwyn.rife.cmf; import com.uwyn.rife.cmf.dam.ContentImage; import com.uwyn.rife.cmf.validation.SupportedXhtml; import com.uwyn.rife.resources.ResourceFinderClasspath; import com.uwyn.rife.site.ConstrainedProperty; import com.uwyn.rife.site.ValidationRule; import com.uwyn.rife.site.ValidationRuleNotEmpty; import com.uwyn.rife.site.ValidationRuleNotNull; import com.uwyn.rife.tools.FileUtils; import java.net.URL; import java.util.Iterator; import junit.framework.TestCase; public class TestCmfValidation extends TestCase { public TestCmfValidation(String name) { super(name); } public void testInstantiation() { CmfValidation validation = new CmfValidation(); assertEquals(0, validation.getConstrainedProperties().size()); assertEquals(0, validation.getRules().size()); } public void testMimeTypeConstraint() { CmfValidation validation = new CmfValidation(); ConstrainedProperty property = new ConstrainedProperty("property") .mimeType(MimeType.APPLICATION_XHTML) .notNull(true); validation.addConstraint(property); assertEquals(1, validation.getConstrainedProperties().size()); assertEquals(2, validation.getRules().size()); assertSame(property, validation.getConstrainedProperties().iterator().next()); Iterator<ValidationRule> it = validation.getRules().iterator(); assertTrue(it.next() instanceof ValidationRuleNotNull); assertTrue(it.next() instanceof SupportedXhtml); } public void testNoCmfConstraints() { CmfValidation validation = new CmfValidation(); ConstrainedProperty property = new ConstrainedProperty("property") .notEmpty(true); validation.addConstraint(property); assertEquals(1, validation.getConstrainedProperties().size()); assertEquals(1, validation.getRules().size()); assertSame(property, validation.getConstrainedProperties().iterator().next()); Iterator<ValidationRule> it = validation.getRules().iterator(); assertTrue(it.next() instanceof ValidationRuleNotEmpty); } public void testLoadingErrors() throws Exception { URL image_resource_gif = ResourceFinderClasspath.getInstance().getResource("uwyn.gif"); byte[] data_image_gif = FileUtils.readBytes(image_resource_gif); ContentImage content = new ContentImage() .name("the content name") .image(data_image_gif); assertTrue(content.validate()); assertNull(content.getLoadingErrors("image")); byte[] data_image_invalid = new byte[] {12, 4, 34, 3, 23}; // random invalid bytes content.setImage(data_image_invalid); assertFalse(content.validate()); assertTrue(content.getLoadingErrors("image").size() > 0); } }