1 31 32 package org.opencms.setup; 33 34 import org.opencms.configuration.CmsConfigurationManager; 35 import org.opencms.configuration.CmsWorkplaceConfiguration; 36 import org.opencms.configuration.I_CmsXmlConfiguration; 37 import org.opencms.main.CmsSystemInfo; 38 import org.opencms.setup.xml.CmsSetupXmlHelper; 39 import org.opencms.test.OpenCmsTestCase; 40 import org.opencms.util.CmsFileUtil; 41 42 import java.io.File ; 43 44 import org.dom4j.Document; 45 46 55 public class TestCmsSetupXmlHelper extends OpenCmsTestCase { 56 57 62 public TestCmsSetupXmlHelper(String arg0) { 63 64 super(arg0); 65 } 66 67 72 public void testXmlModification() throws Exception { 73 74 String base = getTestDataPath(File.separator + "WEB-INF" + File.separator + CmsSystemInfo.FOLDER_CONFIG); 75 CmsSetupXmlHelper xmlHelper = new CmsSetupXmlHelper(base); 76 77 String inputFile = "test.xml"; 79 CmsFileUtil.copy(base + CmsWorkplaceConfiguration.DEFAULT_XML_FILE_NAME, base + inputFile); 80 81 System.out.println("Modifying xml from " + base + inputFile); 83 Document ori = xmlHelper.getDocument(inputFile); 84 85 String baseXp = "/" + CmsConfigurationManager.N_ROOT + "/" + CmsWorkplaceConfiguration.N_WORKPLACE + "/"; 86 String xPath = baseXp + CmsWorkplaceConfiguration.N_AUTOLOCK; 88 String value = xmlHelper.getValue(inputFile, xPath); 89 assertEquals("true", value); 90 String expected = "false"; 91 xmlHelper.setValue(inputFile, xPath, expected); 92 value = xmlHelper.getValue(inputFile, xPath); 93 assertEquals(expected, value); 94 95 xPath = baseXp 97 + CmsWorkplaceConfiguration.N_LOCALIZEDFOLDERS 98 + "/" 99 + I_CmsXmlConfiguration.N_RESOURCE 100 + "[2]/@" 101 + I_CmsXmlConfiguration.A_URI; 102 value = xmlHelper.getValue(inputFile, xPath); 103 assertEquals("/system/login/", value); 104 expected = "/"; 105 xmlHelper.setValue(inputFile, xPath, expected); 106 value = xmlHelper.getValue(inputFile, xPath); 107 assertEquals(expected, value); 108 109 xPath = baseXp + "test1/test2/test3"; 111 expected = "test4"; 112 assertEquals(1, xmlHelper.setValue(inputFile, xPath, expected)); 113 value = xmlHelper.getValue(inputFile, xPath); 114 assertEquals(expected, value); 115 116 xPath = baseXp 118 + CmsWorkplaceConfiguration.N_LOCALIZEDFOLDERS 119 + "/" 120 + I_CmsXmlConfiguration.N_RESOURCE 121 + "[2]/@test-attr"; 122 expected = "test-value"; 123 assertEquals(1, xmlHelper.setValue(inputFile, xPath, expected)); 124 value = xmlHelper.getValue(inputFile, xPath); 125 assertEquals(expected, value); 126 127 xPath = baseXp + "test1/test2[2]/test5"; 129 expected = "test6"; 130 assertEquals(1, xmlHelper.setValue(inputFile, xPath, expected)); 131 value = xmlHelper.getValue(inputFile, xPath); 132 assertEquals(expected, value); 133 134 xmlHelper.write(inputFile); 136 137 xPath = baseXp 139 + CmsWorkplaceConfiguration.N_LOCALIZEDFOLDERS 140 + "/" 141 + I_CmsXmlConfiguration.N_RESOURCE 142 + "[2]/@" 143 + I_CmsXmlConfiguration.A_URI; 144 value = xmlHelper.getValue(inputFile, xPath); 145 assertEquals("/", value); 146 expected = "/system/login/"; 147 xmlHelper.setValue(inputFile, xPath, expected); 148 value = xmlHelper.getValue(inputFile, xPath); 149 assertEquals(expected, value); 150 151 xPath = baseXp + CmsWorkplaceConfiguration.N_AUTOLOCK; 152 value = xmlHelper.getValue(inputFile, xPath); 153 assertEquals("false", value); 154 expected = "true"; 155 xmlHelper.setValue(inputFile, xPath, expected); 156 value = xmlHelper.getValue(inputFile, xPath); 157 assertEquals(expected, value); 158 159 xPath = baseXp + "test1"; 161 assertEquals(1, xmlHelper.setValue(inputFile, xPath, null)); 162 assertNull(xmlHelper.getValue(inputFile, xPath)); 163 164 xPath = baseXp 166 + CmsWorkplaceConfiguration.N_LOCALIZEDFOLDERS 167 + "/" 168 + I_CmsXmlConfiguration.N_RESOURCE 169 + "[2]/@test-attr"; 170 assertEquals(1, xmlHelper.setValue(inputFile, xPath, null)); 171 assertNull(xmlHelper.getValue(inputFile, xPath)); 172 assertNotNull(xmlHelper.getValue(inputFile, xPath.substring(0, xPath.lastIndexOf('/')) + "/@uri")); 173 174 xPath = baseXp + "test1"; 176 assertEquals(0, xmlHelper.setValue(inputFile, xPath, null)); 177 178 xPath = baseXp 180 + CmsWorkplaceConfiguration.N_LOCALIZEDFOLDERS 181 + "/" 182 + I_CmsXmlConfiguration.N_RESOURCE 183 + "[2]/@test-xxx"; 184 assertEquals(0, xmlHelper.setValue(inputFile, xPath, null)); 185 186 xmlHelper.write(inputFile); 188 189 xmlHelper.flushAll(); 191 Document cur = xmlHelper.getDocument(inputFile); 192 assertEquals(ori, cur); 193 194 new File (base + inputFile).delete(); 196 } 197 } 198 | Popular Tags |