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);