1 4 package com.openedit.page; 5 6 import java.io.File ; 7 import java.text.ParseException ; 8 import java.util.List ; 9 10 import org.apache.commons.logging.Log; 11 import org.apache.commons.logging.LogFactory; 12 13 import com.openedit.BaseTestCase; 14 import com.openedit.WebPageRequest; 15 import com.openedit.util.OutputFiller; 16 17 20 public class PageMetaDataTest extends BaseTestCase 21 { 22 23 private static final Log log = LogFactory.getLog(PageMetaDataTest.class); 24 PageSettings siteMetaData; 25 PageSettings defaultMetaData; 26 PageSettings metaData; 27 28 public PageMetaDataTest( String name ) 29 { 30 super( name ); 31 } 32 33 public void testUpdateMetaData() throws Exception 34 { 35 removeDefaultXconf(); 36 Page indexPage = getPage( "/metadata/index.html"); 37 assertEquals( "default", indexPage.getProperty( "test_property")); 39 40 Page indexPage2 = getPage( "/metadata/index.html"); 41 assertTrue("Should be the same instance" ,indexPage == indexPage2); 42 43 copySiteXconf(); 45 Thread.sleep(100); 46 long start = System.currentTimeMillis(); 47 indexPage = getPage( "/metadata/index.html"); 48 log.info( "got page in " + (System.currentTimeMillis() - start) + " ms"); 49 assertEquals( "Hello!", indexPage.getProperty( "test_property")); 50 assertEquals( "/default.html", indexPage.getLayout() ); 51 52 copyIndexXconf(); 53 Thread.sleep(100); 54 start = System.currentTimeMillis(); 55 indexPage = getPage( "/metadata/index.html"); 56 log.info( "got page in " + (System.currentTimeMillis() - start) + " ms"); 57 assertEquals( "Goodbye!", indexPage.getProperty( "test_property")); 59 assertEquals( "Open Edit", indexPage.getProperty( "productName")); 60 assertEquals( "/indexlayout.html", indexPage.getLayout() ); 61 62 Thread.sleep(100); 63 removeIndexXconf(); 64 start = System.currentTimeMillis(); 65 indexPage = getPage( "/metadata/index.html"); 66 log.info( "got page in " + (System.currentTimeMillis() - start) + " ms"); 67 assertEquals( "/default.html", indexPage.getLayout() ); 68 assertEquals( "Hello!", indexPage.getProperty( "test_property")); 69 assertEquals( "Open Edit", indexPage.getProperty( "productName")); 70 71 Thread.sleep(100); 72 73 removeDefaultXconf(); 74 start = System.currentTimeMillis(); 75 indexPage = getPage( "/metadata/index.html"); 76 log.info( "got page in " + (System.currentTimeMillis() - start) + " ms"); 77 assertEquals( "default", indexPage.getProperty( "test_property")); 79 assertEquals( "Open Edit", indexPage.getProperty( "productName")); 80 } 81 82 protected void copySiteXconf() throws Exception 83 { 84 File fromFile = new File ( getRoot(), "metadata/testxconfs/_site.xconf"); 85 File toFile = new File (getRoot(), "metadata/_site.xconf"); 86 OutputFiller fill = new OutputFiller(); 87 fill.fill( fromFile, toFile ); 88 } 89 90 protected void copyIndexXconf() throws Exception 91 { 92 File fromFile = new File (getRoot(), "metadata/testxconfs/index.xconf"); 93 File toFile = new File (getRoot(), "metadata/index.xconf"); 94 OutputFiller fill = new OutputFiller(); 95 fill.fill( fromFile, toFile ); 96 } 97 98 protected void removeIndexXconf() throws Exception 99 { 100 File toFile = new File (getRoot(), "metadata/index.xconf"); 101 toFile.delete(); 102 } 103 104 protected void removeDefaultXconf() throws Exception 105 { 106 File toFile = new File (getRoot(), "metadata/_site.xconf"); 107 toFile.delete(); 108 } 109 110 public void testGetLayout() 111 { 112 assertEquals( "layoutindex.xconf" , metaData.getLayout() ); 113 metaData.setFallBack( defaultMetaData ); 114 assertEquals( "layoutindex.xconf" , metaData.getLayout() ); 115 metaData.setLayout(null); 116 metaData.setFallBack( defaultMetaData ); 117 assertEquals( "layout_default.xconf" , metaData.getLayout() ); 118 } 119 120 public void testSiteLayout() throws Exception 121 { 122 Page page = getPage("/metadatalayout/sublayout/index.html"); 123 assertEquals("/defaulttemplate.html",page.getLayout()); 124 } 125 126 public PageSettings createDateMetaData( String inPath, String inDateString ) throws ParseException 127 { 128 PageSettings metaData = new PageSettings(); 129 metaData.setXConf( new DateStampContentItem( inDateString ) ); 130 131 metaData.setLayout( "layout" + inPath ); 132 return metaData; 133 } 134 135 138 protected void setUp() throws Exception 139 { 140 siteMetaData = createDateMetaData( "_site.xconf", "1/10/04"); 141 defaultMetaData = createDateMetaData( "_default.xconf", "1/5/04"); 142 metaData = createDateMetaData( "index.xconf", "1/1/04"); 143 } 144 145 protected void tearDown() throws Exception 146 { 147 removeDefaultXconf(); 148 removeIndexXconf(); 149 } 150 151 public void testEncoding() throws Exception 152 { 153 Page index = getPage("/metadata/testxconfs/index.html"); 154 String encoding = index.getCharacterEncoding(); 155 assertEquals( "ISO-8859-1", encoding ); 156 157 WebPageRequest req = getFixture().createPageRequest("/metadata/testxconfs/index.html"); 158 getFixture().getEngine().beginRender(req); 159 encoding = req.getPage().getCharacterEncoding(); 161 assertEquals( "ISO-8859-1", encoding ); 162 163 164 165 } 166 } 167 | Popular Tags |