Author: solomax
Date: Wed Dec 30 09:30:46 2015
New Revision: 1722294

URL: http://svn.apache.org/viewvc?rev=1722294&view=rev
Log:
[OPENMEETINGS-1305] tests are added to the build, recording service tests are 
fixed

Added:
    
openmeetings/application/branches/3.1.x/openmeetings-web/src/test/java/org/apache/openmeetings/test/webservice/AbstractWebServiceTest.java
    
openmeetings/application/branches/3.1.x/openmeetings-web/src/test/java/org/apache/openmeetings/test/webservice/TestRecordingService.java
      - copied, changed from r1722288, 
openmeetings/application/branches/3.1.x/openmeetings-web/src/test/java/org/apache/openmeetings/test/webservice/RecordingServiceTest.java
    
openmeetings/application/branches/3.1.x/openmeetings-web/src/test/java/org/apache/openmeetings/test/webservice/TestUserService.java
      - copied, changed from r1721886, 
openmeetings/application/branches/3.1.x/openmeetings-web/src/test/java/org/apache/openmeetings/test/webservice/UserServiceTest.java
    
openmeetings/application/trunk/openmeetings-web/src/test/java/org/apache/openmeetings/test/webservice/AbstractWebServiceTest.java
    
openmeetings/application/trunk/openmeetings-web/src/test/java/org/apache/openmeetings/test/webservice/TestRecordingService.java
      - copied, changed from r1721886, 
openmeetings/application/trunk/openmeetings-web/src/test/java/org/apache/openmeetings/test/webservice/RecordingServiceTest.java
    
openmeetings/application/trunk/openmeetings-web/src/test/java/org/apache/openmeetings/test/webservice/TestUserService.java
      - copied, changed from r1721886, 
openmeetings/application/trunk/openmeetings-web/src/test/java/org/apache/openmeetings/test/webservice/UserServiceTest.java
Removed:
    
openmeetings/application/branches/3.1.x/openmeetings-web/src/test/java/org/apache/openmeetings/test/webservice/RecordingServiceTest.java
    
openmeetings/application/branches/3.1.x/openmeetings-web/src/test/java/org/apache/openmeetings/test/webservice/UserServiceTest.java
    
openmeetings/application/trunk/openmeetings-web/src/test/java/org/apache/openmeetings/test/webservice/RecordingServiceTest.java
    
openmeetings/application/trunk/openmeetings-web/src/test/java/org/apache/openmeetings/test/webservice/UserServiceTest.java
Modified:
    
openmeetings/application/branches/3.1.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/record/Recording.java
    openmeetings/application/branches/3.1.x/openmeetings-web/pom.xml
    
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/ProfileImageResourceReference.java
    
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/RecordingResourceReference.java
    
openmeetings/application/branches/3.1.x/openmeetings-web/src/test/java/org/apache/openmeetings/test/AbstractJUnitDefaults.java
    
openmeetings/application/branches/3.1.x/openmeetings-web/src/test/java/org/apache/openmeetings/test/AbstractSpringTest.java
    
openmeetings/application/branches/3.1.x/openmeetings-web/src/test/java/org/apache/openmeetings/test/selenium/AbstractTestDefaults.java
    openmeetings/application/branches/3.1.x/pom.xml
    
openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/record/Recording.java
    openmeetings/application/trunk/openmeetings-web/pom.xml
    
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/ProfileImageResourceReference.java
    
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/RecordingResourceReference.java
    
openmeetings/application/trunk/openmeetings-web/src/test/java/org/apache/openmeetings/test/AbstractJUnitDefaults.java
    
openmeetings/application/trunk/openmeetings-web/src/test/java/org/apache/openmeetings/test/AbstractSpringTest.java
    
openmeetings/application/trunk/openmeetings-web/src/test/java/org/apache/openmeetings/test/selenium/AbstractTestDefaults.java
    openmeetings/application/trunk/pom.xml

Modified: 
openmeetings/application/branches/3.1.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/record/Recording.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/record/Recording.java?rev=1722294&r1=1722293&r2=1722294&view=diff
==============================================================================
--- 
openmeetings/application/branches/3.1.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/record/Recording.java
 (original)
+++ 
openmeetings/application/branches/3.1.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/record/Recording.java
 Wed Dec 30 09:30:46 2015
@@ -42,8 +42,6 @@ import javax.xml.bind.annotation.XmlRoot
 import javax.xml.bind.annotation.XmlType;
 
 import org.apache.openmeetings.db.entity.file.FileItem;
-import org.apache.openmeetings.db.entity.room.Room;
-import org.apache.openmeetings.db.entity.user.User;
 import org.simpleframework.xml.Element;
 import org.simpleframework.xml.ElementList;
 import org.simpleframework.xml.Root;
