1 31 32 package org.opencms.file; 33 34 import org.opencms.test.OpenCmsTestCase; 35 import org.opencms.test.OpenCmsTestProperties; 36 import org.opencms.test.OpenCmsTestResourceFilter; 37 38 import java.util.Iterator ; 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 TestTouch extends OpenCmsTestCase { 52 53 58 public TestTouch(String arg0) { 59 super(arg0); 60 } 61 62 67 public static Test suite() { 68 OpenCmsTestProperties.initialize(org.opencms.test.AllTests.TEST_PROPERTIES_PATH); 69 70 TestSuite suite = new TestSuite(); 71 suite.setName(TestTouch.class.getName()); 72 73 suite.addTest(new TestTouch("testTouchFile")); 74 suite.addTest(new TestTouch("testTouchFolder")); 75 suite.addTest(new TestTouch("testTouchFolderRecursive")); 76 77 TestSetup wrapper = new TestSetup(suite) { 78 79 protected void setUp() { 80 setupOpenCms("simpletest", "/sites/default/"); 81 } 82 83 protected void tearDown() { 84 removeOpenCms(); 85 } 86 }; 87 88 return wrapper; 89 } 90 91 98 public static void touchResource(OpenCmsTestCase tc, CmsObject cms, String resource1) throws Throwable { 99 100 tc.storeResources(cms, resource1); 101 102 long timestamp = System.currentTimeMillis(); 103 cms.lockResource(resource1); 104 cms.setDateLastModified(resource1, timestamp, false); 105 cms.unlockResource(resource1); 106 107 tc.assertFilter(cms, resource1, OpenCmsTestResourceFilter.FILTER_TOUCH); 109 tc.assertProject(cms, resource1, cms.getRequestContext().currentProject()); 111 tc.assertState(cms, resource1, tc.getPreCalculatedState(resource1)); 113 tc.assertDateLastModified(cms, resource1, timestamp); 115 tc.assertUserLastModified(cms, resource1, cms.getRequestContext().currentUser()); 117 } 118 119 126 public static void touchResources(OpenCmsTestCase tc, CmsObject cms, String resource1) throws Throwable { 127 128 tc.storeResources(cms, resource1); 129 130 long timestamp = System.currentTimeMillis(); 131 cms.lockResource(resource1); 132 cms.setDateLastModified(resource1, timestamp, false); 133 cms.unlockResource(resource1); 134 135 tc.assertFilter(cms, resource1, OpenCmsTestResourceFilter.FILTER_TOUCH); 137 tc.assertProject(cms, resource1, cms.getRequestContext().currentProject()); 139 tc.assertState(cms, resource1, tc.getPreCalculatedState(resource1)); 141 tc.assertDateLastModified(cms, resource1, timestamp); 143 tc.assertUserLastModified(cms, resource1, cms.getRequestContext().currentUser()); 145 146 List subresources = cms.readResources(resource1, CmsResourceFilter.ALL); 148 149 Iterator i = subresources.iterator(); 151 while (i.hasNext()) { 152 CmsResource res = (CmsResource)i.next(); 153 String resName = cms.getSitePath(res); 154 tc.assertFilter(cms, resName, OpenCmsTestResourceFilter.FILTER_EQUAL); 156 } 157 } 158 159 166 public static void touchResourcesRecursive(OpenCmsTestCase tc, CmsObject cms, String resource1) throws Throwable { 167 168 tc.storeResources(cms, resource1); 169 170 long timestamp = System.currentTimeMillis(); 171 cms.lockResource(resource1); 172 cms.setDateLastModified(resource1, timestamp, true); 173 cms.unlockResource(resource1); 174 175 tc.assertFilter(cms, resource1, OpenCmsTestResourceFilter.FILTER_TOUCH); 177 tc.assertProject(cms, resource1, cms.getRequestContext().currentProject()); 179 tc.assertState(cms, resource1, tc.getPreCalculatedState(resource1)); 181 tc.assertDateLastModified(cms, resource1, timestamp); 183 tc.assertUserLastModified(cms, resource1, cms.getRequestContext().currentUser()); 185 186 List subresources = cms.readResources(resource1, CmsResourceFilter.ALL); 188 189 Iterator i = subresources.iterator(); 191 while (i.hasNext()) { 192 CmsResource res = (CmsResource)i.next(); 193 String resName = cms.getSitePath(res); 194 tc.assertFilter(cms, resName, OpenCmsTestResourceFilter.FILTER_TOUCH); 196 tc.assertProject(cms, resName, cms.getRequestContext().currentProject()); 198 tc.assertState(cms, resName, tc.getPreCalculatedState(resName)); 200 tc.assertDateLastModified(cms, resName, timestamp); 202 tc.assertUserLastModified(cms, resName, cms.getRequestContext().currentUser()); 204 } 205 } 206 207 212 public void testTouchFile() throws Throwable { 213 214 CmsObject cms = getCmsObject(); 215 echo("Testing touch on file"); 216 touchResource(this, cms, "/index.html"); 217 } 218 219 224 public void testTouchFolder() throws Throwable { 225 226 CmsObject cms = getCmsObject(); 227 echo("Testing touch on a folder (without recursion)"); 228 touchResources(this, cms, "/folder1/"); 229 } 230 231 236 public void testTouchFolderRecursive() throws Throwable { 237 238 CmsObject cms = getCmsObject(); 239 echo("Testing touch on a folder (_with_ recursion)"); 240 touchResourcesRecursive(this, cms, "/folder2/"); 241 } 242 } 243 | Popular Tags |