Author: solomax Date: Fri Feb 8 06:52:20 2013 New Revision: 1443856 URL: http://svn.apache.org/r1443856 Log: Import: JUnit test is added to test import/export compatibility between versions
Added: openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/test/backup/TestOldBackups.java Removed: openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/test/backup/TestBackupString.java openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/test/backup/TestStringReplace.java Modified: openmeetings/trunk/singlewebapp/WebContent/src/base/mainAttributes.lzx openmeetings/trunk/singlewebapp/WebContent/src/base/mainMethods.lzx openmeetings/trunk/singlewebapp/build.properties openmeetings/trunk/singlewebapp/build.xml openmeetings/trunk/singlewebapp/ivy.xml openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/servlet/outputhandler/BackupImportController.java openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/test/AbstractOpenmeetingsSpringTest.java Modified: openmeetings/trunk/singlewebapp/WebContent/src/base/mainAttributes.lzx URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/WebContent/src/base/mainAttributes.lzx?rev=1443856&r1=1443855&r2=1443856&view=diff ============================================================================== --- openmeetings/trunk/singlewebapp/WebContent/src/base/mainAttributes.lzx (original) +++ openmeetings/trunk/singlewebapp/WebContent/src/base/mainAttributes.lzx Fri Feb 8 06:52:20 2013 @@ -270,8 +270,6 @@ the LAST RoomClient Object that has been <attribute name="bandwidthNeededBest" value="32768" type="number" /> <attribute name="camQualityNormal" value="75" type="number" /> <attribute name="camQualityBest" value="75" type="number" /> -<attribute name="microphoneRateNormal" value="22" type="number" /> -<attribute name="microphoneRateBest" value="44" type="number" /> <!--- Reference to the current active drawarea --> <attribute name="_drawarea" value="null" /> Modified: openmeetings/trunk/singlewebapp/WebContent/src/base/mainMethods.lzx URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/WebContent/src/base/mainMethods.lzx?rev=1443856&r1=1443855&r2=1443856&view=diff ============================================================================== --- openmeetings/trunk/singlewebapp/WebContent/src/base/mainMethods.lzx (original) +++ openmeetings/trunk/singlewebapp/WebContent/src/base/mainMethods.lzx Fri Feb 8 06:52:20 2013 @@ -198,8 +198,6 @@ this.setAttribute('bandwidthNeededBest',Number(canvas.myConfigSet.getPointer().xpathQuery('config/bandwidthNeededBest/text()'))); this.setAttribute('camQualityNormal',Number(canvas.myConfigSet.getPointer().xpathQuery('config/camQualityNormal/text()'))); this.setAttribute('camQualityBest',Number(canvas.myConfigSet.getPointer().xpathQuery('config/camQualityBest/text()'))); - this.setAttribute('microphoneRateNormal',Number(canvas.myConfigSet.getPointer().xpathQuery('config/microphoneRateNormal/text()'))); - this.setAttribute('microphoneRateBest',Number(canvas.myConfigSet.getPointer().xpathQuery('config/microphoneRateBest/text()'))); this.setAttribute('defaultWhiteboardWidth',Number(canvas.myConfigSet.getPointer().xpathQuery('config/defaultWhiteboardWidth/text()'))); this.setAttribute('defaultWhiteboardHeight',Number(canvas.myConfigSet.getPointer().xpathQuery('config/defaultWhiteboardHeight/text()'))); Modified: openmeetings/trunk/singlewebapp/build.properties URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/build.properties?rev=1443856&r1=1443855&r2=1443856&view=diff ============================================================================== --- openmeetings/trunk/singlewebapp/build.properties (original) +++ openmeetings/trunk/singlewebapp/build.properties Fri Feb 8 06:52:20 2013 @@ -15,5 +15,6 @@ ivy.install.version=2.3.0 red5.server.revision=4393 red5.client.revision=4393 laszlo.proxied=solo -wicket.mode=DEPLOYMENT +wicket.mode=DEPLOYMENT +backup.file.list=backup_v_1_7_0_r3822.zip,backup_v_1_8_8_r4555.zip,backup_v_1_9_1_r4707.zip,backup_v_2_0_0_r1361497.zip db=derby Modified: openmeetings/trunk/singlewebapp/build.xml URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/build.xml?rev=1443856&r1=1443855&r2=1443856&view=diff ============================================================================== --- openmeetings/trunk/singlewebapp/build.xml (original) +++ openmeetings/trunk/singlewebapp/build.xml Fri Feb 8 06:52:20 2013 @@ -37,6 +37,7 @@ <property name="webcontent.src.dir" value="${basedir}/WebContent" /> <property name="screensharing.resources" value="${webcontent.src.dir}/screensharing" /> <property name="junit.lib.dir" value="${project.lib.dir}/junit" /> + <property name="junit.backups.dir" value="${junit.lib.dir}/backups" /> <property name="rat.lib.dir" value="${project.lib.dir}/rat" /> <property name="dtd-generator.lib.dir" value="${project.lib.dir}/dtd-generator" /> <property name="svntask.lib.dir" value="${project.lib.dir}/svntask" /> @@ -106,7 +107,7 @@ <mkdir dir="${mainlibs.lib.dir}" /> <mkdir dir="${om.lib.dir}" /> <mkdir dir="${anakia.lib.dir}" /> - <mkdir dir="${junit.lib.dir}" /> + <mkdir dir="${junit.backups.dir}" /> <mkdir dir="${junit.report.dir}" /> <mkdir dir="${rat.lib.dir}" /> <mkdir dir="${dtd-generator.lib.dir}" /> @@ -770,6 +771,22 @@ <pathelement path="${main.out.dir}" /> </path> <target name="test" depends="-dist-test-no-clean" description="Will run all tests unless -Dtestcases=_file_name_pattern_ will be passed"> + <taskdef resource="net/sf/antcontrib/antlib.xml"> + <classpath refid="junit.classpath" /> + </taskdef> + <for list="${backup.file.list}" param="prop"> + <sequential> + <if> + <not> + <available file="${junit.backups.dir}/@{prop}" type="file" /> + </not> + <then> + <echo message="Backup file @{prop} does not exists. Downloading ..." /> + <get src="http://openmeetings.googlecode.com/svn/repository/@{prop}" dest="${junit.backups.dir}" usetimestamp="true"/> + </then> + </if> + </sequential> + </for> <mkdir dir="${junit.report.dir}" /> <!-- property name="myclsp" refid="junit.classpath" /> <echo message="${myclsp}" /--> @@ -780,6 +797,7 @@ <jvmarg value="-Dbasedir=${basedir}" /> <jvmarg value="-Dred5.config_root=${red5.root}/conf" /> <jvmarg value="-Dwebapps.root=${basedir}/${om.dist.webapp}" /> + <jvmarg value="-Dbackups.dir=${junit.backups.dir}" /> <formatter type="${junit.test.formatter}" /> <batchtest todir="${junit.report.dir}"> <fileset dir="${main.out.dir}"> @@ -906,7 +924,7 @@ </copy> <copy file="${webcontent.src.dir}/red5/index.html" todir="${red5.lib}/webapps/root" overwrite="true" force="true" /> <copy todir="${red5.lib}" overwrite="true" force="true"> - <fileset dir="${webcontent.src.dir}/red5" includes="admin.*" /> + <fileset dir="${webcontent.src.dir}/red5" includes="admin.*,network_test.sh" /> </copy> <!-- FIXME need to be removed as soon as JAudioTagger (will be officially Dual Licensed) --> <xslt in="${red5.lib}/conf/red5-common.xml" out="${red5.lib}/conf/red5-common1.xml" style="build-jaudiotagger.xsl" /> Modified: openmeetings/trunk/singlewebapp/ivy.xml URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/ivy.xml?rev=1443856&r1=1443855&r2=1443856&view=diff ============================================================================== --- openmeetings/trunk/singlewebapp/ivy.xml (original) +++ openmeetings/trunk/singlewebapp/ivy.xml Fri Feb 8 06:52:20 2013 @@ -278,6 +278,9 @@ <dependency org="org.springframework" name="org.springframework.test" rev="3.1.1.RELEASE" conf="junit->*" transitive="false"> <include type="jar" /> </dependency> + <dependency org="ant-contrib" name="ant-contrib" rev="1.0b3" conf="junit->*" transitive="false"> + <include type="jar" /> + </dependency> <!-- END OF JUNIT --> <!-- START OF RAT --> Modified: openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/servlet/outputhandler/BackupImportController.java URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/servlet/outputhandler/BackupImportController.java?rev=1443856&r1=1443855&r2=1443856&view=diff ============================================================================== --- openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/servlet/outputhandler/BackupImportController.java (original) +++ openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/servlet/outputhandler/BackupImportController.java Fri Feb 8 06:52:20 2013 @@ -673,12 +673,8 @@ public class BackupImportController exte if (listNodeName.equals(listNode.getName())) { InputNode item = listNode.getNext(); while (item != null) { - try { - T o = ser.read(clazz, item, false); - list.add(o); - } catch (Exception e) { - log.debug("Exception While reading node of type: " + clazz, e); - } + T o = ser.read(clazz, item, false); + list.add(o); item = listNode.getNext(); } } @@ -753,18 +749,14 @@ public class BackupImportController exte InputNode item = listNode.getNext(); InputNode item1 = listNode1.getNext(); //HACK to handle Address inside user while (item != null) { - try { - User u = ser.read(User.class, item, false); - - //HACK to handle Address inside user - if (u.getAdresses() == null) { - Address a = ser.read(Address.class, item1, false); - u.setAdresses(a); - } - list.add(u); - } catch (Exception e) { - log.debug("Exception While reading node of type: " + User.class, e); + User u = ser.read(User.class, item, false); + + //HACK to handle Address inside user + if (u.getAdresses() == null) { + Address a = ser.read(Address.class, item1, false); + u.setAdresses(a); } + list.add(u); item = listNode.getNext(); do { item1 = listNode1.getNext(); //HACK to handle Address inside user Modified: openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/test/AbstractOpenmeetingsSpringTest.java URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/test/AbstractOpenmeetingsSpringTest.java?rev=1443856&r1=1443855&r2=1443856&view=diff ============================================================================== --- openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/test/AbstractOpenmeetingsSpringTest.java (original) +++ openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/test/AbstractOpenmeetingsSpringTest.java Fri Feb 8 06:52:20 2013 @@ -20,6 +20,7 @@ package org.apache.openmeetings.test; import static junit.framework.Assert.assertNotNull; import static junit.framework.Assert.assertTrue; +import static org.junit.Assert.fail; import java.util.Date; @@ -31,6 +32,7 @@ import org.apache.openmeetings.installat import org.apache.openmeetings.installation.InstallationConfig; import org.apache.openmeetings.persistence.beans.calendar.Appointment; import org.apache.openmeetings.persistence.beans.user.User; +import org.apache.openmeetings.utils.OmFileHelper; import org.apache.openmeetings.utils.crypt.ManageCryptStyle; import org.junit.Before; import org.junit.runner.RunWith; @@ -51,7 +53,7 @@ public abstract class AbstractOpenmeetin protected static final String username = "swagner"; protected static final String userpass = "qweqwe"; private static final String orgname = "smoketest"; - private static final String timeZone = ""; + private static final String timeZone = "Europe/Berlin"; private static final String useremail = "ju...@openmeetings.de"; @Autowired @@ -68,21 +70,15 @@ public abstract class AbstractOpenmeetin private ManageCryptStyle cryptManager; @Before - public void setUp() { - try { - if (userManagement.getUserById(1L) == null) { - makeDefaultScheme(); - log.info("Default scheme created successfully"); - } else { - log.info("Default scheme already created"); - } - } catch (Exception e) { - e.printStackTrace(); + public void setUp() throws Exception { + if (userManagement.getUserById(1L) == null) { + makeDefaultScheme(); + log.info("Default scheme created successfully"); + } else { + log.info("Default scheme already created"); } - } - public Appointment createAppointment() throws Exception { assertNotNull("Can't access to appointment dao implimentation", appointmentDao); @@ -130,6 +126,11 @@ public abstract class AbstractOpenmeetin } private void makeDefaultScheme() throws Exception { + String webappsDir = System.getProperty("webapps.root", "."); + OmFileHelper.setOmHome(webappsDir); + if (!OmFileHelper.getOmHome().exists() || !OmFileHelper.getOmHome().isDirectory()) { + fail("Invalid directory is specified as OM HOME: " + webappsDir); + } importInitvalues.loadAll(new InstallationConfig(), username, userpass, useremail, orgname, timeZone, false); } Added: openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/test/backup/TestOldBackups.java URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/test/backup/TestOldBackups.java?rev=1443856&view=auto ============================================================================== --- openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/test/backup/TestOldBackups.java (added) +++ openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/test/backup/TestOldBackups.java Fri Feb 8 06:52:20 2013 @@ -0,0 +1,33 @@ +package org.apache.openmeetings.test.backup; + +import static org.junit.Assert.fail; + +import java.io.File; +import java.io.FileInputStream; + +import org.apache.openmeetings.servlet.outputhandler.BackupImportController; +import org.apache.openmeetings.test.AbstractOpenmeetingsSpringTest; +import org.junit.Test; +import org.springframework.beans.factory.annotation.Autowired; + +public class TestOldBackups extends AbstractOpenmeetingsSpringTest { + @Autowired + private BackupImportController backupController; + + @Test + public void importOldVersions() { + String backupsDir = System.getProperty("backups.dir", "."); + File backupsHome = new File(backupsDir); + + if (!backupsHome.exists() || !backupsHome.isDirectory()) { + fail("Invalid directory is specified for backup files: " + backupsDir); + } + for (File backup : backupsHome.listFiles()) { + try { + backupController.performImport(new FileInputStream(backup)); + } catch (Exception e) { + throw new RuntimeException("Unexpected exception while importing backup: " + backup.getName(), e); + } + } + } +}