?? testcmsxmlpageinsystem.java
字號:
String filename = "/folder1/subfolder11/test_param_1.html";
String content = CmsXmlPageFactory.createDocument(Locale.ENGLISH, UTF8);
List properties = new ArrayList();
properties.add(new CmsProperty(CmsPropertyDefinition.PROPERTY_CONTENT_ENCODING, UTF8, null));
properties.add(new CmsProperty(CmsPropertyDefinition.PROPERTY_LOCALE, Locale.ENGLISH.toString(), null));
properties.add(new CmsProperty(CmsXmlPage.PROPERTY_ALLOW_RELATIVE, CmsStringUtil.FALSE, null));
cms.createResource(filename, CmsResourceTypeXmlPage.getStaticTypeId(), content.getBytes(UTF8), properties);
CmsFile file = cms.readFile(filename);
CmsXmlPage page = CmsXmlPageFactory.unmarshal(cms, file);
String element = "test";
page.addValue(element, Locale.ENGLISH);
String text;
page.setStringValue(cms, element, Locale.ENGLISH, "<a href=\"index.html?a=b&someparam=de\">link</a>");
text = page.getStringValue(cms, element, Locale.ENGLISH);
assertEquals("<a href=\"/data/opencms/folder1/subfolder11/index.html?a=b&someparam=de\">link</a>", text);
page.setStringValue(cms, element, Locale.ENGLISH, "<a href=\"index.html?language=de\">link</a>");
text = page.getStringValue(cms, element, Locale.ENGLISH);
assertEquals("<a href=\"/data/opencms/folder1/subfolder11/index.html?language=de\">link</a>", text);
page.setStringValue(cms, element, Locale.ENGLISH, "<a href=\"index.html?a=b&language=de\">link</a>");
text = page.getStringValue(cms, element, Locale.ENGLISH);
assertEquals("<a href=\"/data/opencms/folder1/subfolder11/index.html?a=b&language=de\">link</a>", text);
page.setStringValue(cms, element, Locale.ENGLISH, "<a href=\"index_noexist.html?a=b&language=de\">link</a>");
text = page.getStringValue(cms, element, Locale.ENGLISH);
assertEquals("<a href=\"/data/opencms/folder1/subfolder11/index_noexist.html?a=b&language=de\">link</a>", text);
page.setStringValue(
cms,
element,
Locale.ENGLISH,
"<a href=\"index_noexist.html?a=b&product=somthing\">link</a>");
text = page.getStringValue(cms, element, Locale.ENGLISH);
assertEquals(
"<a href=\"/data/opencms/folder1/subfolder11/index_noexist.html?a=b&product=somthing\">link</a>",
text);
}
/**
* Tests XML link replacement.<p>
*
* @throws Exception if something goes wrong
*/
public void testLinkReplacement() throws Exception {
CmsObject cms = getCmsObject();
echo("Testing XML page link replacement");
String filename = "/folder1/subfolder11/test1.html";
String content = CmsXmlPageFactory.createDocument(Locale.ENGLISH, UTF8);
List properties = new ArrayList();
properties.add(new CmsProperty(CmsPropertyDefinition.PROPERTY_CONTENT_ENCODING, UTF8, null));
properties.add(new CmsProperty(CmsPropertyDefinition.PROPERTY_LOCALE, Locale.ENGLISH.toString(), null));
properties.add(new CmsProperty(CmsXmlPage.PROPERTY_ALLOW_RELATIVE, CmsStringUtil.FALSE, null));
cms.createResource(filename, CmsResourceTypeXmlPage.getStaticTypeId(), content.getBytes(UTF8), properties);
CmsFile file = cms.readFile(filename);
CmsXmlPage page = CmsXmlPageFactory.unmarshal(cms, file);
String element = "test";
page.addValue(element, Locale.ENGLISH);
String text;
// test link replacement with existing file
page.setStringValue(cms, element, Locale.ENGLISH, "<a href=\"index.html\">link</a>");
text = page.getStringValue(cms, element, Locale.ENGLISH);
assertEquals("<a href=\"/data/opencms/folder1/subfolder11/index.html\">link</a>", text);
// test link replacement with non-existing file
page.setStringValue(cms, element, Locale.ENGLISH, "<a href=\"index_noexist.html\">link</a>");
text = page.getStringValue(cms, element, Locale.ENGLISH);
assertEquals("<a href=\"/data/opencms/folder1/subfolder11/index_noexist.html\">link</a>", text);
}
/**
* Test malformed page structures.<p>
*
* @throws Exception in case something goes wrong
*/
public void testMalformedPage() throws Exception {
CmsObject cms = getCmsObject();
echo("Testing malformed page element structures");
// overwrite an existing page with a bad content
String resourcename = "/folder1/page2.html";
cms.lockResource(resourcename);
CmsFile file = cms.readFile(resourcename);
// read malformed XML page
String pageStr = CmsFileUtil.readFile("org/opencms/xml/page/xmlpage-5.xml", "ISO-8859-1");
file.setContents(pageStr.getBytes("ISO-8859-1"));
cms.writeFile(file);
}
/**
* Test the schema cache publish issue.<p>
*
* Description of the issue:
* After the initial publish, the XML page schema does not work anymore.<p>
*
* @throws Exception in case something goes wrong
*/
public void testSchemaCachePublishIssue() throws Exception {
CmsObject cms = getCmsObject();
echo("Testing the validation for values in the XML content");
String resourcename = "/folder1/page1.html";
cms.lockResource(resourcename);
CmsFile file = cms.readFile(resourcename);
CmsXmlPage page = CmsXmlPageFactory.unmarshal(cms, file);
page.validateXmlStructure(new CmsXmlEntityResolver(cms));
page.setStringValue(cms, "body", Locale.ENGLISH, "This is a test");
assertEquals("This is a test", page.getValue("body", Locale.ENGLISH).getStringValue(cms));
file.setContents(page.marshal());
cms.writeFile(file);
cms.unlockResource(resourcename);
cms.publishResource(resourcename);
cms.lockResource(resourcename);
file = cms.readFile(resourcename);
page = CmsXmlPageFactory.unmarshal(cms, file);
page.validateXmlStructure(new CmsXmlEntityResolver(cms));
page.setStringValue(cms, "body", Locale.ENGLISH, "This is a another test");
assertEquals("This is a another test", page.getValue("body", Locale.ENGLISH).getStringValue(cms));
file.setContents(page.marshal());
cms.writeFile(file);
}
/**
* Tests accessing element names in the XML page.<p>
*
* @throws Exception in case something goes wrong
*/
public void testXmlPageRenameElement() throws Exception {
String folder = "/folder1/";
String recursive = CmsStringUtil.TRUE;
String template = "ALL";
String locale = "ALL";
String oldElement = "body";
String newElement = "NewElement";
String removeEmptyElements = CmsStringUtil.FALSE;
String validateNewElement = CmsStringUtil.FALSE;
echo("Testing XML page rename element handling");
CmsElementRename wp = new CmsElementRename(
null,
getCmsObject(),
folder,
recursive,
template,
locale,
oldElement,
newElement,
removeEmptyElements,
validateNewElement);
echo("Testing initialize CmsElementRename class");
assertEquals(folder, wp.getParamResource());
assertEquals(recursive, wp.getParamRecursive());
assertEquals(template, wp.getParamTemplate());
assertEquals(locale, wp.getParamLocale());
assertEquals(oldElement, wp.getParamOldElement());
assertEquals(newElement, wp.getParamNewElement());
assertEquals(removeEmptyElements, wp.getParamRemoveEmptyElements());
assertEquals(validateNewElement, wp.getParamValidateNewElement());
echo("CmsElementRename class initialized successfully");
echo("Xml Page Element Rename Start");
wp.actionRename(new CmsShellReport(Locale.ENGLISH));
echo("Xml Page Element Rename End");
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -