KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > openedit > page > PageMetaDataTest


1 /*
2  * Created on Sep 14, 2004
3  */

4 package com.openedit.page;
5
6 import java.io.File JavaDoc;
7 import java.text.ParseException JavaDoc;
8 import java.util.List JavaDoc;
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 /**
18  * @author Matthew Avery, mavery@einnovation.com
19  */

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 JavaDoc name )
29     {
30         super( name );
31     }
32
33     public void testUpdateMetaData() throws Exception JavaDoc
34     {
35         removeDefaultXconf();
36         Page indexPage = getPage( "/metadata/index.html");
37         //assertNull( indexPage.getLayout() );
38
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         //put the starter xconf in there
44
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         //log.info( indexPage.getPageSettings().() );
58
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         //assertNull( indexPage. );
78
assertEquals( "default", indexPage.getProperty( "test_property"));
79         assertEquals( "Open Edit", indexPage.getProperty( "productName"));
80     }
81     
82     protected void copySiteXconf() throws Exception JavaDoc
83     {
84         File JavaDoc fromFile = new File JavaDoc( getRoot(), "metadata/testxconfs/_site.xconf");
85         File JavaDoc toFile = new File JavaDoc(getRoot(), "metadata/_site.xconf");
86         OutputFiller fill = new OutputFiller();
87         fill.fill( fromFile, toFile );
88     }
89     
90     protected void copyIndexXconf() throws Exception JavaDoc
91     {
92         File JavaDoc fromFile = new File JavaDoc(getRoot(), "metadata/testxconfs/index.xconf");
93         File JavaDoc toFile = new File JavaDoc(getRoot(), "metadata/index.xconf");
94         OutputFiller fill = new OutputFiller();
95         fill.fill( fromFile, toFile );
96     }
97     
98     protected void removeIndexXconf() throws Exception JavaDoc
99     {
100         File JavaDoc toFile = new File JavaDoc(getRoot(), "metadata/index.xconf");
101         toFile.delete();
102     }
103     
104     protected void removeDefaultXconf() throws Exception JavaDoc
105     {
106         File JavaDoc toFile = new File JavaDoc(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 JavaDoc
121     {
122         Page page = getPage("/metadatalayout/sublayout/index.html");
123         assertEquals("/defaulttemplate.html",page.getLayout());
124     }
125     
126     public PageSettings createDateMetaData( String JavaDoc inPath, String JavaDoc inDateString ) throws ParseException JavaDoc
127     {
128         PageSettings metaData = new PageSettings();
129         metaData.setXConf( new DateStampContentItem( inDateString ) );
130         
131         metaData.setLayout( "layout" + inPath );
132         return metaData;
133     }
134
135     /* (non-Javadoc)
136      * @see junit.framework.TestCase#setUp()
137      */

138     protected void setUp() throws Exception JavaDoc
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 JavaDoc
146     {
147         removeDefaultXconf();
148         removeIndexXconf();
149     }
150     
151     public void testEncoding() throws Exception JavaDoc
152     {
153         Page index = getPage("/metadata/testxconfs/index.html");
154         String JavaDoc 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         //req.getWriter().toString();
160
encoding = req.getPage().getCharacterEncoding();
161         assertEquals( "ISO-8859-1", encoding );
162         
163         
164         
165     }
166 }
167
Popular Tags