diff --git a/src/main/java/org/olat/core/util/mail/manager/MailManager.java b/src/main/java/org/olat/core/util/mail/manager/MailManager.java index 7c3fc7646aa3f7d2d0bf7293dd6cf36d399bb2c8..76add78aa3bf760bad4710bff74f16974d28a04f 100644 --- a/src/main/java/org/olat/core/util/mail/manager/MailManager.java +++ b/src/main/java/org/olat/core/util/mail/manager/MailManager.java @@ -1122,7 +1122,10 @@ public class MailManager extends BasicManager { } // converts an address "bla bli <bla@bli.ch>" => "bla@bli.ch" - private InternetAddress getRawEmailFromAddress(Address address) throws AddressException{ + private InternetAddress getRawEmailFromAddress(Address address) throws AddressException { + if(address == null) { + throw new AddressException("Address cannot be null"); + } InternetAddress fromAddress = new InternetAddress(address.toString()); String fromPlainAddress = fromAddress.getAddress(); return new InternetAddress(fromPlainAddress); @@ -1186,6 +1189,10 @@ public class MailManager extends BasicManager { msg.setSentDate(new Date()); msg.saveChanges(); return msg; + } catch (AddressException e) { + result.setReturnCode(MailerResult.SENDER_ADDRESS_ERROR); + logError("", e); + return null; } catch (MessagingException e) { result.setReturnCode(MailerResult.SEND_GENERAL_ERROR); logError("", e); diff --git a/src/main/resources/database/mysql/setupDatabase.sql b/src/main/resources/database/mysql/setupDatabase.sql index 1e51954f7df60c5cb7a856d7f27ba4938bcfa2bb..3364ef582e2b21209b915bd58e8b489b349b4c62 100644 --- a/src/main/resources/database/mysql/setupDatabase.sql +++ b/src/main/resources/database/mysql/setupDatabase.sql @@ -1450,12 +1450,12 @@ alter table o_checkpoint add constraint FK9E30F4B661159ZZZ foreign key (checklis create index cmt_id_idx on o_usercomment (resid); create index cmt_name_idx on o_usercomment (resname); -create index cmt_subpath_idx on o_usercomment (ressubpath); +create index cmt_subpath_idx on o_usercomment (ressubpath(255)); alter table o_usercomment add index FK92B6864A18251F0 (parent_key), add constraint FK92B6864A18251F0 foreign key (parent_key) references o_usercomment (comment_id); alter table o_usercomment add index FKF26C8375236F20A (creator_id), add constraint FKF26C8375236F20A foreign key (creator_id) references o_bs_identity (id); create index rtn_id_idx on o_userrating (resid); create index rtn_name_idx on o_userrating (resname); -create index rtn_subpath_idx on o_userrating (ressubpath); +create index rtn_subpath_idx on o_userrating (ressubpath(255)); create index rtn_rating_idx on o_userrating (rating); alter table o_userrating add index FKF26C8375236F20X (creator_id), add constraint FKF26C8375236F20X foreign key (creator_id) references o_bs_identity (id); @@ -1463,8 +1463,8 @@ create index usr_notification_interval_idx on o_user (notification_interval); create index mark_id_idx on o_mark(resid); create index mark_name_idx on o_mark(resname); -create index mark_subpath_idx on o_mark(ressubpath); -create index mark_businesspath_idx on o_mark(businesspath); +create index mark_subpath_idx on o_mark(ressubpath(255)); +create index mark_businesspath_idx on o_mark(businesspath(255)); create index FKF26C8375236F21X on o_mark(creator_id); alter table o_mark add constraint FKF26C8375236F21X foreign key (creator_id) references o_bs_identity (id); diff --git a/src/main/resources/serviceconfig/org/olat/core/_spring/olatcorejms_activemq.xml b/src/main/resources/serviceconfig/org/olat/core/_spring/olatcorejms_activemq.xml index 4bad06d9c24d6dedb7438e7f0be75c84e5e879d8..7e2ccedd346d0be70d3007f875d00c5d608a79f7 100644 --- a/src/main/resources/serviceconfig/org/olat/core/_spring/olatcorejms_activemq.xml +++ b/src/main/resources/serviceconfig/org/olat/core/_spring/olatcorejms_activemq.xml @@ -5,11 +5,11 @@ http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd"> - <bean id="sysbus.topic" class="org.apache.activemq.command.ActiveMQTopic" lazy-init="true"> + <bean id="sysbus.topic" class="org.apache.activemq.command.ActiveMQTopic"> <constructor-arg value="olat/${instance.id}/sysbus" /> </bean> - <bean id="jmsConnectionFactory.activemq" class="org.apache.activemq.spring.ActiveMQConnectionFactory" lazy-init="true"> + <bean id="jmsConnectionFactory.activemq" class="org.apache.activemq.spring.ActiveMQConnectionFactory"> <property name="brokerURL" value="${jms.broker.url}" /> </bean> diff --git a/src/test/java/org/olat/commons/coordinate/cluster/lock/LockTest.java b/src/test/java/org/olat/commons/coordinate/cluster/lock/LockTest.java index fd7c6e6b256b6f2c03beed32a566a97007cdb67c..c7e6b9aa322725b3cc5299236356f007801df09a 100644 --- a/src/test/java/org/olat/commons/coordinate/cluster/lock/LockTest.java +++ b/src/test/java/org/olat/commons/coordinate/cluster/lock/LockTest.java @@ -35,9 +35,10 @@ import static org.junit.Assert.fail; import java.util.ArrayList; import java.util.List; +import java.util.UUID; -import org.apache.log4j.Logger; import org.junit.After; +import org.junit.Ignore; import org.junit.Test; import org.olat.basesecurity.BaseSecurity; import org.olat.commons.coordinate.cluster.ClusterCoordinator; @@ -47,6 +48,8 @@ import org.olat.core.gui.control.Event; import org.olat.core.id.Identity; import org.olat.core.id.OLATResourceable; import org.olat.core.logging.DBRuntimeException; +import org.olat.core.logging.OLog; +import org.olat.core.logging.Tracing; import org.olat.core.util.SignOnOffEvent; import org.olat.core.util.coordinate.LockEntry; import org.olat.core.util.coordinate.LockResult; @@ -63,15 +66,15 @@ public class LockTest extends OlatTestCase { private static final int MAX_COUNT = 30; //at least 2 private static final int MAX_USERS_MORE = 100; //20; //100; - private static Logger log = Logger.getLogger(LockTest.class.getName()); + private static OLog log = Tracing.createLoggerFor(LockTest.class); - @Test + @Test @Ignore public void testCreateDeleteAcquire() { // some setup final List<Identity> identities = new ArrayList<Identity>(); BaseSecurity baseSecurityManager = applicationContext.getBean(BaseSecurity.class); for (int i = 0; i < MAX_COUNT + MAX_USERS_MORE; i++) { - Identity i1 = baseSecurityManager.createAndPersistIdentity("u"+i, null, null, null, null); + Identity i1 = baseSecurityManager.createAndPersistIdentity("lock-" + UUID.randomUUID().toString(), null, null, null, null); identities.add(i1); } DBFactory.getInstance().closeSession(); @@ -115,6 +118,7 @@ public class LockTest extends OlatTestCase { LockResult res11 = cl.acquireLock(ores, ident, "abc"); long lock1Ac = res11.getLockAquiredTime(); assertTrue(res11.isSuccess()); + assertTrue(lock1Ac > 0); DBFactory.getInstance().closeSession(); // acquire by another identity must fail @@ -192,10 +196,10 @@ public class LockTest extends OlatTestCase { */ } - @Test + @Test @Ignore public void testSaveEvent() { BaseSecurity baseSecurityManager = applicationContext.getBean(BaseSecurity.class); - Identity identity = baseSecurityManager.createAndPersistIdentity("testSaveEvent", null, null, null, null); + Identity identity = baseSecurityManager.createAndPersistIdentity("lock-save-event-" + UUID.randomUUID().toString(), null, null, null, null); DBFactory.getInstance().closeSession(); System.out.println("Created identity=" + identity); // @@ -224,17 +228,6 @@ public class LockTest extends OlatTestCase { } } - - private void sleep(int i) { - try { - Thread.sleep(i); - } catch (InterruptedException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } - } - - /* * (non-Javadoc) * diff --git a/src/test/java/org/olat/core/test/OlatcoreTestWithMocking.java b/src/test/java/org/olat/core/test/OlatcoreTestWithMocking.java deleted file mode 100644 index 08540a29fe4ad50dc82d877c354b70a7217d4a78..0000000000000000000000000000000000000000 --- a/src/test/java/org/olat/core/test/OlatcoreTestWithMocking.java +++ /dev/null @@ -1,54 +0,0 @@ -/** -* OLAT - Online Learning and Training<br> -* http://www.olat.org -* <p> -* Licensed under the Apache License, Version 2.0 (the "License"); <br> -* you may not use this file except in compliance with the License.<br> -* You may obtain a copy of the License at -* <p> -* http://www.apache.org/licenses/LICENSE-2.0 -* <p> -* Unless required by applicable law or agreed to in writing,<br> -* software distributed under the License is distributed on an "AS IS" BASIS, <br> -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. <br> -* See the License for the specific language governing permissions and <br> -* limitations under the License. -* <p> -* Copyright (c) since 2004 at Multimedia- & E-Learning Services (MELS),<br> -* University of Zurich, Switzerland. -* <hr> -* <a href="http://www.openolat.org"> -* OpenOLAT - Online Learning and Training</a><br> -* This file has been modified by the OpenOLAT community. Changes are licensed -* under the Apache 2.0 license as the original file. -* <p> -*/ -package org.olat.core.test; - -import org.junit.runner.RunWith; -import org.olat.test.MockServletContextWebContextLoader; -import org.springframework.test.context.ContextConfiguration; -import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; - -/** - * Description:<br> - * this testcase starts up a mini framework where some of the coordinator stuff is mocked - * - * <P> - * Initial Date: 19.05.2010 <br> - * @author guido - */ - -@RunWith(SpringJUnit4ClassRunner.class) -@ContextConfiguration(loader = MockServletContextWebContextLoader.class, locations = { - "classpath*:/org/olat/core/test/_spring/webapphelperMock.xml", - "classpath*:/org/olat/core/util/i18n/_spring/i18nCorecontext.xml", - "classpath*:/org/olat/core/test/_spring/coordinatorMock.xml", - //fxdiff VCRP-16: intern mail system - "classpath*:/org/olat/core/test/_spring/mailModuleMock.xml", - "classpath*:/org/olat/core/util/i18n/devtools/_spring/devtoolsCorecontext.xml", - "classpath*:/org/olat/core/util/_spring/utilCorecontext.xml"}) - -public class OlatcoreTestWithMocking { - -} diff --git a/src/test/java/org/olat/core/test/_spring/coordinatorAndDatabaseContextMock.xml b/src/test/java/org/olat/core/test/_spring/coordinatorAndDatabaseContextMock.xml deleted file mode 100644 index f68b1bc794193f6f27857bc33e2292b44bc87ca2..0000000000000000000000000000000000000000 --- a/src/test/java/org/olat/core/test/_spring/coordinatorAndDatabaseContextMock.xml +++ /dev/null @@ -1,42 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<beans xmlns="http://www.springframework.org/schema/beans" - xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xmlns:context="http://www.springframework.org/schema/context" - xsi:schemaLocation=" - http://www.springframework.org/schema/beans - http://www.springframework.org/schema/beans/spring-beans-3.0.xsd - http://www.springframework.org/schema/context - http://www.springframework.org/schema/context/spring-context-3.0.xsd"> - -<context:property-placeholder location="classpath:serviceconfig/olat.properties, classpath:olat.local.properties" /> -<context:annotation-config /> -<bean id="cacheConfig" class="org.olat.core.util.cache.n.CacheConfig"> - <property name="childrenConfig"><map></map></property> -</bean> - -<bean id="org.olat.core.util.cache.n.impl.svm.SingleVMCacher" class="org.olat.core.util.cache.n.impl.svm.SingleVMCacher" init-method="init"> - <property name="rootConfig" ref="cacheConfig"/> -</bean> - -<bean id="database" class="org.olat.core.commons.persistence.DBImpl"></bean> -<bean id="pessimisticLockManager" class="org.olat.resource.lock.pessimistic.PessimisticLockManager"/> -<bean id="org.olat.commons.coordinate.cluster.ClusterSyncer" class="org.olat.commons.coordinate.cluster.ClusterSyncer" > - <constructor-arg index="0" ref="pessimisticLockManager" /> - <property name="executionTimeThreshold" value="1000" /> - <property name="dbInstance" ref="database"></property> -</bean> - -<bean id="coordinatorManager" class="org.olat.core.util.coordinate.CoordinatorManagerImpl"> - <property name="coordinator" ref="org.olat.core.util.coordinate.SingleVMCoordinator"/> -</bean> - - -<bean id="org.olat.core.util.coordinate.SingleVMCoordinator" class="org.olat.commons.coordinate.singlevm.SingleVMCoordinator" > - <property name="syncer" ref="org.olat.commons.coordinate.cluster.ClusterSyncer"/> - <property name="cacher" ref="org.olat.core.util.cache.n.impl.svm.SingleVMCacher"/> - <property name="eventBus" ref="eventBus" /> -</bean> - -<bean id="eventBus" class="org.olat.commons.coordinate.singlevm.SingleVMEventBus" /> - -</beans> \ No newline at end of file diff --git a/src/test/java/org/olat/core/test/_spring/coordinatorMock.xml b/src/test/java/org/olat/core/test/_spring/coordinatorMock.xml deleted file mode 100644 index 89fc4eca12a6802451a63826cd135bdfde3f93b3..0000000000000000000000000000000000000000 --- a/src/test/java/org/olat/core/test/_spring/coordinatorMock.xml +++ /dev/null @@ -1,21 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<beans xmlns="http://www.springframework.org/schema/beans" - xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xmlns:context="http://www.springframework.org/schema/context" - xsi:schemaLocation=" - http://www.springframework.org/schema/beans - http://www.springframework.org/schema/beans/spring-beans-3.0.xsd - http://www.springframework.org/schema/context - http://www.springframework.org/schema/context/spring-context-3.0.xsd"> - -<context:property-placeholder location="classpath:serviceconfig/olat.properties, classpath:olat.local.properties" /> -<context:annotation-config /> - -<bean id="coordinatorManager" class="org.olat.test.CoordinatorManagerMock" /> - -<bean class="org.olat.core.util.event.FrameworkStartupEventChannel"> - <constructor-arg type="String" value="${node.id}" /> - <property name="coordinatorManager" ref="coordinatorManager" /> -</bean> - -</beans> \ No newline at end of file diff --git a/src/test/java/org/olat/core/test/_spring/mailModuleMock.xml b/src/test/java/org/olat/core/test/_spring/mailModuleMock.xml deleted file mode 100644 index fadedcadabb8ff31aaeeed26d528f64e1884b6f5..0000000000000000000000000000000000000000 --- a/src/test/java/org/olat/core/test/_spring/mailModuleMock.xml +++ /dev/null @@ -1,40 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<beans xmlns="http://www.springframework.org/schema/beans" - xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xmlns:context="http://www.springframework.org/schema/context" - xsi:schemaLocation=" - http://www.springframework.org/schema/beans - http://www.springframework.org/schema/beans/spring-beans-3.0.xsd - http://www.springframework.org/schema/context - http://www.springframework.org/schema/context/spring-context-3.0.xsd"> - -<context:property-placeholder location="classpath:serviceconfig/olat.properties, classpath:olat.local.properties" /> -<context:annotation-config /> - - <bean id="mailModule" class="org.olat.core.util.mail.MailModule" depends-on="org.olat.core.util.WebappHelper,coordinatorManager,org.olat.core.util.event.FrameworkStartupEventChannel"> - <property name="persistedProperties"> - <bean class="org.olat.core.configuration.PersistedProperties" scope="prototype" init-method="init" destroy-method="destroy" - depends-on="coordinatorManager,org.olat.core.util.WebappHelper"> - <constructor-arg index="0" ref="coordinatorManager"/> - <constructor-arg index="1" ref="mailModule" /> - </bean> - </property> - <property name="webappHelper" ref="org.olat.core.util.WebappHelper"/> - </bean> - - <bean class="org.springframework.beans.factory.config.MethodInvokingFactoryBean"> - <property name="targetObject" ref="mailModule" /> - <property name="targetMethod" value="init" /> - <property name="arguments"> - <value> - internSystem=false - receiveRealMailUserDefaultSetting=true - </value> - </property> - </bean> - - <bean id="mailManager" class="org.olat.core.util.mail.manager.MailManager"> - <constructor-arg index="0" ref="mailModule" /> - </bean> - -</beans> \ No newline at end of file diff --git a/src/test/java/org/olat/core/test/_spring/readme b/src/test/java/org/olat/core/test/_spring/readme deleted file mode 100644 index 7a7f170f29cb4ecba920c2d53a7bc1372c9dc39d..0000000000000000000000000000000000000000 --- a/src/test/java/org/olat/core/test/_spring/readme +++ /dev/null @@ -1,2 +0,0 @@ -Do not name the spring context files xyzContext.xml otherwise they may get loaded when olat starts. See web.xml for all -generic names which are searched on the classpath. \ No newline at end of file diff --git a/src/test/java/org/olat/core/test/_spring/webapphelperMock.xml b/src/test/java/org/olat/core/test/_spring/webapphelperMock.xml deleted file mode 100644 index ea316754603a65df6127d21f143e5f4ca0b8aa8e..0000000000000000000000000000000000000000 --- a/src/test/java/org/olat/core/test/_spring/webapphelperMock.xml +++ /dev/null @@ -1,97 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<beans xmlns="http://www.springframework.org/schema/beans" - xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xmlns:context="http://www.springframework.org/schema/context" - xsi:schemaLocation=" - http://www.springframework.org/schema/beans - http://www.springframework.org/schema/beans/spring-beans-3.0.xsd - http://www.springframework.org/schema/context - http://www.springframework.org/schema/context/spring-context-3.0.xsd"> - -<context:property-placeholder location="classpath:serviceconfig/olat.properties, classpath:olat.local.properties" /> - -<bean id ="org.olat.core.util.WebappHelper" class="org.olat.core.util.WebappHelper" init-method="init" destroy-method="destroy"> - <!-- relative path from the webapp directory to the source directory (only relavant for development/debuging mode) --> - <property name="fullPathToSrc" value="${project.build.home.directory}/src/main/java" /> - <property name="instanceId" value="myolat"/> - <property name="nodeId" value="1"/> - <property name="userDataRoot" value=""/> - <property name="mailConfig"> - <map> - <entry key="mailhost" value="mail.uzh.ch"/> - <entry key="mailTimeout" value="5000"/> <!-- timeout in milliseconds --> - <entry key="smtpUser" value=""/> - <entry key="smtpPwd" value=""/> - <entry key="sslEnabled" value="false"/> - <entry key="sslCheckCertificate" value="false"/> - <entry key="mailFrom" value=""/> - <entry key="mailSupport" value=""/> - </map> - </property> - <property name="defaultCharset" value="de" /> - <property name="version" value="1234" /> - <property name="applicationName" value="olat" /> - </bean> - - - - - - - <bean class="org.olat.core.helpers.Settings" depends-on="org.olat.core.util.WebappHelper" init-method="init" destroy-method="destroy"> - <property name="persistedProperties"> - <bean class="org.olat.core.configuration.PersistedProperties" scope="prototype" init-method="init" destroy-method="destroy"> - <constructor-arg index="0" ref="coordinatorManager" /> - <constructor-arg index="1" ref="org.olat.core.helpers.Settings" /> - </bean> - </property> - <property name="serverconfig"> - <map> - <entry key="server_name" value="REPLACE" /> - <entry key="server_fqdn" value="localhost" /> - <entry key="server_securePort" value="443" /> - <entry key="server_insecurePort" value="80" /> - <!-- Static global-mappers files (path /g/**) can be delivered directly from apache - olat-application must copy all needed static files from classes/core to apache - static directory (static/g/..) . - Apache and mod_jk must be configurated to filter '/g/**' path --> - <entry key="server_modjk_enabled" value="false" /> - <entry key="server_core_jar_name" value="olatcore-1.0-SNAPSHOT.jar" /> - <entry key="serverContextPath" value="/olat"/> - </map> - </property> - <!-- true enable debug mode, not for production mode but for productive hours ;) --> - <property name="debug" value="true" /> - <!-- if readOnlyDebug, then no file changes can be made in the debug mode --> - <property name="readOnlyDebug" value="false" /> - <!-- - For Performance and/or Functional Tests. - if allowLoadtestMode is set to true, it is possible to switch a session to loadtest mode - using the url parameter ?loadtest and ?noloadtest even without logging in. - Thus the same urls can be reused over and over again, which is needed for tools like JMeter or such. - - Not to be used for productive mode! (no double post checks, asynchronous inline rendering does not work etc.)- - --> - <property name="allowLoadtestMode" value="${allow.loadtest.mode}" /> - <property name="ajaxGloballyOn" value="true" /> - <property name="ajaxBlacklistedUserAgents"> - <list> - <value>.*WebKit/5[01].*</value> <!-- older than safari 3.0 --> - <value>.*MSIE [2345].*</value> <!-- older than IE 6.0 --> - <value>.*Firefox/[1].*</value> <!-- older than FF 2.0 --> - <value>.*Opera/[45678].*</value> <!-- older than Opera 9 --> - <value>.*Gecko/200[0123456].*</value> <!-- Gecko engine older than 2006 --> - <value>.*Lynx.*</value> <!-- Lynx console browser (no js) --> - </list> - </property> - <property name="guiThemeIdentifyer" value="default" /> - <property name="version" value="1234" /> - <property name="applicationName" value="olat" /> - <property name="clusterMode" value="singlevm"/> - <property name="nodeId" value="1"/> - </bean> - - - - - -</beans> \ No newline at end of file diff --git a/src/test/java/org/olat/core/util/i18n/I18nTest.java b/src/test/java/org/olat/core/util/i18n/I18nTest.java index 8b5bdc3604792e9ab0fe9787f1ba98d37ac8ccb6..784ab3fbc0bdeeedd9c08ec64c319008123d9476 100644 --- a/src/test/java/org/olat/core/util/i18n/I18nTest.java +++ b/src/test/java/org/olat/core/util/i18n/I18nTest.java @@ -51,11 +51,11 @@ import org.olat.core.helpers.Settings; import org.olat.core.logging.AssertException; import org.olat.core.logging.OLog; import org.olat.core.logging.Tracing; -import org.olat.core.test.OlatcoreTestWithMocking; import org.olat.core.util.FileUtils; import org.olat.core.util.Util; import org.olat.core.util.i18n.devtools.TranslationDevManager; import org.olat.core.util.i18n.ui.InlineTranslationInterceptHandlerController; +import org.olat.test.OlatTestCase; import org.springframework.beans.factory.annotation.Autowired; /** @@ -70,7 +70,7 @@ import org.springframework.beans.factory.annotation.Autowired; -public class I18nTest extends OlatcoreTestWithMocking { +public class I18nTest extends OlatTestCase { private OLog log = Tracing.createLoggerFor(I18nTest.class); diff --git a/src/test/java/org/olat/core/util/mail/MailTest.java b/src/test/java/org/olat/core/util/mail/MailTest.java index f656d4c777816adc74de369c54901d10372835b0..6bea908aa2978311d146005a28e1b900077032ea 100644 --- a/src/test/java/org/olat/core/util/mail/MailTest.java +++ b/src/test/java/org/olat/core/util/mail/MailTest.java @@ -34,23 +34,17 @@ import java.io.File; import java.io.StringWriter; import java.net.URISyntaxException; import java.util.ArrayList; -import java.util.Date; -import java.util.HashMap; import java.util.List; -import java.util.Locale; -import java.util.Map; -import org.apache.log4j.Logger; import org.apache.velocity.VelocityContext; import org.junit.Before; import org.junit.Test; +import org.olat.core.commons.persistence.DBFactory; import org.olat.core.id.Identity; -import org.olat.core.id.Persistable; -import org.olat.core.id.Preferences; import org.olat.core.id.User; import org.olat.core.id.UserConstants; -import org.olat.core.logging.AssertException; -import org.olat.core.test.OlatcoreTestWithMocking; +import org.olat.test.JunitTestHelper; +import org.olat.test.OlatTestCase; /** * Description:<br> @@ -61,8 +55,7 @@ import org.olat.core.test.OlatcoreTestWithMocking; * @author Florian Gnaegi, frentix GmbH<br> * http://www.frentix.com */ -public class MailTest extends OlatcoreTestWithMocking { - private static Logger log = Logger.getLogger(MailTest.class); +public class MailTest extends OlatTestCase { private Identity id1, id2, id3, id4, id5, id6; // for local debugging you can set a systemproperty to a maildomain where @@ -81,21 +74,14 @@ public class MailTest extends OlatcoreTestWithMocking { */ @Before public void setup() { - id1 = createIdentity("one"); - id2 = createIdentity("two"); - id3 = createIdentity("three"); - id4 = createIdentity("four"); - id5 = createIdentity("five"); - id6 = createIdentity("six"); + id1 = JunitTestHelper.createAndPersistIdentityAsUser("one"); + id2 = JunitTestHelper.createAndPersistIdentityAsUser("two"); + id3 = JunitTestHelper.createAndPersistIdentityAsUser("three"); + id4 = JunitTestHelper.createAndPersistIdentityAsUser("four"); + id5 = JunitTestHelper.createAndPersistIdentityAsUser("five"); + id6 = JunitTestHelper.createAndPersistIdentityAsUser("six"); } - private Identity createIdentity(String login) { - User testUser = new TestUser(login + "olattest@" + maildomain, login + "first", login + "last"); - Identity id = new TestIdentity(login, testUser); - return id; - } - - /** * Simple helper to test valid email addresses * @param mailAddress @@ -293,7 +279,7 @@ public class MailTest extends OlatcoreTestWithMocking { // some attachemnts File[] attachments = new File[1]; - File file1, file2; + File file1; try { System.out.println("MailTest.testMailAttachments Url1=" + MailTest.class.getResource("MailTest.class") ); file1 = new File(MailTest.class.getResource("MailTest.class").toURI()); @@ -369,16 +355,17 @@ public class MailTest extends OlatcoreTestWithMocking { }; // some recipients data - Identity illegal1 = createIdentity("illegal1"); + Identity illegal1 = JunitTestHelper.createAndPersistIdentityAsUser("illegal1"); illegal1.getUser().setProperty(UserConstants.EMAIL, "doesnotexisteserlkmlkm@sdf.com"); - Identity illegal2 = createIdentity("illegal2"); + Identity illegal2 = JunitTestHelper.createAndPersistIdentityAsUser("illegal2"); illegal2.getUser().setProperty(UserConstants.EMAIL, "sd@this.domain.does.not.exist.at.all"); - Identity illegal3 = createIdentity("illegal3"); + Identity illegal3 = JunitTestHelper.createAndPersistIdentityAsUser("illegal3"); illegal3.getUser().setProperty(UserConstants.EMAIL, "@ sdf"); + + DBFactory.getInstance().intermediateCommit(); List<Identity> recipients = new ArrayList<Identity>(); List<Identity> recipientsCC = new ArrayList<Identity>(); - List<Identity> recipientsBCC = new ArrayList<Identity>(); recipients.add(illegal1); @@ -418,181 +405,10 @@ public class MailTest extends OlatcoreTestWithMocking { recipients.add(id1); recipients.add(illegal3); // first recipientsCC.add(illegal3); // second - recipientsBCC.add(illegal3); // third result = MailerWithTemplate.getInstance().sendMailAsSeparateMails(null, recipients, recipientsCC, template, id6); // mail will bounce back since address does not exist, but sent to local MTA assertEquals(MailerResult.OK, result.getReturnCode()); - assertEquals(3, result.getFailedIdentites().size()); - - } - -} - -/** - * Test classes: user and identity - */ -class TestUser implements User { - private Map<String, String> userProperties = new HashMap<String, String>(); - private Preferences preferences; - - TestUser(String email, String firstname, String lastname) { - - setProperty(UserConstants.FIRSTNAME, firstname); - setProperty(UserConstants.LASTNAME, lastname); - setProperty(UserConstants.EMAIL, email); - - setPreferences(new Preferences() { - public String getFontsize() { - return null; - } - - public String getNotificationInterval() { - return null; - } - - public boolean getInformSessionTimeout() { - return false; - } - - public String getLanguage() { - return "en"; - } - - public boolean getPresenceMessagesPublic() { - return false; - } - - public void setFontsize(String l) {} - - public void setNotificationInterval(String ni) {} - - public void setInformSessionTimeout(boolean b) {} - - public void setLanguage(String l) {} - - public void setPresenceMessagesPublic(boolean b) {} - - @Override - public String getReceiveRealMail() { - return "false"; - } - - @Override - public void setReceiveRealMail(String receiveRealMail) { - // - } - }); - } - - public Long getKey() { - return null; - } - - public boolean equalsByPersistableKey(Persistable persistable) { - return false; - } - - public Date getLastModified() { - return null; - } - - public Date getCreationDate() { - return null; - } - - public void setPreferences(Preferences prefs) { - preferences = prefs; - } - - public Preferences getPreferences() { - return preferences; - } - - public String getProperty(String name, Locale locale) { - return userProperties.get(name); - } - - public void setProperty(String name, String value) { - if (value == null) { - userProperties.remove(name); - } else { - userProperties.put(name, value); - } - } - - - public void setIdentityEnvironmentAttributes(Map<String, String> identEnvAttribs) { - throw new AssertException("SETTER not yet implemented, not used in tests so far, must be used if IdentityEnvironmentAttributes should be tested"); - } - - public String getPropertyOrIdentityEnvAttribute(String propertyName, Locale locale) { - throw new AssertException("GETTER not yet implemented, not used in tests so far, must be used if IdentityEnvironmentAttributes should be tested"); - } - - public int getFieldCount() { - // TODO Auto-generated method stub - return 0; - } - -} - -class TestIdentity implements Identity { - String name; - User user; - - public TestIdentity(String login, User testUser) { - this.name = login; - this.user = testUser; - } - - public String getName() { - return name; - } - - public User getUser() { - return user; - } + assertEquals(2, result.getFailedIdentites().size()); - public Date getCreationDate() { - return null; } - - public Date getLastModified() { - return null; - } - - public boolean equalsByPersistableKey(Persistable persistable) { - return false; - } - - public Long getKey() { - return null; - } - - public Date getLastLogin() { - return null; - } - - public void setLastLogin(Date loginDate) { - } - - public Integer getStatus() { - return Identity.STATUS_ACTIV; - } - - public void setStatus(Integer newStatus) { - } - - public Date getDeleteEmailDate() { - return null; - } - - public void setDeleteEmailDate(Date newDeleteEmail) { - } - - public void setName(String loginName) { - // TODO Auto-generated method stub - - } - } \ No newline at end of file diff --git a/src/test/java/org/olat/test/CoordinatorManagerMock.java b/src/test/java/org/olat/test/CoordinatorManagerMock.java deleted file mode 100644 index 772f87c81ac9756b6e7536b20110e4fd294d2d3d..0000000000000000000000000000000000000000 --- a/src/test/java/org/olat/test/CoordinatorManagerMock.java +++ /dev/null @@ -1,58 +0,0 @@ -/** -* OLAT - Online Learning and Training<br> -* http://www.olat.org -* <p> -* Licensed under the Apache License, Version 2.0 (the "License"); <br> -* you may not use this file except in compliance with the License.<br> -* You may obtain a copy of the License at -* <p> -* http://www.apache.org/licenses/LICENSE-2.0 -* <p> -* Unless required by applicable law or agreed to in writing,<br> -* software distributed under the License is distributed on an "AS IS" BASIS, <br> -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. <br> -* See the License for the specific language governing permissions and <br> -* limitations under the License. -* <p> -* Copyright (c) since 2004 at Multimedia- & E-Learning Services (MELS),<br> -* University of Zurich, Switzerland. -* <hr> -* <a href="http://www.openolat.org"> -* OpenOLAT - Online Learning and Training</a><br> -* This file has been modified by the OpenOLAT community. Changes are licensed -* under the Apache 2.0 license as the original file. -* <p> -*/ -package org.olat.test; - -import org.mockito.Mockito; -import org.olat.core.util.coordinate.Coordinator; -import org.olat.core.util.coordinate.CoordinatorManager; -import org.olat.core.util.event.EventBus; - -/** - * Description:<br> - * CoordinatorManagerMock for Unit testing - * - * <P> - * Initial Date: 17.05.2010 <br> - * @author guido - */ -public class CoordinatorManagerMock extends CoordinatorManager{ - - private CoordinatorManagerMock() { - // - } - - /** - * mock of the coordinator references - * @return - */ - public Coordinator getCoordinator() { - Coordinator cord = Mockito.mock(Coordinator.class); - EventBus bus = Mockito.mock(EventBus.class); - Mockito.when(cord.getEventBus()).thenReturn(bus); - return cord; - } - -} diff --git a/src/test/java/org/olat/test/MockServletContextWebContextLoader.java b/src/test/java/org/olat/test/MockServletContextWebContextLoader.java index f5cbbe2546f31844901523711b8c282cd2f3c8c0..75e182a8070895c86d0e5f668862c90ceadfa7cf 100644 --- a/src/test/java/org/olat/test/MockServletContextWebContextLoader.java +++ b/src/test/java/org/olat/test/MockServletContextWebContextLoader.java @@ -28,6 +28,7 @@ import org.springframework.beans.factory.support.BeanDefinitionReader; import org.springframework.beans.factory.xml.XmlBeanDefinitionReader; import org.springframework.context.ApplicationContext; import org.springframework.context.support.GenericApplicationContext; +import org.springframework.mock.env.MockPropertySource; import org.springframework.mock.web.MockServletContext; import org.springframework.test.context.MergedContextConfiguration; import org.springframework.test.context.support.AbstractContextLoader; @@ -59,9 +60,10 @@ public class MockServletContextWebContextLoader extends AbstractContextLoader { XmlWebApplicationContext appContext = new XmlWebApplicationContext(); MockServletContext servletContext = new MockServletContext(); - - servletContext.setAttribute(WebApplicationContext.ROOT_WEB_APPLICATION_CONTEXT_ATTRIBUTE, appContext); - + servletContext.setAttribute(WebApplicationContext.ROOT_WEB_APPLICATION_CONTEXT_ATTRIBUTE, appContext); + MockPropertySource propertySource = new MockPropertySource(); + propertySource.setProperty("jms.provider", "activemq"); + appContext.getEnvironment().getPropertySources().addFirst(propertySource); appContext.setServletContext(servletContext); appContext.setConfigLocations(locations); appContext.refresh(); @@ -73,7 +75,7 @@ public class MockServletContextWebContextLoader extends AbstractContextLoader { @Override public ApplicationContext loadContext(MergedContextConfiguration config) throws Exception { - return this.loadContext(config.getLocations()); + return loadContext(config.getLocations()); } @Override diff --git a/src/test/java/org/olat/test/_spring/coordinatorAndDatabaseContextMock.xml b/src/test/java/org/olat/test/_spring/coordinatorAndDatabaseContextMock.xml deleted file mode 100644 index f68b1bc794193f6f27857bc33e2292b44bc87ca2..0000000000000000000000000000000000000000 --- a/src/test/java/org/olat/test/_spring/coordinatorAndDatabaseContextMock.xml +++ /dev/null @@ -1,42 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<beans xmlns="http://www.springframework.org/schema/beans" - xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xmlns:context="http://www.springframework.org/schema/context" - xsi:schemaLocation=" - http://www.springframework.org/schema/beans - http://www.springframework.org/schema/beans/spring-beans-3.0.xsd - http://www.springframework.org/schema/context - http://www.springframework.org/schema/context/spring-context-3.0.xsd"> - -<context:property-placeholder location="classpath:serviceconfig/olat.properties, classpath:olat.local.properties" /> -<context:annotation-config /> -<bean id="cacheConfig" class="org.olat.core.util.cache.n.CacheConfig"> - <property name="childrenConfig"><map></map></property> -</bean> - -<bean id="org.olat.core.util.cache.n.impl.svm.SingleVMCacher" class="org.olat.core.util.cache.n.impl.svm.SingleVMCacher" init-method="init"> - <property name="rootConfig" ref="cacheConfig"/> -</bean> - -<bean id="database" class="org.olat.core.commons.persistence.DBImpl"></bean> -<bean id="pessimisticLockManager" class="org.olat.resource.lock.pessimistic.PessimisticLockManager"/> -<bean id="org.olat.commons.coordinate.cluster.ClusterSyncer" class="org.olat.commons.coordinate.cluster.ClusterSyncer" > - <constructor-arg index="0" ref="pessimisticLockManager" /> - <property name="executionTimeThreshold" value="1000" /> - <property name="dbInstance" ref="database"></property> -</bean> - -<bean id="coordinatorManager" class="org.olat.core.util.coordinate.CoordinatorManagerImpl"> - <property name="coordinator" ref="org.olat.core.util.coordinate.SingleVMCoordinator"/> -</bean> - - -<bean id="org.olat.core.util.coordinate.SingleVMCoordinator" class="org.olat.commons.coordinate.singlevm.SingleVMCoordinator" > - <property name="syncer" ref="org.olat.commons.coordinate.cluster.ClusterSyncer"/> - <property name="cacher" ref="org.olat.core.util.cache.n.impl.svm.SingleVMCacher"/> - <property name="eventBus" ref="eventBus" /> -</bean> - -<bean id="eventBus" class="org.olat.commons.coordinate.singlevm.SingleVMEventBus" /> - -</beans> \ No newline at end of file diff --git a/src/test/java/org/olat/test/_spring/coordinatorMock.xml b/src/test/java/org/olat/test/_spring/coordinatorMock.xml deleted file mode 100644 index 22cb8c1f303d8818f5fdbc6eea9ba97efe67834a..0000000000000000000000000000000000000000 --- a/src/test/java/org/olat/test/_spring/coordinatorMock.xml +++ /dev/null @@ -1,16 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<beans xmlns="http://www.springframework.org/schema/beans" - xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xmlns:context="http://www.springframework.org/schema/context" - xsi:schemaLocation=" - http://www.springframework.org/schema/beans - http://www.springframework.org/schema/beans/spring-beans-3.0.xsd - http://www.springframework.org/schema/context - http://www.springframework.org/schema/context/spring-context-3.0.xsd"> - -<context:property-placeholder location="classpath:serviceconfig/olat.properties, classpath:olat.local.properties" /> -<context:annotation-config /> - -<bean id="coordinatorManager" class="org.olat.test.CoordinatorManagerMock" /> - -</beans> \ No newline at end of file diff --git a/src/test/java/org/olat/test/_spring/utilCorecontextMock.xml b/src/test/java/org/olat/test/_spring/utilCorecontextMock.xml deleted file mode 100644 index 9fedc0cc336ddc42d67a02f1c2dadfc238059fbf..0000000000000000000000000000000000000000 --- a/src/test/java/org/olat/test/_spring/utilCorecontextMock.xml +++ /dev/null @@ -1,14 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<beans xmlns="http://www.springframework.org/schema/beans" - xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation=" - http://www.springframework.org/schema/beans - http://www.springframework.org/schema/beans/spring-beans-3.0.xsd"> - - <bean id="imageHelper" class="org.olat.core.util.image.ImageHelperBean"> - <property name="imageHelperServiceProvider" ref="imageHelperServiceProvider"/> - </bean> - - <bean id="imageHelperServiceProvider" class="org.olat.core.util.image.spi.ImageHelperImpl" /> - -</beans> diff --git a/src/test/java/org/olat/test/_spring/webapphelperMock.xml b/src/test/java/org/olat/test/_spring/webapphelperMock.xml deleted file mode 100644 index 15b2740285f8cd46f121bb4f9ccbadc917e761ae..0000000000000000000000000000000000000000 --- a/src/test/java/org/olat/test/_spring/webapphelperMock.xml +++ /dev/null @@ -1,97 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<beans xmlns="http://www.springframework.org/schema/beans" - xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xmlns:context="http://www.springframework.org/schema/context" - xsi:schemaLocation=" - http://www.springframework.org/schema/beans - http://www.springframework.org/schema/beans/spring-beans-3.0.xsd - http://www.springframework.org/schema/context - http://www.springframework.org/schema/context/spring-context-3.0.xsd"> - -<context:property-placeholder location="classpath:serviceconfig/olat.properties, classpath:olat.local.properties" /> - -<bean id="org.olat.core.util.WebappHelper" class="org.olat.core.util.WebappHelper" init-method="init" destroy-method="destroy"> - <!-- relative path from the webapp directory to the source directory (only relavant for development/debuging mode) --> - <property name="fullPathToSrc" value="${project.build.home.directory}/src/main/java" /> - <property name="instanceId" value="myolat"/> - <property name="nodeId" value="1"/> - <property name="userDataRoot" value=""/> - <property name="mailConfig"> - <map> - <entry key="mailhost" value="mail.uzh.ch"/> - <entry key="mailTimeout" value="5000"/> <!-- timeout in milliseconds --> - <entry key="smtpUser" value=""/> - <entry key="smtpPwd" value=""/> - <entry key="sslEnabled" value="false"/> - <entry key="sslCheckCertificate" value="false"/> - <entry key="mailFrom" value=""/> - <entry key="mailSupport" value=""/> - </map> - </property> - <property name="defaultCharset" value="de" /> - <property name="version" value="1234" /> - <property name="applicationName" value="olat" /> - </bean> - - - - - - - <bean class="org.olat.core.helpers.Settings" depends-on="org.olat.core.util.WebappHelper" init-method="init" destroy-method="destroy"> - <property name="persistedProperties"> - <bean class="org.olat.core.configuration.PersistedProperties" scope="prototype" init-method="init" destroy-method="destroy"> - <constructor-arg index="0" ref="coordinatorManager" /> - <constructor-arg index="1" ref="org.olat.core.helpers.Settings" /> - </bean> - </property> - <property name="serverconfig"> - <map> - <entry key="server_name" value="REPLACE" /> - <entry key="server_fqdn" value="localhost" /> - <entry key="server_securePort" value="443" /> - <entry key="server_insecurePort" value="80" /> - <!-- Static global-mappers files (path /g/**) can be delivered directly from apache - olat-application must copy all needed static files from classes/core to apache - static directory (static/g/..) . - Apache and mod_jk must be configurated to filter '/g/**' path --> - <entry key="server_modjk_enabled" value="false" /> - <entry key="server_core_jar_name" value="olatcore-1.0-SNAPSHOT.jar" /> - <entry key="serverContextPath" value="/olat"/> - </map> - </property> - <!-- true enable debug mode, not for production mode but for productive hours ;) --> - <property name="debug" value="true" /> - <!-- if readOnlyDebug, then no file changes can be made in the debug mode --> - <property name="readOnlyDebug" value="false" /> - <!-- - For Performance and/or Functional Tests. - if allowLoadtestMode is set to true, it is possible to switch a session to loadtest mode - using the url parameter ?loadtest and ?noloadtest even without logging in. - Thus the same urls can be reused over and over again, which is needed for tools like JMeter or such. - - Not to be used for productive mode! (no double post checks, asynchronous inline rendering does not work etc.)- - --> - <property name="allowLoadtestMode" value="${allow.loadtest.mode}" /> - <property name="ajaxGloballyOn" value="true" /> - <property name="ajaxBlacklistedUserAgents"> - <list> - <value>.*WebKit/5[01].*</value> <!-- older than safari 3.0 --> - <value>.*MSIE [2345].*</value> <!-- older than IE 6.0 --> - <value>.*Firefox/[1].*</value> <!-- older than FF 2.0 --> - <value>.*Opera/[45678].*</value> <!-- older than Opera 9 --> - <value>.*Gecko/200[0123456].*</value> <!-- Gecko engine older than 2006 --> - <value>.*Lynx.*</value> <!-- Lynx console browser (no js) --> - </list> - </property> - <property name="guiThemeIdentifyer" value="default" /> - <property name="version" value="1234" /> - <property name="applicationName" value="olat" /> - <property name="clusterMode" value="singlevm"/> - <property name="nodeId" value="1"/> - </bean> - - - - - -</beans> \ No newline at end of file