1 package com.opensymphony.module.sitemesh.mapper; 2 3 import junit.framework.TestCase; 4 5 import java.io.BufferedWriter ; 6 import java.io.File ; 7 import java.io.FileWriter ; 8 9 public class ConfigLoaderTest extends TestCase { 10 11 private ConfigLoader configLoader; 12 private File tempConfigFile; 13 14 protected void setUp() throws Exception { 15 super.setUp(); 16 17 tempConfigFile = File.createTempFile("decorators-test", ".xml"); 19 tempConfigFile.deleteOnExit(); 20 21 BufferedWriter out = new BufferedWriter (new FileWriter (tempConfigFile)); 23 out.write("<decorators defaultdir=\"/decorators\">"); 24 25 27 out.write(" <decorator name=\"default\" page=\"default.jsp\">"); 28 out.write(" <pattern>/info/*</pattern>"); 29 out.write(" <url-pattern> "); 30 out.write(" /test/*"); 31 out.write(" </url-pattern>"); 32 out.write(" <url-pattern> </url-pattern>"); 33 out.write(" <url-pattern></url-pattern>"); 34 out.write(" </decorator>"); 35 36 out.write(" <decorator name=\"other\" page=\"/other.jsp\">"); 37 out.write(" <pattern>/other/*</pattern>"); 38 out.write(" </decorator>"); 39 40 out.write(" <decorator name=\"uri\" page=\"uri.jsp\" webapp=\"someapp\">"); 41 out.write(" <pattern>/uri/*</pattern>"); 42 out.write(" </decorator>"); 43 44 out.write(" <decorator name=\"rolebased\" page=\"rolebased.jsp\" role=\"developer\">"); 45 out.write(" <pattern>/rolebased/*</pattern>"); 46 out.write(" </decorator>"); 47 48 50 out.write(" <decorator>"); 51 out.write(" <decorator-name>old</decorator-name>"); 52 out.write(" <resource>/decorators/old.jsp</resource>"); 53 out.write(" </decorator>"); 54 55 out.write(" <decorator-mapping>"); 56 out.write(" <decorator-name>old</decorator-name>"); 57 out.write(" <url-pattern>/old/*</url-pattern>"); 58 out.write(" </decorator-mapping>"); 59 60 out.write(" <decorator-mapping>"); 61 out.write(" <decorator-name>old2</decorator-name>"); 62 out.write(" <url-pattern></url-pattern>"); 63 out.write(" </decorator-mapping>"); 64 65 out.write("</decorators>"); 66 out.close(); 67 configLoader = new ConfigLoader(tempConfigFile); 68 } 69 70 protected void tearDown() throws Exception { 71 if (tempConfigFile != null) tempConfigFile.delete(); 72 configLoader = null; 73 } 74 75 public void testMappedNames() throws Exception { 76 assertEquals(configLoader.getMappedName("/info/somepage.html"), "default"); 77 assertEquals(configLoader.getMappedName("/test/somepage.html"), "default"); 78 79 assertEquals(configLoader.getMappedName("/other/someotherpage.html"), "other"); 80 81 assertEquals(configLoader.getMappedName("/uri/somepage.html"), "uri"); 82 83 assertEquals(configLoader.getMappedName("/rolebased/someotherpage.html"), "rolebaseddeveloper"); 84 85 assertEquals(configLoader.getMappedName("/old/someoldpage.html"), "old"); 86 } 87 88 public void testDecoratorPresence() throws Exception { 89 assertNotNull(configLoader.getDecoratorByName("default")); 90 assertNotNull(configLoader.getDecoratorByName("other")); 91 assertNotNull(configLoader.getDecoratorByName("uri")); 92 assertNotNull(configLoader.getDecoratorByName("rolebaseddeveloper")); 93 assertNotNull(configLoader.getDecoratorByName("old")); 94 } 95 96 public void testDecorators() throws Exception { 97 assertEquals(configLoader.getDecoratorByName("default").getName(), "default"); 98 assertEquals(configLoader.getDecoratorByName("default").getPage(), "/decorators/default.jsp"); 99 assertNull(configLoader.getDecoratorByName("default").getURIPath()); 100 assertNull(configLoader.getDecoratorByName("default").getRole()); 101 102 assertEquals(configLoader.getDecoratorByName("other").getName(), "other"); 103 assertEquals(configLoader.getDecoratorByName("other").getPage(), "/other.jsp"); assertNull(configLoader.getDecoratorByName("other").getURIPath()); 105 assertNull(configLoader.getDecoratorByName("other").getRole()); 106 107 assertEquals(configLoader.getDecoratorByName("uri").getName(), "uri"); 108 assertEquals(configLoader.getDecoratorByName("uri").getPage(), "/decorators/uri.jsp"); 109 assertEquals(configLoader.getDecoratorByName("uri").getURIPath(), "/someapp"); 110 assertNull(configLoader.getDecoratorByName("uri").getRole()); 111 112 assertEquals(configLoader.getDecoratorByName("rolebaseddeveloper").getName(), "rolebased"); 113 assertEquals(configLoader.getDecoratorByName("rolebaseddeveloper").getPage(), "/decorators/rolebased.jsp"); 114 assertNull(configLoader.getDecoratorByName("rolebaseddeveloper").getURIPath()); 115 assertEquals(configLoader.getDecoratorByName("rolebaseddeveloper").getRole(), "developer"); 116 117 assertEquals(configLoader.getDecoratorByName("old").getName(), "old"); 118 assertEquals(configLoader.getDecoratorByName("old").getPage(), "/decorators/old.jsp"); 119 assertNull(configLoader.getDecoratorByName("old").getURIPath()); 120 assertNull(configLoader.getDecoratorByName("old").getRole()); 121 } 122 } | Popular Tags |