mirror of https://github.com/OpenVidu/openvidu.git
openvidu-test-e2e: fixed composed recording tests
parent
0d00ad8fee
commit
b5f83ea7cc
|
@ -59,6 +59,10 @@ public class CustomWebhook {
|
||||||
CustomWebhook.context.close();
|
CustomWebhook.context.close();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static void clean() {
|
||||||
|
CustomWebhook.events.clear();
|
||||||
|
}
|
||||||
|
|
||||||
public synchronized static JsonObject waitForEvent(String eventName, int maxSecondsWait) throws Exception {
|
public synchronized static JsonObject waitForEvent(String eventName, int maxSecondsWait) throws Exception {
|
||||||
if (events.get(eventName) == null) {
|
if (events.get(eventName) == null) {
|
||||||
events.put(eventName, new LinkedBlockingDeque<>());
|
events.put(eventName, new LinkedBlockingDeque<>());
|
||||||
|
|
|
@ -1258,6 +1258,7 @@ public class OpenViduTestAppE2eTest {
|
||||||
}
|
}
|
||||||
|
|
||||||
final String sessionName = "COMPOSED_QUICK_START_RECORDED_SESSION";
|
final String sessionName = "COMPOSED_QUICK_START_RECORDED_SESSION";
|
||||||
|
JsonObject event;
|
||||||
|
|
||||||
// 1. MANUAL mode and recording explicitly stopped
|
// 1. MANUAL mode and recording explicitly stopped
|
||||||
|
|
||||||
|
@ -1314,7 +1315,11 @@ public class OpenViduTestAppE2eTest {
|
||||||
|
|
||||||
checkDockerContainerRunning("openvidu/openvidu-recording", 0);
|
checkDockerContainerRunning("openvidu/openvidu-recording", 0);
|
||||||
|
|
||||||
|
Assert.assertEquals("Wrong recording status", Recording.Status.ready,
|
||||||
|
OV.getRecording(sessionName).getStatus());
|
||||||
|
|
||||||
// 2. ALWAYS mode and recording stopped by session close up
|
// 2. ALWAYS mode and recording stopped by session close up
|
||||||
|
CustomWebhook.clean();
|
||||||
user.getDriver().findElement(By.id("remove-all-users-btn")).click();
|
user.getDriver().findElement(By.id("remove-all-users-btn")).click();
|
||||||
user.getDriver().findElement(By.id("add-user-btn")).click();
|
user.getDriver().findElement(By.id("add-user-btn")).click();
|
||||||
user.getDriver().findElement(By.id("session-name-input-0")).clear();
|
user.getDriver().findElement(By.id("session-name-input-0")).clear();
|
||||||
|
@ -1339,7 +1344,11 @@ public class OpenViduTestAppE2eTest {
|
||||||
user.getEventManager().waitUntilEventReaches("streamCreated", 3);
|
user.getEventManager().waitUntilEventReaches("streamCreated", 3);
|
||||||
user.getEventManager().waitUntilEventReaches("streamPlaying", 3);
|
user.getEventManager().waitUntilEventReaches("streamPlaying", 3);
|
||||||
user.getEventManager().waitUntilEventReaches("recordingStarted", 3);
|
user.getEventManager().waitUntilEventReaches("recordingStarted", 3);
|
||||||
CustomWebhook.waitForEvent("recordingStatusChanged", 1);
|
|
||||||
|
event = CustomWebhook.waitForEvent("recordingStatusChanged", 1); // started
|
||||||
|
Assert.assertEquals("Wrong status in recordingStatusChanged event", "started",
|
||||||
|
event.get("status").getAsString());
|
||||||
|
|
||||||
checkDockerContainerRunning("openvidu/openvidu-recording", 1);
|
checkDockerContainerRunning("openvidu/openvidu-recording", 1);
|
||||||
|
|
||||||
OV.fetch();
|
OV.fetch();
|
||||||
|
@ -1347,6 +1356,57 @@ public class OpenViduTestAppE2eTest {
|
||||||
session.close();
|
session.close();
|
||||||
|
|
||||||
checkDockerContainerRunning("openvidu/openvidu-recording", 0);
|
checkDockerContainerRunning("openvidu/openvidu-recording", 0);
|
||||||
|
|
||||||
|
Assert.assertEquals("Wrong recording status", Recording.Status.ready,
|
||||||
|
OV.getRecording(sessionName + "-1").getStatus());
|
||||||
|
|
||||||
|
// 3. Session closed before recording started should trigger
|
||||||
|
CustomWebhook.clean();
|
||||||
|
user.getDriver().findElement(By.id("remove-all-users-btn")).click();
|
||||||
|
user.getDriver().findElement(By.id("add-user-btn")).click();
|
||||||
|
user.getDriver().findElement(By.id("session-name-input-0")).clear();
|
||||||
|
user.getDriver().findElement(By.id("session-name-input-0")).sendKeys(sessionName);
|
||||||
|
|
||||||
|
user.getDriver().findElement(By.id("session-settings-btn-0")).click();
|
||||||
|
Thread.sleep(1000);
|
||||||
|
user.getDriver().findElement(By.id("recording-mode-select")).click();
|
||||||
|
Thread.sleep(500);
|
||||||
|
user.getDriver().findElement(By.id("option-ALWAYS")).click();
|
||||||
|
Thread.sleep(500);
|
||||||
|
user.getDriver().findElement(By.id("output-mode-select")).click();
|
||||||
|
Thread.sleep(500);
|
||||||
|
user.getDriver().findElement(By.id("option-COMPOSED_QUICK_START")).click();
|
||||||
|
Thread.sleep(500);
|
||||||
|
user.getDriver().findElement(By.id("save-btn")).click();
|
||||||
|
Thread.sleep(1000);
|
||||||
|
|
||||||
|
user.getDriver().findElement(By.className("join-btn")).click();
|
||||||
|
user.getEventManager().waitUntilEventReaches("connectionCreated", 6);
|
||||||
|
user.getEventManager().waitUntilEventReaches("accessAllowed", 3);
|
||||||
|
user.getEventManager().waitUntilEventReaches("streamCreated", 4);
|
||||||
|
user.getEventManager().waitUntilEventReaches("streamPlaying", 4);
|
||||||
|
checkDockerContainerRunning("openvidu/openvidu-recording", 1);
|
||||||
|
|
||||||
|
OV.fetch();
|
||||||
|
session = OV.getActiveSessions().get(0);
|
||||||
|
session.close();
|
||||||
|
|
||||||
|
// Recording hasn't had time to start. Should trigger stopped, started, failed
|
||||||
|
event = CustomWebhook.waitForEvent("recordingStatusChanged", 1); // stopped
|
||||||
|
Assert.assertEquals("Wrong status in recordingStatusChanged event", "stopped",
|
||||||
|
event.get("status").getAsString());
|
||||||
|
event = CustomWebhook.waitForEvent("recordingStatusChanged", 1); // started
|
||||||
|
Assert.assertEquals("Wrong status in recordingStatusChanged event", "started",
|
||||||
|
event.get("status").getAsString());
|
||||||
|
event = CustomWebhook.waitForEvent("recordingStatusChanged", 1); // failed
|
||||||
|
Assert.assertEquals("Wrong status in recordingStatusChanged event", "failed",
|
||||||
|
event.get("status").getAsString());
|
||||||
|
|
||||||
|
checkDockerContainerRunning("openvidu/openvidu-recording", 0);
|
||||||
|
|
||||||
|
Assert.assertEquals("Wrong recording status", Recording.Status.failed,
|
||||||
|
OV.getRecording(sessionName + "-2").getStatus());
|
||||||
|
|
||||||
} finally {
|
} finally {
|
||||||
CustomWebhook.shutDown();
|
CustomWebhook.shutDown();
|
||||||
}
|
}
|
||||||
|
@ -2381,9 +2441,10 @@ public class OpenViduTestAppE2eTest {
|
||||||
.recordingLayout(RecordingLayout.BEST_FIT).resolution("1280x720").hasVideo(true).hasAudio(false)
|
.recordingLayout(RecordingLayout.BEST_FIT).resolution("1280x720").hasVideo(true).hasAudio(false)
|
||||||
.name(customRecordingName).build();
|
.name(customRecordingName).build();
|
||||||
|
|
||||||
|
// Start recording method should block until video exists and size > 0
|
||||||
Recording recording2 = OV.startRecording(session.getSessionId(), recordingProperties);
|
Recording recording2 = OV.startRecording(session.getSessionId(), recordingProperties);
|
||||||
recording2 = OV.stopRecording(recording2.getId());
|
recording2 = OV.stopRecording(recording2.getId());
|
||||||
Assert.assertEquals("Wrong recording status", Recording.Status.failed, recording2.getStatus());
|
Assert.assertEquals("Wrong recording status", Recording.Status.ready, recording2.getStatus());
|
||||||
OV.deleteRecording(recording2.getId());
|
OV.deleteRecording(recording2.getId());
|
||||||
|
|
||||||
recording2 = OV.startRecording(session.getSessionId(), recordingProperties);
|
recording2 = OV.startRecording(session.getSessionId(), recordingProperties);
|
||||||
|
|
Loading…
Reference in New Issue