1 31 32 package org.opencms.importexport; 33 34 import org.opencms.file.CmsObject; 35 import org.opencms.file.CmsProject; 36 import org.opencms.file.CmsResource; 37 import org.opencms.file.types.CmsResourceTypePlain; 38 import org.opencms.main.OpenCms; 39 import org.opencms.report.CmsShellReport; 40 import org.opencms.test.OpenCmsTestCase; 41 import org.opencms.test.OpenCmsTestProperties; 42 43 import java.io.File ; 44 import java.util.ArrayList ; 45 import java.util.List ; 46 47 import junit.extensions.TestSetup; 48 import junit.framework.Test; 49 import junit.framework.TestSuite; 50 51 57 public class TestCmsImportExportNonexistentUser extends OpenCmsTestCase { 58 59 64 public TestCmsImportExportNonexistentUser(String arg0) { 65 super(arg0); 66 } 67 68 73 public static Test suite() { 74 OpenCmsTestProperties.initialize(org.opencms.test.AllTests.TEST_PROPERTIES_PATH); 75 76 TestSuite suite = new TestSuite(); 77 suite.setName(TestCmsImportExport.class.getName()); 78 79 suite.addTest(new TestCmsImportExportNonexistentUser("testImportExportNonexistentUser")); 80 81 TestSetup wrapper = new TestSetup(suite) { 82 83 protected void setUp() { 84 setupOpenCms("simpletest", "/sites/default/"); 85 } 86 87 protected void tearDown() { 88 removeOpenCms(); 89 } 90 }; 91 92 return wrapper; 93 } 94 95 103 public void testImportExportNonexistentUser() throws Exception { 104 105 String zipExportFilename = null; 106 CmsObject cms = getCmsObject(); 107 108 try { 109 String username = "tempuser"; 110 String password = "password"; 111 String filename = "/dummy1.txt"; 112 String contentStr = "This is a comment. I love comments."; 113 zipExportFilename = OpenCms.getSystemInfo().getAbsoluteRfsPathRelativeToWebInf("packages/testImportExportNonexistentUser.zip"); 114 byte[] content = contentStr.getBytes(); 115 CmsProject offlineProject = cms.getRequestContext().currentProject(); 116 117 cms.createUser(username, password, "Temporary user for import/export test case", null); 119 cms.addUserToGroup(username, OpenCms.getDefaultUsers().getGroupProjectmanagers()); 121 122 cms.loginUser(username, password); 124 cms.getRequestContext().saveSiteRoot(); 125 cms.getRequestContext().setSiteRoot("/sites/default/"); 126 cms.getRequestContext().setCurrentProject(offlineProject); 127 128 cms.createResource(filename, CmsResourceTypePlain.getStaticTypeId(), content, null); 130 cms.unlockResource(filename); 132 cms.publishResource(filename); 133 134 cms.loginUser("Admin", "admin"); 136 cms.getRequestContext().setSiteRoot("/sites/default/"); 137 cms.getRequestContext().setCurrentProject(offlineProject); 138 cms.deleteUser(username); 140 141 CmsVfsImportExportHandler vfsExportHandler = new CmsVfsImportExportHandler(); 143 vfsExportHandler.setFileName(zipExportFilename); 144 List exportPaths = new ArrayList (1); 145 exportPaths.add(filename); 146 vfsExportHandler.setExportPaths(exportPaths); 147 vfsExportHandler.setIncludeSystem(false); 148 vfsExportHandler.setIncludeUnchanged(true); 149 vfsExportHandler.setExportUserdata(false); 150 OpenCms.getImportExportManager().exportData(cms, vfsExportHandler, new CmsShellReport(cms.getRequestContext().getLocale())); 151 152 cms.lockResource(filename); 154 cms.deleteResource(filename, CmsResource.DELETE_REMOVE_SIBLINGS); 155 cms.unlockResource(filename); 157 cms.publishResource(filename); 158 159 OpenCms.getImportExportManager().importData(cms, zipExportFilename, "/", new CmsShellReport(cms.getRequestContext().getLocale())); 161 } catch (Exception e) { 162 163 fail(e.toString()); 164 } finally { 165 166 try { 167 if (zipExportFilename != null) { 168 File file = new File (zipExportFilename); 169 if (file.exists()) { 170 file.delete(); 171 } 172 } 173 } catch (Throwable t) { 174 } 176 177 cms.getRequestContext().restoreSiteRoot(); 178 } 179 } 180 181 } 182 | Popular Tags |