You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openmeetings.apache.org by so...@apache.org on 2015/12/22 12:51:48 UTC

svn commit: r1721372 - in /openmeetings/application: branches/3.1.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/room/ branches/3.1.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/user/ branches/3.1.x/openmeetings-db/src/...

Author: solomax
Date: Tue Dec 22 11:51:48 2015
New Revision: 1721372

URL: http://svn.apache.org/viewvc?rev=1721372&view=rev
Log:
[OPENMEETINGS-1305] login and hash methods are tested

Modified:
    openmeetings/application/branches/3.1.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/room/RoomOptionsDTO.java
    openmeetings/application/branches/3.1.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/user/ExternalUserDTO.java
    openmeetings/application/branches/3.1.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/user/GroupUser.java
    openmeetings/application/branches/3.1.x/openmeetings-web/src/test/java/org/apache/openmeetings/test/webservice/UserServiceTest.java
    openmeetings/application/branches/3.1.x/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/UserWebService.java
    openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/room/RoomOptionsDTO.java
    openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/user/ExternalUserDTO.java
    openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/user/GroupUser.java
    openmeetings/application/trunk/openmeetings-web/src/test/java/org/apache/openmeetings/test/webservice/UserServiceTest.java
    openmeetings/application/trunk/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/UserWebService.java

Modified: openmeetings/application/branches/3.1.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/room/RoomOptionsDTO.java
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/room/RoomOptionsDTO.java?rev=1721372&r1=1721371&r2=1721372&view=diff
==============================================================================
--- openmeetings/application/branches/3.1.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/room/RoomOptionsDTO.java (original)
+++ openmeetings/application/branches/3.1.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/room/RoomOptionsDTO.java Tue Dec 22 11:51:48 2015
@@ -24,6 +24,8 @@ import javax.xml.bind.annotation.XmlAcce
 import javax.xml.bind.annotation.XmlAccessorType;
 import javax.xml.bind.annotation.XmlRootElement;
 
+import org.apache.wicket.ajax.json.JSONObject;
+
 @XmlRootElement
 @XmlAccessorType(XmlAccessType.FIELD)
 public class RoomOptionsDTO implements Serializable {
@@ -93,4 +95,26 @@ public class RoomOptionsDTO implements S
 	public void setAllowRecording(boolean allowRecording) {
 		this.allowRecording = allowRecording;
 	}
+
+	private static Long optLong(JSONObject o, String key) {
+		return o.has(key) ? o.getLong(key) : null;
+	}
+	
+	public static RoomOptionsDTO fromString(String s) {
+		JSONObject o = new JSONObject(s);
+		RoomOptionsDTO ro = new RoomOptionsDTO();
+		ro.allowRecording = o.optBoolean("allowRecording", false);
+		ro.allowSameURLMultipleTimes = o.optBoolean("allowSameURLMultipleTimes", false);
+		ro.moderator = o.optBoolean("moderator", false);
+		ro.recordingId = optLong(o, "recordingId");
+		ro.roomId = optLong(o, "roomId");
+		ro.showAudioVideoTest = o.optBoolean("showAudioVideoTest", false);
+		ro.showNickNameDialog = o.optBoolean("showNickNameDialog", false);
+		return ro;
+	}
+	
+	@Override
+	public String toString() {
+		return new JSONObject(this).toString();
+	}
 }

Modified: openmeetings/application/branches/3.1.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/user/ExternalUserDTO.java
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/user/ExternalUserDTO.java?rev=1721372&r1=1721371&r2=1721372&view=diff
==============================================================================
--- openmeetings/application/branches/3.1.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/user/ExternalUserDTO.java (original)
+++ openmeetings/application/branches/3.1.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/user/ExternalUserDTO.java Tue Dec 22 11:51:48 2015
@@ -24,6 +24,8 @@ import javax.xml.bind.annotation.XmlAcce
 import javax.xml.bind.annotation.XmlAccessorType;
 import javax.xml.bind.annotation.XmlRootElement;
 
