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

📄 testcreatewriteresource.java

📁 OpenCms 是一个J2EE的产品
💻 JAVA
📖 第 1 页 / 共 3 页
字号:
            cms.getRequestContext().currentProject().getId(),
            CmsResource.STATE_NEW,
            timestamp,
            cms.getRequestContext().currentUser().getId(),
            timestamp, 
            cms.getRequestContext().currentUser().getId(),
            CmsResource.DATE_RELEASED_DEFAULT, 
            CmsResource.DATE_EXPIRED_DEFAULT,
            1, content.length
        );
        
        cms.importResource(resourcename, resource, content, null);
        
        // ensure created resource type
        assertResourceType(cms, resourcename, CmsResourceTypePlain.getStaticTypeId());  
        // project must be current project
        assertProject(cms, resourcename, cms.getRequestContext().currentProject());
        // state must be "new"
        assertState(cms, resourcename, CmsResource.STATE_NEW);
        // date last modified 
        assertDateLastModified(cms, resourcename, timestamp);
        // date created
        assertDateCreated(cms, resourcename, timestamp);
        // the user last modified must be the current user
        assertUserLastModified(cms, resourcename, cms.getRequestContext().currentUser()); 
        // the content 
        assertContent(cms, resourcename, content);
        
        // publish the project
        cms.unlockProject(cms.getRequestContext().currentProject().getId());
        cms.publishProject();   
        
        assertState(cms, resourcename, CmsResource.STATE_UNCHANGED);
    }  
    
    /**
     * Test the import resource method.<p>
     * 
     * @throws Throwable if something goes wrong
     */
    public void testImportResourceAgain() throws Throwable {

        CmsObject cms = getCmsObject();     
        echo("Testing to import an existing resource again");
        
        String resourcename = "/folder1/test1.html";
        
        storeResources(cms, resourcename);
        long timestamp = System.currentTimeMillis() - 12345678;
        
        String contentStr = "Hello this is my NEW AND CHANGED content";
        byte[] content = contentStr.getBytes();

        // create a new resource
        CmsResource resource = new CmsResource (
            CmsUUID.getNullUUID(),
            CmsUUID.getNullUUID(),
            resourcename,
            CmsResourceTypePlain.getStaticTypeId(),
            false,
            0,
            cms.getRequestContext().currentProject().getId(),
            CmsResource.STATE_NEW,
            timestamp,
            cms.getRequestContext().currentUser().getId(),
            timestamp, 
            cms.getRequestContext().currentUser().getId(),
            CmsResource.DATE_RELEASED_DEFAULT, 
            CmsResource.DATE_EXPIRED_DEFAULT,
            1, content.length
        );
        
        cms.importResource(resourcename, resource, content, null);
        
        // ensure created resource type
        assertResourceType(cms, resourcename, CmsResourceTypePlain.getStaticTypeId()); 
        // project must be current project
        assertProject(cms, resourcename, cms.getRequestContext().currentProject());
        // state must be "new"
        assertState(cms, resourcename, CmsResource.STATE_CHANGED);
        // date last modified 
        assertDateLastModified(cms, resourcename, timestamp);
        // the user last modified must be the current user
        assertUserLastModified(cms, resourcename, cms.getRequestContext().currentUser());         
        // now evaluate the filter
        assertFilter(cms, resourcename, OpenCmsTestResourceFilter.FILTER_CREATE_RESOURCE);        
                
        // publish the project
        cms.unlockProject(cms.getRequestContext().currentProject().getId());
        cms.publishProject();     
        
        assertState(cms, resourcename, CmsResource.STATE_UNCHANGED);        
    }  
        
    /**
     * Test the import of a sibling.<p>
     * 
     * @throws Throwable if something goes wrong
     */
    public void testImportSibling() throws Throwable {

        CmsObject cms = getCmsObject();     
        echo("Testing to import an existing resource as sibling");

        CmsProperty prop1 = new CmsProperty(CmsPropertyDefinition.PROPERTY_TITLE, "The title", null);
        CmsProperty prop2 = new CmsProperty(CmsPropertyDefinition.PROPERTY_DESCRIPTION, "The description", null);
        CmsProperty prop3 = new CmsProperty(CmsPropertyDefinition.PROPERTY_KEYWORDS, "The keywords", null);
        
        List properties = new ArrayList();
        properties.add(prop1);
        
        String siblingname = "/folder1/test1.html";
        
        // make sure some non-shared properties are attached to the sibling
        cms.lockResource(siblingname);
        cms.writePropertyObjects(siblingname, properties);
        cms.unlockResource(siblingname);
        
        long timestamp = System.currentTimeMillis() - 12345678;
        
        String resourcename1 = "/folder2/test1_sib1.html";
        String resourcename2 = "/folder1/subfolder11/test1_sib2.html";
        
        // read the existing resource to create siblings for
        CmsFile file = cms.readFile(siblingname);
        byte[] content = file.getContents(); 
        
        assertTrue(file.getLength() > 0);
        assertTrue(content.length > 0);
        
        storeResources(cms, siblingname);

        // create a new resource
        CmsResource resource;

        // cw: Test changed: must now provide correct content size in resource
        resource= new CmsResource (
            file.getStructureId(),
            file.getResourceId(),
            resourcename2,
            CmsResourceTypePlain.getStaticTypeId(),
            false,
            0,
            cms.getRequestContext().currentProject().getId(),
            CmsResource.STATE_NEW,
            timestamp,
            cms.getRequestContext().currentUser().getId(),
            timestamp, 
            cms.getRequestContext().currentUser().getId(),
            CmsResource.DATE_RELEASED_DEFAULT, 
            CmsResource.DATE_EXPIRED_DEFAULT,
            1, content.length
        );
        
        properties.add(prop2);         
        // using null as content must create sibling of existing content
        cms.importResource(resourcename2, resource, null, properties);
        
        // project must be current project
        assertProject(cms, resourcename2, cms.getRequestContext().currentProject());
        // resource type
        assertResourceType(cms, resourcename2, CmsResourceTypePlain.getStaticTypeId());
        assertResourceType(cms, siblingname, CmsResourceTypePlain.getStaticTypeId());
        // state
        assertState(cms, resourcename2, CmsResource.STATE_NEW);
        assertState(cms, siblingname, CmsResource.STATE_CHANGED);
        // date last modified
        assertDateLastModified(cms, resourcename2, file.getDateLastModified());      
        assertDateLastModified(cms, siblingname, file.getDateLastModified());      
        // the user last modified
        assertUserLastModified(cms, resourcename2, cms.getRequestContext().currentUser());
        assertUserLastModified(cms, siblingname, cms.getRequestContext().currentUser());
        // content must be identical to stored content of new resource
        assertContent(cms, resourcename2, content);
        assertContent(cms, siblingname, content);       
        // check the sibling count
        assertSiblingCountIncremented(cms, siblingname, 1);       

        // now evaluate the filter
        OpenCmsTestResourceConfigurableFilter filter =
            new OpenCmsTestResourceConfigurableFilter(OpenCmsTestResourceFilter.FILTER_CREATE_RESOURCE);

        filter.disableSiblingCountTest();
        assertFilter(cms, siblingname, filter);   
        
        String contentStr = "Hello this is my NEW AND CHANGED sibling content";
        content = contentStr.getBytes();        
        
        resource= new CmsResource (
            file.getStructureId(),
            file.getResourceId(),
            resourcename1,
            CmsResourceTypePlain.getStaticTypeId(),
            false,
            0,
            cms.getRequestContext().currentProject().getId(),
            CmsResource.STATE_NEW,
            timestamp,
            cms.getRequestContext().currentUser().getId(),
            timestamp, 
            cms.getRequestContext().currentUser().getId(),
            CmsResource.DATE_RELEASED_DEFAULT, 
            CmsResource.DATE_EXPIRED_DEFAULT,
            1, content.length
        );
        
        properties.add(prop3);
        // using new content must replace existing content
        cms.importResource(resourcename1, resource, content, properties);
                
        // project must be current project
        assertProject(cms, resourcename1, cms.getRequestContext().currentProject());
        assertProject(cms, resourcename2, cms.getRequestContext().currentProject());
        // resource type
        assertResourceType(cms, resourcename1, CmsResourceTypePlain.getStaticTypeId());
        assertResourceType(cms, resourcename2, CmsResourceTypePlain.getStaticTypeId());
        assertResourceType(cms, siblingname, CmsResourceTypePlain.getStaticTypeId());
        // state
        assertState(cms, resourcename1, CmsResource.STATE_NEW);
        assertState(cms, resourcename2, CmsResource.STATE_NEW);
        assertState(cms, siblingname, CmsResource.STATE_CHANGED);
        // date last modified
        assertDateLastModified(cms, resourcename1, timestamp);      
        assertDateLastModified(cms, resourcename2, timestamp);      
        assertDateLastModified(cms, siblingname, timestamp);      
        // the user last modified
        assertUserLastModified(cms, resourcename1, cms.getRequestContext().currentUser());
        assertUserLastModified(cms, resourcename2, cms.getRequestContext().currentUser());
        assertUserLastModified(cms, siblingname, cms.getRequestContext().currentUser());
        // content must be identical to stored content of new resource
        assertContent(cms, resourcename1, content);
        assertContent(cms, resourcename2, content);
        assertContent(cms, siblingname, content);       
        // check the sibling count
        assertSiblingCountIncremented(cms, siblingname, 2);       

        // now evaluate the filter
        assertFilter(cms, siblingname, filter);   
        
        // publish the project
        cms.unlockProject(cms.getRequestContext().currentProject().getId());
        cms.publishProject();     
        
        assertState(cms, resourcename1, CmsResource.STATE_UNCHANGED);  
        assertState(cms, resourcename2, CmsResource.STATE_UNCHANGED);  
    }  
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -