/*
* Copyright 2000-2013 Enonic AS
* http://www.enonic.com/license
*/
package com.enonic.cms.core.structure;
import java.util.Date;
import org.joda.time.DateTime;
import org.mockito.Mockito;
import com.enonic.cms.framework.xml.XMLDocument;
import com.enonic.cms.framework.xml.XMLDocumentFactory;
import com.enonic.cms.core.language.LanguageEntity;
import com.enonic.cms.core.language.LanguageKey;
import com.enonic.cms.core.security.user.UserEntity;
import com.enonic.cms.core.security.user.UserKey;
import com.enonic.cms.core.structure.menuitem.MenuItemAccessResolver;
import com.enonic.cms.core.structure.menuitem.MenuItemAccessType;
import com.enonic.cms.core.structure.menuitem.MenuItemEntity;
import com.enonic.cms.core.structure.menuitem.MenuItemKey;
import com.enonic.cms.core.structure.menuitem.MenuItemType;
import com.enonic.cms.core.structure.page.PageEntity;
import com.enonic.cms.core.structure.page.template.PageTemplateEntity;
import com.enonic.cms.store.dao.GroupDao;
public abstract class AbstractSiteXmlCreatorTest
extends AbstractXmlCreatorTest
{
protected final Date MENUITEM_DEFAULT_TIMESTAMP = new DateTime( 2007, 7, 25, 9, 0, 0, 0 ).toDate();
protected final String xmlDataString =
"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" + "<data cachedisabled=\"false\" cachetype=\"default\">" +
"<parameters><parameter name=\"p1\" override=\"false\">v1</parameter>" +
"<parameter name=\"p2\" override=\"false\">v2</parameter>" + "<parameter name=\"p3\" override=\"false\">v3</parameter>" +
"</parameters><document/></data>";
protected UserEntity standardUser;
protected MenuItemAccessResolver menuItemAccessResolver;
protected void setUp()
throws Exception
{
super.setUp();
GroupDao groupDao = Mockito.mock( GroupDao.class );
menuItemAccessResolver = new MenuItemAccessResolver( groupDao )
{
@Override
public boolean doHasAccess( UserEntity user, MenuItemEntity menuItemEntity, MenuItemAccessType menuItemAccessType )
{
return true;
}
};
standardUser = new UserEntity();
standardUser.setKey( new UserKey( "KEY" ) );
standardUser.setDisplayName( "Fullname" );
standardUser.setName( "uid" );
}
protected LanguageEntity createLanguage( String key, String code, String description )
{
LanguageEntity language = new LanguageEntity();
language.setKey( new LanguageKey( key ) );
language.setCode( code );
language.setDescription( description );
return language;
}
protected MenuItemEntity createMenuItem( String key, String name, MenuItemEntity parent, SiteEntity site )
{
return createMenuItem( key, name, parent, site, false );
}
protected MenuItemEntity createMenuItem( String key, String name, MenuItemEntity parent, SiteEntity site, boolean includeParams )
{
MenuItemEntity mi = new MenuItemEntity();
mi.setKey( new MenuItemKey( key ) );
mi.setName( name );
mi.setOrder( 0 );
mi.setType( MenuItemType.CONTENT );
mi.setHidden( false );
mi.setTimestamp( MENUITEM_DEFAULT_TIMESTAMP );
if ( parent != null )
{
mi.setParent( parent );
parent.addChild( mi );
}
mi.setSite( site );
mi.setOwner( standardUser );
mi.setModifier( standardUser );
if ( includeParams )
{
XMLDocument doc = XMLDocumentFactory.create( xmlDataString );
mi.setXmlData( doc.getAsJDOMDocument() );
}
return mi;
}
protected void createMenuItemShortcut( MenuItemEntity shortcutMenuItem, MenuItemEntity toMenuItem, boolean forward )
{
shortcutMenuItem.setMenuItemShortcut( toMenuItem );
shortcutMenuItem.setShortcutForward( forward );
}
protected PageEntity createPage( String key )
{
PageEntity page = new PageEntity();
page.setKey( Integer.valueOf( key ) );
return page;
}
protected PageTemplateEntity createPageTemplate( String key, String name )
{
PageTemplateEntity pageTemplate = new PageTemplateEntity();
pageTemplate.setKey( Integer.parseInt( key ) );
pageTemplate.setName( name );
return pageTemplate;
}
}