@@ -83,8 +81,6 @@ import org.simpleframework.xml.Root;
        , @NamedQuery(name = "getRecordingsAll", query = "SELECT c FROM 
Recording c LEFT JOIN FETCH c.metaData ORDER BY c.id")
        , @NamedQuery(name = "getRecordingsByExternalTypeAndOwner", query = 
"SELECT c FROM Recording c, Room r WHERE c.roomId = r.id "
                        + "AND r.externalType LIKE :externalType AND 
c.insertedBy LIKE :insertedBy AND c.deleted = false")
-       , @NamedQuery(name = "getRecordingsByExternalType", query = "SELECT c 
FROM Recording c, Room r WHERE c.roomId = r.id "
-                       + "AND r.externalType LIKE :externalType AND c.deleted 
= false")
        , @NamedQuery(name = "getRecordingsByRoom", query = "SELECT c FROM 
Recording c WHERE c.deleted = false AND c.roomId = :roomId "
                        + "ORDER BY c.type ASC, c.inserted")
        , @NamedQuery(name = "getRecordingsByParent", query = "SELECT f FROM 
Recording f WHERE f.deleted = false AND f.parentId = :parentId "
@@ -170,12 +166,6 @@ public class Recording extends FileItem
        
        // Not Mapped
        @Transient
-       private User creator;
-
-       @Transient
-       private Room room;
-
-       @Transient
        private List<RecordingLog> log;
 
        public Long getId() {
@@ -242,22 +232,6 @@ public class Recording extends FileItem
                this.metaData = metaData;
        }
 
-       public User getCreator() {
-               return creator;
-       }
-
-       public void setCreator(User creator) {
-               this.creator = creator;
-       }
-
-       public Room getRoom() {
-               return room;
-       }
-
-       public void setRoom(Room room) {
-               this.room = room;
-       }
-
        public Integer getWidth() {
                return width;
        }

Modified: openmeetings/application/branches/3.1.x/openmeetings-web/pom.xml
URL: 
http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-web/pom.xml?rev=1722294&r1=1722293&r2=1722294&view=diff
==============================================================================
--- openmeetings/application/branches/3.1.x/openmeetings-web/pom.xml (original)
+++ openmeetings/application/branches/3.1.x/openmeetings-web/pom.xml Wed Dec 30 
09:30:46 2015
@@ -351,6 +351,26 @@
                                <artifactId>maven-resources-plugin</artifactId>
                                <executions>
                                        <execution>
+                                               <id>prepare-test-resources</id>
+                                               
<phase>process-test-resources</phase>
+                                               <goals>
+                                                       
<goal>copy-resources</goal>
+                                               </goals>
+                                               <configuration>
+                                                       
<overwrite>true</overwrite>
+                                                       
<outputDirectory>${project.build.directory}/test-root</outputDirectory>
+                                                       <resources>
+                                                               <resource>
+                                                                       
<directory>${project.basedir}/src/main/webapp</directory>
+                                                                       
<includes>
+                                                                               
<include>**</include>
+                                                                       
</includes>
+                                                                       
<filtering>true</filtering>
+                                                               </resource>
+                                                       </resources>
+                                               </configuration>
+                                       </execution>
+                                       <execution>
                                                <id>copy-web-templates</id>
                                                <phase>process-resources</phase>
                                                <goals>
@@ -402,20 +422,6 @@
                                                        <goal>run</goal>
                                                </goals>
                                        </execution>
-                                       <execution><!-- FIXME should be 
refactored -->
-                                               <id>move-openjpa-resources</id>
-                                               <phase>process-resources</phase>
-                                               <configuration>
-                                                       <target>
-                                                               <copy 
todir="${project.build.directory}/test-root">
-                                                                       
<fileset dir="${project.basedir}/src/main/webapp"/>
-                                                               </copy>
-                                                       </target>
-                                               </configuration>
-                                               <goals>
-                                                       <goal>run</goal>
-                                               </goals>
-                                       </execution>
                                </executions>
                        </plugin>
                        <plugin>
@@ -430,6 +436,8 @@
                                                
<languages.home>${project.basedir}/src/main/webapp/languages</languages.home>
                                                <red5.root>red5.root</red5.root>
                                                
<backups.dir>${old-backups.dir}</backups.dir>
+                                               
<logback.ContextSelector>org.red5.logging.LoggingContextSelector</logback.ContextSelector>
+                                               
<catalina.useNaming>true</catalina.useNaming>
                                        </systemPropertyVariables>
                                        <additionalClasspathElements>
                                                
<additionalClasspathElement>${project.build.directory}/${project.build.finalName}/WEB-INF/classes</additionalClasspathElement>
@@ -675,8 +683,20 @@
                </dependency>
                <dependency>
                        <groupId>org.apache.tomcat.embed</groupId>
+                       <artifactId>tomcat-embed-core</artifactId>
+                       <version>${tomcat.version}</version>
+                       <scope>test</scope>
+               </dependency>
+               <dependency>
+                       <groupId>org.apache.tomcat.embed</groupId>
+                       <artifactId>tomcat-embed-logging-juli</artifactId>
+                       <version>${tomcat.version}</version>
+                       <scope>test</scope>
+               </dependency>
+               <dependency>
+                       <groupId>org.apache.tomcat.embed</groupId>
                        <artifactId>tomcat-embed-websocket</artifactId>
-                       <version>8.0.26</version>
+                       <version>${tomcat.version}</version>
                        <exclusions>
                                <exclusion>
                                        
<groupId>org.apache.tomcat.embed</groupId>

Modified: 
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/ProfileImageResourceReference.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/ProfileImageResourceReference.java?rev=1722294&r1=1722293&r2=1722294&view=diff
==============================================================================
--- 
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/ProfileImageResourceReference.java
 (original)
+++ 
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/ProfileImageResourceReference.java
 Wed Dec 30 09:30:46 2015
@@ -73,11 +73,13 @@ public class ProfileImageResourceReferen
                return new ByteArrayResource("image/jpeg") {
                        private static final long serialVersionUID = 1L;
                        private Long userId = null;
+                       private String uri = null;
 
                        @Override
                        protected ResourceResponse 
newResourceResponse(Attributes attributes) {
                                PageParameters params = 
attributes.getParameters();
                                userId = params.get("id").toOptionalLong();
+                               uri = 
getBean(UserDao.class).get(userId).getPictureuri();
                                ResourceResponse rr = 
super.newResourceResponse(attributes);
                                rr.disableCaching();
                                return rr;
@@ -85,7 +87,6 @@ public class ProfileImageResourceReferen
                        
                        @Override
                        protected byte[] getData(Attributes attributes) {
-                               String uri = 
getBean(UserDao.class).get(userId).getPictureuri();
                                if (!isAbsolute(uri)) {
                                        File img = 
OmFileHelper.getUserProfilePicture(userId, uri);
                                        try (InputStream is = new 
FileInputStream(img)) {

Modified: 
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/RecordingResourceReference.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/RecordingResourceReference.java?rev=1722294&r1=1722293&r2=1722294&view=diff
==============================================================================
--- 
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/RecordingResourceReference.java
 (original)
+++ 
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/RecordingResourceReference.java
 Wed Dec 30 09:30:46 2015
@@ -32,7 +32,9 @@ import javax.servlet.http.HttpServletRes
 
 import org.apache.openmeetings.db.dao.record.RecordingDao;
 import org.apache.openmeetings.db.dao.user.GroupUserDao;
+import org.apache.openmeetings.db.dao.user.UserDao;
 import org.apache.openmeetings.db.entity.record.Recording;
+import org.apache.openmeetings.db.entity.user.User;
 import org.apache.openmeetings.web.app.WebSession;
 import org.apache.wicket.request.mapper.parameter.PageParameters;
 import org.apache.wicket.request.resource.IResource;
@@ -96,8 +98,11 @@ public abstract class RecordingResourceR
                }
                //TODO external group check was added for plugin recording 
download
                String extType = getExternalType();
-               if (extType != null && 
extType.equals(r.getCreator().getExternalType())) {
-                       return r;
+               if (extType != null) {
+                       User creator = 
getBean(UserDao.class).get(r.getInsertedBy());
+                       if (extType.equals(creator.getExternalType())) {
+                               return r;
+                       }
                }
                return null;
        }

Modified: 
openmeetings/application/branches/3.1.x/openmeetings-web/src/test/java/org/apache/openmeetings/test/AbstractJUnitDefaults.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-web/src/test/java/org/apache/openmeetings/test/AbstractJUnitDefaults.java?rev=1722294&r1=1722293&r2=1722294&view=diff
==============================================================================
--- 
openmeetings/application/branches/3.1.x/openmeetings-web/src/test/java/org/apache/openmeetings/test/AbstractJUnitDefaults.java
 (original)
+++ 
openmeetings/application/branches/3.1.x/openmeetings-web/src/test/java/org/apache/openmeetings/test/AbstractJUnitDefaults.java
 Wed Dec 30 09:30:46 2015
@@ -56,7 +56,6 @@ public abstract class AbstractJUnitDefau
 
        @Before
        public void setUp() throws Exception {
-               super.setUp();
                configurationDao.getCryptKey();
                if (userDao.count() < 1) {
                        makeDefaultScheme();

Modified: 
openmeetings/application/branches/3.1.x/openmeetings-web/src/test/java/org/apache/openmeetings/test/AbstractSpringTest.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-web/src/test/java/org/apache/openmeetings/test/AbstractSpringTest.java?rev=1722294&r1=1722293&r2=1722294&view=diff
==============================================================================
--- 
openmeetings/application/branches/3.1.x/openmeetings-web/src/test/java/org/apache/openmeetings/test/AbstractSpringTest.java
 (original)
+++ 
openmeetings/application/branches/3.1.x/openmeetings-web/src/test/java/org/apache/openmeetings/test/AbstractSpringTest.java
 Wed Dec 30 09:30:46 2015
@@ -22,7 +22,7 @@ import static org.junit.Assert.fail;
 
 import org.apache.openmeetings.db.dao.label.LabelDao;
 import org.apache.openmeetings.util.OmFileHelper;
-import org.junit.Before;
+import org.junit.BeforeClass;
 import org.junit.runner.RunWith;
 import org.springframework.test.context.ContextConfiguration;
 import org.springframework.test.context.TestExecutionListeners;
@@ -34,8 +34,8 @@ import org.springframework.test.context.
 
@ContextConfiguration(locations={"classpath:openmeetings-applicationContext.xml"},
 inheritLocations = true)
 public abstract class AbstractSpringTest extends 
AbstractJUnit4SpringContextTests {
 
-       @Before
-       public void setUp() throws Exception {
+       @BeforeClass
+       public static void init() throws Exception {
                setOmHome();
                LabelDao.initLanguageMap();
                if (LabelDao.languages.isEmpty()) {
@@ -43,7 +43,7 @@ public abstract class AbstractSpringTest
                }
        }
        
-       protected void setOmHome() {
+       protected static void setOmHome() {
                String webappsDir = System.getProperty("om.home", ".");
                OmFileHelper.setOmHome(webappsDir);
                if (!OmFileHelper.getOmHome().exists() || 
!OmFileHelper.getOmHome().isDirectory()) {

Modified: 
openmeetings/application/branches/3.1.x/openmeetings-web/src/test/java/org/apache/openmeetings/test/selenium/AbstractTestDefaults.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-web/src/test/java/org/apache/openmeetings/test/selenium/AbstractTestDefaults.java?rev=1722294&r1=1722293&r2=1722294&view=diff
==============================================================================
--- 
openmeetings/application/branches/3.1.x/openmeetings-web/src/test/java/org/apache/openmeetings/test/selenium/AbstractTestDefaults.java
 (original)
+++ 
openmeetings/application/branches/3.1.x/openmeetings-web/src/test/java/org/apache/openmeetings/test/selenium/AbstractTestDefaults.java
 Wed Dec 30 09:30:46 2015
@@ -96,7 +96,6 @@ public abstract class AbstractTestDefaul
 
        @Before
        public void setUp() throws Exception {
-               super.setUp();
                FirefoxProfile profile = new FirefoxProfile();
                profile.setPreference("intl.accept_languages", getLocale());
                driver = new FirefoxDriver(profile);

Added: 
openmeetings/application/branches/3.1.x/openmeetings-web/src/test/java/org/apache/openmeetings/test/webservice/AbstractWebServiceTest.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-web/src/test/java/org/apache/openmeetings/test/webservice/AbstractWebServiceTest.java?rev=1722294&view=auto
==============================================================================
--- 
openmeetings/application/branches/3.1.x/openmeetings-web/src/test/java/org/apache/openmeetings/test/webservice/AbstractWebServiceTest.java
 (added)
+++ 
openmeetings/application/branches/3.1.x/openmeetings-web/src/test/java/org/apache/openmeetings/test/webservice/AbstractWebServiceTest.java
 Wed Dec 30 09:30:46 2015
@@ -0,0 +1,77 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.test.webservice;
+
+import static org.apache.openmeetings.util.OmFileHelper.getOmHome;
+import static org.junit.Assert.assertEquals;
+
+import java.io.File;
+import java.nio.file.Files;
+import java.util.Random;
+
+import org.apache.catalina.LifecycleState;
+import org.apache.catalina.startup.Tomcat;
+import org.apache.cxf.jaxrs.client.WebClient;
+import org.apache.openmeetings.db.dto.basic.ServiceResult;
+import org.apache.openmeetings.db.dto.basic.ServiceResult.Type;
+import org.apache.openmeetings.test.AbstractJUnitDefaults;
+import org.junit.AfterClass;
+import org.junit.BeforeClass;
+
+public class AbstractWebServiceTest extends AbstractJUnitDefaults {
+       private static Tomcat tomcat;
+       public final static String CONTEXT = "/openmeetings";
+       public final static String BASE_SERVICES_URL = "http://localhost:8080"; 
+ CONTEXT + "/services";
+       public final static String USER_SERVICE_URL = BASE_SERVICES_URL + 
"/user";
+       protected static final Random rnd = new Random();
+
+       public static WebClient getClient(String url) {
+               return 
WebClient.create(url).accept("application/json").type("application/json");
+       }
+
+       public static ServiceResult login() {
+               ServiceResult sr = 
getClient(USER_SERVICE_URL).path("/login").query("user", 
username).query("pass", userpass)
+                               .get(ServiceResult.class);
+               assertEquals("Login should be successful", sr.getType(), 
Type.SUCCESS.name());
+               return sr;
+       }
+
+       @BeforeClass
+       public static void initialize() throws Exception {
+               tomcat = new Tomcat();
+               tomcat.setPort(8080);
+               File wd = Files.createTempDirectory("om" + 
rnd.nextInt()).toFile();
+               tomcat.setBaseDir(wd.getCanonicalPath());
+               tomcat.getHost().setAppBase(wd.getCanonicalPath());
+               tomcat.getHost().setAutoDeploy(true);
+               tomcat.getHost().setDeployOnStartup(true);
+               tomcat.addWebapp(CONTEXT, getOmHome().getAbsolutePath());
+               tomcat.start();
+       }
+
+       @AfterClass
+       public static void destroy() throws Exception {
+               if (tomcat.getServer() != null && tomcat.getServer().getState() 
!= LifecycleState.DESTROYED) {
+                       if (tomcat.getServer().getState() != 
LifecycleState.STOPPED) {
+                               tomcat.stop();
+                       }
+                       tomcat.destroy();
+               }
+       }
+}

Copied: 
openmeetings/application/branches/3.1.x/openmeetings-web/src/test/java/org/apache/openmeetings/test/webservice/TestRecordingService.java
 (from r1722288, 
openmeetings/application/branches/3.1.x/openmeetings-web/src/test/java/org/apache/openmeetings/test/webservice/RecordingServiceTest.java)
URL: 
http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-web/src/test/java/org/apache/openmeetings/test/webservice/TestRecordingService.java?p2=openmeetings/application/branches/3.1.x/openmeetings-web/src/test/java/org/apache/openmeetings/test/webservice/TestRecordingService.java&p1=openmeetings/application/branches/3.1.x/openmeetings-web/src/test/java/org/apache/openmeetings/test/webservice/RecordingServiceTest.java&r1=1722288&r2=1722294&rev=1722294&view=diff
==============================================================================
--- 
openmeetings/application/branches/3.1.x/openmeetings-web/src/test/java/org/apache/openmeetings/test/webservice/RecordingServiceTest.java
 (original)
+++ 
openmeetings/application/branches/3.1.x/openmeetings-web/src/test/java/org/apache/openmeetings/test/webservice/TestRecordingService.java
 Wed Dec 30 09:30:46 2015
@@ -23,7 +23,6 @@ import static org.junit.Assert.assertNot
 import static org.junit.Assert.assertTrue;
 
 import java.util.Collection;
-import java.util.Random;
 
 import org.apache.openmeetings.db.dao.record.RecordingDao;
 import org.apache.openmeetings.db.dao.user.UserDao;
@@ -31,37 +30,42 @@ import org.apache.openmeetings.db.dto.ba
 import org.apache.openmeetings.db.dto.record.RecordingDTO;
 import org.apache.openmeetings.db.entity.record.Recording;
 import org.apache.openmeetings.db.entity.user.User;
-import org.apache.openmeetings.test.AbstractJUnitDefaults;
 import org.junit.Test;
 import org.springframework.beans.factory.annotation.Autowired;
 
-public class RecordingServiceTest extends AbstractJUnitDefaults {
-       public final static String RECORD_SERVICE_URL = 
UserServiceTest.BASE_SERVICES_URL + "/record";
+public class TestRecordingService extends AbstractWebServiceTest {
+       public final static String RECORD_SERVICE_URL = BASE_SERVICES_URL + 
"/record";
        private final static String UNIT_TEST_GROUP = "om_unit_tests";
-       private final Random rnd = new Random();
        @Autowired
        private RecordingDao recordingDao;
        @Autowired
        private UserDao userDao;
 
-       @Test
-       public void testExternal() throws Exception {
+       private User getExternalUser() throws Exception {
                User u = getUser(rnd.nextInt());
                u.setExternalType(UNIT_TEST_GROUP);
                u.setExternalId("" + rnd.nextInt());
-               userDao.update(u, null);
+               u = userDao.update(u, null);
+               return u;
+       }
+       
+       @Test
+       public void testExternal() throws Exception {
+               User u = getExternalUser();
                Recording r = new Recording();
-               r.setCreator(u);
+               r.setInsertedBy(u.getId());
                r.setComment("Created by Unit Tests");
+               r.setRoomId(5L);
                r = recordingDao.update(r);
-               ServiceResult sr = UserServiceTest.login();
-               Collection<? extends RecordingDTO> recs = 
UserServiceTest.getClient(RECORD_SERVICE_URL).path("/" + 
UNIT_TEST_GROUP).query("sid", sr.getMessage())
+               ServiceResult sr = login();
+               Collection<? extends RecordingDTO> recs = 
getClient(RECORD_SERVICE_URL).path("/" + UNIT_TEST_GROUP).query("sid", 
sr.getMessage())
                                .getCollection(RecordingDTO.class);
                assertNotNull("Valid collection should be returned", recs);
-               assertFalse("Collection of the recordings shoould not be 
empty", recs.isEmpty());
+               assertFalse("Collection of the recordings should not be empty", 
recs.isEmpty());
                boolean found = false;
                for (RecordingDTO rdo : recs) {
                        if (r.getId().equals(rdo.getId())) {
+                               //TODO check room, user
                                found = true;
                                break;
                        }

Copied: 
openmeetings/application/branches/3.1.x/openmeetings-web/src/test/java/org/apache/openmeetings/test/webservice/TestUserService.java
 (from r1721886, 
openmeetings/application/branches/3.1.x/openmeetings-web/src/test/java/org/apache/openmeetings/test/webservice/UserServiceTest.java)
URL: 
http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-web/src/test/java/org/apache/openmeetings/test/webservice/TestUserService.java?p2=openmeetings/application/branches/3.1.x/openmeetings-web/src/test/java/org/apache/openmeetings/test/webservice/TestUserService.java&p1=openmeetings/application/branches/3.1.x/openmeetings-web/src/test/java/org/apache/openmeetings/test/webservice/UserServiceTest.java&r1=1721886&r2=1722294&rev=1722294&view=diff
==============================================================================
--- 
openmeetings/application/branches/3.1.x/openmeetings-web/src/test/java/org/apache/openmeetings/test/webservice/UserServiceTest.java
 (original)
+++ 
openmeetings/application/branches/3.1.x/openmeetings-web/src/test/java/org/apache/openmeetings/test/webservice/TestUserService.java
 Wed Dec 30 09:30:46 2015
@@ -24,28 +24,13 @@ import static org.junit.Assert.assertNot
 import javax.ws.rs.core.Form;
 import javax.ws.rs.core.Response;
 
-import org.apache.cxf.jaxrs.client.WebClient;
 import org.apache.openmeetings.db.dto.basic.ServiceResult;
 import org.apache.openmeetings.db.dto.basic.ServiceResult.Type;
 import org.apache.openmeetings.db.dto.room.RoomOptionsDTO;
 import org.apache.openmeetings.db.dto.user.ExternalUserDTO;
-import org.apache.openmeetings.test.AbstractJUnitDefaults;
 import org.junit.Test;
 
-public class UserServiceTest extends AbstractJUnitDefaults {
-       public final static String BASE_SERVICES_URL = 
"http://localhost:5080/openmeetings/services";;
-       public final static String USER_SERVICE_URL = BASE_SERVICES_URL + 
"/user";
-       
-       public static WebClient getClient(String url) {
-               return 
WebClient.create(url).accept("application/json").type("application/json");
-       }
-       
-       public static ServiceResult login() {
-               ServiceResult sr = 
getClient(USER_SERVICE_URL).path("/login").query("user", 
username).query("pass", userpass).get(ServiceResult.class);
-               assertEquals("Login should be successful", sr.getType(), 
Type.SUCCESS.name());
-               return sr;
-       }
-       
+public class TestUserService extends AbstractWebServiceTest {
        @Test
        public void loginTest() {
                ServiceResult r = login();

Modified: openmeetings/application/branches/3.1.x/pom.xml
URL: 
http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/pom.xml?rev=1722294&r1=1722293&r2=1722294&view=diff
==============================================================================
--- openmeetings/application/branches/3.1.x/pom.xml (original)
+++ openmeetings/application/branches/3.1.x/pom.xml Wed Dec 30 09:30:46 2015
@@ -56,6 +56,7 @@
                <site.basedir>${project.basedir}</site.basedir>
                <skip.site.copy>true</skip.site.copy>
                <src.pack.skip>false</src.pack.skip>
+               <tomcat.version>8.0.28</tomcat.version>
        </properties>
        <modules>
                <module>openmeetings-util</module>
@@ -618,7 +619,7 @@
                        <dependency>
                                <groupId>org.apache.tomcat</groupId>
                                <artifactId>tomcat-servlet-api</artifactId>
-                               <version>8.0.28</version>
+                               <version>${tomcat.version}</version>
                                <scope>provided</scope>
                        </dependency>
                </dependencies>

Modified: 
openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/record/Recording.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/record/Recording.java?rev=1722294&r1=1722293&r2=1722294&view=diff
==============================================================================
--- 
openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/record/Recording.java
 (original)
+++ 
openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/record/Recording.java
 Wed Dec 30 09:30:46 2015
@@ -42,8 +42,6 @@ import javax.xml.bind.annotation.XmlRoot
 import javax.xml.bind.annotation.XmlType;
 
 import org.apache.openmeetings.db.entity.file.FileItem;
-import org.apache.openmeetings.db.entity.room.Room;
-import org.apache.openmeetings.db.entity.user.User;
 import org.simpleframework.xml.Element;
 import org.simpleframework.xml.ElementList;
 import org.simpleframework.xml.Root;
@@ -83,8 +81,6 @@ import org.simpleframework.xml.Root;
        , @NamedQuery(name = "getRecordingsAll", query = "SELECT c FROM 
Recording c LEFT JOIN FETCH c.metaData ORDER BY c.id")
        , @NamedQuery(name = "getRecordingsByExternalTypeAndOwner", query = 
"SELECT c FROM Recording c, Room r WHERE c.roomId = r.id "
                        + "AND r.externalType LIKE :externalType AND 
c.insertedBy LIKE :insertedBy AND c.deleted = false")
-       , @NamedQuery(name = "getRecordingsByExternalType", query = "SELECT c 
FROM Recording c, Room r WHERE c.roomId = r.id "
-                       + "AND r.externalType LIKE :externalType AND c.deleted 
= false")
        , @NamedQuery(name = "getRecordingsByRoom", query = "SELECT c FROM 
Recording c WHERE c.deleted = false AND c.roomId = :roomId "
                        + "ORDER BY c.type ASC, c.inserted")
        , @NamedQuery(name = "getRecordingsByParent", query = "SELECT f FROM 
Recording f WHERE f.deleted = false AND f.parentId = :parentId "
@@ -170,12 +166,6 @@ public class Recording extends FileItem
        
        // Not Mapped
        @Transient
-       private User creator;
-
-       @Transient
-       private Room room;
-
-       @Transient
        private List<RecordingLog> log;
 
        public Long getId() {
@@ -242,22 +232,6 @@ public class Recording extends FileItem
                this.metaData = metaData;
        }
 
-       public User getCreator() {
-               return creator;
-       }
-
-       public void setCreator(User creator) {
-               this.creator = creator;
-       }
-
-       public Room getRoom() {
-               return room;
-       }
-
-       public void setRoom(Room room) {
-               this.room = room;
-       }
-
        public Integer getWidth() {
                return width;
        }

Modified: openmeetings/application/trunk/openmeetings-web/pom.xml
URL: 
http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/pom.xml?rev=1722294&r1=1722293&r2=1722294&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-web/pom.xml (original)
+++ openmeetings/application/trunk/openmeetings-web/pom.xml Wed Dec 30 09:30:46 
2015
@@ -351,6 +351,26 @@
                                <artifactId>maven-resources-plugin</artifactId>
                                <executions>
                                        <execution>
+                                               <id>prepare-test-resources</id>
+                                               
<phase>process-test-resources</phase>
+                                               <goals>
+                                                       
<goal>copy-resources</goal>
+                                               </goals>
+                                               <configuration>
+                                                       
<overwrite>true</overwrite>
+                                                       
<outputDirectory>${project.build.directory}/test-root</outputDirectory>
+                                                       <resources>
+                                                               <resource>
+                                                                       
<directory>${project.basedir}/src/main/webapp</directory>
+                                                                       
<includes>
+                                                                               
<include>**</include>
+                                                                       
</includes>
+                                                                       
<filtering>true</filtering>
+                                                               </resource>
+                                                       </resources>
+                                               </configuration>
+                                       </execution>
+                                       <execution>
                                                <id>copy-web-templates</id>
                                                <phase>process-resources</phase>
                                                <goals>
@@ -402,20 +422,6 @@
                                                        <goal>run</goal>
                                                </goals>
                                        </execution>
-                                       <execution><!-- FIXME should be 
refactored -->
-                                               <id>move-openjpa-resources</id>
-                                               <phase>process-resources</phase>
-                                               <configuration>
-                                                       <target>
-                                                               <copy 
todir="${project.build.directory}/test-root">
-                                                                       
<fileset dir="${project.basedir}/src/main/webapp"/>
-                                                               </copy>
-                                                       </target>
-                                               </configuration>
-                                               <goals>
-                                                       <goal>run</goal>
-                                               </goals>
-                                       </execution>
                                </executions>
                        </plugin>
                        <plugin>
@@ -430,6 +436,8 @@
                                                
<languages.home>${project.basedir}/src/main/webapp/languages</languages.home>
                                                <red5.root>red5.root</red5.root>
                                                
<backups.dir>${old-backups.dir}</backups.dir>
+                                               
<logback.ContextSelector>org.red5.logging.LoggingContextSelector</logback.ContextSelector>
+                                               
<catalina.useNaming>true</catalina.useNaming>
                                        </systemPropertyVariables>
                                        <additionalClasspathElements>
                                                
<additionalClasspathElement>${project.build.directory}/${project.build.finalName}/WEB-INF/classes</additionalClasspathElement>
@@ -675,8 +683,20 @@
                </dependency>
                <dependency>
                        <groupId>org.apache.tomcat.embed</groupId>
+                       <artifactId>tomcat-embed-core</artifactId>
+                       <version>${tomcat.version}</version>
+                       <scope>test</scope>
+               </dependency>
+               <dependency>
+                       <groupId>org.apache.tomcat.embed</groupId>
+                       <artifactId>tomcat-embed-logging-juli</artifactId>
+                       <version>${tomcat.version}</version>
+                       <scope>test</scope>
+               </dependency>
+               <dependency>
+                       <groupId>org.apache.tomcat.embed</groupId>
                        <artifactId>tomcat-embed-websocket</artifactId>
-                       <version>8.0.26</version>
+                       <version>${tomcat.version}</version>
                        <exclusions>
                                <exclusion>
                                        
<groupId>org.apache.tomcat.embed</groupId>

Modified: 
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/ProfileImageResourceReference.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/ProfileImageResourceReference.java?rev=1722294&r1=1722293&r2=1722294&view=diff
==============================================================================
--- 
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/ProfileImageResourceReference.java
 (original)
+++ 
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/ProfileImageResourceReference.java
 Wed Dec 30 09:30:46 2015
@@ -73,11 +73,13 @@ public class ProfileImageResourceReferen
                return new ByteArrayResource("image/jpeg") {
                        private static final long serialVersionUID = 1L;
                        private Long userId = null;
+                       private String uri = null;
 
                        @Override
                        protected ResourceResponse 
newResourceResponse(Attributes attributes) {
                                PageParameters params = 
attributes.getParameters();
                                userId = params.get("id").toOptionalLong();
+                               uri = 
getBean(UserDao.class).get(userId).getPictureuri();
                                ResourceResponse rr = 
super.newResourceResponse(attributes);
                                rr.disableCaching();
                                return rr;
@@ -85,7 +87,6 @@ public class ProfileImageResourceReferen
                        
                        @Override
                        protected byte[] getData(Attributes attributes) {
-                               String uri = 
getBean(UserDao.class).get(userId).getPictureuri();
                                if (!isAbsolute(uri)) {
                                        File img = 
OmFileHelper.getUserProfilePicture(userId, uri);
                                        try (InputStream is = new 
FileInputStream(img)) {

Modified: 
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/RecordingResourceReference.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/RecordingResourceReference.java?rev=1722294&r1=1722293&r2=1722294&view=diff
==============================================================================
--- 
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/RecordingResourceReference.java
 (original)
+++ 
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/RecordingResourceReference.java
 Wed Dec 30 09:30:46 2015
@@ -32,7 +32,9 @@ import javax.servlet.http.HttpServletRes
 
 import org.apache.openmeetings.db.dao.record.RecordingDao;
 import org.apache.openmeetings.db.dao.user.GroupUserDao;
+import org.apache.openmeetings.db.dao.user.UserDao;
 import org.apache.openmeetings.db.entity.record.Recording;
+import org.apache.openmeetings.db.entity.user.User;
 import org.apache.openmeetings.web.app.WebSession;
 import org.apache.wicket.request.mapper.parameter.PageParameters;
 import org.apache.wicket.request.resource.IResource;
@@ -96,8 +98,11 @@ public abstract class RecordingResourceR
                }
                //TODO external group check was added for plugin recording 
download
                String extType = getExternalType();
-               if (extType != null && 
extType.equals(r.getCreator().getExternalType())) {
-                       return r;
+               if (extType != null) {
+                       User creator = 
getBean(UserDao.class).get(r.getInsertedBy());
+                       if (extType.equals(creator.getExternalType())) {
+                               return r;
+                       }
                }
                return null;
        }

Modified: 
openmeetings/application/trunk/openmeetings-web/src/test/java/org/apache/openmeetings/test/AbstractJUnitDefaults.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/test/java/org/apache/openmeetings/test/AbstractJUnitDefaults.java?rev=1722294&r1=1722293&r2=1722294&view=diff
==============================================================================
--- 
openmeetings/application/trunk/openmeetings-web/src/test/java/org/apache/openmeetings/test/AbstractJUnitDefaults.java
 (original)
+++ 
openmeetings/application/trunk/openmeetings-web/src/test/java/org/apache/openmeetings/test/AbstractJUnitDefaults.java
 Wed Dec 30 09:30:46 2015
@@ -56,7 +56,6 @@ public abstract class AbstractJUnitDefau
 
        @Before
        public void setUp() throws Exception {
-               super.setUp();
                configurationDao.getCryptKey();
                if (userDao.count() < 1) {
                        makeDefaultScheme();

Modified: 
openmeetings/application/trunk/openmeetings-web/src/test/java/org/apache/openmeetings/test/AbstractSpringTest.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/test/java/org/apache/openmeetings/test/AbstractSpringTest.java?rev=1722294&r1=1722293&r2=1722294&view=diff
==============================================================================
--- 
openmeetings/application/trunk/openmeetings-web/src/test/java/org/apache/openmeetings/test/AbstractSpringTest.java
 (original)
+++ 
openmeetings/application/trunk/openmeetings-web/src/test/java/org/apache/openmeetings/test/AbstractSpringTest.java
 Wed Dec 30 09:30:46 2015
@@ -22,7 +22,7 @@ import static org.junit.Assert.fail;
 
 import org.apache.openmeetings.db.dao.label.LabelDao;
 import org.apache.openmeetings.util.OmFileHelper;
-import org.junit.Before;
+import org.junit.BeforeClass;
 import org.junit.runner.RunWith;
 import org.springframework.test.context.ContextConfiguration;
 import org.springframework.test.context.TestExecutionListeners;
@@ -34,8 +34,8 @@ import org.springframework.test.context.
 
@ContextConfiguration(locations={"classpath:openmeetings-applicationContext.xml"},
 inheritLocations = true)
 public abstract class AbstractSpringTest extends 
AbstractJUnit4SpringContextTests {
 
-       @Before
-       public void setUp() throws Exception {
+       @BeforeClass
+       public static void init() throws Exception {
                setOmHome();
                LabelDao.initLanguageMap();
                if (LabelDao.languages.isEmpty()) {
@@ -43,7 +43,7 @@ public abstract class AbstractSpringTest
                }
        }
        
-       protected void setOmHome() {
+       protected static void setOmHome() {
                String webappsDir = System.getProperty("om.home", ".");
                OmFileHelper.setOmHome(webappsDir);
                if (!OmFileHelper.getOmHome().exists() || 
!OmFileHelper.getOmHome().isDirectory()) {

Modified: 
openmeetings/application/trunk/openmeetings-web/src/test/java/org/apache/openmeetings/test/selenium/AbstractTestDefaults.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/test/java/org/apache/openmeetings/test/selenium/AbstractTestDefaults.java?rev=1722294&r1=1722293&r2=1722294&view=diff
==============================================================================
--- 
openmeetings/application/trunk/openmeetings-web/src/test/java/org/apache/openmeetings/test/selenium/AbstractTestDefaults.java
 (original)
+++ 
openmeetings/application/trunk/openmeetings-web/src/test/java/org/apache/openmeetings/test/selenium/AbstractTestDefaults.java
 Wed Dec 30 09:30:46 2015
@@ -96,7 +96,6 @@ public abstract class AbstractTestDefaul
 
        @Before
        public void setUp() throws Exception {
-               super.setUp();
                FirefoxProfile profile = new FirefoxProfile();
                profile.setPreference("intl.accept_languages", getLocale());
                driver = new FirefoxDriver(profile);

Added: 
openmeetings/application/trunk/openmeetings-web/src/test/java/org/apache/openmeetings/test/webservice/AbstractWebServiceTest.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/test/java/org/apache/openmeetings/test/webservice/AbstractWebServiceTest.java?rev=1722294&view=auto
==============================================================================
--- 
openmeetings/application/trunk/openmeetings-web/src/test/java/org/apache/openmeetings/test/webservice/AbstractWebServiceTest.java
 (added)
+++ 
openmeetings/application/trunk/openmeetings-web/src/test/java/org/apache/openmeetings/test/webservice/AbstractWebServiceTest.java
 Wed Dec 30 09:30:46 2015
@@ -0,0 +1,77 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.test.webservice;
+
+import static org.apache.openmeetings.util.OmFileHelper.getOmHome;
+import static org.junit.Assert.assertEquals;
+
+import java.io.File;
+import java.nio.file.Files;
+import java.util.Random;
+
+import org.apache.catalina.LifecycleState;
+import org.apache.catalina.startup.Tomcat;
+import org.apache.cxf.jaxrs.client.WebClient;
+import org.apache.openmeetings.db.dto.basic.ServiceResult;
+import org.apache.openmeetings.db.dto.basic.ServiceResult.Type;
+import org.apache.openmeetings.test.AbstractJUnitDefaults;
+import org.junit.AfterClass;
+import org.junit.BeforeClass;
+
+public class AbstractWebServiceTest extends AbstractJUnitDefaults {
+       private static Tomcat tomcat;
+       public final static String CONTEXT = "/openmeetings";
+       public final static String BASE_SERVICES_URL = "http://localhost:8080"; 
+ CONTEXT + "/services";
+       public final static String USER_SERVICE_URL = BASE_SERVICES_URL + 
"/user";
+       protected static final Random rnd = new Random();
+
+       public static WebClient getClient(String url) {
+               return 
WebClient.create(url).accept("application/json").type("application/json");
+       }
+
+       public static ServiceResult login() {
+               ServiceResult sr = 
getClient(USER_SERVICE_URL).path("/login").query("user", 
username).query("pass", userpass)
+                               .get(ServiceResult.class);
+               assertEquals("Login should be successful", sr.getType(), 
Type.SUCCESS.name());
+               return sr;
+       }
+
+       @BeforeClass
+       public static void initialize() throws Exception {
+               tomcat = new Tomcat();
+               tomcat.setPort(8080);
+               File wd = Files.createTempDirectory("om" + 
rnd.nextInt()).toFile();
+               tomcat.setBaseDir(wd.getCanonicalPath());
+               tomcat.getHost().setAppBase(wd.getCanonicalPath());
+               tomcat.getHost().setAutoDeploy(true);
+               tomcat.getHost().setDeployOnStartup(true);
+               tomcat.addWebapp(CONTEXT, getOmHome().getAbsolutePath());
+               tomcat.start();
+       }
+
+       @AfterClass
+       public static void destroy() throws Exception {
+               if (tomcat.getServer() != null && tomcat.getServer().getState() 
!= LifecycleState.DESTROYED) {
+                       if (tomcat.getServer().getState() != 
LifecycleState.STOPPED) {
+                               tomcat.stop();
+                       }
+                       tomcat.destroy();
+               }
+       }
+}

Copied: 
openmeetings/application/trunk/openmeetings-web/src/test/java/org/apache/openmeetings/test/webservice/TestRecordingService.java
 (from r1721886, 
openmeetings/application/trunk/openmeetings-web/src/test/java/org/apache/openmeetings/test/webservice/RecordingServiceTest.java)
URL: 
http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/test/java/org/apache/openmeetings/test/webservice/TestRecordingService.java?p2=openmeetings/application/trunk/openmeetings-web/src/test/java/org/apache/openmeetings/test/webservice/TestRecordingService.java&p1=openmeetings/application/trunk/openmeetings-web/src/test/java/org/apache/openmeetings/test/webservice/RecordingServiceTest.java&r1=1721886&r2=1722294&rev=1722294&view=diff
==============================================================================
--- 
openmeetings/application/trunk/openmeetings-web/src/test/java/org/apache/openmeetings/test/webservice/RecordingServiceTest.java
 (original)
+++ 
openmeetings/application/trunk/openmeetings-web/src/test/java/org/apache/openmeetings/test/webservice/TestRecordingService.java
 Wed Dec 30 09:30:46 2015
@@ -23,7 +23,6 @@ import static org.junit.Assert.assertNot
 import static org.junit.Assert.assertTrue;
 
 import java.util.Collection;
-import java.util.Random;
 
 import org.apache.openmeetings.db.dao.record.RecordingDao;
 import org.apache.openmeetings.db.dao.user.UserDao;
@@ -31,37 +30,42 @@ import org.apache.openmeetings.db.dto.ba
 import org.apache.openmeetings.db.dto.record.RecordingDTO;
 import org.apache.openmeetings.db.entity.record.Recording;
 import org.apache.openmeetings.db.entity.user.User;
-import org.apache.openmeetings.test.AbstractJUnitDefaults;
 import org.junit.Test;
 import org.springframework.beans.factory.annotation.Autowired;
 
-public class RecordingServiceTest extends AbstractJUnitDefaults {
-       public final static String RECORD_SERVICE_URL = 
UserServiceTest.BASE_SERVICES_URL + "/record";
+public class TestRecordingService extends AbstractWebServiceTest {
+       public final static String RECORD_SERVICE_URL = BASE_SERVICES_URL + 
"/record";
        private final static String UNIT_TEST_GROUP = "om_unit_tests";
-       private final Random rnd = new Random();
        @Autowired
        private RecordingDao recordingDao;
        @Autowired
        private UserDao userDao;
 
-       @Test
-       public void testExternal() throws Exception {
+       private User getExternalUser() throws Exception {
                User u = getUser(rnd.nextInt());
                u.setExternalType(UNIT_TEST_GROUP);
                u.setExternalId("" + rnd.nextInt());
-               userDao.update(u, null);
+               u = userDao.update(u, null);
+               return u;
+       }
+       
+       @Test
+       public void testExternal() throws Exception {
+               User u = getExternalUser();
                Recording r = new Recording();
-               r.setCreator(u);
+               r.setInsertedBy(u.getId());
                r.setComment("Created by Unit Tests");
+               r.setRoomId(5L);
                r = recordingDao.update(r);
-               ServiceResult sr = UserServiceTest.login();
-               Collection<? extends RecordingDTO> recs = 
UserServiceTest.getClient(RECORD_SERVICE_URL).path("/" + 
UNIT_TEST_GROUP).query("sid", sr.getMessage())
+               ServiceResult sr = login();
+               Collection<? extends RecordingDTO> recs = 
getClient(RECORD_SERVICE_URL).path("/" + UNIT_TEST_GROUP).query("sid", 
sr.getMessage())
                                .getCollection(RecordingDTO.class);
                assertNotNull("Valid collection should be returned", recs);
-               assertFalse("Collection of the recordings shoould not be 
empty", recs.isEmpty());
+               assertFalse("Collection of the recordings should not be empty", 
recs.isEmpty());
                boolean found = false;
                for (RecordingDTO rdo : recs) {
                        if (r.getId().equals(rdo.getId())) {
+                               //TODO check room, user
                                found = true;
                                break;
                        }

Copied: 
openmeetings/application/trunk/openmeetings-web/src/test/java/org/apache/openmeetings/test/webservice/TestUserService.java
 (from r1721886, 
openmeetings/application/trunk/openmeetings-web/src/test/java/org/apache/openmeetings/test/webservice/UserServiceTest.java)
URL: 
http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/test/java/org/apache/openmeetings/test/webservice/TestUserService.java?p2=openmeetings/application/trunk/openmeetings-web/src/test/java/org/apache/openmeetings/test/webservice/TestUserService.java&p1=openmeetings/application/trunk/openmeetings-web/src/test/java/org/apache/openmeetings/test/webservice/UserServiceTest.java&r1=1721886&r2=1722294&rev=1722294&view=diff
==============================================================================
--- 
openmeetings/application/trunk/openmeetings-web/src/test/java/org/apache/openmeetings/test/webservice/UserServiceTest.java
 (original)
+++ 
openmeetings/application/trunk/openmeetings-web/src/test/java/org/apache/openmeetings/test/webservice/TestUserService.java
 Wed Dec 30 09:30:46 2015
@@ -24,28 +24,13 @@ import static org.junit.Assert.assertNot
 import javax.ws.rs.core.Form;
 import javax.ws.rs.core.Response;
 
-import org.apache.cxf.jaxrs.client.WebClient;
 import org.apache.openmeetings.db.dto.basic.ServiceResult;
 import org.apache.openmeetings.db.dto.basic.ServiceResult.Type;
 import org.apache.openmeetings.db.dto.room.RoomOptionsDTO;
 import org.apache.openmeetings.db.dto.user.ExternalUserDTO;
-import org.apache.openmeetings.test.AbstractJUnitDefaults;
 import org.junit.Test;
 
-public class UserServiceTest extends AbstractJUnitDefaults {
-       public final static String BASE_SERVICES_URL = 
"http://localhost:5080/openmeetings/services";;
-       public final static String USER_SERVICE_URL = BASE_SERVICES_URL + 
"/user";
-       
-       public static WebClient getClient(String url) {
-               return 
WebClient.create(url).accept("application/json").type("application/json");
-       }
-       
-       public static ServiceResult login() {
-               ServiceResult sr = 
getClient(USER_SERVICE_URL).path("/login").query("user", 
username).query("pass", userpass).get(ServiceResult.class);
-               assertEquals("Login should be successful", sr.getType(), 
Type.SUCCESS.name());
-               return sr;
-       }
-       
+public class TestUserService extends AbstractWebServiceTest {
        @Test
        public void loginTest() {
                ServiceResult r = login();

Modified: openmeetings/application/trunk/pom.xml
URL: 
http://svn.apache.org/viewvc/openmeetings/application/trunk/pom.xml?rev=1722294&r1=1722293&r2=1722294&view=diff
==============================================================================
--- openmeetings/application/trunk/pom.xml (original)
+++ openmeetings/application/trunk/pom.xml Wed Dec 30 09:30:46 2015
@@ -56,6 +56,7 @@
                <site.basedir>${project.basedir}</site.basedir>
                <skip.site.copy>true</skip.site.copy>
                <src.pack.skip>false</src.pack.skip>
+               <tomcat.version>8.0.28</tomcat.version>
        </properties>
        <modules>
                <module>openmeetings-util</module>
@@ -618,7 +619,7 @@
                        <dependency>
                                <groupId>org.apache.tomcat</groupId>
                                <artifactId>tomcat-servlet-api</artifactId>
-                               <version>8.0.28</version>
+                               <version>${tomcat.version}</version>
                                <scope>provided</scope>
                        </dependency>
                </dependencies>


Reply via email to