1   package test.tuigwaa;
2   
3   import java.sql.SQLException;
4   import java.util.Iterator;
5   import java.util.List;
6   import java.util.Properties;
7   
8   import javax.sql.DataSource;
9   
10  import junit.extensions.TestSetup;
11  import junit.framework.Test;
12  import junit.framework.TestCase;
13  import junit.framework.TestSuite;
14  
15  import org.seasar.framework.container.S2Container;
16  import org.seasar.framework.container.factory.SingletonS2ContainerFactory;
17  import org.seasar.tuigwaa.cms.ContentsStoreService;
18  import org.seasar.tuigwaa.cms.core.PageImpl;
19  import org.seasar.tuigwaa.cms.core.Resource;
20  import org.seasar.tuigwaa.cms.core.ResourceImpl;
21  import org.seasar.tuigwaa.security.DirectoryService;
22  import org.seasar.tuigwaa.system.BackupDto;
23  import org.seasar.tuigwaa.system.Constants;
24  import org.seasar.tuigwaa.system.SiteService;
25  import org.seasar.tuigwaa.util.TgwContext;
26  
27  import com.isenshi.util.extlib.HSQLDBUtil;
28  
29  /***
30   * @author nishioka
31   */
32  public class SlideTest extends TestCase {
33  
34  	private ContentsStoreService storeService_;
35  
36  	// private WikiService wikiService;
37  
38  	public static Test suite() {
39  		TestSetup setup = new TestSetup(new TestSuite(SlideTest.class)) {
40  			
41  			public void setUp() {
42  								
43  				// S2Container container =
44  				// S2ContainerFactory.create("app.dicon");
45  				SingletonS2ContainerFactory.init();
46  				
47  				S2Container container = SingletonS2ContainerFactory.getContainer();
48  				container.getComponent(DirectoryService.class);				
49  												
50  				TgwContext.setAdmin();
51  				ContentsStoreService storeService = (ContentsStoreService) container
52  						.getComponent(ContentsStoreService.class);
53  				try {
54  				//	storeService.init();
55  					if (storeService.isExistResource("junit", "", false)) {
56  						storeService.delete("junit", "");
57  					}
58  					if (storeService.isExistResource("junit", "", false)) {
59  						storeService.delete("junit", "");
60  					}
61  					storeService.createFolder("junit", "");
62  					System.out.println("Creating .....");
63  				} catch (Exception e) {
64  					e.printStackTrace();
65  					fail();
66  				}
67  			}
68  
69  			public void tearDown() {
70  				S2Container container = SingletonS2ContainerFactory
71  						.getContainer();
72  				ContentsStoreService storeService = (ContentsStoreService) container
73  						.getComponent(ContentsStoreService.class);
74  				try {
75  
76  					if (storeService.isExistResource("junit", "", false)) {
77  						storeService.delete("junit" , "");
78  					}
79  					// slideService.delete("/wiki/junit", "root");
80  					System.out.println("Deleting .....");
81  				} catch (Exception e) {
82  					e.printStackTrace();
83  					fail();
84  				}
85  				DataSource dataSource = (DataSource) SingletonS2ContainerFactory
86  						.getContainer().getComponent(DataSource.class);
87  				try {
88  					HSQLDBUtil.shutdown(dataSource);
89  				} catch (SQLException e) {
90  					// TODO Auto-generated catch block
91  					e.printStackTrace();
92  				}
93  			}
94  		};
95  
96  		return setup;
97  	}
98  
99  	public void setUp() {
100 		S2Container container = SingletonS2ContainerFactory.getContainer();
101 		storeService_ = (ContentsStoreService) container
102 				.getComponent(ContentsStoreService.class);
103 	}
104 
105 	public void testCreateContent() {
106 		try {
107 			Resource resource = new ResourceImpl("junit", "test", Constants.CONTENTTYPE_WIKI);
108 			Resource resource2 = new ResourceImpl("junit", "test2", Constants.CONTENTTYPE_WIKI);
109 			Resource resource3 = new ResourceImpl("junit", "test3", Constants.CONTENTTYPE_WIKI);
110 			Resource resource5 = new ResourceImpl("junit", "test5", Constants.CONTENTTYPE_WIKI);
111 			
112 			
113 			storeService_.createPage(new PageImpl(resource, "test is a test"));
114 
115 			storeService_.createPage(new PageImpl(resource2,"that is a test"));
116 
117 			storeService_.createPage(new PageImpl(resource3,"that is a test"));
118 
119 			storeService_.createPage(new PageImpl(resource5, "test"));
120 
121 			Iterator itr = storeService_.search("junit", "test")
122 					.iterator();
123 
124 			int i = 0;
125 
126 			while (itr.hasNext()) {
127 				i++;
128 				Object obj = itr.next();
129 				System.out.println(obj);
130 			}
131 
132 			assertEquals(4, i);
133 
134 		} catch (Exception e) {
135 			e.printStackTrace();
136 			fail();
137 		}
138 
139 	}
140 
141 	/*
142 	 * public void testCreateContent2() { try {
143 	 * slideService_.createContent("/wiki/junit/test", "this is a test",
144 	 * "root");
145 	 * 
146 	 * Page page = slideService_.getPage("/wiki/junit/test"); //
147 	 * assertEquals("a", content);
148 	 * 
149 	 * Iterator itr = slideService_.search("/woki/", "test2", "root")
150 	 * .iterator();
151 	 * 
152 	 * int i = 0;
153 	 * 
154 	 * while (itr.hasNext()) { i++; Object obj = itr.next();
155 	 * System.out.println(obj); }
156 	 * 
157 	 * assertEquals(1, i); } catch (Exception e) { e.printStackTrace(); fail(); } }
158 	 */
159 
160 	/*public void testHistory() {
161 		try {
162 			Resource resource = new ResourceImpl("junit", "hist", "text/x-wiki");
163 			com.isenshi.cms.Page savepage = new PageImpl(resource, "hoge");
164 			storeService_.createContent(savepage);
165 			storeService_.createContent(savepage);
166 			com.isenshi.cms.Page page = storeService_.getPage("junit", "hist");
167 
168 			System.out.println(page.getVersion());
169 			List list = page.getHistory();
170 			for (Iterator i = list.iterator(); i.hasNext();) {
171 				Page aPage = (Page) i.next();
172 				System.out.println(aPage.getVersion() + " - "
173 						+ aPage.getModificationDate());
174 			}
175 
176 		} catch (Exception e) {
177 			e.printStackTrace();
178 		}
179 	}*/
180 
181 	public void testLatestContent() {
182 
183 		// slideService_.
184 
185 		try {
186 			List list = storeService_.getLatestContents("junit", 30);
187 					assertNotNull(list);
188 		} catch (Exception e) {
189 			e.printStackTrace();
190 			fail();
191 		}
192 
193 	}
194 
195 	public void testBackup() {
196 		S2Container container = SingletonS2ContainerFactory.getContainer();
197 		SiteService siteService = (SiteService)container.getComponent(SiteService.class);
198 
199 		try {
200 
201 			BackupDto dto = new BackupDto();
202 			siteService.backup("junit",dto);
203 
204 			// if (slideService_.isExist("/wiki/junit")) {
205 			// slideService_.delete("/wiki/junit", "root");
206 			// }
207 			// if (slideService_.isExist("/wiki/junit")) {
208 			// slideService_.delete("/wiki/junit", "root");
209 			// }
210 
211 			siteService.restore("junit",dto);
212 
213 						
214 			List list = storeService_.getPageList("junit", "");
215 
216 			for (Iterator i = list.iterator(); i.hasNext();) {
217 				System.out.println(i.next());
218 			}
219 
220 		} catch (Exception e) {
221 			e.printStackTrace();
222 			fail();
223 		}
224 	}
225 
226 	public void testHidden() {
227 		try {
228 			Properties props = new Properties();
229 			props.put("hidden","true");
230 			props.put("trackback","hogehoge");	
231 			
232 			System.out.println("properties updated...");
233 			storeService_.setProperty("junit", "", props);
234 		} catch (Exception e) {
235 			e.printStackTrace();
236 			fail();
237 		}
238 
239 	}
240 	
241 	public void testSecurity() {
242 
243 
244 		try {
245 
246 
247 			
248 			//storeService_.denyRolePermissions("junit", "", new String[]{"guest"});
249 
250 
251 		} catch (Exception e) {
252 			e.printStackTrace();
253 			fail();
254 		}
255 	}
256 
257 }