1 package test.ext;
2
3 import java.io.File;
4 import java.io.FileInputStream;
5 import java.io.FileNotFoundException;
6 import java.io.FileOutputStream;
7 import java.io.IOException;
8 import java.util.Properties;
9
10 import junit.framework.Test;
11 import junit.framework.TestCase;
12 import junit.framework.TestSuite;
13
14 import org.seasar.framework.container.S2Container;
15 import org.seasar.framework.container.factory.SingletonS2ContainerFactory;
16 import org.seasar.tuigwaa.cms.ContentsStoreService;
17 import org.seasar.tuigwaa.cms.TgwResourceAlreadyExistsException;
18 import org.seasar.tuigwaa.cms.core.Page;
19 import org.seasar.tuigwaa.cms.core.PageImpl;
20 import org.seasar.tuigwaa.cms.core.Resource;
21 import org.seasar.tuigwaa.cms.core.ResourceImpl;
22 import org.seasar.tuigwaa.system.TgwSecurityException;
23 import org.seasar.tuigwaa.util.TgwContext;
24
25 import com.isenshi.util.ResourceUtils;
26
27 public class SlideTest extends TestCase {
28
29 private static final String TEST_SITE = "junit";
30
31 private static final String TEST_PAGE = "testPage";
32
33 private static final String TEST_FOLDER = "testFolder";
34
35 private static final String TEST_REPAGE = "renamedTestPage";
36
37 private static final String TEST_SKIN = ".SKINS";
38
39 private static final S2Container container;
40
41 private static final ContentsStoreService contents;
42
43 static {
44
45 if (!SingletonS2ContainerFactory.hasContainer()) {
46 SingletonS2ContainerFactory.init();
47 }
48 container = SingletonS2ContainerFactory.getContainer();
49 contents = (ContentsStoreService) container
50 .getComponent(ContentsStoreService.class);
51 }
52
53 public static Test suite() {
54 TestSuite suite = new TestSuite();
55 suite.addTest(new SlideTest("testCreateSite"));
56 suite.addTest(new SlideTest("testCreatePage"));
57 suite.addTest(new SlideTest("testCreateFolder"));
58 suite.addTest(new SlideTest("testProperty"));
59 suite.addTest(new SlideTest("testCreateAttachment"));
60 suite.addTest(new SlideTest("testWriteAttachment"));
61 suite.addTest(new SlideTest("testRename"));
62 suite.addTest(new SlideTest("testCopyFromFileSystem"));
63 suite.addTest(new SlideTest("testCopyToFileSystem"));
64 suite.addTest(new SlideTest("testDropSite"));
65 return suite;
66 }
67
68 public SlideTest(String method) {
69 super(method);
70 }
71
72 protected void setUp() throws Exception {
73 TgwContext.setAdmin();
74 }
75
76 public void testCreateSite() throws TgwSecurityException,
77 TgwResourceAlreadyExistsException {
78 contents.createFolder(TEST_SITE, "");
79 assertFalse(contents.isExistResource(TEST_SITE, "", true));
80 assertTrue(contents.isExistResource(TEST_SITE, "", false));
81 }
82
83 public void testCreatePage() throws Exception {
84 Resource resource = new ResourceImpl(TEST_SITE, TEST_PAGE, "text/wiki");
85
86 String content = ResourceUtils.readContent("template/site/index.wiki");
87
88 Page page = new PageImpl(resource,content);
89
90 contents.createPage(page);
91 assertEquals(1, contents.getPageList(TEST_SITE, "").size());
92 }
93
94 public void testCreateFolder() throws Exception{
95 contents.createFolder(TEST_SITE, TEST_FOLDER);
96 Resource resource = new ResourceImpl(TEST_SITE, TEST_FOLDER + "/" + TEST_PAGE, "text/wiki");
97 Page page = new PageImpl(resource, "HOGE");
98 contents.createPage(page);
99 assertEquals(2, contents.getRecursivePageList(TEST_SITE, "").size());
100 }
101
102
103 public void testProperty() throws Exception {
104 Properties props = new Properties();
105 props.put("test", "test");
106 contents.setProperty(TEST_SITE, TEST_PAGE, props);
107 assertEquals("test", contents.getProperty(TEST_SITE, TEST_PAGE)
108 .getProperty("test"));
109 }
110
111 public void testCreateAttachment() throws FileNotFoundException, Exception {
112 File file = ResourceUtils.getFile("app.dicon");
113 contents.createAttachment(TEST_SITE, TEST_PAGE, file.getName(),
114 "text/plain", (int) file.length(), new FileInputStream(file));
115 assertEquals(1, contents.getAttachmentFileList(TEST_SITE, TEST_PAGE)
116 .size());
117 }
118
119 public void testWriteAttachment() throws FileNotFoundException, IOException{
120 File file = ResourceUtils.getFile("app.dicon");
121 contents.writeAttachment(TEST_SITE, TEST_PAGE, "app.dicon", new FileOutputStream(file));
122 assertTrue(file.exists());
123 file.delete();
124 }
125
126 public void testRename() throws TgwSecurityException, TgwResourceAlreadyExistsException {
127 contents.rename(TEST_SITE, TEST_PAGE, TEST_REPAGE);
128 assertEquals(1, contents.getAttachmentFileList(TEST_SITE, TEST_REPAGE)
129 .size());
130 }
131
132 public void testCopyFromFileSystem() throws Exception{
133 File file = ResourceUtils.getFile("template/skin");
134 contents.copyFromFileSystem(file, TEST_SKIN);
135 assertTrue(contents.getRecursivePageOrFolderList(TEST_SKIN, "").size()>0);
136 }
137
138 public void testCopyToFileSystem() throws Exception{
139 File file = ResourceUtils.getFile("");
140 contents.copyToFileSystem(TEST_SKIN, "basic", file);
141 assertTrue(contents.getRecursivePageOrFolderList(TEST_SKIN, "").size()>0);
142 }
143
144 public void testDropSite() throws TgwSecurityException {
145 contents.delete(TEST_SITE, "");
146 contents.delete(TEST_SKIN, "");
147 assertFalse(contents.isExistResource(TEST_SITE, "", false));
148 }
149 }