From bc466c061858a15b8d0af4163957b181537cea0a Mon Sep 17 00:00:00 2001 From: jensp Date: Thu, 16 Feb 2017 13:17:48 +0000 Subject: [PATCH] CCM NG: - Database cleanup scripts for tests now running before test methods and not after. This means that the database is still intact after a test is run. Useful for debugging. - ContentSectionSetup now add content types to content section - Some things for the Documents tab in the content centre git-svn-id: https://svn.libreccm.org/ccm/ccm_ng@4578 8810af33-2d31-482b-a856-94f89814c4df --- .../cms/ui/authoring/NewItemForm.java | 59 +++-- .../ui/authoring/NewItemFormController.java | 76 ++++-- .../contentsection/ContentSection.java | 136 ++++++----- .../contentsection/ContentSectionSetup.java | 107 ++++++--- .../AttachmentListManagerTest.java | 4 +- .../ContentItemL10NManagerTest.java | 203 ++++++++-------- .../ContentItemManagerTest.java | 4 +- .../ContentItemPermissionTest.java | 4 +- .../ContentItemRepositoryTest.java | 4 +- .../ContentSectionManagerTest.java | 4 +- .../ContentTypeRepositoryTest.java | 4 +- .../contentsection/FolderManagerTest.java | 4 +- .../ItemAttachmentManagerTest.java | 4 +- .../java/org/libreccm/core/CoreConstants.java | 5 + .../main/java/org/libreccm/security/Role.java | 32 ++- .../libreccm/security/SystemUsersSetup.java | 2 +- .../categorization/CategoryManagerTest.java | 4 +- .../CategoryRepositoryTest.java | 4 +- .../ConfigurationManagerTest.java | 4 +- .../core/CcmObjectRepositoryTest.java | 81 +++---- .../modules/ConfigurationLoaderTest.java | 4 +- .../portation/CoreDataImportTest.java | 5 +- .../AuthorizationInterceptorTest.java | 4 +- .../security/ChallengeManagerTest.java | 4 +- .../libreccm/security/GroupManagerTest.java | 4 +- .../security/GroupRepositoryTest.java | 4 +- .../security/OneTimeAuthManagerTest.java | 4 +- .../security/PartyRepositoryTest.java | 4 +- .../security/PermissionCheckerTest.java | 4 +- .../security/PermissionManagerTest.java | 220 +++++++++--------- .../libreccm/security/RoleManagerTest.java | 4 +- .../libreccm/security/RoleRepositoryTest.java | 4 +- .../security/SecuredCollectionTest.java | 4 +- .../security/SecuredIteratorTest.java | 4 +- .../java/org/libreccm/security/ShiroTest.java | 4 +- .../libreccm/security/UserManagerTest.java | 4 +- .../libreccm/security/UserRepositoryTest.java | 4 +- .../shortcuts/ShortcutManagerTest.java | 4 +- .../shortcuts/ShortcutRepositoryTest.java | 4 +- 39 files changed, 627 insertions(+), 411 deletions(-) diff --git a/ccm-cms/src/main/java/com/arsdigita/cms/ui/authoring/NewItemForm.java b/ccm-cms/src/main/java/com/arsdigita/cms/ui/authoring/NewItemForm.java index db489ca97..70273c77b 100755 --- a/ccm-cms/src/main/java/com/arsdigita/cms/ui/authoring/NewItemForm.java +++ b/ccm-cms/src/main/java/com/arsdigita/cms/ui/authoring/NewItemForm.java @@ -22,8 +22,10 @@ import com.arsdigita.bebop.BoxPanel; import com.arsdigita.bebop.Form; import com.arsdigita.bebop.Label; import com.arsdigita.bebop.PageState; +import com.arsdigita.bebop.Text; import com.arsdigita.bebop.event.PrintEvent; import com.arsdigita.bebop.event.PrintListener; +import com.arsdigita.bebop.form.Option; import com.arsdigita.bebop.form.OptionGroup; import com.arsdigita.bebop.form.SingleSelect; import com.arsdigita.bebop.form.Submit; @@ -47,6 +49,7 @@ import org.librecms.contentsection.privileges.TypePrivileges; import java.util.List; import java.util.TooManyListenersException; import java.util.stream.Collectors; +import org.libreccm.l10n.GlobalizationHelper; /** * A form element which displays a select box of all content types available @@ -73,7 +76,7 @@ public abstract class NewItemForm extends Form { * Construct a new NewItemForm. It sets a vertical BoxPanel as the component * container. * - * @param name the name attribute of the form. + * @param name the name attribute of the form. * @param orientation */ public NewItemForm(final String name, final int orientation) { @@ -87,16 +90,16 @@ public abstract class NewItemForm extends Form { // create and add an "empty" component emptyLabel = new Label( - new GlobalizedMessage("cms.ui.authoring.no_types_registered", - CmsConstants.CMS_BUNDLE), - false); + new GlobalizedMessage("cms.ui.authoring.no_types_registered", + CmsConstants.CMS_BUNDLE), + false); emptyLabel.setIdAttr("empty_label"); panel.add(emptyLabel); createLabel = new Label( - new GlobalizedMessage("cms.ui.authoring.create_new", - CmsConstants.CMS_BUNDLE), - false); + new GlobalizedMessage("cms.ui.authoring.create_new", + CmsConstants.CMS_BUNDLE), + false); createLabel.setIdAttr("create_label"); panel.add(createLabel); @@ -108,35 +111,41 @@ public abstract class NewItemForm extends Form { // Read the content section's content types and add them as options @Override public void prepare(final PrintEvent event) { - final OptionGroup optionGroup = (OptionGroup) event - .getTarget(); - optionGroup.clearOptions(); + final OptionGroup target = (OptionGroup) event + .getTarget(); + target.clearOptions(); final PageState state = event.getPageState(); // gather the content types of this section into a list final ContentSection section = getContentSection(state); - final ContentType parentType; +// final ContentType parentType; final List typesCollection; final Long singleTypeID = (Long) state.getValue( - new LongParameter(ItemSearch.SINGLE_TYPE_PARAM)); + new LongParameter(ItemSearch.SINGLE_TYPE_PARAM)); final CdiUtil cdiUtil = CdiUtil.createCdiUtil(); + final NewItemFormController controller = cdiUtil.findBean( + NewItemFormController.class); final ContentTypeRepository typeRepo = cdiUtil.findBean( - ContentTypeRepository.class); + ContentTypeRepository.class); final PermissionChecker permissionChecker = cdiUtil - .findBean(PermissionChecker.class); + .findBean(PermissionChecker.class); - if (singleTypeID == null) { - parentType = null; - } else { - parentType = typeRepo.findById(singleTypeID).get(); - } +// if (singleTypeID == null) { +// parentType = null; +// } else { +// parentType = typeRepo.findById(singleTypeID).get(); +// } +// typesCollection = section.getContentTypes().stream() +// .filter(type -> permissionChecker.isPermitted( +// TypePrivileges.USE_TYPE, +// type)) +// .collect(Collectors.toList()); + typesCollection = controller.getContentTypes(section); - typesCollection = section.getContentTypes().stream() - .filter(type -> permissionChecker.isPermitted( - TypePrivileges.USE_TYPE, - type)) - .collect(Collectors.toList()); + typesCollection.forEach(type -> target.addOption( + new Option(Long.toString(type.getObjectId()), + new Text(type.getContentItemClass())))); } }); @@ -188,7 +197,7 @@ public abstract class NewItemForm extends Form { final CdiUtil cdiUtil = CdiUtil.createCdiUtil(); final NewItemFormController controller = cdiUtil.findBean( - NewItemFormController.class); + NewItemFormController.class); boolean isEmpty = !controller.hasContentTypes(section); createLabel.setVisible(state, !isEmpty); diff --git a/ccm-cms/src/main/java/com/arsdigita/cms/ui/authoring/NewItemFormController.java b/ccm-cms/src/main/java/com/arsdigita/cms/ui/authoring/NewItemFormController.java index 343d3d36b..978c70fa2 100644 --- a/ccm-cms/src/main/java/com/arsdigita/cms/ui/authoring/NewItemFormController.java +++ b/ccm-cms/src/main/java/com/arsdigita/cms/ui/authoring/NewItemFormController.java @@ -18,16 +18,27 @@ */ package com.arsdigita.cms.ui.authoring; +import java.util.Collections; +import java.util.List; import org.librecms.contentsection.ContentSection; import org.librecms.contentsection.ContentSectionRepository; import java.util.Objects; +import java.util.Optional; +import java.util.stream.Collectors; import javax.enterprise.context.RequestScoped; import javax.inject.Inject; import javax.persistence.EntityManager; import javax.persistence.TypedQuery; import javax.transaction.Transactional; +import org.libreccm.security.PermissionChecker; +import org.libreccm.security.Role; +import org.libreccm.security.RoleRepository; +import org.libreccm.security.Shiro; +import org.libreccm.security.User; +import org.librecms.contentsection.ContentType; +import org.librecms.contentsection.ContentTypeRepository; /** * Controller class for the {@link NewItemForm}. @@ -39,26 +50,65 @@ class NewItemFormController { @Inject private EntityManager entityManager; + + @Inject + private Shiro shiro; + + @Inject + private PermissionChecker permissionChecker; + + @Inject + private RoleRepository roleRepo; + @Inject private ContentSectionRepository sectionRepo; + + @Inject + private ContentTypeRepository typeRepo; @Transactional(Transactional.TxType.REQUIRED) protected boolean hasContentTypes(final ContentSection section) { Objects.requireNonNull(section, "Can't work with null for the section."); -// final Optional contentSection = sectionRepo.findById( -// section.getObjectId()); -// -// if (contentSection.isPresent()) { - final TypedQuery query = entityManager.createNamedQuery("ContentSection.countContentTypes", Long.class); - query.setParameter("section", section); - return query.getSingleResult() > 0; -// } else { -// throw new UnexpectedErrorException(String.format( -// "ContentSection %s was passed to this method but does not exist " -// + "in the database.", -// Objects.toString(section))); -// } + final Optional user = shiro.getUser(); + if (!user.isPresent()) { + return false; + } + + final List roles = user.get().getRoleMemberships().stream() + .map(membership -> membership.getRole()) + .collect(Collectors.toList()); + + final TypedQuery query = entityManager.createNamedQuery( + "ContentSection.hasUsableContentTypes", Boolean.class); + query.setParameter("section", section); + query.setParameter("roles", roles); + query.setParameter("isSysAdmin", permissionChecker.isPermitted("*")); + + return query.getSingleResult(); + } + + @Transactional(Transactional.TxType.REQUIRED) + protected List getContentTypes(final ContentSection section) { + Objects.requireNonNull(section); + + final Optional user = shiro.getUser(); + if (!user.isPresent()) { + return Collections.EMPTY_LIST; + } + + final List roles = user.get().getRoleMemberships().stream() + .map(membership -> membership.getRole()) + .collect(Collectors.toList()); + + final TypedQuery query = entityManager.createNamedQuery( + "ContentSection.findUsableContentTypes", + ContentType.class); + query.setParameter("section", section); + query.setParameter("roles", roles); + query.setParameter("isSysAdmin", permissionChecker.isPermitted("*")); + + return query.getResultList(); } } diff --git a/ccm-cms/src/main/java/org/librecms/contentsection/ContentSection.java b/ccm-cms/src/main/java/org/librecms/contentsection/ContentSection.java index d6c8cd321..cccabe23d 100644 --- a/ccm-cms/src/main/java/org/librecms/contentsection/ContentSection.java +++ b/ccm-cms/src/main/java/org/librecms/contentsection/ContentSection.java @@ -41,10 +41,12 @@ import java.util.ArrayList; import javax.persistence.NamedQueries; import javax.persistence.NamedQuery; import javax.persistence.OneToMany; +import org.libreccm.core.CoreConstants; import org.libreccm.workflow.WorkflowTemplate; import org.librecms.contentsection.privileges.AssetPrivileges; import org.librecms.contentsection.privileges.ItemPrivileges; +import org.librecms.contentsection.privileges.TypePrivileges; import org.librecms.lifecycle.LifecycleDefinition; import static org.librecms.CmsConstants.*; @@ -57,29 +59,53 @@ import static org.librecms.CmsConstants.*; @Table(name = "CONTENT_SECTIONS", schema = DB_SCHEMA) @NamedQueries({ @NamedQuery( - name = "ContentSection.findById", - query = "SELECT S FROM ContentSection s WHERE s.objectId = :objectId") + name = "ContentSection.findById", + query = "SELECT S FROM ContentSection s WHERE s.objectId = :objectId") , @NamedQuery( - name = "ContentSection.findByLabel", - query = "SELECT s FROM ContentSection s WHERE s.label = :label") + name = "ContentSection.findByLabel", + query = "SELECT s FROM ContentSection s WHERE s.label = :label") , @NamedQuery( - name = "ContentSection.findContentTypes", - query = "SELECT t FROM ContentType t WHERE t.contentSection = :section") + name = "ContentSection.findUsableContentTypes", + query = "SELECT t FROM ContentType t " + + "WHERE t.contentSection = :section " + + "AND " + + "(t IN (SELECT p.object FROM Permission p " + + "WHERE p.grantedPrivilege = '" + + TypePrivileges.USE_TYPE + "' " + + "AND p.grantee in :roles) " + + "OR true = :isSysAdmin)") , @NamedQuery( - name = "ContentSection.countContentTypes", - query - = "SELECT COUNT(t) FROM ContentType t WHERE t.contentSection = :section" - ) + name = "ContentSection.countUsableContentTypes", + query = "SELECT COUNT(t) FROM ContentType t " + + "WHERE t.contentSection = :section " + + "AND " + + "(t IN (SELECT p.object FROM Permission p " + + "WHERE p.grantedPrivilege = '" + + TypePrivileges.USE_TYPE + "' " + + "AND p.grantee IN :roles) " + + "OR true = :isSysAdmin)") , @NamedQuery( - name = "ContentSection.findPermissions", - query = "SELECT p FROM Permission p " - + "WHERE (p.object = :section " - + " OR p.object = :rootDocumentsFolder" - + " OR p.object = :rootAssetsFolder) " + name = "ContentSection.hasUsableContentTypes", + query = "SELECT (CASE WHEN COUNT(t) > 0 THEN true ELSE false END)" + + "FROM ContentType t " + + "WHERE t.contentSection = :section " + + "AND " + + "(t IN (SELECT p.object FROM Permission p " + + "WHERE p.grantedPrivilege = '" + + TypePrivileges.USE_TYPE + "' " + + "AND p.grantee IN :roles) " + + "OR true = :isSysAdmin)") + , + @NamedQuery( + name = "ContentSection.findPermissions", + query = "SELECT p FROM Permission p " + + "WHERE (p.object = :section " + + " OR p.object = :rootDocumentsFolder" + + " OR p.object = :rootAssetsFolder) " + "AND p.grantee = :role") }) //@ApplicationType( @@ -149,39 +175,39 @@ public class ContentSection extends CcmApplication implements Serializable { inverseJoinColumns = { @JoinColumn(name = "ROLE_ID") }) - private List roles; + private List roles = new ArrayList<>(); @Column(name = "DEFAULT_LOCALE") private Locale defaultLocale; @OneToMany(mappedBy = "contentSection") - private List contentTypes; + private List contentTypes = new ArrayList<>(); @OneToMany @JoinTable( - name = "CONTENT_SECTION_LIFECYCLE_DEFINITIONS", - schema = DB_SCHEMA, - joinColumns = { - @JoinColumn(name = "CONTENT_SECTION_ID") - }, - inverseJoinColumns = { - @JoinColumn(name = "LIFECYCLE_DEFINITION_ID") - } + name = "CONTENT_SECTION_LIFECYCLE_DEFINITIONS", + schema = DB_SCHEMA, + joinColumns = { + @JoinColumn(name = "CONTENT_SECTION_ID") + }, + inverseJoinColumns = { + @JoinColumn(name = "LIFECYCLE_DEFINITION_ID") + } ) - private List lifecycleDefinitions; + private List lifecycleDefinitions = new ArrayList<>(); @OneToMany @JoinTable( - name = "CONTENT_SECTION_WORKFLOW_TEMPLATES", - schema = DB_SCHEMA, - joinColumns = { - @JoinColumn(name = "CONTENT_SECTION_ID") - }, - inverseJoinColumns = { - @JoinColumn(name = "WORKFLOW_TEMPLATE_ID") - } + name = "CONTENT_SECTION_WORKFLOW_TEMPLATES", + schema = DB_SCHEMA, + joinColumns = { + @JoinColumn(name = "CONTENT_SECTION_ID") + }, + inverseJoinColumns = { + @JoinColumn(name = "WORKFLOW_TEMPLATE_ID") + } ) - private List workflowTemplates; + private List workflowTemplates = new ArrayList<>(); public ContentSection() { roles = new ArrayList<>(); @@ -301,7 +327,7 @@ public class ContentSection extends CcmApplication implements Serializable { } protected void setLifecycleDefinitions( - final List lifecycleDefinitions) { + final List lifecycleDefinitions) { this.lifecycleDefinitions = lifecycleDefinitions; } @@ -310,7 +336,7 @@ public class ContentSection extends CcmApplication implements Serializable { } protected void removeLifecycleDefinition( - final LifecycleDefinition definition) { + final LifecycleDefinition definition) { lifecycleDefinitions.remove(definition); } @@ -319,7 +345,7 @@ public class ContentSection extends CcmApplication implements Serializable { } protected void setWorkflowTemplates( - final List workflowTemplates) { + final List workflowTemplates) { this.workflowTemplates = workflowTemplates; } @@ -397,23 +423,23 @@ public class ContentSection extends CcmApplication implements Serializable { @Override public String toString(final String data) { return super.toString(String.format( - ", label = \"%s\", " - + "rootDocumentsFolder = \"%s\", " - + "rootAssetsFolder = \"%s\", " - + "pageResolverClass = \"%s\", " - + "itemResolverClass = \"%s\", " - + "templateResolverClass = \"%s\", " - + "xmlGeneratorClass = \"%s\", " - + "defaultLocale = \"%s\"%s", - label, - Objects.toString(rootDocumentsFolder), - Objects.toString(rootAssetsFolder), - pageResolverClass, - itemResolverClass, - templateResolverClass, - xmlGeneratorClass, - Objects.toString(defaultLocale), - data)); + ", label = \"%s\", " + + "rootDocumentsFolder = \"%s\", " + + "rootAssetsFolder = \"%s\", " + + "pageResolverClass = \"%s\", " + + "itemResolverClass = \"%s\", " + + "templateResolverClass = \"%s\", " + + "xmlGeneratorClass = \"%s\", " + + "defaultLocale = \"%s\"%s", + label, + Objects.toString(rootDocumentsFolder), + Objects.toString(rootAssetsFolder), + pageResolverClass, + itemResolverClass, + templateResolverClass, + xmlGeneratorClass, + Objects.toString(defaultLocale), + data)); } } diff --git a/ccm-cms/src/main/java/org/librecms/contentsection/ContentSectionSetup.java b/ccm-cms/src/main/java/org/librecms/contentsection/ContentSectionSetup.java index ceb7f39bb..7aab54f9f 100644 --- a/ccm-cms/src/main/java/org/librecms/contentsection/ContentSectionSetup.java +++ b/ccm-cms/src/main/java/org/librecms/contentsection/ContentSectionSetup.java @@ -40,7 +40,7 @@ import org.librecms.contenttypes.News; import org.librecms.dispatcher.MultilingualItemResolver; import java.util.Arrays; -import java.util.logging.Level; +import org.librecms.contentsection.privileges.TypePrivileges; /** * @@ -49,12 +49,12 @@ import java.util.logging.Level; public class ContentSectionSetup extends AbstractCcmApplicationSetup { private static final Logger LOGGER = LogManager.getLogger( - ContentSectionSetup.class); + ContentSectionSetup.class); private static final String INITIAL_CONTENT_SECTIONS - = "org.librecms.initial_content_sections"; + = "org.librecms.initial_content_sections"; private static final String DEFAULT_ITEM_RESOLVER - = "org.librecms.default_item_resolver"; + = "org.librecms.default_item_resolver"; private static final String[] DEFAULT_TYPES = new String[]{ Article.class.getName(), Event.class.getName(), @@ -70,14 +70,14 @@ public class ContentSectionSetup extends AbstractCcmApplicationSetup { final String sectionNames; if (getIntegrationProps().containsKey(INITIAL_CONTENT_SECTIONS)) { sectionNames = getIntegrationProps().getProperty( - INITIAL_CONTENT_SECTIONS); + INITIAL_CONTENT_SECTIONS); LOGGER.info( - "Found names for initial content sections in integration " - + "properties: {}", sectionNames); + "Found names for initial content sections in integration " + + "properties: {}", sectionNames); } else { sectionNames = "info"; LOGGER.info("No initial content sections definied integration " - + "properties, using default: {}", sectionNames); + + "properties, using default: {}", sectionNames); } for (final String contentSectionName : sectionNames.split(",")) { @@ -96,21 +96,21 @@ public class ContentSectionSetup extends AbstractCcmApplicationSetup { section.setLabel(sectionName); if (getIntegrationProps().getProperty(DEFAULT_ITEM_RESOLVER) == null - || getIntegrationProps().getProperty(DEFAULT_ITEM_RESOLVER) - .trim().isEmpty()) { + || getIntegrationProps().getProperty(DEFAULT_ITEM_RESOLVER) + .trim().isEmpty()) { section.setItemResolverClass(getIntegrationProps().getProperty( - DEFAULT_ITEM_RESOLVER)); + DEFAULT_ITEM_RESOLVER)); } else { section.setItemResolverClass(MultilingualItemResolver.class - .getName()); + .getName()); } LOGGER.debug("New content section properties: " - + "uuid = {}; " - + "applicationType = \"{}\"; " - + "primaryUrl = \"{}\"; " - + "displayName = \"{}\"; " - + "label = \"{}\"", + + "uuid = {}; " + + "applicationType = \"{}\"; " + + "primaryUrl = \"{}\"; " + + "displayName = \"{}\"; " + + "label = \"{}\"", section.getUuid(), section.getApplicationType(), section.getPrimaryUrl(), @@ -138,8 +138,12 @@ public class ContentSectionSetup extends AbstractCcmApplicationSetup { getEntityManager().persist(rootFolder); getEntityManager().persist(rootAssetFolder); + LOGGER.debug( + "Creating default roles and permissions for content section " + + "'{}'...", + sectionName); final Role alertRecipient = createRole(String.format( - "%s_" + ALERT_RECIPIENT, sectionName)); + "%s_" + ALERT_RECIPIENT, sectionName)); final Role author = createRole(String.format("%s_" + AUTHOR, sectionName)); final Role editor = createRole(String.format("%s_" + EDITOR, @@ -149,7 +153,7 @@ public class ContentSectionSetup extends AbstractCcmApplicationSetup { final Role publisher = createRole(String.format("%s_" + PUBLISHER, sectionName)); final Role contentReader = createRole(String.format( - "%s_" + CONTENT_READER, sectionName)); + "%s_" + CONTENT_READER, sectionName)); grantPermissions(author, rootFolder, @@ -254,60 +258,103 @@ public class ContentSectionSetup extends AbstractCcmApplicationSetup { section.addRole(publisher); section.addRole(contentReader); + LOGGER.debug("Setting ItemResolver for content section '{}'...", + sectionName); final String itemResolverClassName; if (getIntegrationProps().containsKey(String.format("%s.item_resolver", sectionName))) { + itemResolverClassName = getIntegrationProps().getProperty( - String.format("%s.item_resolver", - sectionName)); + String.format("%s.item_resolver", + sectionName)); + LOGGER.debug("integration.properties contains setting for the item " + + "resolver of content section '{}'. Using " + + "item resolver '{}'.", + sectionName, itemResolverClassName); } else if (getIntegrationProps().containsKey("default_item_resolver")) { itemResolverClassName = getIntegrationProps().getProperty( - "default_item_resolver_name"); + "default_item_resolver_name"); + LOGGER.debug("integration.properties contains setting for the " + + "default item resolver. Using item " + + "resolver '{}'.", + itemResolverClassName); } else { itemResolverClassName = MultilingualItemResolver.class.getName(); + LOGGER.debug("integration.properties contains *no* setting for item " + + "resolver. Using default item resolver '{}'.", + itemResolverClassName); } section.setItemResolverClass(itemResolverClassName); + LOGGER.debug("Adding default content types to content section '{}'...", + sectionName); final String[] types; if (getIntegrationProps().containsKey(String.format("%s.content_types", sectionName))) { final String typesStr = getIntegrationProps().getProperty(String - .format("%s.content_types", sectionName)); + .format("%s.content_types", sectionName)); + LOGGER.debug("integration.properties contains setting for content " + + "types of section '{}': {}", + sectionName, + typesStr); types = typesStr.split(","); } else if (getIntegrationProps().containsKey("default_content_types")) { final String typesStr = getIntegrationProps().getProperty( - "default_content_types"); + "default_content_types"); + LOGGER.debug("integration.properties contains setting for default " + + "content types for all sections: {}", + typesStr); types = typesStr.split(","); } else { + LOGGER.debug("integration.properties contains not settings for " + + "default content types. Using internal default: {}", + String.join(", ", DEFAULT_TYPES)); types = DEFAULT_TYPES; } Arrays.stream(types).forEach(type -> addContentTypeToSection(section, - type)); + type, + author, + editor, + manager)); getEntityManager().merge(section); } private void addContentTypeToSection(final ContentSection section, - final String contentType) { + final String contentType, + final Role... roles) { final String typeClassName = contentType.trim(); + LOGGER.debug("Adding content type '{}' to content section '{}'...", + contentType, + section.getPrimaryUrl()); final Class clazz; try { clazz = Class.forName(typeClassName); } catch (ClassNotFoundException ex) { throw new UnexpectedErrorException(String.format( - "No class for content type '%s'.", typeClassName)); + "No class for content type '%s'.", typeClassName)); } if (ContentItem.class.isAssignableFrom(clazz)) { + LOGGER.warn("'{}' is not is assignable from '{}'!", + ContentItem.class.getName(), + clazz.getName()); final ContentType type = new ContentType(); type.setContentSection(section); + type.setUuid(UUID.randomUUID().toString()); type.setContentItemClass(clazz.getName()); + getEntityManager().persist(type); section.addContentType(type); + + Arrays.stream(roles) + .forEach(role -> grantPermission(role, + TypePrivileges.USE_TYPE, + type)); } else { throw new UnexpectedErrorException(String.format( - "The class '%s' is not a sub class of '%s'.", - clazz.getName(), - ContentItem.class.getName())); + "The class '%s' is not a sub class of '%s'.", + clazz.getName(), + ContentItem.class.getName())); } } diff --git a/ccm-cms/src/test/java/org/librecms/contentsection/AttachmentListManagerTest.java b/ccm-cms/src/test/java/org/librecms/contentsection/AttachmentListManagerTest.java index 8393bfce6..a0bc69118 100644 --- a/ccm-cms/src/test/java/org/librecms/contentsection/AttachmentListManagerTest.java +++ b/ccm-cms/src/test/java/org/librecms/contentsection/AttachmentListManagerTest.java @@ -48,6 +48,7 @@ import java.util.Optional; import javax.inject.Inject; import org.jboss.arquillian.persistence.CleanupUsingScript; +import org.jboss.arquillian.persistence.TestExecutionPhase; import static org.hamcrest.CoreMatchers.*; import static org.junit.Assert.*; @@ -62,7 +63,8 @@ import static org.junit.Assert.*; @PersistenceTest @Transactional(TransactionMode.COMMIT) @CreateSchema({"create_ccm_cms_schema.sql"}) -@CleanupUsingScript({"cleanup.sql"}) +@CleanupUsingScript(value = {"cleanup.sql"}, + phase = TestExecutionPhase.BEFORE) public class AttachmentListManagerTest { @Inject diff --git a/ccm-cms/src/test/java/org/librecms/contentsection/ContentItemL10NManagerTest.java b/ccm-cms/src/test/java/org/librecms/contentsection/ContentItemL10NManagerTest.java index 1215e5046..a5950e4b9 100644 --- a/ccm-cms/src/test/java/org/librecms/contentsection/ContentItemL10NManagerTest.java +++ b/ccm-cms/src/test/java/org/librecms/contentsection/ContentItemL10NManagerTest.java @@ -47,6 +47,7 @@ import java.util.Optional; import javax.inject.Inject; import org.jboss.arquillian.persistence.CleanupUsingScript; +import org.jboss.arquillian.persistence.TestExecutionPhase; import static org.hamcrest.CoreMatchers.*; import static org.junit.Assert.*; @@ -61,7 +62,8 @@ import static org.junit.Assert.*; @PersistenceTest @Transactional(TransactionMode.COMMIT) @CreateSchema({"create_ccm_cms_schema.sql"}) -@CleanupUsingScript({"cleanup.sql"}) +@CleanupUsingScript(value = {"cleanup.sql"}, + phase = TestExecutionPhase.BEFORE) public class ContentItemL10NManagerTest { @Inject @@ -98,66 +100,67 @@ public class ContentItemL10NManagerTest { @Deployment public static WebArchive createDeployment() { return ShrinkWrap - .create(WebArchive.class, - "LibreCCM-org.librecms.contentsection.ContentItemManagerTest.war") - .addPackage(org.libreccm.auditing.CcmRevision.class.getPackage()) - .addPackage(org.libreccm.categorization.Categorization.class - .getPackage()) - .addPackage(org.libreccm.cdi.utils.CdiUtil.class.getPackage()) - .addPackage(org.libreccm.configuration.Configuration.class - .getPackage()) - .addPackage(org.libreccm.core.CcmCore.class.getPackage()) - .addPackage(org.libreccm.jpa.EntityManagerProducer.class - .getPackage()) - .addPackage(org.libreccm.jpa.utils.MimeTypeConverter.class - .getPackage()) - .addPackage(org.libreccm.l10n.LocalizedString.class - .getPackage()) - .addClass(org.libreccm.portation.Portable.class) - .addPackage(org.libreccm.security.Permission.class.getPackage()) - .addPackage(org.libreccm.web.CcmApplication.class.getPackage()) - .addPackage(org.libreccm.workflow.Workflow.class.getPackage()) - .addPackage(com.arsdigita.bebop.Component.class.getPackage()) - .addPackage(com.arsdigita.bebop.util.BebopConstants.class - .getPackage()) - .addClass(com.arsdigita.kernel.KernelConfig.class) - .addClass(com.arsdigita.runtime.CCMResourceManager.class) - .addClass(com.arsdigita.dispatcher.RequestContext.class) - .addClass(com.arsdigita.dispatcher.AccessDeniedException.class) - .addClass(com.arsdigita.cms.dispatcher.ContentItemDispatcher.class) - .addClass(com.arsdigita.dispatcher.Dispatcher.class) - .addClass( - com.arsdigita.ui.admin.applications.AbstractAppInstanceForm.class) - .addClass( - com.arsdigita.ui.admin.applications.AbstractAppSettingsPane.class) - .addClass( - com.arsdigita.ui.admin.applications.DefaultApplicationInstanceForm.class) - .addClass( - com.arsdigita.ui.admin.applications.DefaultApplicationSettingsPane.class) - .addClass(org.librecms.dispatcher.ItemResolver.class) - .addPackage(com.arsdigita.util.Lockable.class.getPackage()) - .addPackage(com.arsdigita.web.BaseServlet.class.getPackage()) - .addPackage(org.librecms.Cms.class.getPackage()) - .addPackage(org.librecms.contentsection.Asset.class.getPackage()) - .addPackage(org.librecms.contentsection.AttachmentList.class - .getPackage()) - .addPackage(org.librecms.lifecycle.Lifecycle.class.getPackage()) - .addPackage(org.librecms.contentsection.ContentSection.class - .getPackage()) - .addPackage(org.librecms.contenttypes.Article.class.getPackage()) - .addClass(com.arsdigita.kernel.security.SecurityConfig.class) - .addPackage(org.libreccm.tests.categories.IntegrationTest.class - .getPackage()) - // .addAsLibraries(getModuleDependencies()) - .addAsLibraries(getCcmCoreDependencies()) - .addAsResource("configs/shiro.ini", "shiro.ini") - .addAsResource( - "configs/org/librecms/contentsection/ContentItemManagerTest/log4j2.xml", - "log4j2.xml") - .addAsResource("test-persistence.xml", - "META-INF/persistence.xml") - .addAsWebInfResource("test-web.xml", "web.xml") - .addAsWebInfResource(EmptyAsset.INSTANCE, "WEB-INF/beans.xml"); + .create(WebArchive.class, + "LibreCCM-org.librecms.contentsection.ContentItemManagerTest.war"). + addPackage(org.libreccm.auditing.CcmRevision.class.getPackage()) + .addPackage(org.libreccm.categorization.Categorization.class + .getPackage()) + .addPackage(org.libreccm.cdi.utils.CdiUtil.class.getPackage()) + .addPackage(org.libreccm.configuration.Configuration.class + .getPackage()) + .addPackage(org.libreccm.core.CcmCore.class.getPackage()) + .addPackage(org.libreccm.jpa.EntityManagerProducer.class + .getPackage()) + .addPackage(org.libreccm.jpa.utils.MimeTypeConverter.class + .getPackage()) + .addPackage(org.libreccm.l10n.LocalizedString.class + .getPackage()) + .addClass(org.libreccm.portation.Portable.class) + .addPackage(org.libreccm.security.Permission.class.getPackage()) + .addPackage(org.libreccm.web.CcmApplication.class.getPackage()) + .addPackage(org.libreccm.workflow.Workflow.class.getPackage()) + .addPackage(com.arsdigita.bebop.Component.class.getPackage()) + .addPackage(com.arsdigita.bebop.util.BebopConstants.class + .getPackage()) + .addClass(com.arsdigita.kernel.KernelConfig.class) + .addClass(com.arsdigita.runtime.CCMResourceManager.class) + .addClass(com.arsdigita.dispatcher.RequestContext.class) + .addClass(com.arsdigita.dispatcher.AccessDeniedException.class) + .addClass( + com.arsdigita.cms.dispatcher.ContentItemDispatcher.class). + addClass(com.arsdigita.dispatcher.Dispatcher.class) + .addClass( + com.arsdigita.ui.admin.applications.AbstractAppInstanceForm.class). + addClass( + com.arsdigita.ui.admin.applications.AbstractAppSettingsPane.class). + addClass( + com.arsdigita.ui.admin.applications.DefaultApplicationInstanceForm.class). + addClass( + com.arsdigita.ui.admin.applications.DefaultApplicationSettingsPane.class). + addClass(org.librecms.dispatcher.ItemResolver.class) + .addPackage(com.arsdigita.util.Lockable.class.getPackage()) + .addPackage(com.arsdigita.web.BaseServlet.class.getPackage()) + .addPackage(org.librecms.Cms.class.getPackage()) + .addPackage(org.librecms.contentsection.Asset.class.getPackage()). + addPackage(org.librecms.contentsection.AttachmentList.class + .getPackage()) + .addPackage(org.librecms.lifecycle.Lifecycle.class.getPackage()) + .addPackage(org.librecms.contentsection.ContentSection.class + .getPackage()) + .addPackage(org.librecms.contenttypes.Article.class.getPackage()). + addClass(com.arsdigita.kernel.security.SecurityConfig.class) + .addPackage(org.libreccm.tests.categories.IntegrationTest.class + .getPackage()) + // .addAsLibraries(getModuleDependencies()) + .addAsLibraries(getCcmCoreDependencies()) + .addAsResource("configs/shiro.ini", "shiro.ini") + .addAsResource( + "configs/org/librecms/contentsection/ContentItemManagerTest/log4j2.xml", + "log4j2.xml") + .addAsResource("test-persistence.xml", + "META-INF/persistence.xml") + .addAsWebInfResource("test-web.xml", "web.xml") + .addAsWebInfResource(EmptyAsset.INSTANCE, "WEB-INF/beans.xml"); } @Test @@ -176,7 +179,7 @@ public class ContentItemL10NManagerTest { @Test @InSequence(10) @UsingDataSet("datasets/org/librecms/contentsection/" - + "ContentItemL10NManagerTest/data.xml") + + "ContentItemL10NManagerTest/data.xml") public void verifyHasLanguage() { shiro.getSystemUser().execute(() -> { final Optional item = itemRepo.findById(-10100L); @@ -201,7 +204,7 @@ public class ContentItemL10NManagerTest { @Test(expected = IllegalArgumentException.class) @InSequence(20) @UsingDataSet("datasets/org/librecms/contentsection/" - + "ContentItemL10NManagerTest/data.xml") + + "ContentItemL10NManagerTest/data.xml") @ShouldThrowException(IllegalArgumentException.class) public void hasLanguageItemIsNull() { final ContentItem item = null; @@ -218,7 +221,7 @@ public class ContentItemL10NManagerTest { @Test(expected = IllegalArgumentException.class) @InSequence(30) @UsingDataSet("datasets/org/librecms/contentsection/" - + "ContentItemL10NManagerTest/data.xml") + + "ContentItemL10NManagerTest/data.xml") @ShouldThrowException(IllegalArgumentException.class) public void hasLanguageLanguageIsNull() { final Optional item = itemRepo.findById(-10100L); @@ -236,11 +239,11 @@ public class ContentItemL10NManagerTest { @Test @InSequence(40) @UsingDataSet("datasets/org/librecms/contentsection/" - + "ContentItemL10NManagerTest/data.xml") + + "ContentItemL10NManagerTest/data.xml") @ShouldMatchDataSet( - value = "datasets/org/librecms/contentsection/" - + "ContentItemL10NManagerTest/after-add-language.xml", - excludeColumns = {"timestamp"}) + value = "datasets/org/librecms/contentsection/" + + "ContentItemL10NManagerTest/after-add-language.xml", + excludeColumns = {"timestamp"}) public void addLanguage() { final Optional item = itemRepo.findById(-10100L); assertThat(item.isPresent(), is(true)); @@ -256,10 +259,10 @@ public class ContentItemL10NManagerTest { @Test @InSequence(50) @UsingDataSet("datasets/org/librecms/contentsection/" - + "ContentItemL10NManagerTest/data.xml") + + "ContentItemL10NManagerTest/data.xml") @ShouldMatchDataSet( - value = "datasets/org/librecms/contentsection/" - + "ContentItemL10NManagerTest/data.xml") + value = "datasets/org/librecms/contentsection/" + + "ContentItemL10NManagerTest/data.xml") public void addLanguageAlreadyPresent() { final Optional item = itemRepo.findById(-10100L); assertThat(item.isPresent(), is(true)); @@ -276,10 +279,10 @@ public class ContentItemL10NManagerTest { @Test(expected = IllegalArgumentException.class) @InSequence(60) @UsingDataSet("datasets/org/librecms/contentsection/" - + "ContentItemL10NManagerTest/data.xml") + + "ContentItemL10NManagerTest/data.xml") @ShouldMatchDataSet( - value = "datasets/org/librecms/contentsection/" - + "ContentItemL10NManagerTest/data.xml") + value = "datasets/org/librecms/contentsection/" + + "ContentItemL10NManagerTest/data.xml") @ShouldThrowException(IllegalArgumentException.class) public void addLanguageItemIsNull() { final ContentItem item = null; @@ -295,10 +298,10 @@ public class ContentItemL10NManagerTest { @Test(expected = IllegalArgumentException.class) @InSequence(20) @UsingDataSet("datasets/org/librecms/contentsection/" - + "ContentItemL10NManagerTest/data.xml") + + "ContentItemL10NManagerTest/data.xml") @ShouldMatchDataSet( - value = "datasets/org/librecms/contentsection/" - + "ContentItemL10NManagerTest/data.xml") + value = "datasets/org/librecms/contentsection/" + + "ContentItemL10NManagerTest/data.xml") @ShouldThrowException(IllegalArgumentException.class) public void addLanguageLanguageIsNull() { final Optional item = itemRepo.findById(-10100L); @@ -314,11 +317,11 @@ public class ContentItemL10NManagerTest { @Test @InSequence(70) @UsingDataSet("datasets/org/librecms/contentsection/" - + "ContentItemL10NManagerTest/data.xml") + + "ContentItemL10NManagerTest/data.xml") @ShouldMatchDataSet( - value = "datasets/org/librecms/contentsection/" - + "ContentItemL10NManagerTest/after-remove-language.xml", - excludeColumns = {"timestamp"}) + value = "datasets/org/librecms/contentsection/" + + "ContentItemL10NManagerTest/after-remove-language.xml", + excludeColumns = {"timestamp"}) public void removeLanguage() { final Optional item = itemRepo.findById(-10100L); assertThat(item.isPresent(), is(true)); @@ -334,10 +337,10 @@ public class ContentItemL10NManagerTest { @Test @InSequence(80) @UsingDataSet("datasets/org/librecms/contentsection/" - + "ContentItemL10NManagerTest/data.xml") + + "ContentItemL10NManagerTest/data.xml") @ShouldMatchDataSet( - value = "datasets/org/librecms/contentsection/" - + "ContentItemL10NManagerTest/data.xml") + value = "datasets/org/librecms/contentsection/" + + "ContentItemL10NManagerTest/data.xml") public void removeNotPresentLanguage() { final Optional item = itemRepo.findById(-10100L); assertThat(item.isPresent(), is(true)); @@ -354,10 +357,10 @@ public class ContentItemL10NManagerTest { @Test(expected = IllegalArgumentException.class) @InSequence(90) @UsingDataSet("datasets/org/librecms/contentsection/" - + "ContentItemL10NManagerTest/data.xml") + + "ContentItemL10NManagerTest/data.xml") @ShouldMatchDataSet( - value = "datasets/org/librecms/contentsection/" - + "ContentItemL10NManagerTest/data.xml") + value = "datasets/org/librecms/contentsection/" + + "ContentItemL10NManagerTest/data.xml") @ShouldThrowException(IllegalArgumentException.class) public void removeLanguageItemIsNull() { final ContentItem item = null; @@ -374,10 +377,10 @@ public class ContentItemL10NManagerTest { @Test(expected = IllegalArgumentException.class) @InSequence(100) @UsingDataSet("datasets/org/librecms/contentsection/" - + "ContentItemL10NManagerTest/data.xml") + + "ContentItemL10NManagerTest/data.xml") @ShouldMatchDataSet( - value = "datasets/org/librecms/contentsection/" - + "ContentItemL10NManagerTest/data.xml") + value = "datasets/org/librecms/contentsection/" + + "ContentItemL10NManagerTest/data.xml") @ShouldThrowException(IllegalArgumentException.class) public void removeLanguageLanguageIsNull() { final Optional item = itemRepo.findById(-10100L); @@ -394,11 +397,11 @@ public class ContentItemL10NManagerTest { @Test @InSequence(120) @UsingDataSet("datasets/org/librecms/contentsection/" - + "ContentItemL10NManagerTest/data.xml") + + "ContentItemL10NManagerTest/data.xml") @ShouldMatchDataSet( - value = "datasets/org/librecms/contentsection/" - + "ContentItemL10NManagerTest/after-normalize.xml", - excludeColumns = {"timestamp"}) + value = "datasets/org/librecms/contentsection/" + + "ContentItemL10NManagerTest/after-normalize.xml", + excludeColumns = {"timestamp"}) public void normalizeItem() { final Optional item = itemRepo.findById(-10200L); assertThat(item.isPresent(), is(true)); @@ -414,10 +417,10 @@ public class ContentItemL10NManagerTest { @Test @InSequence(130) @UsingDataSet("datasets/org/librecms/contentsection/" - + "ContentItemL10NManagerTest/data.xml") + + "ContentItemL10NManagerTest/data.xml") @ShouldMatchDataSet( - value = "datasets/org/librecms/contentsection/" - + "ContentItemL10NManagerTest/data.xml") + value = "datasets/org/librecms/contentsection/" + + "ContentItemL10NManagerTest/data.xml") public void normalizeItemAlreadyNormalized() { final Optional item = itemRepo.findById(-10100L); assertThat(item.isPresent(), is(true)); @@ -435,10 +438,10 @@ public class ContentItemL10NManagerTest { @Test(expected = IllegalArgumentException.class) @InSequence(140) @UsingDataSet("datasets/org/librecms/contentsection/" - + "ContentItemL10NManagerTest/data.xml") + + "ContentItemL10NManagerTest/data.xml") @ShouldMatchDataSet( - value = "datasets/org/librecms/contentsection/" - + "ContentItemL10NManagerTest/data.xml") + value = "datasets/org/librecms/contentsection/" + + "ContentItemL10NManagerTest/data.xml") @ShouldThrowException(IllegalArgumentException.class) public void normalizeItemNull() { final ContentItem item = null; diff --git a/ccm-cms/src/test/java/org/librecms/contentsection/ContentItemManagerTest.java b/ccm-cms/src/test/java/org/librecms/contentsection/ContentItemManagerTest.java index 961235244..b45b88f82 100644 --- a/ccm-cms/src/test/java/org/librecms/contentsection/ContentItemManagerTest.java +++ b/ccm-cms/src/test/java/org/librecms/contentsection/ContentItemManagerTest.java @@ -53,6 +53,7 @@ import javax.inject.Inject; import javax.persistence.EntityManager; import javax.persistence.TypedQuery; import org.jboss.arquillian.persistence.CleanupUsingScript; +import org.jboss.arquillian.persistence.TestExecutionPhase; import static org.hamcrest.CoreMatchers.*; import static org.junit.Assert.*; @@ -69,7 +70,8 @@ import static org.libreccm.testutils.DependenciesHelpers.*; @PersistenceTest @Transactional(TransactionMode.COMMIT) @CreateSchema({"create_ccm_cms_schema.sql"}) -@CleanupUsingScript({"cleanup.sql"}) +@CleanupUsingScript(value = {"cleanup.sql"}, + phase = TestExecutionPhase.BEFORE) public class ContentItemManagerTest { @Inject diff --git a/ccm-cms/src/test/java/org/librecms/contentsection/ContentItemPermissionTest.java b/ccm-cms/src/test/java/org/librecms/contentsection/ContentItemPermissionTest.java index a279732a6..2f55ea0e7 100644 --- a/ccm-cms/src/test/java/org/librecms/contentsection/ContentItemPermissionTest.java +++ b/ccm-cms/src/test/java/org/librecms/contentsection/ContentItemPermissionTest.java @@ -55,6 +55,7 @@ import org.jboss.arquillian.persistence.CleanupUsingScript; import org.libreccm.security.User; import java.util.Optional; +import org.jboss.arquillian.persistence.TestExecutionPhase; import static org.hamcrest.CoreMatchers.*; import static org.junit.Assert.*; @@ -68,7 +69,8 @@ import static org.junit.Assert.*; @PersistenceTest @Transactional(TransactionMode.COMMIT) @CreateSchema({"create_ccm_cms_schema.sql"}) -@CleanupUsingScript({"cleanup.sql"}) +@CleanupUsingScript(value = {"cleanup.sql"}, + phase = TestExecutionPhase.BEFORE) public class ContentItemPermissionTest { private static final String QUERY = "SELECT i FROM ContentItem i " diff --git a/ccm-cms/src/test/java/org/librecms/contentsection/ContentItemRepositoryTest.java b/ccm-cms/src/test/java/org/librecms/contentsection/ContentItemRepositoryTest.java index 7aeee4bd1..a679a811a 100644 --- a/ccm-cms/src/test/java/org/librecms/contentsection/ContentItemRepositoryTest.java +++ b/ccm-cms/src/test/java/org/librecms/contentsection/ContentItemRepositoryTest.java @@ -29,6 +29,7 @@ import org.jboss.arquillian.persistence.CleanupUsingScript; import org.jboss.arquillian.persistence.CreateSchema; import org.jboss.arquillian.persistence.PersistenceTest; import org.jboss.arquillian.persistence.ShouldMatchDataSet; +import org.jboss.arquillian.persistence.TestExecutionPhase; import org.jboss.arquillian.persistence.UsingDataSet; import org.jboss.arquillian.transaction.api.annotation.TransactionMode; import org.jboss.arquillian.transaction.api.annotation.Transactional; @@ -60,7 +61,8 @@ import static org.libreccm.testutils.DependenciesHelpers.*; @PersistenceTest @Transactional(TransactionMode.COMMIT) @CreateSchema({"create_ccm_cms_schema.sql"}) -@CleanupUsingScript({"cleanup.sql"}) +@CleanupUsingScript(value = {"cleanup.sql"}, + phase = TestExecutionPhase.BEFORE) public class ContentItemRepositoryTest { @Inject diff --git a/ccm-cms/src/test/java/org/librecms/contentsection/ContentSectionManagerTest.java b/ccm-cms/src/test/java/org/librecms/contentsection/ContentSectionManagerTest.java index fc96f7e10..9d37a1c3c 100644 --- a/ccm-cms/src/test/java/org/librecms/contentsection/ContentSectionManagerTest.java +++ b/ccm-cms/src/test/java/org/librecms/contentsection/ContentSectionManagerTest.java @@ -56,6 +56,7 @@ import static org.libreccm.testutils.DependenciesHelpers.*; import org.jboss.arquillian.container.test.api.ShouldThrowException; import org.jboss.arquillian.persistence.CleanupUsingScript; +import org.jboss.arquillian.persistence.TestExecutionPhase; import org.libreccm.workflow.WorkflowTemplate; import org.libreccm.workflow.WorkflowTemplateRepository; import org.librecms.contentsection.privileges.ItemPrivileges; @@ -75,7 +76,8 @@ import org.librecms.lifecycle.LifecycleDefinitionRepository; @PersistenceTest @Transactional(TransactionMode.COMMIT) @CreateSchema({"create_ccm_cms_schema.sql"}) -@CleanupUsingScript({"cleanup.sql"}) +@CleanupUsingScript(value = {"cleanup.sql"}, + phase = TestExecutionPhase.BEFORE) public class ContentSectionManagerTest { @Inject diff --git a/ccm-cms/src/test/java/org/librecms/contentsection/ContentTypeRepositoryTest.java b/ccm-cms/src/test/java/org/librecms/contentsection/ContentTypeRepositoryTest.java index 8b5d944ae..e4d17314e 100644 --- a/ccm-cms/src/test/java/org/librecms/contentsection/ContentTypeRepositoryTest.java +++ b/ccm-cms/src/test/java/org/librecms/contentsection/ContentTypeRepositoryTest.java @@ -50,6 +50,7 @@ import java.util.Optional; import javax.inject.Inject; import org.jboss.arquillian.persistence.CleanupUsingScript; +import org.jboss.arquillian.persistence.TestExecutionPhase; import static org.hamcrest.CoreMatchers.*; import static org.junit.Assert.*; @@ -63,7 +64,8 @@ import static org.junit.Assert.*; @PersistenceTest @Transactional(TransactionMode.COMMIT) @CreateSchema({"create_ccm_cms_schema.sql"}) -@CleanupUsingScript({"cleanup.sql"}) +@CleanupUsingScript(value = {"cleanup.sql"}, + phase = TestExecutionPhase.BEFORE) public class ContentTypeRepositoryTest { @Inject diff --git a/ccm-cms/src/test/java/org/librecms/contentsection/FolderManagerTest.java b/ccm-cms/src/test/java/org/librecms/contentsection/FolderManagerTest.java index 1f74052b2..3f5822d23 100644 --- a/ccm-cms/src/test/java/org/librecms/contentsection/FolderManagerTest.java +++ b/ccm-cms/src/test/java/org/librecms/contentsection/FolderManagerTest.java @@ -47,6 +47,7 @@ import javax.inject.Inject; import org.jboss.arquillian.persistence.CleanupUsingScript; import java.util.Optional; +import org.jboss.arquillian.persistence.TestExecutionPhase; import static org.hamcrest.CoreMatchers.*; import static org.junit.Assert.*; @@ -60,7 +61,8 @@ import static org.junit.Assert.*; @PersistenceTest @Transactional(TransactionMode.COMMIT) @CreateSchema({"create_ccm_cms_schema.sql"}) -@CleanupUsingScript({"cleanup.sql"}) +@CleanupUsingScript(value = {"cleanup.sql"}, + phase = TestExecutionPhase.BEFORE) public class FolderManagerTest { @Inject diff --git a/ccm-cms/src/test/java/org/librecms/contentsection/ItemAttachmentManagerTest.java b/ccm-cms/src/test/java/org/librecms/contentsection/ItemAttachmentManagerTest.java index d4d5146a7..15183c13e 100644 --- a/ccm-cms/src/test/java/org/librecms/contentsection/ItemAttachmentManagerTest.java +++ b/ccm-cms/src/test/java/org/librecms/contentsection/ItemAttachmentManagerTest.java @@ -46,6 +46,7 @@ import javax.activation.MimeTypeParseException; import javax.inject.Inject; import javax.persistence.EntityManager; import org.jboss.arquillian.persistence.CleanupUsingScript; +import org.jboss.arquillian.persistence.TestExecutionPhase; import static org.hamcrest.CoreMatchers.*; import static org.junit.Assert.*; @@ -60,7 +61,8 @@ import static org.junit.Assert.*; @PersistenceTest //@Transactional(TransactionMode.COMMIT) @CreateSchema({"create_ccm_cms_schema.sql"}) -@CleanupUsingScript({"cleanup.sql"}) +@CleanupUsingScript(value = {"cleanup.sql"}, + phase = TestExecutionPhase.BEFORE) public class ItemAttachmentManagerTest { @Inject diff --git a/ccm-core/src/main/java/org/libreccm/core/CoreConstants.java b/ccm-core/src/main/java/org/libreccm/core/CoreConstants.java index 8e50ebfc4..ec5511101 100644 --- a/ccm-core/src/main/java/org/libreccm/core/CoreConstants.java +++ b/ccm-core/src/main/java/org/libreccm/core/CoreConstants.java @@ -58,6 +58,11 @@ public final class CoreConstants { * Constant for the {@code system} privilege. */ public static final String PRIVILEGE_SYSTEM = "system"; + + /** + * The name of the system administrator role. + */ + public static final String SYS_ADMIN_ROLE = "system-administrator"; private CoreConstants() { //Nothing diff --git a/ccm-core/src/main/java/org/libreccm/security/Role.java b/ccm-core/src/main/java/org/libreccm/security/Role.java index 0af47176b..f26fc2c2a 100644 --- a/ccm-core/src/main/java/org/libreccm/security/Role.java +++ b/ccm-core/src/main/java/org/libreccm/security/Role.java @@ -70,47 +70,61 @@ import static org.libreccm.core.CoreConstants.DB_SCHEMA; @NamedQueries({ @NamedQuery(name = "Role.findByName", query = "SELECT r FROM Role r " - + "WHERE r.name = :name"), + + "WHERE r.name = :name") + , @NamedQuery( name = "Role.count", - query = "SELECT COUNT(r) FROM Role r"), + query = "SELECT COUNT(r) FROM Role r") + , @NamedQuery( name = "Role.findAllOrderedByRoleName", - query = "SELECT r FROM Role r ORDER BY r.name"), + query = "SELECT r FROM Role r ORDER BY r.name") + , @NamedQuery( name = "Role.findAllOrderedByRoleNameLimit", - query = "SELECT r FROM Role r ORDER BY r.name "), + query = "SELECT r FROM Role r ORDER BY r.name ") + , @NamedQuery( name = "Role.findAllOrderedByRoleNameDesc", - query = "SELECT r FROM Role r ORDER BY r.name DESC"), + query = "SELECT r FROM Role r ORDER BY r.name DESC") + , @NamedQuery( name = "Role.searchByName", query = "SELECT r FROM Role r " + "WHERE LOWER(r.name) LIKE CONCAT(LOWER(:name), '%') " - + "ORDER BY r.name "), + + "ORDER BY r.name ") + , @NamedQuery( name = "Role.searchByNameCount", query = "SELECT COUNT(r.name) FROM Role r " + "WHERE LOWER(r.name) LIKE CONCAT(LOWER(:name), '%') " + "GROUP BY r.name " - + "ORDER BY r.name "), + + "ORDER BY r.name ") + , @NamedQuery( name = "Role.findByPrivilege", query = "SELECT r FROM Role r JOIN r.permissions p " + "WHERE p.grantedPrivilege = :privilege " - + "ORDER BY r.name"), + + "ORDER BY r.name") + , @NamedQuery( name = "Role.findByPrivilegeAndObject", query = "SELECT r FROM Role r JOIN r.permissions p " + "WHERE p.grantedPrivilege = :privilege " + "AND p.object = :object " + "ORDER BY r.name") + , + @NamedQuery( + name = "Role.findRolesOfUser", + query = "SELECT r.role FROM RoleMembership r " + + "WHERE r.member = :user") }) @NamedEntityGraphs({ @NamedEntityGraph( name = Role.ENTITY_GRPAH_WITH_MEMBERS, attributeNodes = { - @NamedAttributeNode(value = "memberships"),}), + @NamedAttributeNode(value = "memberships"),}) + , @NamedEntityGraph( name = Role.ENTITY_GRPAH_WITH_PERMISSIONS, attributeNodes = { diff --git a/ccm-core/src/main/java/org/libreccm/security/SystemUsersSetup.java b/ccm-core/src/main/java/org/libreccm/security/SystemUsersSetup.java index da2482975..c48fd8c31 100644 --- a/ccm-core/src/main/java/org/libreccm/security/SystemUsersSetup.java +++ b/ccm-core/src/main/java/org/libreccm/security/SystemUsersSetup.java @@ -89,7 +89,7 @@ public class SystemUsersSetup { admin.setPassword(adminPassword); final Role adminRole = new Role(); - adminRole.setName("system-administrator"); + adminRole.setName(CoreConstants.SYS_ADMIN_ROLE); final RoleMembership membership = new RoleMembership(); membership.setRole(adminRole); diff --git a/ccm-core/src/test/java/org/libreccm/categorization/CategoryManagerTest.java b/ccm-core/src/test/java/org/libreccm/categorization/CategoryManagerTest.java index 4c0487778..675d59523 100644 --- a/ccm-core/src/test/java/org/libreccm/categorization/CategoryManagerTest.java +++ b/ccm-core/src/test/java/org/libreccm/categorization/CategoryManagerTest.java @@ -59,6 +59,7 @@ import static org.junit.Assert.*; import static org.libreccm.testutils.DependenciesHelpers.*; import org.jboss.arquillian.persistence.CleanupUsingScript; +import org.jboss.arquillian.persistence.TestExecutionPhase; /** * Tests for the {@link CategoryManager}. @@ -70,7 +71,8 @@ import org.jboss.arquillian.persistence.CleanupUsingScript; @PersistenceTest @Transactional(TransactionMode.COMMIT) @CreateSchema({"create_ccm_core_schema.sql"}) -@CleanupUsingScript({"cleanup.sql"}) +@CleanupUsingScript(value = {"cleanup.sql"}, + phase = TestExecutionPhase.BEFORE) public class CategoryManagerTest { @Inject diff --git a/ccm-core/src/test/java/org/libreccm/categorization/CategoryRepositoryTest.java b/ccm-core/src/test/java/org/libreccm/categorization/CategoryRepositoryTest.java index 0ae631afb..9ebf1852a 100644 --- a/ccm-core/src/test/java/org/libreccm/categorization/CategoryRepositoryTest.java +++ b/ccm-core/src/test/java/org/libreccm/categorization/CategoryRepositoryTest.java @@ -55,6 +55,7 @@ import static org.libreccm.testutils.DependenciesHelpers.*; import org.jboss.arquillian.persistence.CleanupUsingScript; import java.util.Optional; +import org.jboss.arquillian.persistence.TestExecutionPhase; /** * @@ -65,7 +66,8 @@ import java.util.Optional; @PersistenceTest @Transactional(TransactionMode.COMMIT) @CreateSchema({"create_ccm_core_schema.sql"}) -@CleanupUsingScript({"cleanup.sql"}) +@CleanupUsingScript(value = {"cleanup.sql"}, + phase = TestExecutionPhase.BEFORE) public class CategoryRepositoryTest { @Inject diff --git a/ccm-core/src/test/java/org/libreccm/configuration/ConfigurationManagerTest.java b/ccm-core/src/test/java/org/libreccm/configuration/ConfigurationManagerTest.java index 751fcc671..8444c3ae6 100644 --- a/ccm-core/src/test/java/org/libreccm/configuration/ConfigurationManagerTest.java +++ b/ccm-core/src/test/java/org/libreccm/configuration/ConfigurationManagerTest.java @@ -51,6 +51,7 @@ import static org.junit.Assert.*; import static org.libreccm.testutils.DependenciesHelpers.*; import org.jboss.arquillian.persistence.CleanupUsingScript; +import org.jboss.arquillian.persistence.TestExecutionPhase; /** * Tests for the {@link ConfigurationManager}. @@ -62,7 +63,8 @@ import org.jboss.arquillian.persistence.CleanupUsingScript; @PersistenceTest @Transactional(TransactionMode.COMMIT) @CreateSchema({"create_ccm_core_schema.sql"}) -@CleanupUsingScript({"cleanup.sql"}) +@CleanupUsingScript(value = {"cleanup.sql"}, + phase = TestExecutionPhase.BEFORE) public class ConfigurationManagerTest { @Inject diff --git a/ccm-core/src/test/java/org/libreccm/core/CcmObjectRepositoryTest.java b/ccm-core/src/test/java/org/libreccm/core/CcmObjectRepositoryTest.java index c89d8f315..b0f4c774b 100644 --- a/ccm-core/src/test/java/org/libreccm/core/CcmObjectRepositoryTest.java +++ b/ccm-core/src/test/java/org/libreccm/core/CcmObjectRepositoryTest.java @@ -55,6 +55,7 @@ import static org.libreccm.testutils.DependenciesHelpers.*; import org.jboss.arquillian.persistence.CleanupUsingScript; import java.util.Optional; +import org.jboss.arquillian.persistence.TestExecutionPhase; /** * Tests for the {@link CcmObjectRepository} which is the foundation for many @@ -67,7 +68,8 @@ import java.util.Optional; @PersistenceTest @Transactional(TransactionMode.COMMIT) @CreateSchema({"create_ccm_core_schema.sql"}) -@CleanupUsingScript({"cleanup.sql"}) +@CleanupUsingScript(value = {"cleanup.sql"}, + phase = TestExecutionPhase.BEFORE) public class CcmObjectRepositoryTest { @Inject @@ -98,32 +100,33 @@ public class CcmObjectRepositoryTest { @Deployment public static WebArchive createDeployment() { return ShrinkWrap - .create(WebArchive.class, - "LibreCCM-org.libreccm.core.CcmObjectRepositoryTest.war") - .addPackage(org.libreccm.auditing.CcmRevision.class.getPackage()) - .addPackage(org.libreccm.categorization.Categorization.class - .getPackage()) - .addPackage(org.libreccm.configuration.Configuration.class. - getPackage()) - .addPackage(org.libreccm.core.CcmObject.class.getPackage()) - .addPackage(org.libreccm.jpa.EntityManagerProducer.class - .getPackage()) - .addPackage(org.libreccm.jpa.utils.MimeTypeConverter.class - .getPackage()) - .addPackage(org.libreccm.l10n.LocalizedString.class.getPackage()) - .addPackage(org.libreccm.security.PermissionChecker.class - .getPackage()) - .addPackage(org.libreccm.testutils.EqualsVerifier.class.getPackage()) - .addPackage(org.libreccm.tests.categories.IntegrationTest.class - .getPackage()) - .addPackage(org.libreccm.web.CcmApplication.class.getPackage()) - .addPackage(org.libreccm.workflow.Workflow.class.getPackage()) - .addClass(org.libreccm.portation.Portable.class) - .addAsLibraries(getModuleDependencies()) - .addAsResource("test-persistence.xml", - "META-INF/persistence.xml") - .addAsWebInfResource("test-web.xml", "WEB-INF/web.xml") - .addAsWebInfResource(EmptyAsset.INSTANCE, "WEB-INF/beans.xml"); + .create(WebArchive.class, + "LibreCCM-org.libreccm.core.CcmObjectRepositoryTest.war"). + addPackage(org.libreccm.auditing.CcmRevision.class.getPackage()) + .addPackage(org.libreccm.categorization.Categorization.class + .getPackage()) + .addPackage(org.libreccm.configuration.Configuration.class. + getPackage()) + .addPackage(org.libreccm.core.CcmObject.class.getPackage()) + .addPackage(org.libreccm.jpa.EntityManagerProducer.class + .getPackage()) + .addPackage(org.libreccm.jpa.utils.MimeTypeConverter.class + .getPackage()) + .addPackage(org.libreccm.l10n.LocalizedString.class.getPackage()). + addPackage(org.libreccm.security.PermissionChecker.class + .getPackage()) + .addPackage(org.libreccm.testutils.EqualsVerifier.class. + getPackage()) + .addPackage(org.libreccm.tests.categories.IntegrationTest.class + .getPackage()) + .addPackage(org.libreccm.web.CcmApplication.class.getPackage()) + .addPackage(org.libreccm.workflow.Workflow.class.getPackage()) + .addClass(org.libreccm.portation.Portable.class) + .addAsLibraries(getModuleDependencies()) + .addAsResource("test-persistence.xml", + "META-INF/persistence.xml") + .addAsWebInfResource("test-web.xml", "WEB-INF/web.xml") + .addAsWebInfResource(EmptyAsset.INSTANCE, "WEB-INF/beans.xml"); } /** @@ -160,7 +163,7 @@ public class CcmObjectRepositoryTest { */ @Test @UsingDataSet("datasets/org/libreccm/core/CcmObjectRepositoryTest/" - + "after-save-changed.yml") + + "after-save-changed.yml") @InSequence(4) public void datasetOnly2() { System.out.println("Dataset loaded successfully."); @@ -274,9 +277,9 @@ public class CcmObjectRepositoryTest { @Test @UsingDataSet("datasets/org/libreccm/core/CcmObjectRepositoryTest/data.yml") @ShouldMatchDataSet( - value = "datasets/org/libreccm/core/CcmObjectRepositoryTest/" - + "after-save-new.yml", - excludeColumns = {"object_id", "uuid"}) + value = "datasets/org/libreccm/core/CcmObjectRepositoryTest/" + + "after-save-new.yml", + excludeColumns = {"object_id", "uuid"}) @InSequence(300) public void saveNewCcmObject() { final CcmObject obj = new CcmObject(); @@ -294,9 +297,9 @@ public class CcmObjectRepositoryTest { @Test @UsingDataSet("datasets/org/libreccm/core/CcmObjectRepositoryTest/data.yml") @ShouldMatchDataSet( - value = "datasets/org/libreccm/core/CcmObjectRepositoryTest/" - + "after-save-changed.yml", - excludeColumns = {"object_id"}) + value = "datasets/org/libreccm/core/CcmObjectRepositoryTest/" + + "after-save-changed.yml", + excludeColumns = {"object_id"}) @InSequence(400) public void saveChangedCcmObject() { final CcmObject obj = ccmObjectRepository.findById(-20L).get(); @@ -318,16 +321,16 @@ public class CcmObjectRepositoryTest { } /** - * Deletes one of the {@link CcmObject}s in the database by using + * Deletes one of the {@link CcmObject}s in the database by using * {@link CcmObjectRepository#delete(java.lang.Object)} and verifies that * the object has been removed from the test database. */ @Test @UsingDataSet("datasets/org/libreccm/core/CcmObjectRepositoryTest/data.yml") @ShouldMatchDataSet( - value = "datasets/org/libreccm/core/CcmObjectRepositoryTest/" - + "after-delete.yml", - excludeColumns = {"object_id"}) + value = "datasets/org/libreccm/core/CcmObjectRepositoryTest/" + + "after-delete.yml", + excludeColumns = {"object_id"}) @InSequence(600) public void deleteCcmObject() { final CcmObject obj = ccmObjectRepository.findById(-20L).get(); @@ -337,7 +340,7 @@ public class CcmObjectRepositoryTest { /** * Verifies that {@link CcmObjectRepository#delete(java.lang.Object)} throws - * a {@link IllegalArgumentException} if called with {@link null} for the + * a {@link IllegalArgumentException} if called with {@link null} for the * object to delete. */ @Test(expected = IllegalArgumentException.class) diff --git a/ccm-core/src/test/java/org/libreccm/modules/ConfigurationLoaderTest.java b/ccm-core/src/test/java/org/libreccm/modules/ConfigurationLoaderTest.java index 0a79ac481..a0106ab0f 100644 --- a/ccm-core/src/test/java/org/libreccm/modules/ConfigurationLoaderTest.java +++ b/ccm-core/src/test/java/org/libreccm/modules/ConfigurationLoaderTest.java @@ -44,6 +44,7 @@ import javax.persistence.EntityManager; import static org.libreccm.testutils.DependenciesHelpers.*; import org.jboss.arquillian.persistence.CleanupUsingScript; +import org.jboss.arquillian.persistence.TestExecutionPhase; /** @@ -55,7 +56,8 @@ import org.jboss.arquillian.persistence.CleanupUsingScript; @PersistenceTest @Transactional(TransactionMode.COMMIT) @CreateSchema({"create_ccm_core_schema.sql"}) -@CleanupUsingScript({"cleanup.sql"}) +@CleanupUsingScript(value = {"cleanup.sql"}, + phase = TestExecutionPhase.BEFORE) public class ConfigurationLoaderTest { @Inject diff --git a/ccm-core/src/test/java/org/libreccm/portation/CoreDataImportTest.java b/ccm-core/src/test/java/org/libreccm/portation/CoreDataImportTest.java index e2b0ec3af..f8a336f13 100644 --- a/ccm-core/src/test/java/org/libreccm/portation/CoreDataImportTest.java +++ b/ccm-core/src/test/java/org/libreccm/portation/CoreDataImportTest.java @@ -41,6 +41,7 @@ import org.libreccm.tests.categories.IntegrationTest; import javax.faces.bean.RequestScoped; import javax.inject.Inject; +import org.jboss.arquillian.persistence.TestExecutionPhase; import static org.libreccm.testutils.DependenciesHelpers.getModuleDependencies; @@ -57,8 +58,8 @@ import static org.libreccm.testutils.DependenciesHelpers.getModuleDependencies; @PersistenceTest @Transactional(TransactionMode.COMMIT) @CreateSchema({"create_ccm_core_schema.sql"}) -@CleanupUsingScript({"cleanup.sql"}) -@RequestScoped +@CleanupUsingScript(value = {"cleanup.sql"}, + phase = TestExecutionPhase.BEFORE) public class CoreDataImportTest { @Inject diff --git a/ccm-core/src/test/java/org/libreccm/security/AuthorizationInterceptorTest.java b/ccm-core/src/test/java/org/libreccm/security/AuthorizationInterceptorTest.java index aa56cb7f7..0c55ce931 100644 --- a/ccm-core/src/test/java/org/libreccm/security/AuthorizationInterceptorTest.java +++ b/ccm-core/src/test/java/org/libreccm/security/AuthorizationInterceptorTest.java @@ -52,6 +52,7 @@ import static org.junit.Assert.*; import static org.libreccm.testutils.DependenciesHelpers.*; import org.jboss.arquillian.persistence.CleanupUsingScript; +import org.jboss.arquillian.persistence.TestExecutionPhase; /** * @@ -62,7 +63,8 @@ import org.jboss.arquillian.persistence.CleanupUsingScript; @PersistenceTest @Transactional(TransactionMode.COMMIT) @CreateSchema({"create_ccm_core_schema.sql"}) -@CleanupUsingScript({"cleanup.sql"}) +@CleanupUsingScript(value = {"cleanup.sql"}, + phase = TestExecutionPhase.BEFORE) public class AuthorizationInterceptorTest { @Inject diff --git a/ccm-core/src/test/java/org/libreccm/security/ChallengeManagerTest.java b/ccm-core/src/test/java/org/libreccm/security/ChallengeManagerTest.java index 04fbc9519..9d3dc2524 100644 --- a/ccm-core/src/test/java/org/libreccm/security/ChallengeManagerTest.java +++ b/ccm-core/src/test/java/org/libreccm/security/ChallengeManagerTest.java @@ -51,6 +51,7 @@ import static org.libreccm.testutils.DependenciesHelpers.*; import org.jboss.arquillian.persistence.CleanupUsingScript; import java.util.Optional; +import org.jboss.arquillian.persistence.TestExecutionPhase; /** * @@ -61,7 +62,8 @@ import java.util.Optional; @PersistenceTest @Transactional(TransactionMode.COMMIT) @CreateSchema("create_ccm_core_schema.sql") -@CleanupUsingScript({"cleanup.sql"}) +@CleanupUsingScript(value = {"cleanup.sql"}, + phase = TestExecutionPhase.BEFORE) public class ChallengeManagerTest { @Inject diff --git a/ccm-core/src/test/java/org/libreccm/security/GroupManagerTest.java b/ccm-core/src/test/java/org/libreccm/security/GroupManagerTest.java index 8bfd90b33..a6b327a53 100644 --- a/ccm-core/src/test/java/org/libreccm/security/GroupManagerTest.java +++ b/ccm-core/src/test/java/org/libreccm/security/GroupManagerTest.java @@ -49,6 +49,7 @@ import static org.junit.Assert.*; import static org.libreccm.testutils.DependenciesHelpers.*; import org.jboss.arquillian.persistence.CleanupUsingScript; +import org.jboss.arquillian.persistence.TestExecutionPhase; /** * @@ -59,7 +60,8 @@ import org.jboss.arquillian.persistence.CleanupUsingScript; @PersistenceTest @Transactional(TransactionMode.COMMIT) @CreateSchema({"create_ccm_core_schema.sql"}) -@CleanupUsingScript({"cleanup.sql"}) +@CleanupUsingScript(value = {"cleanup.sql"}, + phase = TestExecutionPhase.BEFORE) public class GroupManagerTest { @Inject diff --git a/ccm-core/src/test/java/org/libreccm/security/GroupRepositoryTest.java b/ccm-core/src/test/java/org/libreccm/security/GroupRepositoryTest.java index 98c81d73b..26a72ad01 100644 --- a/ccm-core/src/test/java/org/libreccm/security/GroupRepositoryTest.java +++ b/ccm-core/src/test/java/org/libreccm/security/GroupRepositoryTest.java @@ -55,6 +55,7 @@ import org.junit.runner.RunWith; import org.libreccm.tests.categories.IntegrationTest; import java.util.Optional; +import org.jboss.arquillian.persistence.TestExecutionPhase; /** * @@ -65,7 +66,8 @@ import java.util.Optional; @PersistenceTest @Transactional(TransactionMode.COMMIT) @CreateSchema("create_ccm_core_schema.sql") -@CleanupUsingScript({"cleanup.sql"}) +@CleanupUsingScript(value = {"cleanup.sql"}, + phase = TestExecutionPhase.BEFORE) public class GroupRepositoryTest { private static final String ADMINS = "admins"; diff --git a/ccm-core/src/test/java/org/libreccm/security/OneTimeAuthManagerTest.java b/ccm-core/src/test/java/org/libreccm/security/OneTimeAuthManagerTest.java index 5dc27e90b..fb4366fcd 100644 --- a/ccm-core/src/test/java/org/libreccm/security/OneTimeAuthManagerTest.java +++ b/ccm-core/src/test/java/org/libreccm/security/OneTimeAuthManagerTest.java @@ -56,6 +56,7 @@ import static org.junit.Assert.*; import static org.libreccm.testutils.DependenciesHelpers.*; import org.jboss.arquillian.persistence.CleanupUsingScript; +import org.jboss.arquillian.persistence.TestExecutionPhase; /** * @@ -66,7 +67,8 @@ import org.jboss.arquillian.persistence.CleanupUsingScript; @PersistenceTest @Transactional(TransactionMode.COMMIT) @CreateSchema("create_ccm_core_schema.sql") -@CleanupUsingScript({"cleanup.sql"}) +@CleanupUsingScript(value = {"cleanup.sql"}, + phase = TestExecutionPhase.BEFORE) public class OneTimeAuthManagerTest { @Inject diff --git a/ccm-core/src/test/java/org/libreccm/security/PartyRepositoryTest.java b/ccm-core/src/test/java/org/libreccm/security/PartyRepositoryTest.java index af3a3b156..6c67a7fbe 100644 --- a/ccm-core/src/test/java/org/libreccm/security/PartyRepositoryTest.java +++ b/ccm-core/src/test/java/org/libreccm/security/PartyRepositoryTest.java @@ -53,6 +53,7 @@ import static org.junit.Assert.assertThat; import static org.libreccm.testutils.DependenciesHelpers.*; import org.jboss.arquillian.persistence.CleanupUsingScript; +import org.jboss.arquillian.persistence.TestExecutionPhase; /** * @@ -63,7 +64,8 @@ import org.jboss.arquillian.persistence.CleanupUsingScript; @PersistenceTest @Transactional(TransactionMode.COMMIT) @CreateSchema({"create_ccm_core_schema.sql"}) -@CleanupUsingScript({"cleanup.sql"}) +@CleanupUsingScript(value = {"cleanup.sql"}, + phase = TestExecutionPhase.BEFORE) public class PartyRepositoryTest { private static final String MMUSTER = "mmuster"; diff --git a/ccm-core/src/test/java/org/libreccm/security/PermissionCheckerTest.java b/ccm-core/src/test/java/org/libreccm/security/PermissionCheckerTest.java index 7dc6a7158..3d2c9cd4e 100644 --- a/ccm-core/src/test/java/org/libreccm/security/PermissionCheckerTest.java +++ b/ccm-core/src/test/java/org/libreccm/security/PermissionCheckerTest.java @@ -59,6 +59,7 @@ import static org.junit.Assert.*; import static org.libreccm.testutils.DependenciesHelpers.*; import org.jboss.arquillian.persistence.CleanupUsingScript; +import org.jboss.arquillian.persistence.TestExecutionPhase; /** * @@ -69,7 +70,8 @@ import org.jboss.arquillian.persistence.CleanupUsingScript; @PersistenceTest @Transactional(TransactionMode.COMMIT) @CreateSchema({"create_ccm_core_schema.sql"}) -@CleanupUsingScript({"cleanup.sql"}) +@CleanupUsingScript(value = {"cleanup.sql"}, + phase = TestExecutionPhase.BEFORE) public class PermissionCheckerTest { @Inject diff --git a/ccm-core/src/test/java/org/libreccm/security/PermissionManagerTest.java b/ccm-core/src/test/java/org/libreccm/security/PermissionManagerTest.java index 0e60bbdc9..ff4e2f78f 100644 --- a/ccm-core/src/test/java/org/libreccm/security/PermissionManagerTest.java +++ b/ccm-core/src/test/java/org/libreccm/security/PermissionManagerTest.java @@ -55,6 +55,7 @@ import org.libreccm.categorization.CategorizationConstants; import org.libreccm.core.CoreConstants; import java.util.List; +import org.jboss.arquillian.persistence.TestExecutionPhase; /** * Integration tests (run in a Application Server by Arquillian} for the @@ -67,7 +68,8 @@ import java.util.List; @PersistenceTest @Transactional(TransactionMode.COMMIT) @CreateSchema({"create_ccm_core_schema.sql"}) -@CleanupUsingScript(value = {"cleanup.sql"}) +@CleanupUsingScript(value = {"cleanup.sql"}, + phase = TestExecutionPhase.BEFORE) public class PermissionManagerTest { @Inject @@ -107,36 +109,36 @@ public class PermissionManagerTest { @Deployment public static WebArchive createDeployment() { return ShrinkWrap - .create(WebArchive.class, - "LibreCCM-org.libreccm.security.PermissionManagerTest.war"). - addPackage(org.libreccm.categorization.Categorization.class - .getPackage()) - .addPackage(org.libreccm.configuration.Configuration.class - .getPackage()) - .addPackage(org.libreccm.core.CcmObject.class.getPackage()) - .addPackage(org.libreccm.jpa.EntityManagerProducer.class - .getPackage()) - .addPackage(org.libreccm.jpa.utils.MimeTypeConverter.class - .getPackage()) - .addPackage(org.libreccm.l10n.LocalizedString.class.getPackage()). - addPackage(org.libreccm.security.User.class.getPackage()) - .addPackage(org.libreccm.tests.categories.IntegrationTest.class - .getPackage()) - .addPackage(org.libreccm.testutils.EqualsVerifier.class - .getPackage()) - .addPackage(org.libreccm.web.CcmApplication.class.getPackage()) - .addPackage(org.libreccm.workflow.Workflow.class.getPackage()) - .addPackage(com.arsdigita.kernel.KernelConfig.class.getPackage()). - addPackage(com.arsdigita.kernel.security.SecurityConfig.class - .getPackage()) - .addPackage(org.libreccm.cdi.utils.CdiUtil.class.getPackage()) - .addClass(org.libreccm.portation.Portable.class) - .addAsLibraries(getModuleDependencies()) - .addAsResource("test-persistence.xml", - "META-INF/persistence.xml") - .addAsResource("configs/shiro.ini", "shiro.ini") - .addAsWebInfResource("test-web.xml", "web.xml") - .addAsWebInfResource("META-INF/beans.xml", "beans.xml"); + .create(WebArchive.class, + "LibreCCM-org.libreccm.security.PermissionManagerTest.war"). + addPackage(org.libreccm.categorization.Categorization.class + .getPackage()) + .addPackage(org.libreccm.configuration.Configuration.class + .getPackage()) + .addPackage(org.libreccm.core.CcmObject.class.getPackage()) + .addPackage(org.libreccm.jpa.EntityManagerProducer.class + .getPackage()) + .addPackage(org.libreccm.jpa.utils.MimeTypeConverter.class + .getPackage()) + .addPackage(org.libreccm.l10n.LocalizedString.class.getPackage()). + addPackage(org.libreccm.security.User.class.getPackage()) + .addPackage(org.libreccm.tests.categories.IntegrationTest.class + .getPackage()) + .addPackage(org.libreccm.testutils.EqualsVerifier.class + .getPackage()) + .addPackage(org.libreccm.web.CcmApplication.class.getPackage()) + .addPackage(org.libreccm.workflow.Workflow.class.getPackage()) + .addPackage(com.arsdigita.kernel.KernelConfig.class.getPackage()). + addPackage(com.arsdigita.kernel.security.SecurityConfig.class + .getPackage()) + .addPackage(org.libreccm.cdi.utils.CdiUtil.class.getPackage()) + .addClass(org.libreccm.portation.Portable.class) + .addAsLibraries(getModuleDependencies()) + .addAsResource("test-persistence.xml", + "META-INF/persistence.xml") + .addAsResource("configs/shiro.ini", "shiro.ini") + .addAsWebInfResource("test-web.xml", "web.xml") + .addAsWebInfResource("META-INF/beans.xml", "beans.xml"); } /** @@ -175,11 +177,11 @@ public class PermissionManagerTest { */ @Test @UsingDataSet( - "datasets/org/libreccm/security/PermissionManagerTest/data.yml") + "datasets/org/libreccm/security/PermissionManagerTest/data.yml") @ShouldMatchDataSet( - value = "datasets/org/libreccm/security/PermissionManagerTest/" - + "after-grant.yml", - excludeColumns = {"permission_id"}) + value = "datasets/org/libreccm/security/PermissionManagerTest/" + + "after-grant.yml", + excludeColumns = {"permission_id"}) @InSequence(200) public void grantPermission() { final Role role2 = roleRepository.findByName("role2").get(); @@ -200,10 +202,10 @@ public class PermissionManagerTest { */ @Test @UsingDataSet( - "datasets/org/libreccm/security/PermissionManagerTest/data.yml") + "datasets/org/libreccm/security/PermissionManagerTest/data.yml") @ShouldMatchDataSet( - value = "datasets/org/libreccm/security/PermissionManagerTest/" - + "data.yml") + value = "datasets/org/libreccm/security/PermissionManagerTest/" + + "data.yml") @InSequence(210) public void grantPermissionAgain() { final Role role1 = roleRepository.findByName("role1").get(); @@ -222,11 +224,11 @@ public class PermissionManagerTest { */ @Test @UsingDataSet("datasets/org/libreccm/security/PermissionManagerTest/" - + "data-recursivly.yml") + + "data-recursivly.yml") @ShouldMatchDataSet( - value = "datasets/org/libreccm/security/PermissionManagerTest/" - + "after-grant-recursivly.yml", - excludeColumns = {"permission_id"}) + value = "datasets/org/libreccm/security/PermissionManagerTest/" + + "after-grant-recursivly.yml", + excludeColumns = {"permission_id"}) @InSequence(211) public void grantPermissionRecursively() { final Role role1 = roleRepository.findByName("role1").get(); @@ -247,7 +249,7 @@ public class PermissionManagerTest { */ @Test(expected = IllegalArgumentException.class) @UsingDataSet( - "datasets/org/libreccm/security/PermissionManagerTest/data.yml") + "datasets/org/libreccm/security/PermissionManagerTest/data.yml") @ShouldThrowException(IllegalArgumentException.class) @InSequence(220) public void grantPermissionPrivilegeNull() throws Throwable { @@ -255,7 +257,7 @@ public class PermissionManagerTest { try { shiro.getSystemUser().execute( - () -> permissionManager.grantPrivilege(null, role1)); + () -> permissionManager.grantPrivilege(null, role1)); } catch (ExecutionException ex) { throw ex.getCause(); } @@ -271,7 +273,7 @@ public class PermissionManagerTest { */ @Test(expected = IllegalArgumentException.class) @UsingDataSet( - "datasets/org/libreccm/security/PermissionManagerTest/data.yml") + "datasets/org/libreccm/security/PermissionManagerTest/data.yml") @ShouldThrowException(IllegalArgumentException.class) @InSequence(225) public void grantPermissionOnObjectPrivilegeNull() throws Throwable { @@ -280,7 +282,7 @@ public class PermissionManagerTest { try { shiro.getSystemUser().execute( - () -> permissionManager.grantPrivilege(null, role1, object1)); + () -> permissionManager.grantPrivilege(null, role1, object1)); } catch (ExecutionException ex) { throw ex.getCause(); } @@ -296,7 +298,7 @@ public class PermissionManagerTest { */ @Test(expected = IllegalArgumentException.class) @UsingDataSet( - "datasets/org/libreccm/security/PermissionManagerTest/data.yml") + "datasets/org/libreccm/security/PermissionManagerTest/data.yml") @ShouldThrowException(IllegalArgumentException.class) @InSequence(230) public void grantPermissionEmptyPrivilege() throws Throwable { @@ -304,7 +306,7 @@ public class PermissionManagerTest { try { shiro.getSystemUser().execute( - () -> permissionManager.grantPrivilege("", role1)); + () -> permissionManager.grantPrivilege("", role1)); } catch (ExecutionException ex) { throw ex.getCause(); } @@ -320,7 +322,7 @@ public class PermissionManagerTest { */ @Test(expected = IllegalArgumentException.class) @UsingDataSet( - "datasets/org/libreccm/security/PermissionManagerTest/data.yml") + "datasets/org/libreccm/security/PermissionManagerTest/data.yml") @ShouldThrowException(IllegalArgumentException.class) @InSequence(235) public void grantPermissionOnObjectEmptyPrivilege() throws Throwable { @@ -329,7 +331,7 @@ public class PermissionManagerTest { try { shiro.getSystemUser().execute( - () -> permissionManager.grantPrivilege("", role1, object1)); + () -> permissionManager.grantPrivilege("", role1, object1)); } catch (ExecutionException ex) { throw ex.getCause(); } @@ -345,13 +347,13 @@ public class PermissionManagerTest { */ @Test(expected = IllegalArgumentException.class) @UsingDataSet( - "datasets/org/libreccm/security/PermissionManagerTest/data.yml") + "datasets/org/libreccm/security/PermissionManagerTest/data.yml") @ShouldThrowException(IllegalArgumentException.class) @InSequence(240) public void grantPermissionToRoleNull() throws Throwable { try { shiro.getSystemUser().execute( - () -> permissionManager.grantPrivilege("privilege", null)); + () -> permissionManager.grantPrivilege("privilege", null)); } catch (ExecutionException ex) { throw ex.getCause(); } @@ -367,7 +369,7 @@ public class PermissionManagerTest { */ @Test(expected = IllegalArgumentException.class) @UsingDataSet( - "datasets/org/libreccm/security/PermissionManagerTest/data.yml") + "datasets/org/libreccm/security/PermissionManagerTest/data.yml") @ShouldThrowException(IllegalArgumentException.class) @InSequence(240) public void grantPermissionOnObjectToRoleNull() throws Throwable { @@ -375,9 +377,9 @@ public class PermissionManagerTest { try { shiro.getSystemUser().execute( - () -> permissionManager.grantPrivilege("privilege", - null, - object1)); + () -> permissionManager.grantPrivilege("privilege", + null, + object1)); } catch (ExecutionException ex) { throw ex.getCause(); } @@ -393,7 +395,7 @@ public class PermissionManagerTest { */ @Test(expected = IllegalArgumentException.class) @UsingDataSet( - "datasets/org/libreccm/security/PermissionManagerTest/data.yml") + "datasets/org/libreccm/security/PermissionManagerTest/data.yml") @ShouldThrowException(IllegalArgumentException.class) @InSequence(250) public void grantPermissionNullObject() throws Throwable { @@ -401,9 +403,9 @@ public class PermissionManagerTest { try { shiro.getSystemUser().execute( - () -> permissionManager.grantPrivilege("privilege1", - role1, - null)); + () -> permissionManager.grantPrivilege("privilege1", + role1, + null)); } catch (ExecutionException ex) { throw ex.getCause(); } @@ -418,11 +420,11 @@ public class PermissionManagerTest { */ @Test @UsingDataSet( - "datasets/org/libreccm/security/PermissionManagerTest/data.yml") + "datasets/org/libreccm/security/PermissionManagerTest/data.yml") @ShouldMatchDataSet( - value = "datasets/org/libreccm/security/PermissionManagerTest/" - + "after-revoke.yml", - excludeColumns = {"permission_id"}) + value = "datasets/org/libreccm/security/PermissionManagerTest/" + + "after-revoke.yml", + excludeColumns = {"permission_id"}) @InSequence(300) public void revokePermission() { final Role role1 = roleRepository.findByName("role1").get(); @@ -444,16 +446,16 @@ public class PermissionManagerTest { */ @Test @UsingDataSet( - "datasets/org/libreccm/security/PermissionManagerTest/data.yml") + "datasets/org/libreccm/security/PermissionManagerTest/data.yml") @ShouldMatchDataSet( - value = "datasets/org/libreccm/security/PermissionManagerTest/" - + "data.yml") + value = "datasets/org/libreccm/security/PermissionManagerTest/" + + "data.yml") @InSequence(310) public void revokeNotExistingPermission() throws Throwable { final Role role1 = roleRepository.findByName("role1").get(); shiro.getSystemUser().execute( - () -> permissionManager.revokePrivilege("privilege999", role1)); + () -> permissionManager.revokePrivilege("privilege999", role1)); } /** @@ -462,10 +464,10 @@ public class PermissionManagerTest { */ @Test @UsingDataSet("datasets/org/libreccm/security/PermissionManagerTest/" - + "after-grant-recursivly.yml") + + "after-grant-recursivly.yml") @ShouldMatchDataSet( - value = "datasets/org/libreccm/security/PermissionManagerTest/" - + "after-revoke-recursivly.yml") + value = "datasets/org/libreccm/security/PermissionManagerTest/" + + "after-revoke-recursivly.yml") @InSequence(311) public void revokePermissionRecursivly() { final Role role1 = roleRepository.findByName("role1").get(); @@ -485,19 +487,19 @@ public class PermissionManagerTest { */ @Test @UsingDataSet( - "datasets/org/libreccm/security/PermissionManagerTest/data.yml") + "datasets/org/libreccm/security/PermissionManagerTest/data.yml") @ShouldMatchDataSet( - value = "datasets/org/libreccm/security/PermissionManagerTest/" - + "data.yml") + value = "datasets/org/libreccm/security/PermissionManagerTest/" + + "data.yml") @InSequence(310) public void revokeNotExistingPermissionOnObject() { final Role role1 = roleRepository.findByName("role1").get(); final CcmObject object1 = ccmObjectRepository.findById(-20001L).get(); shiro.getSystemUser().execute( - () -> permissionManager.revokePrivilege("privilege999", - role1, - object1)); + () -> permissionManager.revokePrivilege("privilege999", + role1, + object1)); } /** @@ -510,7 +512,7 @@ public class PermissionManagerTest { */ @Test(expected = IllegalArgumentException.class) @UsingDataSet( - "datasets/org/libreccm/security/PermissionManagerTest/data.yml") + "datasets/org/libreccm/security/PermissionManagerTest/data.yml") @ShouldThrowException(IllegalArgumentException.class) @InSequence(320) public void revokePermissionPrivilegeNull() throws Throwable { @@ -518,7 +520,7 @@ public class PermissionManagerTest { try { shiro.getSystemUser().execute( - () -> permissionManager.revokePrivilege(null, role1)); + () -> permissionManager.revokePrivilege(null, role1)); } catch (ExecutionException ex) { throw ex.getCause(); } @@ -534,7 +536,7 @@ public class PermissionManagerTest { */ @Test(expected = IllegalArgumentException.class) @UsingDataSet( - "datasets/org/libreccm/security/PermissionManagerTest/data.yml") + "datasets/org/libreccm/security/PermissionManagerTest/data.yml") @ShouldThrowException(IllegalArgumentException.class) @InSequence(320) public void revokePermissionOnObjectPrivilegeNull() throws Throwable { @@ -543,8 +545,8 @@ public class PermissionManagerTest { try { shiro.getSystemUser().execute( - () -> permissionManager. - revokePrivilege(null, role1, object1)); + () -> permissionManager. + revokePrivilege(null, role1, object1)); } catch (ExecutionException ex) { throw ex.getCause(); } @@ -560,7 +562,7 @@ public class PermissionManagerTest { */ @Test(expected = IllegalArgumentException.class) @UsingDataSet( - "datasets/org/libreccm/security/PermissionManagerTest/data.yml") + "datasets/org/libreccm/security/PermissionManagerTest/data.yml") @ShouldThrowException(IllegalArgumentException.class) @InSequence(330) public void revokePermissionEmptyPrivilege() throws Throwable { @@ -568,7 +570,7 @@ public class PermissionManagerTest { try { shiro.getSystemUser().execute( - () -> permissionManager.revokePrivilege("", role1)); + () -> permissionManager.revokePrivilege("", role1)); } catch (ExecutionException ex) { throw ex.getCause(); } @@ -583,9 +585,9 @@ public class PermissionManagerTest { * @throws Throwable */ @Test(expected - = IllegalArgumentException.class) + = IllegalArgumentException.class) @UsingDataSet( - "datasets/org/libreccm/security/PermissionManagerTest/data.yml") + "datasets/org/libreccm/security/PermissionManagerTest/data.yml") @ShouldThrowException(IllegalArgumentException.class) @InSequence(320) public void revokePermissionOnObjectEmptyPrivilege() throws Throwable { @@ -594,7 +596,7 @@ public class PermissionManagerTest { try { shiro.getSystemUser().execute( - () -> permissionManager.revokePrivilege("", role1, object1)); + () -> permissionManager.revokePrivilege("", role1, object1)); } catch (ExecutionException ex) { throw ex.getCause(); } @@ -609,15 +611,15 @@ public class PermissionManagerTest { * @throws Throwable */ @Test(expected - = IllegalArgumentException.class) + = IllegalArgumentException.class) @UsingDataSet( - "datasets/org/libreccm/security/PermissionManagerTest/data.yml") + "datasets/org/libreccm/security/PermissionManagerTest/data.yml") @ShouldThrowException(IllegalArgumentException.class) @InSequence(340) public void revokePermissionFromRoleNull() throws Throwable { try { shiro.getSystemUser().execute( - () -> permissionManager.revokePrivilege("privilege1", null)); + () -> permissionManager.revokePrivilege("privilege1", null)); } catch (ExecutionException ex) { throw ex.getCause(); } @@ -633,7 +635,7 @@ public class PermissionManagerTest { */ @Test(expected = IllegalArgumentException.class) @UsingDataSet( - "datasets/org/libreccm/security/PermissionManagerTest/data.yml") + "datasets/org/libreccm/security/PermissionManagerTest/data.yml") @ShouldThrowException(IllegalArgumentException.class) @InSequence(345) public void revokePermissionOnObjectFromRoleNull() throws Throwable { @@ -641,9 +643,9 @@ public class PermissionManagerTest { try { shiro.getSystemUser().execute( - () -> permissionManager.revokePrivilege("privilege1", - null, - object1)); + () -> permissionManager.revokePrivilege("privilege1", + null, + object1)); } catch (ExecutionException ex) { throw ex.getCause(); } @@ -659,7 +661,7 @@ public class PermissionManagerTest { */ @Test(expected = IllegalArgumentException.class) @UsingDataSet( - "datasets/org/libreccm/security/PermissionManagerTest/data.yml") + "datasets/org/libreccm/security/PermissionManagerTest/data.yml") @ShouldThrowException(IllegalArgumentException.class) @InSequence(350) public void revokePermissionNullObject() throws Throwable { @@ -667,9 +669,9 @@ public class PermissionManagerTest { try { shiro.getSystemUser().execute( - () -> permissionManager.revokePrivilege("privilege2", - role1, - null)); + () -> permissionManager.revokePrivilege("privilege2", + role1, + null)); } catch (ExecutionException ex) { throw ex.getCause(); } @@ -684,18 +686,18 @@ public class PermissionManagerTest { */ @Test @UsingDataSet( - "datasets/org/libreccm/security/PermissionManagerTest/data.yml") + "datasets/org/libreccm/security/PermissionManagerTest/data.yml") @ShouldMatchDataSet( - value = "datasets/org/libreccm/security/PermissionManagerTest/" - + "after-copy.yml", - excludeColumns = {"permission_id"}) + value = "datasets/org/libreccm/security/PermissionManagerTest/" + + "after-copy.yml", + excludeColumns = {"permission_id"}) @InSequence(400) public void copyPermissions() throws Throwable { final CcmObject object2 = ccmObjectRepository.findById(-20002L).get(); final CcmObject object3 = ccmObjectRepository.findById(-20003L).get(); shiro.getSystemUser().execute( - () -> permissionManager.copyPermissions(object2, object3)); + () -> permissionManager.copyPermissions(object2, object3)); } /** @@ -708,7 +710,7 @@ public class PermissionManagerTest { */ @Test(expected = IllegalArgumentException.class) @UsingDataSet( - "datasets/org/libreccm/security/PermissionManagerTest/data.yml") + "datasets/org/libreccm/security/PermissionManagerTest/data.yml") @ShouldThrowException(IllegalArgumentException.class) @InSequence(410) public void copyPermissionsNullSource() throws Throwable { @@ -716,7 +718,7 @@ public class PermissionManagerTest { try { shiro.getSystemUser().execute( - () -> permissionManager.copyPermissions(null, object3)); + () -> permissionManager.copyPermissions(null, object3)); } catch (ExecutionException ex) { throw ex.getCause(); } @@ -732,7 +734,7 @@ public class PermissionManagerTest { */ @Test(expected = IllegalArgumentException.class) @UsingDataSet( - "datasets/org/libreccm/security/PermissionManagerTest/data.yml") + "datasets/org/libreccm/security/PermissionManagerTest/data.yml") @ShouldThrowException(IllegalArgumentException.class) @InSequence(420) public void copyPermissionsNullTarget() throws Throwable { @@ -740,7 +742,7 @@ public class PermissionManagerTest { try { shiro.getSystemUser().execute( - () -> permissionManager.copyPermissions(object2, null)); + () -> permissionManager.copyPermissions(object2, null)); } catch (ExecutionException ex) { throw ex.getCause(); } @@ -756,9 +758,9 @@ public class PermissionManagerTest { public void verifyListPrivileges() { final List corePrivileges = permissionManager - .listDefiniedPrivileges(CoreConstants.class); + .listDefiniedPrivileges(CoreConstants.class); final List catPrivileges = permissionManager - .listDefiniedPrivileges(CategorizationConstants.class); + .listDefiniedPrivileges(CategorizationConstants.class); assertThat(corePrivileges, is(not(nullValue()))); assertThat(corePrivileges.isEmpty(), is(false)); diff --git a/ccm-core/src/test/java/org/libreccm/security/RoleManagerTest.java b/ccm-core/src/test/java/org/libreccm/security/RoleManagerTest.java index 28f42a8d5..2bb96ccf8 100644 --- a/ccm-core/src/test/java/org/libreccm/security/RoleManagerTest.java +++ b/ccm-core/src/test/java/org/libreccm/security/RoleManagerTest.java @@ -48,6 +48,7 @@ import static org.junit.Assert.*; import static org.libreccm.testutils.DependenciesHelpers.*; import org.jboss.arquillian.persistence.CleanupUsingScript; +import org.jboss.arquillian.persistence.TestExecutionPhase; /** * @@ -58,7 +59,8 @@ import org.jboss.arquillian.persistence.CleanupUsingScript; @PersistenceTest @Transactional(TransactionMode.COMMIT) @CreateSchema({"create_ccm_core_schema.sql"}) -@CleanupUsingScript({"cleanup.sql"}) +@CleanupUsingScript(value = {"cleanup.sql"}, + phase = TestExecutionPhase.BEFORE) public class RoleManagerTest { @Inject diff --git a/ccm-core/src/test/java/org/libreccm/security/RoleRepositoryTest.java b/ccm-core/src/test/java/org/libreccm/security/RoleRepositoryTest.java index 25d5fa035..30c6a1579 100644 --- a/ccm-core/src/test/java/org/libreccm/security/RoleRepositoryTest.java +++ b/ccm-core/src/test/java/org/libreccm/security/RoleRepositoryTest.java @@ -57,6 +57,7 @@ import static org.libreccm.testutils.DependenciesHelpers.*; import org.jboss.arquillian.persistence.CleanupUsingScript; import java.util.Optional; +import org.jboss.arquillian.persistence.TestExecutionPhase; /** * Tests for the {@link RoleRepository}. Note. We are not enabling the @@ -69,7 +70,8 @@ import java.util.Optional; @PersistenceTest @Transactional(TransactionMode.COMMIT) @CreateSchema({"create_ccm_core_schema.sql"}) -@CleanupUsingScript({"cleanup.sql"}) +@CleanupUsingScript(value = {"cleanup.sql"}, + phase = TestExecutionPhase.BEFORE) public class RoleRepositoryTest { private static final String ADMINISTRATOR = "administrator"; diff --git a/ccm-core/src/test/java/org/libreccm/security/SecuredCollectionTest.java b/ccm-core/src/test/java/org/libreccm/security/SecuredCollectionTest.java index 9b716ea33..f9325fa62 100644 --- a/ccm-core/src/test/java/org/libreccm/security/SecuredCollectionTest.java +++ b/ccm-core/src/test/java/org/libreccm/security/SecuredCollectionTest.java @@ -55,6 +55,7 @@ import static org.junit.Assert.*; import static org.libreccm.testutils.DependenciesHelpers.*; import org.jboss.arquillian.persistence.CleanupUsingScript; +import org.jboss.arquillian.persistence.TestExecutionPhase; /** * @@ -65,7 +66,8 @@ import org.jboss.arquillian.persistence.CleanupUsingScript; @PersistenceTest @Transactional(TransactionMode.COMMIT) @CreateSchema({"create_ccm_core_schema.sql"}) -@CleanupUsingScript({"cleanup.sql"}) +@CleanupUsingScript(value = {"cleanup.sql"}, + phase = TestExecutionPhase.BEFORE) public class SecuredCollectionTest { private static final String ACCESS_DENIED = "Access denied"; diff --git a/ccm-core/src/test/java/org/libreccm/security/SecuredIteratorTest.java b/ccm-core/src/test/java/org/libreccm/security/SecuredIteratorTest.java index f8ee01938..f25b6bbb8 100644 --- a/ccm-core/src/test/java/org/libreccm/security/SecuredIteratorTest.java +++ b/ccm-core/src/test/java/org/libreccm/security/SecuredIteratorTest.java @@ -56,6 +56,7 @@ import static org.junit.Assert.*; import static org.libreccm.testutils.DependenciesHelpers.*; import org.jboss.arquillian.persistence.CleanupUsingScript; +import org.jboss.arquillian.persistence.TestExecutionPhase; /** * @@ -66,7 +67,8 @@ import org.jboss.arquillian.persistence.CleanupUsingScript; @PersistenceTest @Transactional(TransactionMode.COMMIT) @CreateSchema({"create_ccm_core_schema.sql"}) -@CleanupUsingScript({"cleanup.sql"}) +@CleanupUsingScript(value = {"cleanup.sql"}, + phase = TestExecutionPhase.BEFORE) public class SecuredIteratorTest { private static final String ACCESS_DENIED = "Access denied"; diff --git a/ccm-core/src/test/java/org/libreccm/security/ShiroTest.java b/ccm-core/src/test/java/org/libreccm/security/ShiroTest.java index 37e6b644d..879970777 100644 --- a/ccm-core/src/test/java/org/libreccm/security/ShiroTest.java +++ b/ccm-core/src/test/java/org/libreccm/security/ShiroTest.java @@ -54,6 +54,7 @@ import static org.junit.Assert.*; import static org.libreccm.testutils.DependenciesHelpers.*; import org.jboss.arquillian.persistence.CleanupUsingScript; +import org.jboss.arquillian.persistence.TestExecutionPhase; /** * @@ -64,7 +65,8 @@ import org.jboss.arquillian.persistence.CleanupUsingScript; @PersistenceTest @Transactional(TransactionMode.COMMIT) @CreateSchema({"create_ccm_core_schema.sql"}) -@CleanupUsingScript({"cleanup.sql"}) +@CleanupUsingScript(value = {"cleanup.sql"}, + phase = TestExecutionPhase.BEFORE) public class ShiroTest { @Inject diff --git a/ccm-core/src/test/java/org/libreccm/security/UserManagerTest.java b/ccm-core/src/test/java/org/libreccm/security/UserManagerTest.java index d30045de7..5c0cae997 100644 --- a/ccm-core/src/test/java/org/libreccm/security/UserManagerTest.java +++ b/ccm-core/src/test/java/org/libreccm/security/UserManagerTest.java @@ -53,6 +53,7 @@ import static org.junit.Assert.*; import static org.libreccm.testutils.DependenciesHelpers.*; import org.jboss.arquillian.persistence.CleanupUsingScript; +import org.jboss.arquillian.persistence.TestExecutionPhase; /** * @@ -63,7 +64,8 @@ import org.jboss.arquillian.persistence.CleanupUsingScript; @PersistenceTest @Transactional(TransactionMode.COMMIT) @CreateSchema({"create_ccm_core_schema.sql"}) -@CleanupUsingScript({"cleanup.sql"}) +@CleanupUsingScript(value = {"cleanup.sql"}, + phase = TestExecutionPhase.BEFORE) public class UserManagerTest { @Inject diff --git a/ccm-core/src/test/java/org/libreccm/security/UserRepositoryTest.java b/ccm-core/src/test/java/org/libreccm/security/UserRepositoryTest.java index fbe04bf27..763f16052 100644 --- a/ccm-core/src/test/java/org/libreccm/security/UserRepositoryTest.java +++ b/ccm-core/src/test/java/org/libreccm/security/UserRepositoryTest.java @@ -55,6 +55,7 @@ import java.util.Optional; import javax.inject.Inject; import javax.persistence.EntityManager; import javax.persistence.PersistenceContext; +import org.jboss.arquillian.persistence.TestExecutionPhase; /** * @@ -65,7 +66,8 @@ import javax.persistence.PersistenceContext; @PersistenceTest @Transactional(TransactionMode.COMMIT) @CreateSchema({"create_ccm_core_schema.sql"}) -@CleanupUsingScript({"cleanup.sql"}) +@CleanupUsingScript(value = {"cleanup.sql"}, + phase = TestExecutionPhase.BEFORE) public class UserRepositoryTest { private static final String NOBODY = "nobody"; diff --git a/ccm-shortcuts/src/test/java/org/libreccm/shortcuts/ShortcutManagerTest.java b/ccm-shortcuts/src/test/java/org/libreccm/shortcuts/ShortcutManagerTest.java index cbc0a1d34..198bd45b7 100644 --- a/ccm-shortcuts/src/test/java/org/libreccm/shortcuts/ShortcutManagerTest.java +++ b/ccm-shortcuts/src/test/java/org/libreccm/shortcuts/ShortcutManagerTest.java @@ -36,6 +36,7 @@ import org.jboss.arquillian.persistence.CleanupUsingScript; import org.jboss.arquillian.persistence.CreateSchema; import org.jboss.arquillian.persistence.PersistenceTest; import org.jboss.arquillian.persistence.ShouldMatchDataSet; +import org.jboss.arquillian.persistence.TestExecutionPhase; import org.jboss.arquillian.persistence.UsingDataSet; import org.jboss.arquillian.transaction.api.annotation.TransactionMode; import org.jboss.arquillian.transaction.api.annotation.Transactional; @@ -63,7 +64,8 @@ import static org.junit.Assert.*; @PersistenceTest @Transactional(TransactionMode.COMMIT) @CreateSchema({"create_ccm_shortcuts_schema.sql"}) -@CleanupUsingScript({"cleanup.sql"}) +@CleanupUsingScript(value = {"cleanup.sql"}, + phase = TestExecutionPhase.BEFORE) public class ShortcutManagerTest { @Inject diff --git a/ccm-shortcuts/src/test/java/org/libreccm/shortcuts/ShortcutRepositoryTest.java b/ccm-shortcuts/src/test/java/org/libreccm/shortcuts/ShortcutRepositoryTest.java index 2ba9143bc..45dee0024 100644 --- a/ccm-shortcuts/src/test/java/org/libreccm/shortcuts/ShortcutRepositoryTest.java +++ b/ccm-shortcuts/src/test/java/org/libreccm/shortcuts/ShortcutRepositoryTest.java @@ -46,6 +46,7 @@ import java.util.Optional; import javax.inject.Inject; import javax.persistence.EntityManager; import javax.persistence.PersistenceContext; +import org.jboss.arquillian.persistence.TestExecutionPhase; import static org.hamcrest.CoreMatchers.*; import static org.junit.Assert.*; @@ -59,7 +60,8 @@ import static org.junit.Assert.*; @PersistenceTest @Transactional(TransactionMode.COMMIT) @CreateSchema({"create_ccm_shortcuts_schema.sql"}) -@CleanupUsingScript({"cleanup.sql"}) +@CleanupUsingScript(value = {"cleanup.sql"}, + phase = TestExecutionPhase.BEFORE) public class ShortcutRepositoryTest { @Inject