openvidu-test-e2e: Java client test extended

pull/203/head
pabloFuente 2019-02-11 11:39:36 +01:00
parent 498b8e6bda
commit 8fc1f500f5
2 changed files with 72 additions and 16 deletions

View File

@ -465,9 +465,8 @@ public class SessionRestController {
} }
RecordingProperties.Builder builder = new RecordingProperties.Builder(); RecordingProperties.Builder builder = new RecordingProperties.Builder();
if (finalOutputMode == null) { builder.outputMode(
builder.outputMode(session.getSessionProperties().defaultOutputMode()); finalOutputMode == null ? session.getSessionProperties().defaultOutputMode() : finalOutputMode);
}
if (io.openvidu.java.client.Recording.OutputMode.COMPOSED.equals(finalOutputMode)) { if (io.openvidu.java.client.Recording.OutputMode.COMPOSED.equals(finalOutputMode)) {
if (resolution != null) { if (resolution != null) {
builder.resolution(resolution); builder.resolution(resolution);

View File

@ -80,6 +80,7 @@ import com.mashape.unirest.http.HttpMethod;
import io.github.bonigarcia.SeleniumExtension; import io.github.bonigarcia.SeleniumExtension;
import io.github.bonigarcia.wdm.WebDriverManager; import io.github.bonigarcia.wdm.WebDriverManager;
import io.openvidu.java.client.Connection;
import io.openvidu.java.client.KurentoOptions; import io.openvidu.java.client.KurentoOptions;
import io.openvidu.java.client.MediaMode; import io.openvidu.java.client.MediaMode;
import io.openvidu.java.client.OpenVidu; import io.openvidu.java.client.OpenVidu;
@ -1915,6 +1916,7 @@ public class OpenViduTestAppE2eTest {
@Test @Test
@DisplayName("openvidu-java-client test") @DisplayName("openvidu-java-client test")
void openViduJavaClientTest() throws Exception { void openViduJavaClientTest() throws Exception {
isRecordingTest = true;
setupBrowser("chrome"); setupBrowser("chrome");
@ -1923,8 +1925,10 @@ public class OpenViduTestAppE2eTest {
user.getDriver().findElement(By.id("one2one-btn")).click(); user.getDriver().findElement(By.id("one2one-btn")).click();
final String customSessionId = "openviduJavaClientSession"; final String customSessionId = "openviduJavaClientSession";
final String serverData1 = "SERVER_DATA_1"; final String serverDataModerator = "SERVER_DATA_MODERATOR";
final String serverData2 = "SERVER_DATA_2"; final String serverDataSubscriber = "SERVER_DATA_SUBSCRIBER";
final String clientDataModerator = "CLIENT_DATA_MODERATOR";
final String clientDataSubscriber = "CLIENT_DATA_SUBSCRIBER";
Assert.assertFalse("OV.fetch() should return false if OV.createSession() has not been called", OV.fetch()); Assert.assertFalse("OV.fetch() should return false if OV.createSession() has not been called", OV.fetch());
List<Session> sessions = OV.getActiveSessions(); List<Session> sessions = OV.getActiveSessions();
@ -1942,33 +1946,42 @@ public class OpenViduTestAppE2eTest {
KurentoOptions kurentoOptions = new KurentoOptions.Builder().videoMaxRecvBandwidth(250) KurentoOptions kurentoOptions = new KurentoOptions.Builder().videoMaxRecvBandwidth(250)
.allowedFilters(new String[] { "GStreamerFilter" }).build(); .allowedFilters(new String[] { "GStreamerFilter" }).build();
TokenOptions tokenOptions1 = new TokenOptions.Builder().role(OpenViduRole.MODERATOR).data(serverData1) TokenOptions tokenOptionsModerator = new TokenOptions.Builder().role(OpenViduRole.MODERATOR)
.kurentoOptions(kurentoOptions).build(); .data(serverDataModerator).kurentoOptions(kurentoOptions).build();
String token1 = session.generateToken(tokenOptions1); String tokenModerator = session.generateToken(tokenOptionsModerator);
TokenOptions tokenOptions2 = new TokenOptions.Builder().role(OpenViduRole.SUBSCRIBER).data(serverData2).build(); TokenOptions tokenOptionsSubscriber = new TokenOptions.Builder().role(OpenViduRole.SUBSCRIBER)
String token2 = session.generateToken(tokenOptions2); .data(serverDataSubscriber).build();
String tokenSubscriber = session.generateToken(tokenOptionsSubscriber);
Assert.assertFalse("Session.fetch() should return false until a user has connected", session.fetch()); Assert.assertFalse("Session.fetch() should return false until a user has connected", session.fetch());
user.getDriver().findElement(By.id("session-settings-btn-0")).click(); // Set client data 1
Thread.sleep(1000); WebElement clientDataInput = user.getDriver().findElement(By.cssSelector("#client-data-input-0"));
clientDataInput.clear();
clientDataInput.sendKeys(clientDataModerator);
// Set token 1 // Set token 1
user.getDriver().findElement(By.id("session-settings-btn-0")).click();
Thread.sleep(1000);
WebElement tokeInput = user.getDriver().findElement(By.cssSelector("#custom-token-div input")); WebElement tokeInput = user.getDriver().findElement(By.cssSelector("#custom-token-div input"));
tokeInput.clear(); tokeInput.clear();
tokeInput.sendKeys(token1); tokeInput.sendKeys(tokenModerator);
user.getDriver().findElement(By.id("save-btn")).click(); user.getDriver().findElement(By.id("save-btn")).click();
Thread.sleep(1000); Thread.sleep(1000);
user.getDriver().findElement(By.id("session-settings-btn-1")).click(); // Set client data 2
Thread.sleep(1000); clientDataInput = user.getDriver().findElement(By.cssSelector("#client-data-input-1"));
clientDataInput.clear();
clientDataInput.sendKeys(clientDataSubscriber);
// Set token 2 // Set token 2
user.getDriver().findElement(By.id("session-settings-btn-1")).click();
Thread.sleep(1000);
tokeInput = user.getDriver().findElement(By.cssSelector("#custom-token-div input")); tokeInput = user.getDriver().findElement(By.cssSelector("#custom-token-div input"));
tokeInput.clear(); tokeInput.clear();
tokeInput.sendKeys(token2); tokeInput.sendKeys(tokenSubscriber);
user.getDriver().findElement(By.id("save-btn")).click(); user.getDriver().findElement(By.id("save-btn")).click();
Thread.sleep(1000); Thread.sleep(1000);
@ -1979,6 +1992,7 @@ public class OpenViduTestAppE2eTest {
user.getEventManager().waitUntilEventReaches("accessAllowed", 1); user.getEventManager().waitUntilEventReaches("accessAllowed", 1);
user.getEventManager().waitUntilEventReaches("streamCreated", 2); user.getEventManager().waitUntilEventReaches("streamCreated", 2);
user.getEventManager().waitUntilEventReaches("streamPlaying", 2); user.getEventManager().waitUntilEventReaches("streamPlaying", 2);
user.getEventManager().waitUntilEventReaches("recordingStarted", 1);
final int numberOfVideos = user.getDriver().findElements(By.tagName("video")).size(); final int numberOfVideos = user.getDriver().findElements(By.tagName("video")).size();
Assert.assertEquals("Expected 2 videos but found " + numberOfVideos, 2, numberOfVideos); Assert.assertEquals("Expected 2 videos but found " + numberOfVideos, 2, numberOfVideos);
@ -1988,6 +2002,48 @@ public class OpenViduTestAppE2eTest {
Assert.assertTrue("Session.fetch() should return true after users connected", OV.fetch()); Assert.assertTrue("Session.fetch() should return true after users connected", OV.fetch());
Assert.assertFalse("Session.fetch() should return false after OpenVidu.fetch() has been called", Assert.assertFalse("Session.fetch() should return false after OpenVidu.fetch() has been called",
session.fetch()); session.fetch());
Assert.assertEquals("Wrong sessionId", customSessionId, session.getSessionId());
Assert.assertEquals("Wrong recording mode", RecordingMode.ALWAYS, session.getProperties().recordingMode());
Assert.assertEquals("Wrong default output mode", Recording.OutputMode.INDIVIDUAL,
session.getProperties().defaultOutputMode());
Assert.assertTrue("Session should be being recorded", session.isBeingRecorded());
Assert.assertEquals("Expected 2 active connections but found " + session.getActiveConnections().size(), 2,
session.getActiveConnections().size());
Connection connectionModerator;
Connection connectionSubscriber;
if (OpenViduRole.MODERATOR.equals(session.getActiveConnections().get(0).getRole())) {
connectionModerator = session.getActiveConnections().get(0);
connectionSubscriber = session.getActiveConnections().get(1);
} else {
connectionModerator = session.getActiveConnections().get(1);
connectionSubscriber = session.getActiveConnections().get(0);
}
Assert.assertEquals(OpenViduRole.SUBSCRIBER, connectionSubscriber.getRole());
Assert.assertTrue("Wrong platform for moderator connection",
connectionModerator.getPlatform().startsWith("Chrome"));
Assert.assertTrue("Wrong platform for subscriber connection",
connectionSubscriber.getPlatform().startsWith("Chrome"));
// connection1 is moderator
Assert.assertEquals("Expected 1 publisher for connection " + connectionModerator.getConnectionId()
+ " but found " + connectionModerator.getPublishers().size(), 1,
connectionModerator.getPublishers().size());
Assert.assertEquals("Expected 0 subscribers for connection " + connectionModerator.getConnectionId()
+ " but found " + connectionModerator.getSubscribers().size(), 0,
connectionModerator.getSubscribers().size());
Assert.assertEquals("Expected 0 publishers for connection " + connectionSubscriber.getConnectionId()
+ " but found " + connectionSubscriber.getPublishers().size(), 0,
connectionSubscriber.getPublishers().size());
Assert.assertEquals(
"Expected 1 subscriber for connection " + connectionSubscriber.getConnectionId() + " but found "
+ connectionSubscriber.getSubscribers().size(),
1, connectionSubscriber.getSubscribers().size());
Assert.assertEquals("Server data doesn't match", serverDataModerator, connectionModerator.getServerData());
Assert.assertEquals("Server data doesn't match", serverDataSubscriber, connectionSubscriber.getServerData());
Assert.assertEquals("Client data doesn't match", clientDataModerator, connectionModerator.getClientData());
Assert.assertEquals("Client data doesn't match", clientDataSubscriber, connectionSubscriber.getClientData());
// Verify that users have the role and data they were assigned through // Verify that users have the role and data they were assigned through
// TokenOptions // TokenOptions
@ -1998,6 +2054,7 @@ public class OpenViduTestAppE2eTest {
@Test @Test
@DisplayName("REST API test") @DisplayName("REST API test")
void restApiTest() throws Exception { void restApiTest() throws Exception {
isRecordingTest = true;
log.info("REST API test"); log.info("REST API test");