1 package test.wiki;
2
3 import java.io.BufferedReader;
4 import java.io.File;
5 import java.io.FileInputStream;
6 import java.io.IOException;
7 import java.io.InputStreamReader;
8 import java.net.URL;
9 import java.net.URLDecoder;
10 import java.util.Properties;
11
12 import org.seasar.tuigwaa.cms.core.CmsConstants;
13 import org.seasar.tuigwaa.cms.core.Page;
14 import org.seasar.tuigwaa.cms.core.PageImpl;
15 import org.seasar.tuigwaa.cms.core.Resource;
16 import org.seasar.tuigwaa.cms.core.ResourceImpl;
17
18
19 /***
20 * @author someda
21 */
22 public class TestPageFactory{
23
24 private static TestPageFactory instance_;
25 private static final String WIKIDATADIR_NAME = "test/wiki/wikidata";
26 private static final String FILESEP = System.getProperty("file.separator");
27 private static final String LINESEP = System.getProperty("line.separator");
28 private static final String FILEENCODE = "JISAutoDetect";
29
30 private static File file_;
31
32 private TestPageFactory(){
33 URL url = Thread.currentThread().getContextClassLoader().getResource(WIKIDATADIR_NAME);
34 file_ = new File(url.getFile());
35 }
36
37 public static TestPageFactory getInstance(){
38 if(instance_ == null){
39 instance_ = new TestPageFactory();
40 }
41 return instance_;
42 }
43
44 public Page getPage(Object id) {
45 return getPage(id,CmsConstants.CONTENTTYPE_XWIKI);
46 }
47
48 public Page getPage(Object id, String contentType){
49 Resource resource = new ResourceImpl("test","test",contentType);
50 resource.setProperties(new Properties());
51 resource.setPersistent(false);
52 resource.setModificationUser("testUser");
53 resource.setCreationUser("testUser");
54 Page page = new PageImpl(resource,getFileData((String)id));
55 return page;
56 }
57
58 private String getFileData(String file){
59
60 StringBuffer buf = new StringBuffer();
61
62 try{
63 String filepath = URLDecoder.decode(file_.getAbsolutePath(),FILEENCODE) + FILESEP + file;
64 FileInputStream fis = new FileInputStream(filepath);
65 InputStreamReader isr = new InputStreamReader(fis,FILEENCODE);
66 BufferedReader br = new BufferedReader(isr);
67 String line;
68 while((line = br.readLine()) != null){
69 buf.append(line + LINESEP);
70 }
71 br.close();
72 isr.close();
73 fis.close();
74 }catch(IOException ioe){
75 ioe.printStackTrace();
76 }
77 return buf.toString();
78 }
79
80 }