/* * Copyright 2001-2008 Geert Bevin <gbevin[remove] at uwyn dot com> * Licensed under the Apache License, Version 2.0 (the "License") * $Id: TestContent.java 3918 2008-04-14 17:35:35Z gbevin $ */ package com.uwyn.rife.cmf; import java.util.HashMap; import junit.framework.TestCase; public class TestContent extends TestCase { public TestContent(String name) { super(name); } public void testInstantiation() { Content content = new Content(MimeType.APPLICATION_XHTML, "<html></html>"); assertNotNull(content); assertSame(content.getMimeType(), MimeType.APPLICATION_XHTML); assertEquals(content.getData(), "<html></html>"); assertFalse(content.isFragment()); assertNull(content.getAttributes()); assertFalse(content.hasName()); assertNull(content.getName()); assertFalse(content.hasAttributes()); assertFalse(content.hasAttribute("attr1")); assertNull(content.getAttribute("attr1")); assertFalse(content.hasCachedLoadedData()); assertNull(content.getCachedLoadedData()); assertFalse(content.hasProperties()); assertNull(content.getProperties()); assertFalse(content.hasProperty("some prop")); assertNull(content.getProperty("some prop")); } public void testInstantiationNullData() { Content content = new Content(MimeType.APPLICATION_XHTML, null); assertNotNull(content); assertSame(content.getMimeType(), MimeType.APPLICATION_XHTML); assertNull(content.getData()); assertFalse(content.isFragment()); assertFalse(content.hasName()); assertNull(content.getName()); assertNull(content.getAttributes()); assertFalse(content.hasAttributes()); assertFalse(content.hasAttribute("attr1")); assertNull(content.getAttribute("attr1")); assertFalse(content.hasCachedLoadedData()); assertNull(content.getCachedLoadedData()); assertFalse(content.hasProperties()); assertNull(content.getProperties()); assertFalse(content.hasProperty("some prop")); assertNull(content.getProperty("some prop")); } public void testInvalidMimeType() { Content content = null; try { content = new Content(null, "<html></html>"); fail(); } catch (IllegalArgumentException e) { assertTrue(e.getMessage().indexOf("mimeType") != -1); } assertNull(content); } public void testFragment() { Content content = new Content(MimeType.APPLICATION_XHTML, "<html></html>"); content.setFragment(true); assertTrue(content.isFragment()); assertSame(content, content.fragment(false)); assertFalse(content.isFragment()); } public void testName() { Content content = new Content(MimeType.APPLICATION_XHTML, "<html></html>"); content.setName("myname.gif"); assertTrue(content.hasName()); assertEquals("myname.gif", content.getName()); assertSame(content, content.name("anothername.png")); assertTrue(content.hasName()); assertEquals("anothername.png", content.getName()); content.name(null); assertFalse(content.hasName()); assertNull(content.getName()); } public void testSetAttributes() { Content content = new Content(MimeType.APPLICATION_XHTML, "<html></html>"); HashMap<String, String> attrs = new HashMap<String, String>(); attrs.put("attr1", "val1"); attrs.put("attr2", "val2"); attrs.put("attr3", "val3"); content.setAttributes(attrs); assertTrue(content.hasAttributes()); assertNotSame(content.getAttributes(), attrs); assertEquals(content.getAttributes().size(), attrs.size()); assertTrue(content.getAttributes().containsKey("attr1")); assertTrue(content.getAttributes().containsKey("attr2")); assertTrue(content.getAttributes().containsKey("attr3")); assertTrue(content.hasAttribute("attr1")); assertTrue(content.hasAttribute("attr2")); assertTrue(content.hasAttribute("attr3")); assertEquals("val1", content.getAttribute("attr1")); assertEquals("val2", content.getAttribute("attr2")); assertEquals("val3", content.getAttribute("attr3")); attrs.remove("attr2"); content.attributes(attrs); assertTrue(content.hasAttributes()); assertNotSame(content.getAttributes(), attrs); assertEquals(content.getAttributes().size(), 2); assertTrue(content.getAttributes().containsKey("attr1")); assertFalse(content.getAttributes().containsKey("attr2")); assertTrue(content.getAttributes().containsKey("attr3")); assertTrue(content.hasAttribute("attr1")); assertFalse(content.hasAttribute("attr2")); assertTrue(content.hasAttribute("attr3")); assertEquals("val1", content.getAttribute("attr1")); assertNull(content.getAttribute("attr2")); assertEquals("val3", content.getAttribute("attr3")); content.setAttributes(null); assertFalse(content.hasAttributes()); assertNull(content.getAttributes()); } public void testSetAttribute() { Content content = new Content(MimeType.APPLICATION_XHTML, "<html></html>"); assertSame(content, content .attribute("attr1", false) .attribute("attr2", 'O') .attribute("attr3", (byte)89) .attribute("attr4", (short)120) .attribute("attr5", 19843) .attribute("attr6", 3847934L) .attribute("attr7", 343.9f) .attribute("attr8", 3487.343d) .attribute("attr9", "value")); assertTrue(content.hasAttributes()); assertEquals(content.getAttributes().size(), 9); assertTrue(content.hasAttribute("attr1")); assertTrue(content.hasAttribute("attr2")); assertTrue(content.hasAttribute("attr3")); assertTrue(content.hasAttribute("attr4")); assertTrue(content.hasAttribute("attr5")); assertTrue(content.hasAttribute("attr6")); assertTrue(content.hasAttribute("attr7")); assertTrue(content.hasAttribute("attr8")); assertTrue(content.hasAttribute("attr9")); assertEquals("false", content.getAttribute("attr1")); assertEquals("O", content.getAttribute("attr2")); assertEquals("89", content.getAttribute("attr3")); assertEquals("120", content.getAttribute("attr4")); assertEquals("19843", content.getAttribute("attr5")); assertEquals("3847934", content.getAttribute("attr6")); assertEquals("343.9", content.getAttribute("attr7")); assertEquals("3487.343", content.getAttribute("attr8")); assertEquals("value", content.getAttribute("attr9")); } public void testLoadedDataCache() { Content content = new Content(MimeType.APPLICATION_XHTML, "<html></html>"); Object object = new Object(); content.setCachedLoadedData(object); assertTrue(content.hasCachedLoadedData()); assertSame(object, content.getCachedLoadedData()); content.cachedLoadedData(null); assertFalse(content.hasCachedLoadedData()); assertNull(content.getCachedLoadedData()); } public void testSetProperties() { Content content = new Content(MimeType.APPLICATION_XHTML, "<html></html>"); HashMap<String, String> props = new HashMap<String, String>(); props.put("prop1", "val1"); props.put("prop2", "val2"); props.put("prop3", "val3"); content.setProperties(props); assertTrue(content.hasProperties()); assertNotSame(content.getProperties(), props); assertEquals(content.getProperties().size(), props.size()); assertTrue(content.getProperties().containsKey("prop1")); assertTrue(content.getProperties().containsKey("prop2")); assertTrue(content.getProperties().containsKey("prop3")); assertTrue(content.hasProperty("prop1")); assertTrue(content.hasProperty("prop2")); assertTrue(content.hasProperty("prop3")); assertEquals("val1", content.getProperty("prop1")); assertEquals("val2", content.getProperty("prop2")); assertEquals("val3", content.getProperty("prop3")); props.remove("prop2"); content.properties(props); assertTrue(content.hasProperties()); assertNotSame(content.getProperties(), props); assertEquals(content.getProperties().size(), 2); assertTrue(content.getProperties().containsKey("prop1")); assertFalse(content.getProperties().containsKey("prop2")); assertTrue(content.getProperties().containsKey("prop3")); assertTrue(content.hasProperty("prop1")); assertFalse(content.hasProperty("prop2")); assertTrue(content.hasProperty("prop3")); assertEquals("val1", content.getProperty("prop1")); assertNull(content.getProperty("prop2")); assertEquals("val3", content.getProperty("prop3")); content.setProperties(null); assertFalse(content.hasProperties()); assertNull(content.getProperties()); } public void testSetProperty() { Content content = new Content(MimeType.APPLICATION_XHTML, "<html></html>"); assertSame(content, content .property("prop1", false) .property("prop2", 'O') .property("prop3", (byte)89) .property("prop4", (short)120) .property("prop5", 19843) .property("prop6", 3847934L) .property("prop7", 343.9f) .property("prop8", 3487.343d) .property("prop9", "value")); assertTrue(content.hasProperties()); assertEquals(content.getProperties().size(), 9); assertTrue(content.hasProperty("prop1")); assertTrue(content.hasProperty("prop2")); assertTrue(content.hasProperty("prop3")); assertTrue(content.hasProperty("prop4")); assertTrue(content.hasProperty("prop5")); assertTrue(content.hasProperty("prop6")); assertTrue(content.hasProperty("prop7")); assertTrue(content.hasProperty("prop8")); assertTrue(content.hasProperty("prop9")); assertEquals("false", content.getProperty("prop1")); assertEquals("O", content.getProperty("prop2")); assertEquals("89", content.getProperty("prop3")); assertEquals("120", content.getProperty("prop4")); assertEquals("19843", content.getProperty("prop5")); assertEquals("3847934", content.getProperty("prop6")); assertEquals("343.9", content.getProperty("prop7")); assertEquals("3487.343", content.getProperty("prop8")); assertEquals("value", content.getProperty("prop9")); } }