Class JcmsTestCase

  • All Implemented Interfaces:
    JcmsConstants, JaliosConstants, junit.framework.Test

    public abstract class JcmsTestCase
    extends junit.framework.TestCase
    implements JcmsConstants
    Provides a super class for development of JCMS unit tests with JUnit3.
    Extending this class will automatically provides a working JCMS during execution of all your unit tests.

    The launched instance of JCMS will be using the following 3 files :

    • WEB-INF/data/store.xml.junit : copy of WEB-INF/data/store.xml.release if it exists, otherwise copy of WEB-INF/data/store.xml
    • WEB-INF/data/custom.prop.junit : copy of WEB-INF/data/custom.prop.release if it exists, otherwise copy of WEB-INF/data/custom.prop

    Also, if file WEB-INF/data/junit.prop exists, its content is appended to the junit file WEB-INF/data/custom.prop.junit.

    Warning!: Even though, store.xml and custom.prop are not modified by launching a test case using this class, beware that a real JCMS is being launched, thus some other legitimate file might be modified (monitor.xml, logs, stats, lucene index, etc).

    Some useful protected variables are provided to your subclass for easier Data manipulation in your test cases :

    • admin : default administrator (channel.getDefaultAdmin())
    • defaultWorkspace : default workspace (channel.getDefaultWorkspace())
    • defaultGroup : default group (channel.getDefaultGroup())
    You can retrieve mock objects for testing using methods provided in this class :
    • getMockHttpSession()
    • getMockHttpServletRequest() or getMockHttpServletRequest(HttpSession)
    • getMockJcmsJspContext() or getMockJcmsJspContext(HttpServletRequest)
    Convenient static "assert" methods not provided in the JUnit API are provided in this class.
    By extending this class you can use any log4j logger starting with "unittests.", the log message will be appendended to standard console.

    Example :

      public class MyFeatureTest extends com.jalios.jcms.test.JcmsTestCase {
        private static final Logger logger = Logger.getLogger(MyFeatureTest.class.getName());
        
        Data testData = null; 
        
        protected void setUp() throws Exception {
          super.setUp();
          
          logger.info("Creating new article for MyFeature test...");
          Article article = new Article();
          article.setWorkspace(defaultWorkspace);
          article.setTitle("en", "Article Title en " + new Date());
          article.performCreate(admin); 
          testData = article
        }
      
        public void testMethod1() {
          HttpSession testSession = getMockHttpSession();
          assertTrue(MyFeature.method1(getMockHttpServletRequest(testSession), testData));
          assertFalse(MyFeature.method1(getMockHttpServletRequest(testSession), testData));
          ...
        }
        
        protected void tearDown() throws Exception {
          super.tearDown();
          
          if (testData != null) {
            logger.info("Deleting article created for MyFeature test...");
            testData.performDelete(admin); 
          }
        }
      }
     
    Since:
    jcms-5.7.4
    Version:
    $Revision: 135367 $ --@deprecated use JcmsTestCase4
    • Field Detail

      • friendlyURLFilter

        protected static FriendlyURLFilter friendlyURLFilter
        Instance of the FriendlyURLFilter being used for testing
      • channel

        protected static Channel channel
        Singleton used for testing
      • langs

        protected static java.lang.String[] langs
        Array of all channel languages (channel.getLanguageList())
      • admin

        protected static Member admin
      • defaultWorkspace

        protected static Workspace defaultWorkspace
      • defaultGroup

        protected static Group defaultGroup
      • A_VERY_LONG_TEXT

        protected static java.lang.String A_VERY_LONG_TEXT
      • ASYNC_TEST__MAX_WAIT_TIME_BEFORE_FAILURE

        protected static long ASYNC_TEST__MAX_WAIT_TIME_BEFORE_FAILURE
      • ASYNC_TEST__ITERATION_WAIT_TIME

        protected static long ASYNC_TEST__ITERATION_WAIT_TIME
      • ASYNC_TEST__MAX_ITERATION

        protected static long ASYNC_TEST__MAX_ITERATION
    • Constructor Detail

      • JcmsTestCase

        public JcmsTestCase()
    • Method Detail

      • setUp

        protected void setUp()
                      throws java.lang.Exception
        Overrides:
        setUp in class junit.framework.TestCase
        Throws:
        java.lang.Exception
      • tearDown

        protected void tearDown()
                         throws java.lang.Exception
        Overrides:
        tearDown in class junit.framework.TestCase
        Throws:
        java.lang.Exception
      • getMockServletContext

        protected javax.servlet.ServletContext getMockServletContext()
        Convenient Method to return the fake servlet context used for this test.
        Returns:
        a ServletContext
        See Also:
        MockServletContext
      • getMockHttpSession

        protected javax.servlet.http.HttpSession getMockHttpSession()
        Convenient Method to return a new instance of a fake http session.
        Returns:
        a HttpSession
        See Also:
        HttpSession
      • getMockHttpServletRequest

        protected javax.servlet.http.HttpServletRequest getMockHttpServletRequest()
        Convenient Method to return a new instance of a fake http servlet request.
        Returns:
        a HttpServletRequest
        See Also:
        MockHttpServletRequest
      • getMockHttpServletRequest

        protected javax.servlet.http.HttpServletRequest getMockHttpServletRequest​(javax.servlet.http.HttpSession session)
        Convenient Method to return a new instance of a fake http servlet request using the specified mock session
        Parameters:
        session - the session
        Returns:
        a HttpServletRequest
        See Also:
        MockHttpServletRequest
      • getMockHttpServletResponse

        protected javax.servlet.http.HttpServletResponse getMockHttpServletResponse()
        Convenient Method to return a new instance of a fake http servlet response.
        Returns:
        a HttpServletResponse
        See Also:
        MockHttpServletResponse
      • getMockHttpServletResponse

        protected javax.servlet.http.HttpServletResponse getMockHttpServletResponse​(javax.servlet.http.HttpSession session)
        Convenient Method to return a new instance of a fake http servlet response using the specified mock session
        Parameters:
        session - the session
        Returns:
        a HttpServletResponse
        See Also:
        MockHttpServletResponse
      • getMockJcmsJspContext

        protected JcmsJspContext getMockJcmsJspContext()
        Retrieve a mock explorer JcmsJspContext.
        Returns:
        a new instance of JcmsJspContext
        Since:
        jcms-5.7.3
      • getMockJcmsJspContext

        protected JcmsJspContext getMockJcmsJspContext​(javax.servlet.http.HttpServletRequest request)
        Retrieve a mock explorer JcmsJspContext based on the specified request
        Parameters:
        request - the mock request to use, if null a new mock request is created
        Returns:
        a new instance of JcmsJspContext
        Since:
        jcms-5.7.3
      • assertStatusForbidden

        protected void assertStatusForbidden​(ControllerStatus status)
      • assertStatusHasFailed

        protected void assertStatusHasFailed​(ControllerStatus status)
      • assertStatusHasFailed

        protected void assertStatusHasFailed​(java.lang.String prop,
                                             ControllerStatus status)
      • assertCanBeReadBy

        protected void assertCanBeReadBy​(Publication pub,
                                         Member mbr)
      • assertCanBeReadBy

        protected void assertCanBeReadBy​(Publication pub,
                                         Member mbr,
                                         boolean searchInGroup)
      • assertCanBeReadBy

        @Deprecated
        protected void assertCanBeReadBy​(Publication pub,
                                         Group grp)
        Deprecated.
        since JCMS-8577
        Assert publication can be read by specified group
        Parameters:
        pub - publication to check
        grp - group to verify
      • assertCannotBeReadBy

        protected void assertCannotBeReadBy​(Publication pub,
                                            Group grp,
                                            RightInfo.Explanation restriction)
        Deprecated.
        since JCMS-8577
        Assert publication can be read by specified group
        Parameters:
        pub - publication to check
        grp - group to verify
        restriction - the expected explanation
      • assertCanUpdateOther

        protected void assertCanUpdateOther​(Member mbr,
                                            Data data)
      • assertCanDeleteOther

        protected void assertCanDeleteOther​(Member mbr,
                                            Data data)
      • assertCmpGreater

        protected <T> void assertCmpGreater​(java.util.Comparator<T> comparator,
                                            T o1,
                                            T o2)
      • assertCmpLower

        protected <T> void assertCmpLower​(java.util.Comparator<T> comparator,
                                          T o1,
                                          T o2)
      • assertCmpEquals

        protected <T> void assertCmpEquals​(java.util.Comparator<T> comparator,
                                           T o1,
                                           T o2)
      • assertCmpOpposite

        protected <T> void assertCmpOpposite​(java.util.Comparator<T> comparator,
                                             T o1,
                                             T o2)
      • assertCmpSame

        protected <T> void assertCmpSame​(java.util.Comparator<T> c1,
                                         java.util.Comparator<T> c2,
                                         T o1,
                                         T o2)
      • assertSameContent

        protected void assertSameContent​(java.lang.Object[] array1,
                                         java.lang.Object[] array2)
      • assertSameContent

        protected void assertSameContent​(java.lang.String message,
                                         java.lang.Object[] array1,
                                         java.lang.Object[] array2)
      • assertNotSameContent

        protected void assertNotSameContent​(java.lang.Object[] array1,
                                            java.lang.Object[] array2)
      • assertNotSameContent

        protected void assertNotSameContent​(java.lang.String message,
                                            java.lang.Object[] array1,
                                            java.lang.Object[] array2)
      • assertSameContent

        protected void assertSameContent​(java.util.Collection<?> col1,
                                         java.util.Collection<?> col2)
        Since:
        jcms-9.0.3
      • assertSameContent

        protected void assertSameContent​(java.lang.String message,
                                         java.util.Collection<?> col1,
                                         java.util.Collection<?> col2)
        Since:
        jcms-9.0.3
      • assertNotSameContent

        protected void assertNotSameContent​(java.lang.String message,
                                            java.util.Collection<?> col1,
                                            java.util.Collection<?> col2)
        Since:
        jcms-9.0.3
      • assertSameContent

        protected void assertSameContent​(java.util.Set<?> set1,
                                         java.util.Set<?> set2)
      • assertNotSameContent

        protected void assertNotSameContent​(java.util.Set<?> set1,
                                            java.util.Set<?> set2)
      • assertNotSameContent

        protected void assertNotSameContent​(java.lang.String message,
                                            java.util.Set<?> set1,
                                            java.util.Set<?> set2)
      • assertSameDateSet

        protected void assertSameDateSet​(java.util.Set<java.util.Date> expectedDateSet,
                                         java.util.Set<java.util.Date> actualDateSet)
      • assertSameContent

        protected void assertSameContent​(java.util.List<?> list1,
                                         java.util.List<?> list2)
      • assertSameContent

        protected void assertSameContent​(java.lang.String message,
                                         java.util.List<?> list1,
                                         java.util.List<?> list2)
      • assertSameDateList

        protected void assertSameDateList​(java.util.List<java.util.Date> expectedDateList,
                                          java.util.List<java.util.Date> actualDateList)
      • assertNotSameContent

        protected void assertNotSameContent​(java.util.List<?> list1,
                                            java.util.List<?> list2)
      • assertNotSameContent

        protected void assertNotSameContent​(java.lang.String message,
                                            java.util.List<?> list1,
                                            java.util.List<?> list2)
      • assertSameContent

        protected void assertSameContent​(java.util.Map<?,​?> map1,
                                         java.util.Map<?,​?> map2)
      • assertSameContent

        protected void assertSameContent​(java.lang.String message,
                                         java.util.Map<?,​?> map1,
                                         java.util.Map<?,​?> map2)
      • assertNotSameContent

        protected void assertNotSameContent​(java.util.Map<?,​?> map1,
                                            java.util.Map<?,​?> map2)
      • assertNotSameContent

        protected void assertNotSameContent​(java.lang.String message,
                                            java.util.Map<?,​?> map1,
                                            java.util.Map<?,​?> map2)
      • assertSameContent

        protected void assertSameContent​(java.util.Date date1,
                                         java.util.Date date2)
      • assertSameContent

        protected void assertSameContent​(java.lang.String message,
                                         java.util.Date date1,
                                         java.util.Date date2)
      • assertNotSameContent

        protected void assertNotSameContent​(java.util.Date date1,
                                            java.util.Date date2)
      • assertNotSameContent

        protected void assertNotSameContent​(java.lang.String message,
                                            java.util.Date date1,
                                            java.util.Date date2)
      • assertIsEmpty

        protected void assertIsEmpty​(java.lang.Object obj)
      • assertIsEmpty

        protected void assertIsEmpty​(java.lang.String message,
                                     java.lang.Object obj)
      • assertNotEmpty

        protected void assertNotEmpty​(java.lang.Object obj)
      • assertNotEmpty

        protected void assertNotEmpty​(java.lang.String message,
                                      java.lang.Object obj)
      • assertRange

        protected void assertRange​(long value,
                                   long minValue,
                                   long maxValue,
                                   boolean strict)
        Assert the given value lesser than minValue and graeter than maxValue.
        Parameters:
        value - the value
        minValue - the minValue
        maxValue - the maxValue
        strict - true if the comparison must be strict
        Since:
        jcms-8.0.1
      • assertDateRange

        protected void assertDateRange​(java.util.Date date,
                                       java.util.Date lowerDate,
                                       java.util.Date upperDate)
        Assert the given date d1 is in range {d2, d3}
        Parameters:
        date - the date to be tested
        lowerDate - the lower date limit (may be null)
        upperDate - the upper date limit (may be null)
      • assertDateRangeStrict

        protected void assertDateRangeStrict​(java.util.Date date,
                                             java.util.Date lowerDate,
                                             java.util.Date upperDate)
        Assert the given date date is in the range {lowerDate, upperDate}
        Parameters:
        date - the date to be tested
        lowerDate - the lower date limit (may be null)
        upperDate - the upper date limit (may be null)
      • assertObjectIsGarbageCollected

        public static void assertObjectIsGarbageCollected​(java.lang.ref.WeakReference<? extends java.lang.Object> wRef,
                                                          long timeout,
                                                          boolean heapDump)
        Check that the specified Object (referenced through a WeakReference) is garbage collected in the designated time. Otherwise throw an assertion failure.

        IMPORTANT : in order for this method to work properly and success, you must get rid of all strong references of your object in the method callee. For example :

          Publication pub1 = createSmallNews(admin, defaultWorkspace);
          pub1.performDelete();
          
          // 1. Create WeakReference for the object
          WeakReference<Object> pub1WeakRef = new WeakReference<Object>(pub1); 
          // 2. Remove strong reference for the object
          pub1 = null;  
          // 3. Test object is garbage collected correctly, requesting a heap dump in case of failure
          assertObjectIsGarbageCollected(pub1WeakRef, 10*MILLIS_IN_ONE_SECOND, true);
         

        Implementation note : this method will trigger a GC through System.gc() every second until the timeout has been reached or the object is detected has garbage collected.

        Parameters:
        wRef - the object WeakReference (required to prevent strong reference of object through callstack)
        timeout - the timeout after which this method will consider (should be a multiple of 1000 ms with current implementation)
        heapDump - perform HEAP dump on failure for easier debugging
      • assertAlert

        protected void assertAlert​(Alert expectedAlert,
                                   Alert actualAlert)
      • assertTypesEnabled

        protected void assertTypesEnabled​(Workspace ws,
                                          java.lang.Class<?>... classes)
        Assert given types are enabled in the given Workspace.
        Parameters:
        ws - the workspace to test
        classes - classes to test they are enabled in ws
        Since:
        jcms-8.0.3, jcms-9.0.0
      • assertTypesDisabled

        protected void assertTypesDisabled​(Workspace ws,
                                           java.lang.Class<?>... classes)
        Assert given types are disabled in the given Workspace.
        Parameters:
        ws - the workspace to test
        classes - classes to test they are disabled in ws
        Since:
        jcms-8.0.3, jcms-9.0.0
      • assertIsSimilarXml

        protected void assertIsSimilarXml​(java.lang.String expectedXml,
                                          java.lang.String xmlString)
        Assert given xml string are similar (normalized spaces and child present by in different order)
        Parameters:
        expectedXml - the expected XML string
        xmlString - the XML string to check
      • assertIsSameXml

        protected void assertIsSameXml​(java.lang.String expectedXml,
                                       java.lang.String xmlString)
        Assert given xml string are identicial ( except normalized spaces). In this method child order is check.
        Parameters:
        expectedXml - the expected XML string
        xmlString - the XML string to check
      • getResourceFile

        protected java.io.File getResourceFile​(java.lang.String name)
        Retrieves a new File instance pointing to the specified resource name. Example :
         File testFile1 = getResourceFile("com/company/jcms/MyFeature_testFile1.txt");
         
        Current implementation is to invoke class loader of current class : return new File(getClass().getClassLoader().getResource(name).getFile());
        Parameters:
        name - the name of the resource, a '/'-separated path name that identifies the resource. e.g "com/company/jcms/MyFeature_testFile1.txt"
        Returns:
        the file
        See Also:
        JcmsTestCaseUtil.getResourceFile(Class, String)
      • serialize

        protected java.io.File serialize​(java.lang.Object obj)
                                  throws java.lang.Exception
        Serialize the given object into a temp file and return this file.
        Parameters:
        obj - the Object to be serialized
        Returns:
        the file where the object has been serialized.
        Throws:
        java.lang.Exception - if an error occurs
      • deserialize

        protected java.lang.Object deserialize​(java.io.File file)
                                        throws java.lang.Exception
        Deserialize the given file into a new object which is returned.
        Parameters:
        file - the file
        Returns:
        the object
        Throws:
        java.lang.Exception - if an error occurs
      • beginTransaction

        protected void beginTransaction()
      • commitTransaction

        protected void commitTransaction()
      • deleteData

        protected void deleteData​(Data... array)
      • deleteData

        protected void deleteData​(java.lang.String... ids)
      • prepareWorkspaceDeletion

        protected void prepareWorkspaceDeletion​(Workspace workspace)
        Remove WkRole which are referenced in other Workspaces to avoid unexpected WkRole deletion (due to Workspace.performDelete)
        Parameters:
        workspace - the Workspace to be deleted.
      • deleteOnTearDown

        protected void deleteOnTearDown​(Data data)
      • deleteOnTearDown

        protected void deleteOnTearDown​(Workspace ws,
                                        java.util.Set<Data> initialDataSet)
        Deletes on tear down the workspace, and all its Datas, but not those contained in optional initialDataSet.
        The initialDataSet should be initialized before the Workspace was created, using for example :
          Set<Data> initialDataSet = channel.getAllDataSet();
         
        Then, the workspace is created, using :
         Workspace workspace = new Workspace();
         ...
         workspace.performCreate(admin);
         
        Then you might want to delete it on tear down, using :
         deleteOnTearDown(workspace, initialDataSet);
         

        Deleted datas will be :

        • all the workspace's publications
        • the following datas that are not in initialDataSet :
          • the workspace's categories, and their CategoryRights
          • the workspace's groups

        Parameters:
        ws - the workspace to delete.
        initialDataSet - a Set of Datas not to delete, since already existing before the start of the test
        Since:
        jcms-7.1.3, jcms-8.0.0
      • sleep

        protected void sleep​(long millis)
        Parameters:
        millis - the length of time to sleep in milliseconds.
      • waitForAlarm

        protected void waitForAlarm​(long time,
                                    AlarmManager alarmMgr,
                                    boolean reallyWaitFor,
                                    java.lang.String logPrefix)
      • waitForLuceneIndexation

        protected void waitForLuceneIndexation​(Publication... pubs)
        Wait for the specified publication(s) to be indexed in all the lucene publication index in its current version as returned by Publication.getVersionString().

        For this method to work properly with DBData, it must be invoked in a different transaction than the transaction in which the create/update operation of the DBData was performed. Indeed indexing is trigger by the PublicationSearchEngineListener during the transaction commit, thus indexing will have been performed only after transaction end.

        If needed, several verification for the maximum duration specified ASYNC_TEST__MAX_WAIT_TIME_BEFORE_FAILURE.

        Parameters:
        pubs - the publications to found in index.
      • waitForLuceneIndexation

        protected void waitForLuceneIndexation​(boolean checkFileContentIndexing,
                                               Publication... pubs)
      • dataToDebugString

        protected java.lang.String dataToDebugString​(Data data)
        Produces output like:
        [(Clazz' simple name) {data.toString()} (id)]
        Parameters:
        data - the data to get the debug string.
        Returns:
        the debugging String of the data.
        Since:
        jcms-7.1.3, jcms-8.0.0
      • waitForDBTimePrecision

        protected void waitForDBTimePrecision()
        wait 1 ms if the DB support time with ms precision, otherwise 1 s
      • setProperty

        protected void setProperty​(java.lang.String name,
                                   java.lang.String value)
        Parameters:
        name - the property name to set
        value - the property value to set
        Since:
        jcms-8.0.3, jcms-9.0.0
        See Also:
        setProperties(JProperties)
      • setProperties

        protected void setProperties​(java.util.Map<java.lang.String,​java.lang.String> map)
        Parameters:
        map - the map of properties to set
        Since:
        jcms-8.0.3, jcms-9.0.0
        See Also:
        setProperties(JProperties)
      • setProperties

        protected void setProperties​(JProperties properties)
        Sets given JProperties.

        First call of this method will backup property's current value, for automatic restore in tearDown().

        Example:

         // How to disabled channel mails
         setProperty("mail.enabled", "false");
         
         // How to update several properties
         JProperties props = new JProperties();
         props.put("my-first-property", "true");
         props.put("my-second-property", "foo");
         setProperties(props);
         
         // How to restore properties (If not done, it will be restored automatically during tearDown())
         // Using a single String
         restoreProperty("mail.enabled"); // Restore one property
         
         // Using a Collection&lt;String> 
         restoreProperties(Util.getArrayList("my-first-property", "my-second-property"); // Restore several properties
         
         // Using a JProperties
         restoreProperties((JProperties) props); // Restore several properties
         

        Complete Test Case:
        If you had to write a unit test which is only relevant when site authentication is required.
        Preparing and restoring the environnement at start and end of each test can be painful.
        To make this initialization easier, you can do:

         PrivateSiteTest extends JcmsTestCase {
           @Override
           protected void setUp() throws Exception {
             super.setUp();
             logger.info("Channel authentication required: " + channel.isAuthenticationRequired()); // Prints "false" by default
             setAuthenticationRequired(true);
           }
           
           public void testPrivateSite() {
             assertTrue("The site must be private to run this test...", channel.isAuthenticationRequired());
             ...
           }
           
           private void setAuthenticationRequired(boolean isPrivateSite) {
             setProperty("channel.is-authentication-required", String.valuedOf(isPrivateSite));
           }
         }
         
        You may also want to restore initial value during the test:
         PrivateSiteTest extends JcmsTestCase {
           ...
           
           public void testPrivateSite() {
             assertTrue("The site must be private to run this test...", channel.isAuthenticationRequired());
             // ... first test with authentication required
             
             restoreAuthenticationRequired();
             assertFalse("The site must be public to run this test...", channel.isAuthenticationRequired());
             // ... second test with initial authentication required
           }
             
           private void restoreAuthenticationRequired() {
             restoreProperty("channel.is-authentication-required");
           }
         }
         
        Implementation details:
        • channel.setProperty is called for each property to set
        • then, properties.firePropertiesChange() is called one time
        • thus, JPropertiesListener will be called.
        Parameters:
        properties - the JProperties to set
        Since:
        jcms-8.0.3, jcms-9.0.0
      • restoreProperty

        protected void restoreProperty​(java.lang.String name)
        Restores given property.
        Parameters:
        name - the name of property to restore
        Since:
        jcms-8.0.3, jcms-9.0.0
        See Also:
        restoreProperties(JProperties)
      • restoreProperties

        protected void restoreProperties​(java.util.Collection<java.lang.String> names)
        Restores given properties represented by their names.
        Parameters:
        names - the names of properties to restore
        Since:
        jcms-8.0.3, jcms-9.0.0
        See Also:
        restoreProperties(JProperties)
      • restoreProperties

        protected void restoreProperties​(JProperties properties)
        Restores given JProperties.
        Parameters:
        properties - the JProperties to restore.
        Since:
        jcms-8.0.3, jcms-9.0.0
      • setIncomingMail

        protected void setIncomingMail​(boolean enabled)
        Sets property "mail.incoming.enabled" to enabled.
        Parameters:
        enabled - the value to set.
        Since:
        jcms-8.0.3, jcms-9.0.0
      • restoreIncomingMail

        protected void restoreIncomingMail()
        Restores property "mail.incoming.enabled".
        Since:
        jcms-8.0.3, jcms-9.0.0
      • setAuthenticationRequired

        protected void setAuthenticationRequired​(boolean isAuthRequired)
        Sets property "channel.is-authentication-required" to isAuthRequired.
        Parameters:
        isAuthRequired - the value to set.
        Since:
        jcms-8.0.3, jcms-9.0.0
      • restoreAuthenticationRequired

        protected void restoreAuthenticationRequired()
        Restores property "channel.is-authentication-required".
        Since:
        jcms-8.0.3, jcms-9.0.0
      • enableJSync

        protected void enableJSync()
        Enable JSync in Junit prop
      • disableJSync

        protected void disableJSync()
        Disable JSync in Junit prop
      • enableLdap

        protected void enableLdap()
        Enable Ldap in Junit prop
      • disableLdap

        protected void disableLdap()
        Disable Ldap in Junit prop
      • createWorkspace

        protected void createWorkspace​(Workspace workspace)
        Utility method to create the given Workspace by admin Member.

        Manages deleteOnTearDown, and clears the workspace's id if already set.

        Use as follow:

         Workspace ws = new Workspace(otherWs);   // Bootstraps a Workspace based on another WS
         ws.setTitle("my test workspace");        // ws customization
         createWorkspace(ws);                     // handles deleteOnTearDown
         
        Parameters:
        workspace - the workspace to create
        Since:
        jcms-8.0.3, jcms-9.0.0
      • createWorkspace

        protected void createWorkspace​(Workspace workspace,
                                       Member author)
        Utility method to create the given Workspace by admin Member.

        Manages deleteOnTearDown, and clears the workspace's id if already set.

        Use as follow:

         Workspace ws = new Workspace(otherWs);   // Bootstraps a Workspace based on another WS
         ws.setTitle("my test workspace");        // ws customization
         createWorkspace(ws, author);             // handles deleteOnTearDown
         
        Utility method to create the given Workspace.

        Manages deleteOnTearDown.

        Parameters:
        workspace - the workspace to create
        author - the create operation author
        Since:
        jcms-8.0.3, jcms-9.0.0
      • ignoreUnstableTest

        protected boolean ignoreUnstableTest()