📄 testhistory.java
字号:
// 21. publish s3
OpenCms.getPublishManager().publishResource(cms, s3name);
OpenCms.getPublishManager().waitWhileRunning();
// check the history for s1
assertHistory(cms, s1name, 6);
histRes = cms.readResource(s1.getStructureId(), 1);
assertEquals(0, histRes.getStructureVersion());
assertEquals(1, histRes.getResourceVersion());
assertEquals(basePubTag, histRes.getPublishTag());
histRes = cms.readResource(s1.getStructureId(), 2);
assertEquals(0, histRes.getStructureVersion());
assertEquals(2, histRes.getResourceVersion());
assertEquals(basePubTag + 2, histRes.getPublishTag());
histRes = cms.readResource(s1.getStructureId(), 3);
assertEquals(1, histRes.getStructureVersion());
assertEquals(2, histRes.getResourceVersion());
assertEquals(basePubTag + 4, histRes.getPublishTag());
histRes = cms.readResource(s1.getStructureId(), 4);
assertEquals(1, histRes.getStructureVersion());
assertEquals(3, histRes.getResourceVersion());
assertEquals(basePubTag + 5, histRes.getPublishTag());
histRes = cms.readResource(s1.getStructureId(), 5);
assertEquals(1, histRes.getStructureVersion());
assertEquals(4, histRes.getResourceVersion());
assertEquals(basePubTag + 6, histRes.getPublishTag());
histRes = cms.readResource(s1.getStructureId(), 6);
assertEquals(2, histRes.getStructureVersion());
assertEquals(4, histRes.getResourceVersion());
assertEquals(basePubTag + 7, histRes.getPublishTag());
// check the history for s2
assertHistory(cms, s2name, 7);
histRes = cms.readResource(s2.getStructureId(), 1);
assertEquals(0, histRes.getStructureVersion());
assertEquals(1, histRes.getResourceVersion());
assertEquals(basePubTag, histRes.getPublishTag());
histRes = cms.readResource(s2.getStructureId(), 2);
assertEquals(1, histRes.getStructureVersion());
assertEquals(1, histRes.getResourceVersion());
assertEquals(basePubTag + 1, histRes.getPublishTag());
histRes = cms.readResource(s2.getStructureId(), 3);
assertEquals(1, histRes.getStructureVersion());
assertEquals(2, histRes.getResourceVersion());
assertEquals(basePubTag + 2, histRes.getPublishTag());
histRes = cms.readResource(s2.getStructureId(), 4);
assertEquals(2, histRes.getStructureVersion());
assertEquals(2, histRes.getResourceVersion());
assertEquals(basePubTag + 3, histRes.getPublishTag());
histRes = cms.readResource(s2.getStructureId(), 5);
assertEquals(3, histRes.getStructureVersion());
assertEquals(2, histRes.getResourceVersion());
assertEquals(basePubTag + 4, histRes.getPublishTag());
histRes = cms.readResource(s2.getStructureId(), 6);
assertEquals(3, histRes.getStructureVersion());
assertEquals(3, histRes.getResourceVersion());
assertEquals(basePubTag + 5, histRes.getPublishTag());
histRes = cms.readResource(s2.getStructureId(), 7);
assertEquals(3, histRes.getStructureVersion());
assertEquals(4, histRes.getResourceVersion());
assertEquals(basePubTag + 6, histRes.getPublishTag());
// check the history for s3
assertHistory(cms, s3name, 5);
histRes = cms.readResource(s3.getStructureId(), 1);
assertEquals(0, histRes.getStructureVersion());
assertEquals(1, histRes.getResourceVersion());
assertEquals(basePubTag, histRes.getPublishTag());
histRes = cms.readResource(s3.getStructureId(), 2);
assertEquals(0, histRes.getStructureVersion());
assertEquals(2, histRes.getResourceVersion());
assertEquals(basePubTag + 2, histRes.getPublishTag());
histRes = cms.readResource(s3.getStructureId(), 3);
assertEquals(0, histRes.getStructureVersion());
assertEquals(3, histRes.getResourceVersion());
assertEquals(basePubTag + 5, histRes.getPublishTag());
histRes = cms.readResource(s3.getStructureId(), 4);
assertEquals(0, histRes.getStructureVersion());
assertEquals(4, histRes.getResourceVersion());
assertEquals(basePubTag + 6, histRes.getPublishTag());
histRes = cms.readResource(s3.getStructureId(), 5);
assertEquals(1, histRes.getStructureVersion());
assertEquals(4, histRes.getResourceVersion());
assertEquals(basePubTag + 8, histRes.getPublishTag());
}
/**
* Test a sibling restoration scenario.<p>
*
* @throws Throwable if something goes wrong
*/
public void testSiblingsRestoration() throws Throwable {
CmsObject cms = getCmsObject();
echo("Testing history with siblings restoration");
// first we create a complete new folder as base for the test
String folder = "/siblings_restoration/";
cms.createResource(folder, CmsResourceTypeFolder.getStaticTypeId());
OpenCms.getPublishManager().publishResource(cms, folder);
OpenCms.getPublishManager().waitWhileRunning();
// 1. create first sibling
String s1name = folder + "s1.txt";
String txt1 = "first sibling";
CmsResource s1 = cms.createResource(s1name, CmsResourceTypePlain.getStaticTypeId(), txt1.getBytes(), null);
// check the history
assertHistory(cms, s1name, 1);
// 2. create second sibling
String s2name = folder + "s2.txt";
CmsResource s2 = cms.createSibling(s1name, s2name, null);
// check the history
assertHistory(cms, s1name, 1);
assertHistory(cms, s2name, 1);
// 3. publish both
OpenCms.getPublishManager().publishResource(cms, folder);
OpenCms.getPublishManager().waitWhileRunning();
// check the history for s1
assertHistory(cms, s1name, 1);
I_CmsHistoryResource histRes = cms.readResource(s1.getStructureId(), 1);
assertEquals(0, histRes.getStructureVersion());
assertEquals(1, histRes.getResourceVersion());
assertEquals(txt1, new String(cms.readFile((CmsHistoryFile)histRes).getContents()));
// check the history for s2
assertHistory(cms, s2name, 1);
histRes = cms.readResource(s1.getStructureId(), 1);
assertEquals(0, histRes.getStructureVersion());
assertEquals(1, histRes.getResourceVersion());
assertEquals(txt1, new String(cms.readFile((CmsHistoryFile)histRes).getContents()));
// remember pub tag to be able to check the next operations
int basePubTag = histRes.getPublishTag();
// 4. create third sibling
String s3name = folder + "s3.txt";
CmsResource s3 = cms.createSibling(s1name, s3name, null);
// check the history
assertHistory(cms, s1name, 1);
assertHistory(cms, s2name, 1);
assertHistory(cms, s3name, 2);
// 5. make a resource change
cms.changeLock(s1name);
cms.writePropertyObject(s1name, new CmsProperty(CmsPropertyDefinition.PROPERTY_TITLE, null, "resource change"));
// check the history
assertHistory(cms, s1name, 2);
assertHistory(cms, s2name, 2);
assertHistory(cms, s3name, 2);
// 6. publish s3
OpenCms.getPublishManager().publishResource(cms, s3name);
OpenCms.getPublishManager().waitWhileRunning();
// check the history for s1
assertHistory(cms, s1name, 2);
histRes = cms.readResource(s1.getStructureId(), 1);
assertEquals(0, histRes.getStructureVersion());
assertEquals(1, histRes.getResourceVersion());
assertFalse(histRes.getState().isDeleted());
assertEquals(basePubTag, histRes.getPublishTag());
assertEquals(txt1, new String(cms.readFile((CmsHistoryFile)histRes).getContents()));
histRes = cms.readResource(s1.getStructureId(), 2);
assertEquals(0, histRes.getStructureVersion());
assertEquals(2, histRes.getResourceVersion());
assertFalse(histRes.getState().isDeleted());
assertEquals(basePubTag + 1, histRes.getPublishTag());
assertEquals(txt1, new String(cms.readFile((CmsHistoryFile)histRes).getContents()));
// check the history for s2
assertHistory(cms, s2name, 2);
histRes = cms.readResource(s1.getStructureId(), 1);
assertEquals(0, histRes.getStructureVersion());
assertEquals(1, histRes.getResourceVersion());
assertFalse(histRes.getState().isDeleted());
assertEquals(basePubTag, histRes.getPublishTag());
assertEquals(txt1, new String(cms.readFile((CmsHistoryFile)histRes).getContents()));
histRes = cms.readResource(s2.getStructureId(), 2);
assertEquals(0, histRes.getStructureVersion());
assertEquals(2, histRes.getResourceVersion());
assertFalse(histRes.getState().isDeleted());
assertEquals(basePubTag + 1, histRes.getPublishTag());
assertEquals(txt1, new String(cms.readFile((CmsHistoryFile)histRes).getContents()));
// check the history for s3
assertHistory(cms, s3name, 2);
histRes = cms.readResource(s3.getStructureId(), 1);
assertEquals(0, histRes.getStructureVersion());
assertEquals(1, histRes.getResourceVersion());
assertFalse(histRes.getState().isDeleted());
assertEquals(basePubTag, histRes.getPublishTag());
assertEquals(txt1, new String(cms.readFile((CmsHistoryFile)histRes).getContents()));
histRes = cms.readResource(s3.getStructureId(), 2);
assertEquals(0, histRes.getStructureVersion());
assertEquals(2, histRes.getResourceVersion());
assertFalse(histRes.getState().isDeleted());
assertEquals(basePubTag + 1, histRes.getPublishTag());
assertEquals(txt1, new String(cms.readFile((CmsHistoryFile)histRes).getContents()));
// 7. delete s3
cms.lockResource(s3name);
cms.deleteResource(s3name, CmsResource.DELETE_PRESERVE_SIBLINGS);
// check history
assertHistory(cms, s1name, 2);
assertHistory(cms, s2name, 2);
assertEquals(3, cms.readResource(s3name, CmsResourceFilter.ALL).getVersion());
// 8. publish s3
OpenCms.getPublishManager().publishResource(cms, s3name);
OpenCms.getPublishManager().waitWhileRunning();
// check the history for s1
assertHistory(cms, s1name, 2);
histRes = cms.readResource(s1.getStructureId(), 1);
assertEquals(0, histRes.getStructureVersion());
assertEquals(1, histRes.getResourceVersion());
assertFalse(histRes.getState().isDeleted());
assertEquals(basePubTag, histRes.getPublishTag());
assertEquals(txt1, new String(cms.readFile((CmsHistoryFile)histRes).getContents()));
histRes = cms.readResource(s1.getStructureId(), 2);
assertEquals(0, histRes.getStructureVersion());
assertEquals(2, histRes.getResourceVersion());
assertFalse(histRes.getState().isDeleted());
assertEquals(basePubTag + 1, histRes.getPublishTag());
assertEquals(txt1, new String(cms.readFile((CmsHistoryFile)histRes).getContents()));
// check the history for s2
assertHistory(cms, s2name, 2);
histRes = cms.readResource(s1.getStructureId(), 1);
assertEquals(0, histRes.getStructureVersion());
assertEquals(1, histRes.getResourceVersion());
assertFalse(histRes.getState().isDeleted());
assertEquals(basePubTag, histRes.getPublishTag());
assertEquals(txt1, new String(cms.readFile((CmsHistoryFile)histRes).getContents()));
histRes = cms.readResource(s2.getStructureId(), 2);
assertEquals(0, histRes.getStructureVersion());
assertEquals(2, histRes.getResourceVersion());
assertFalse(histRes.getState().isDeleted());
assertEquals(basePubTag + 1, histRes.getPublishTag());
assertEquals(txt1, new String(cms.readFile((CmsHistoryFile)histRes).getContents()));
// 9. delete s2
cms.lockResource(s2name);
cms.deleteResource(s2name, CmsResource.DELETE_PRESERVE_SIBLINGS);
// check history
assertHistory(cms, s1name, 2);
assertEquals(3, cms.readResource(s2name, CmsResourceFilter.ALL).getVersion());
// 10. make a resource change
CmsFile file = cms.readFile(s1name);
String txt2 = "resource changed";
file.setContents(txt2.getBytes());
cms.changeLock(s1name);
cms.writeFile(file);
// check history
assertHistory(cms, s1name, 3);
// 11. publish s2
OpenCms.getPublishManager().publishResource(cms, s2name);
OpenCms.getPublishManager().waitWhileRunning();
// check online contents
cms.getRequestContext().setCurrentProject(cms.readProject(CmsProject.ONLINE_PROJECT_ID));
assertContent(cms, s1name, txt1.getBytes());
// go back to offline
cms = getCmsObject();
// check the history for s1
assertState(cms, s1name, CmsResource.STATE_CHANGED);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -