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 }