openvidu-test-e2e: new EXTERNAL_CUSTOM_LAYOUT_PARAMS system property

pull/550/head
pabloFuente 2020-10-01 22:03:01 +02:00
parent 528372e6f6
commit 18848658f5
2 changed files with 44 additions and 7 deletions

View File

@ -104,7 +104,7 @@ node('container') {
} }
stage ('OpenVidu E2E tests') { stage ('OpenVidu E2E tests') {
try { try {
sh 'cd openvidu/openvidu-test-e2e && sudo mvn --batch-mode -DAPP_URL=https://172.17.0.1:4200/ -DOPENVIDU_URL=https://172.17.0.1:4443/ -DREMOTE_URL_CHROME=http://172.17.0.1:6666/wd/hub/ -DREMOTE_URL_FIREFOX=http://172.17.0.1:6667/wd/hub/ -DEXTERNAL_CUSTOM_LAYOUT_URL=http://172.17.0.1:5555?sessionId=CUSTOM_LAYOUT_SESSION&secret=MY_SECRET test' sh 'cd openvidu/openvidu-test-e2e && sudo mvn --batch-mode -DAPP_URL=https://172.17.0.1:4200/ -DOPENVIDU_URL=https://172.17.0.1:4443/ -DREMOTE_URL_CHROME=http://172.17.0.1:6666/wd/hub/ -DREMOTE_URL_FIREFOX=http://172.17.0.1:6667/wd/hub/ -DEXTERNAL_CUSTOM_LAYOUT_URL=http://172.17.0.1:5555 -DEXTERNAL_CUSTOM_LAYOUT_PARAMS=sessionId,CUSTOM_LAYOUT_SESSION,secret,MY_SECRET test'
} }
finally { finally {
junit 'openvidu/openvidu-test-e2e/**/target/surefire-reports/TEST-*.xml' junit 'openvidu/openvidu-test-e2e/**/target/surefire-reports/TEST-*.xml'

View File

@ -43,6 +43,8 @@ import java.util.concurrent.ConcurrentLinkedQueue;
import java.util.concurrent.CountDownLatch; import java.util.concurrent.CountDownLatch;
import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit;
import java.util.function.Function; import java.util.function.Function;
import java.util.stream.Collectors;
import java.util.stream.Stream;
import javax.imageio.ImageIO; import javax.imageio.ImageIO;
@ -123,7 +125,8 @@ public class OpenViduTestAppE2eTest {
static String OPENVIDU_SECRET = "MY_SECRET"; static String OPENVIDU_SECRET = "MY_SECRET";
static String OPENVIDU_URL = "https://localhost:4443/"; static String OPENVIDU_URL = "https://localhost:4443/";
static String APP_URL = "http://localhost:4200/"; static String APP_URL = "http://localhost:4200/";
static String EXTERNAL_CUSTOM_LAYOUT_URL = "http://localhost:5555?sessionId=CUSTOM_LAYOUT_SESSION&secret=MY_SECRET"; static String EXTERNAL_CUSTOM_LAYOUT_URL = "http://localhost:5555";
static String EXTERNAL_CUSTOM_LAYOUT_PARAMS = "sessionId,CUSTOM_LAYOUT_SESSION,secret,MY_SECRET";
static Exception ex = null; static Exception ex = null;
private final Object lock = new Object(); private final Object lock = new Object();
@ -164,6 +167,33 @@ public class OpenViduTestAppE2eTest {
} }
log.info("Using URL {} to connect to external custom layout", EXTERNAL_CUSTOM_LAYOUT_URL); log.info("Using URL {} to connect to external custom layout", EXTERNAL_CUSTOM_LAYOUT_URL);
String externalCustomLayoutParams = System.getProperty("EXTERNAL_CUSTOM_LAYOUT_PARAMS");
if (externalCustomLayoutParams != null) {
// Parse external layout parameters and build a URL formatted params string
List<String> params = Stream.of(externalCustomLayoutParams.split(",", -1)).collect(Collectors.toList());
if (params.size() % 2 != 0) {
log.error(
"Wrong configuration property EXTERNAL_CUSTOM_LAYOUT_PARAMS. Must be a comma separated list with an even number of elements. e.g: EXTERNAL_CUSTOM_LAYOUT_PARAMS=param1,value1,param2,value2");
Assert.fail();
return;
} else {
EXTERNAL_CUSTOM_LAYOUT_PARAMS = "";
for (int i = 0; i < params.size(); i++) {
if (i % 2 == 0) {
// Param name
EXTERNAL_CUSTOM_LAYOUT_PARAMS += params.get(i) + "=";
} else {
// Param value
EXTERNAL_CUSTOM_LAYOUT_PARAMS += params.get(i);
if (i < params.size() - 1) {
EXTERNAL_CUSTOM_LAYOUT_PARAMS += "&";
}
}
}
}
}
log.info("Using URL {} to connect to external custom layout", EXTERNAL_CUSTOM_LAYOUT_PARAMS);
String openviduUrl = System.getProperty("OPENVIDU_URL"); String openviduUrl = System.getProperty("OPENVIDU_URL");
if (openviduUrl != null) { if (openviduUrl != null) {
OPENVIDU_URL = openviduUrl; OPENVIDU_URL = openviduUrl;
@ -1840,7 +1870,7 @@ public class OpenViduTestAppE2eTest {
Thread.sleep(1000); Thread.sleep(1000);
tokeInput = user.getDriver().findElement(By.id("default-custom-layout-input")); tokeInput = user.getDriver().findElement(By.id("default-custom-layout-input"));
tokeInput.clear(); tokeInput.clear();
tokeInput.sendKeys(EXTERNAL_CUSTOM_LAYOUT_URL); tokeInput.sendKeys(EXTERNAL_CUSTOM_LAYOUT_URL + "?" + EXTERNAL_CUSTOM_LAYOUT_PARAMS);
user.getDriver().findElement(By.id("save-btn")).click(); user.getDriver().findElement(By.id("save-btn")).click();
Thread.sleep(1000); Thread.sleep(1000);
@ -2304,11 +2334,11 @@ public class OpenViduTestAppE2eTest {
.allowedFilters(new String[] { "GStreamerFilter" }).build(); .allowedFilters(new String[] { "GStreamerFilter" }).build();
TokenOptions tokenOptionsModerator = new TokenOptions.Builder().role(OpenViduRole.MODERATOR) TokenOptions tokenOptionsModerator = new TokenOptions.Builder().role(OpenViduRole.MODERATOR)
.data(serverDataModerator).kurentoOptions(kurentoOptions).build(); .data(serverDataModerator).kurentoOptions(kurentoOptions).build();
String tokenModerator = session.generateToken(tokenOptionsModerator); String tokenModerator = session.createToken(tokenOptionsModerator).getToken();
TokenOptions tokenOptionsSubscriber = new TokenOptions.Builder().role(OpenViduRole.SUBSCRIBER) TokenOptions tokenOptionsSubscriber = new TokenOptions.Builder().role(OpenViduRole.SUBSCRIBER)
.data(serverDataSubscriber).build(); .data(serverDataSubscriber).build();
String tokenSubscriber = session.generateToken(tokenOptionsSubscriber); String tokenSubscriber = session.createToken(tokenOptionsSubscriber).getToken();
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());
@ -2656,9 +2686,14 @@ public class OpenViduTestAppE2eTest {
} }
pub = connectionModerator.getPublishers().get(0); pub = connectionModerator.getPublishers().get(0);
// TODO: test delete unused Token, update unused Token and update ongoing
// Connection
session.forceUnpublish(pub); session.forceUnpublish(pub);
user.getEventManager().waitUntilEventReaches("streamDestroyed", 6); user.getEventManager().waitUntilEventReaches("streamDestroyed", 6);
Assert.assertFalse("OpenVidu.fetch() should return false", OV.fetch()); Assert.assertFalse(
"OpenVidu.fetch() should return false because Session.forceUnpublish() already updates local objects",
OV.fetch());
session.getActiveConnections().forEach(con -> { session.getActiveConnections().forEach(con -> {
Assert.assertEquals("Wrong number of Publishers", 0, con.getPublishers().size()); Assert.assertEquals("Wrong number of Publishers", 0, con.getPublishers().size());
@ -2668,7 +2703,9 @@ public class OpenViduTestAppE2eTest {
session.forceDisconnect(connectionModerator); session.forceDisconnect(connectionModerator);
user.getEventManager().waitUntilEventReaches("sessionDisconnected", 1); user.getEventManager().waitUntilEventReaches("sessionDisconnected", 1);
user.getEventManager().waitUntilEventReaches("connectionDestroyed", 1); user.getEventManager().waitUntilEventReaches("connectionDestroyed", 1);
Assert.assertFalse("OpenVidu.fetch() should return false", OV.fetch()); Assert.assertFalse(
"OpenVidu.fetch() should return false because Session.forceDisconnect() already updates local objects",
OV.fetch());
session.close(); session.close();