+import org.apache.wicket.ajax.json.JSONObject;
+
 @XmlRootElement
 @XmlAccessorType(XmlAccessType.FIELD)
 public class ExternalUserDTO implements Serializable {
@@ -93,4 +95,22 @@ public class ExternalUserDTO implements
 	public void setExternalType(String externalType) {
 		this.externalType = externalType;
 	}
+	
+	public static ExternalUserDTO fromString(String s) {
+		JSONObject o = new JSONObject(s);
+		ExternalUserDTO u = new ExternalUserDTO();
+		u.email = o.optString("email", null);
+		u.externalId = o.optString("externalId", null);
+		u.externalType = o.optString("externalType", null);
+		u.firstname = o.optString("firstname", null);
+		u.lastname = o.optString("lastname", null);
+		u.login = o.optString("login", null);
+		u.profilePictureUrl = o.optString("profilePictureUrl", null);
+		return u;
+	}
+	
+	@Override
+	public String toString() {
+		return new JSONObject(this).toString();
+	}
 }

Modified: openmeetings/application/branches/3.1.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/user/GroupUser.java
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/user/GroupUser.java?rev=1721372&r1=1721371&r2=1721372&view=diff
==============================================================================
--- openmeetings/application/branches/3.1.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/user/GroupUser.java (original)
+++ openmeetings/application/branches/3.1.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/user/GroupUser.java Tue Dec 22 11:51:48 2015
@@ -79,6 +79,8 @@ public class GroupUser implements IDataP
 	@Element(data = true, required = false)
 	private boolean moderator;
 	
+	public GroupUser() {}
+	
 	public GroupUser(Group group) {
 		this.group = group;
 	}

Modified: 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/UserServiceTest.java?rev=1721372&r1=1721371&r2=1721372&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/UserServiceTest.java Tue Dec 22 11:51:48 2015
@@ -18,10 +18,17 @@
  */
 package org.apache.openmeetings.test.webservice;
 
+import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
 
+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;
 
@@ -36,6 +43,31 @@ public class UserServiceTest extends Abs
 	@Test
 	public void loginTest() {
 		ServiceResult r = getClient(USER_SERVICE_URL).path("/login").query("user", username).query("pass", userpass).get(ServiceResult.class);
-		assertNotNull(r);
+		assertNotNull("Valid ServiceResult should be returned", r);
+		assertEquals("Login should be successful", r.getType(), Type.SUCCESS.name());
+	}
+
+	@Test
+	public void hashTest() {
+		ServiceResult r = getClient(USER_SERVICE_URL).path("/login").query("user", username).query("pass", userpass).get(ServiceResult.class);
+		assertEquals("Login should be successful", r.getType(), Type.SUCCESS.name());
+		ExternalUserDTO user = new ExternalUserDTO();
+		user.setExternalId("1");
+		user.setExternalType("OmJunitTests");
+		user.setEmail("user1@junit.openmeetings.apache.org");
+		user.setFirstname("First Name 1");
+		user.setLastname("Last Name 1");
+		user.setLogin("login1");
+		RoomOptionsDTO options = new RoomOptionsDTO();
+		options.setRoomId(5L);
+		options.setModerator(true);
+		Response resp = getClient(USER_SERVICE_URL)
+				.path("/hash")
+				.query("sid", r.getMessage())
+				.form(new Form().param("user", user.toString()).param("options", options.toString()));
+		assertNotNull("Valid ServiceResult should be returned", resp);
+		assertEquals("Call should be successful", Response.Status.OK.getStatusCode(), resp.getStatus());
+		ServiceResult r1 = resp.readEntity(ServiceResult.class);
+		assertEquals("OM Call should be successful", r1.getType(), Type.SUCCESS.name());
 	}
 }

Modified: openmeetings/application/branches/3.1.x/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/UserWebService.java
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/UserWebService.java?rev=1721372&r1=1721371&r2=1721372&view=diff
==============================================================================
--- openmeetings/application/branches/3.1.x/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/UserWebService.java (original)
+++ openmeetings/application/branches/3.1.x/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/UserWebService.java Tue Dec 22 11:51:48 2015
@@ -26,6 +26,7 @@ import javax.jws.WebMethod;
 import javax.jws.WebParam;
 import javax.jws.WebService;
 import javax.ws.rs.DELETE;
+import javax.ws.rs.FormParam;
 import javax.ws.rs.GET;
 import javax.ws.rs.POST;
 import javax.ws.rs.Path;
