⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 testhistory.java

📁 找了很久才找到到源代码
💻 JAVA
📖 第 1 页 / 共 5 页
字号:

        // 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 + -