1 31 32 package org.opencms.file; 33 34 import org.opencms.file.types.CmsResourceTypeFolder; 35 import org.opencms.test.OpenCmsTestCase; 36 import org.opencms.test.OpenCmsTestProperties; 37 import org.opencms.test.OpenCmsTestResourceFilter; 38 39 import java.util.List ; 40 41 import junit.extensions.TestSetup; 42 import junit.framework.Test; 43 import junit.framework.TestSuite; 44 45 51 public class TestReadResourceTree extends OpenCmsTestCase { 52 53 58 public TestReadResourceTree(String arg0) { 59 60 super(arg0); 61 } 62 63 68 public static Test suite() { 69 OpenCmsTestProperties.initialize(org.opencms.test.AllTests.TEST_PROPERTIES_PATH); 70 71 TestSuite suite = new TestSuite(); 72 suite.setName(TestReadResourceTree.class.getName()); 73 74 suite.addTest(new TestReadResourceTree("testReadSubtree")); 75 suite.addTest(new TestReadResourceTree("testReadChildren")); 76 suite.addTest(new TestReadResourceTree("testReadFolders")); 77 suite.addTest(new TestReadResourceTree("testReadFiles")); 78 suite.addTest(new TestReadResourceTree("testReadResources")); 79 suite.addTest(new TestReadResourceTree("testReadModifiedResources")); 80 suite.addTest(new TestReadResourceTree("testReadResourcesInTimerange")); 81 82 TestSetup wrapper = new TestSetup(suite) { 83 84 protected void setUp() { 85 86 setupOpenCms("simpletest", "/sites/default/"); 87 } 88 89 protected void tearDown() { 90 91 removeOpenCms(); 92 } 93 }; 94 95 return wrapper; 96 } 97 98 103 public void testReadSubtree() throws Throwable { 104 105 CmsObject cms = getCmsObject(); 106 echo("Testing readResources: reading a subtree"); 107 108 cms.getRequestContext().setSiteRoot("/"); 109 110 String path = "/sites/default/folder1/subfolder12"; 111 112 storeResources(cms, path + "/subsubfolder121", false); 115 storeResources(cms, path + "/subsubfolder121/image1.gif", false); 116 storeResources(cms, path + "/subsubfolder121/index.html", false); 117 storeResources(cms, path + "/subsubfolder121/page1.html", false); 118 storeResources(cms, path + "/index.html", false); 119 storeResources(cms, path + "/page1.html", false); 120 storeResources(cms, path + "/page2.html", false); 121 122 List result = cms.readResources(path, CmsResourceFilter.ALL); 124 125 int i; 127 for (i = 0; i < result.size(); i++) { 128 assertFilter(cms, (CmsResource)result.get(i), OpenCmsTestResourceFilter.FILTER_EQUAL); 129 } 130 131 assertEquals(this.m_currentResourceStrorage.size(), i); 133 } 134 135 140 public void testReadChildren() throws Throwable { 141 142 CmsObject cms = getCmsObject(); 143 echo("Testing readResources: reading child resources"); 144 145 cms.getRequestContext().setSiteRoot("/"); 146 147 String path = "/sites/default/folder1/subfolder12"; 148 149 storeResources(cms, path + "/subsubfolder121", false); 152 storeResources(cms, path + "/index.html", false); 153 storeResources(cms, path + "/page1.html", false); 154 storeResources(cms, path + "/page2.html", false); 155 156 List result = cms.readResources(path, CmsResourceFilter.ALL, false); 158 159 int i; 161 for (i = 0; i < result.size(); i++) { 162 assertFilter(cms, (CmsResource)result.get(i), OpenCmsTestResourceFilter.FILTER_EQUAL); 163 } 164 165 assertEquals(this.m_currentResourceStrorage.size(), i); 167 } 168 169 174 public void testReadFolders() throws Throwable { 175 176 CmsObject cms = getCmsObject(); 177 echo("Testing readResources: reading folder resources"); 178 179 cms.getRequestContext().setSiteRoot("/"); 180 181 String path = "/sites/default/folder2"; 182 183 storeResources(cms, path + "/subfolder21", false); 186 storeResources(cms, path + "/subfolder21/subsubfolder211", false); 187 storeResources(cms, path + "/subfolder22", false); 188 storeResources(cms, path + "/subfolder22/subsubfolder221", false); 189 190 List result = cms.readResources(path, CmsResourceFilter.DEFAULT_FOLDERS); 192 193 int i; 195 for (i = 0; i < result.size(); i++) { 196 assertFilter(cms, (CmsResource)result.get(i), OpenCmsTestResourceFilter.FILTER_EQUAL); 197 } 198 199 assertEquals(this.m_currentResourceStrorage.size(), i); 201 } 202 203 208 public void testReadFiles() throws Throwable { 209 210 CmsObject cms = getCmsObject(); 211 echo("Testing readResources: reading file resources"); 212 213 cms.getRequestContext().setSiteRoot("/"); 214 String path = "/sites/default/folder2"; 215 216 storeResources(cms, path + "/subfolder21/subsubfolder211/jsp1.jsp", false); 218 storeResources(cms, path + "/subfolder21/subsubfolder211/jsp2.jsp", false); 219 storeResources(cms, path + "/subfolder21/image1.gif", false); 220 storeResources(cms, path + "/subfolder21/index.html", false); 221 storeResources(cms, path + "/subfolder21/page1.html", false); 222 storeResources(cms, path + "/subfolder22/subsubfolder221/index.html", false); 223 storeResources(cms, path + "/subfolder22/subsubfolder221/jsp1.jsp", false); 224 storeResources(cms, path + "/subfolder22/subsubfolder221/page1.html", false); 225 storeResources(cms, path + "/subfolder22/index.html", false); 226 storeResources(cms, path + "/subfolder22/page1.html", false); 227 storeResources(cms, path + "/subfolder22/page2.html", false); 228 storeResources(cms, path + "/subfolder22/page3.html", false); 229 storeResources(cms, path + "/image1.gif", false); 230 storeResources(cms, path + "/image2.gif", false); 231 storeResources(cms, path + "/index.html", false); 232 storeResources(cms, path + "/page1.html", false); 233 storeResources(cms, path + "/page2.html", false); 234 235 List result = cms.readResources(path, CmsResourceFilter.DEFAULT_FILES); 237 238 int i; 240 for (i = 0; i < result.size(); i++) { 241 assertFilter(cms, (CmsResource)result.get(i), OpenCmsTestResourceFilter.FILTER_EQUAL); 242 } 243 244 assertEquals(this.m_currentResourceStrorage.size(), i); 246 } 247 248 253 public void testReadResources() throws Throwable { 254 255 CmsObject cms = getCmsObject(); 256 echo("Testing readResources: reading child resources"); 257 258 cms.getRequestContext().setSiteRoot("/"); 259 260 String path = "/sites/default/"; 261 262 List result; 263 264 result = cms.getResourcesInFolder(path, CmsResourceFilter.ALL); 265 assertEquals(5, result.size()); 266 267 result = cms.getSubFolders(path, CmsResourceFilter.ALL); 268 assertEquals(4, result.size()); 269 270 result = cms.getFilesInFolder(path, CmsResourceFilter.ALL); 271 assertEquals(1, result.size()); 272 } 273 274 279 public void testReadModifiedResources() throws Throwable { 280 281 CmsObject cms = getCmsObject(); 282 echo("Testing readResources: reading modified resources"); 283 284 cms.getRequestContext().setSiteRoot("/"); 285 286 String path = "/sites/default/folder2"; 287 String resourcename; 288 289 resourcename = path + "/subfolder21/subsubfolder211/jsp1.jsp"; 291 cms.lockResource(resourcename); 292 cms.setDateLastModified(resourcename, System.currentTimeMillis(), false); 293 294 resourcename = path + "/subfolder22/subsubfolder221/page1.html"; 295 cms.lockResource(resourcename); 296 cms.deleteResource(resourcename, CmsResource.DELETE_PRESERVE_SIBLINGS); 297 298 resourcename = path + "/newpage.html"; 299 cms.createResource(resourcename, CmsResourceTypeFolder.RESOURCE_TYPE_ID); 300 301 storeResources(cms, path + "/newpage.html", false); 303 304 List result = cms.readResources("/", CmsResourceFilter.ALL.addRequireState(CmsResource.STATE_NEW)); 306 307 int i; 309 for (i = 0; i < result.size(); i++) { 310 assertFilter(cms, (CmsResource)result.get(i), OpenCmsTestResourceFilter.FILTER_EQUAL); 311 } 312 313 assertEquals(this.m_currentResourceStrorage.size(), i); 315 316 storeResources(cms, path + "/subfolder21/subsubfolder211/jsp1.jsp", false); 318 storeResources(cms, path + "/subfolder22/subsubfolder221/jsp1.jsp", false); storeResources(cms, path + "/subfolder22/subsubfolder221/page1.html", false); 320 321 result = cms.readResources("/", CmsResourceFilter.ALL_MODIFIED); 323 324 for (i = 0; i < result.size(); i++) { 326 assertFilter(cms, (CmsResource)result.get(i), OpenCmsTestResourceFilter.FILTER_EQUAL); 327 } 328 329 assertEquals(this.m_currentResourceStrorage.size(), i); 331 } 332 333 338 public void testReadResourcesInTimerange() throws Throwable { 339 340 CmsObject cms = getCmsObject(); 341 echo("Testing readResources: reading resources modified within a timerange"); 342 343 long timestamp1 = CmsResource.DATE_RELEASED_DEFAULT + 1; 344 long timestamp2 = System.currentTimeMillis(); 345 List result = null; 346 347 cms.getRequestContext().setSiteRoot("/"); 348 349 String path = "/sites/default/folder1"; 350 String resourcename; 351 352 result = cms.readResources("/", CmsResourceFilter.ALL.addRequireLastModifiedBefore(timestamp1)); 354 355 if (result.size() > 0) { 356 fail("Unexpected modification dates in resources found"); 357 } 358 359 resourcename = path + "/subfolder12/index.html"; 361 cms.lockResource(resourcename); 362 cms.setDateLastModified(resourcename, timestamp1 - 1, false); 363 364 storeResources(cms, resourcename, false); 366 367 result = cms.readResources("/", CmsResourceFilter.ALL.addRequireLastModifiedBefore(timestamp1)); 369 370 int i; 372 for (i = 0; i < result.size(); i++) { 373 assertFilter(cms, (CmsResource)result.get(i), OpenCmsTestResourceFilter.FILTER_EQUAL); 374 } 375 376 assertEquals(this.m_currentResourceStrorage.size(), i); 378 379 result = cms.readResources("/", CmsResourceFilter.ALL.addRequireLastModifiedAfter(timestamp2)); 381 382 if (result.size() > 0) { 383 fail("Unexpected modification dates in resources found"); 384 } 385 386 cms.lockResource(resourcename); 388 cms.setDateLastModified(resourcename, timestamp2 + 1, false); 389 390 storeResources(cms, resourcename, false); 392 393 result = cms.readResources("/", CmsResourceFilter.ALL.addRequireLastModifiedAfter(timestamp2)); 395 396 for (i = 0; i < result.size(); i++) { 398 assertFilter(cms, (CmsResource)result.get(i), OpenCmsTestResourceFilter.FILTER_EQUAL); 399 } 400 401 assertEquals(this.m_currentResourceStrorage.size(), i); 403 } 404 } | Popular Tags |