@@ -292,8 +293,8 @@ public class UserWebService {
 	@Path("/hash")
 	public ServiceResult getRoomHash(
 			@WebParam(name="sid") @QueryParam("sid") String sid
-			, @WebParam(name="user") @QueryParam("user") ExternalUserDTO user
-			, @WebParam(name="options") @QueryParam("options") RoomOptionsDTO options
+			, @WebParam(name="user") @FormParam("user") ExternalUserDTO user
+			, @WebParam(name="options") @FormParam("options") RoomOptionsDTO options
 			) throws ServiceException
 	{
 		try {
@@ -328,7 +329,7 @@ public class UserWebService {
 				return new ServiceResult(-26L, "Insufficient permissins", Type.ERROR);
 			}
 		} catch (Exception err) {
-			log.error("setUserObjectWithAndGenerateRoomHash", err);
+			log.error("getRoomHash", err);
 			throw new ServiceException(err.getMessage());
 		}
 		return new ServiceResult(-1L, "Unknown error", Type.ERROR);

Modified: openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/room/RoomOptionsDTO.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/room/RoomOptionsDTO.java?rev=1721372&r1=1721371&r2=1721372&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/room/RoomOptionsDTO.java (original)
+++ openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/room/RoomOptionsDTO.java Tue Dec 22 11:51:48 2015
@@ -24,6 +24,8 @@ import javax.xml.bind.annotation.XmlAcce
 import javax.xml.bind.annotation.XmlAccessorType;
 import javax.xml.bind.annotation.XmlRootElement;
 
+import org.apache.wicket.ajax.json.JSONObject;
+
 @XmlRootElement
 @XmlAccessorType(XmlAccessType.FIELD)
 public class RoomOptionsDTO implements Serializable {
@@ -93,4 +95,26 @@ public class RoomOptionsDTO implements S
 	public void setAllowRecording(boolean allowRecording) {
 		this.allowRecording = allowRecording;
 	}
+
+	private static Long optLong(JSONObject o, String key) {
+		return o.has(key) ? o.getLong(key) : null;
+	}
+	
+	public static RoomOptionsDTO fromString(String s) {
+		JSONObject o = new JSONObject(s);
+		RoomOptionsDTO ro = new RoomOptionsDTO();
+		ro.allowRecording = o.optBoolean("allowRecording", false);
+		ro.allowSameURLMultipleTimes = o.optBoolean("allowSameURLMultipleTimes", false);
+		ro.moderator = o.optBoolean("moderator", false);
+		ro.recordingId = optLong(o, "recordingId");
+		ro.roomId = optLong(o, "roomId");
+		ro.showAudioVideoTest = o.optBoolean("showAudioVideoTest", false);
+		ro.showNickNameDialog = o.optBoolean("showNickNameDialog", false);
+		return ro;
+	}
+	
+	@Override
+	public String toString() {
+		return new JSONObject(this).toString();
+	}
 }

Modified: openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/user/ExternalUserDTO.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/user/ExternalUserDTO.java?rev=1721372&r1=1721371&r2=1721372&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/user/ExternalUserDTO.java (original)
+++ openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/user/ExternalUserDTO.java Tue Dec 22 11:51:48 2015
@@ -24,6 +24,8 @@ import javax.xml.bind.annotation.XmlAcce
 import javax.xml.bind.annotation.XmlAccessorType;
 import javax.xml.bind.annotation.XmlRootElement;
 
+import org.apache.wicket.ajax.json.JSONObject;
+
 @XmlRootElement
 @XmlAccessorType(XmlAccessType.FIELD)
 public class ExternalUserDTO implements Serializable {
@@ -93,4 +95,22 @@ public class ExternalUserDTO implements
 	public void setExternalType(String externalType) {
 		this.externalType = externalType;
 	}
+	
+	public static ExternalUserDTO fromString(String s) {
+		JSONObject o = new JSONObject(s);
+		ExternalUserDTO u = new ExternalUserDTO();
+		u.email = o.optString("email", null);
+		u.externalId = o.optString("externalId", null);
+		u.externalType = o.optString("externalType", null);
+		u.firstname = o.optString("firstname", null);
+		u.lastname = o.optString("lastname", null);
+		u.login = o.optString("login", null);
+		u.profilePictureUrl = o.optString("profilePictureUrl", null);
+		return u;
+	}
+	
+	@Override
+	public String toString() {
+		return new JSONObject(this).toString();
+	}
 }

Modified: openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/user/GroupUser.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/user/GroupUser.java?rev=1721372&r1=1721371&r2=1721372&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/user/GroupUser.java (original)
+++ openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/user/GroupUser.java Tue Dec 22 11:51:48 2015
@@ -79,6 +79,8 @@ public class GroupUser implements IDataP
 	@Element(data = true, required = false)
 	private boolean moderator;
 	
+	public GroupUser() {}
+	
 	public GroupUser(Group group) {
 		this.group = group;
 	}

Modified: 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/UserServiceTest.java?rev=1721372&r1=1721371&r2=1721372&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/UserServiceTest.java Tue Dec 22 11:51:48 2015
@@ -18,10 +18,17 @@
  */
 package org.apache.openmeetings.test.webservice;
 
+import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
 
+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;
 
@@ -36,6 +43,31 @@ public class UserServiceTest extends Abs
 	@Test
 	public void loginTest() {
 		ServiceResult r = getClient(USER_SERVICE_URL).path("/login").query("user", username).query("pass", userpass).get(ServiceResult.class);
-		assertNotNull(r);
+		assertNotNull("Valid ServiceResult should be returned", r);
+		assertEquals("Login should be successful", r.getType(), Type.SUCCESS.name());
+	}
+
+	@Test
+	public void hashTest() {
+		ServiceResult r = getClient(USER_SERVICE_URL).path("/login").query("user", username).query("pass", userpass).get(ServiceResult.class);
+		assertEquals("Login should be successful", r.getType(), Type.SUCCESS.name());
+		ExternalUserDTO user = new ExternalUserDTO();
+		user.setExternalId("1");
+		user.setExternalType("OmJunitTests");
+		user.setEmail("user1@junit.openmeetings.apache.org");
+		user.setFirstname("First Name 1");
+		user.setLastname("Last Name 1");
+		user.setLogin("login1");
+		RoomOptionsDTO options = new RoomOptionsDTO();
+		options.setRoomId(5L);
+		options.setModerator(true);
+		Response resp = getClient(USER_SERVICE_URL)
+				.path("/hash")
+				.query("sid", r.getMessage())
+				.form(new Form().param("user", user.toString()).param("options", options.toString()));
+		assertNotNull("Valid ServiceResult should be returned", resp);
+		assertEquals("Call should be successful", Response.Status.OK.getStatusCode(), resp.getStatus());
+		ServiceResult r1 = resp.readEntity(ServiceResult.class);
+		assertEquals("OM Call should be successful", r1.getType(), Type.SUCCESS.name());
 	}
 }

Modified: openmeetings/application/trunk/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/UserWebService.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/UserWebService.java?rev=1721372&r1=1721371&r2=1721372&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/UserWebService.java (original)
+++ openmeetings/application/trunk/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/UserWebService.java Tue Dec 22 11:51:48 2015
@@ -26,6 +26,7 @@ import javax.jws.WebMethod;
 import javax.jws.WebParam;
 import javax.jws.WebService;
 import javax.ws.rs.DELETE;
+import javax.ws.rs.FormParam;
 import javax.ws.rs.GET;
 import javax.ws.rs.POST;
 import javax.ws.rs.Path;
@@ -292,8 +293,8 @@ public class UserWebService {
 	@Path("/hash")
 	public ServiceResult getRoomHash(
 			@WebParam(name="sid") @QueryParam("sid") String sid
-			, @WebParam(name="user") @QueryParam("user") ExternalUserDTO user
-			, @WebParam(name="options") @QueryParam("options") RoomOptionsDTO options
+			, @WebParam(name="user") @FormParam("user") ExternalUserDTO user
+			, @WebParam(name="options") @FormParam("options") RoomOptionsDTO options
 			) throws ServiceException
 	{
 		try {
@@ -328,7 +329,7 @@ public class UserWebService {
 				return new ServiceResult(-26L, "Insufficient permissins", Type.ERROR);
 			}
 		} catch (Exception err) {
-			log.error("setUserObjectWithAndGenerateRoomHash", err);
+			log.error("getRoomHash", err);
 			throw new ServiceException(err.getMessage());
 		}
 		return new ServiceResult(-1L, "Unknown error", Type.ERROR);