openvidu-test-e2e: update TestApp Pro tests to new version of JUnit

pull/772/head
pabloFuente 2022-11-27 18:15:32 +01:00
parent 1706491538
commit 8347e521cd
1 changed files with 168 additions and 157 deletions

View File

@ -1,6 +1,6 @@
package io.openvidu.test.e2e; package io.openvidu.test.e2e;
import static org.junit.Assert.fail; import static org.junit.jupiter.api.Assertions.fail;
import java.awt.Point; import java.awt.Point;
import java.io.File; import java.io.File;
@ -22,7 +22,7 @@ import java.util.stream.Collectors;
import java.util.stream.Stream; import java.util.stream.Stream;
import org.apache.http.HttpStatus; import org.apache.http.HttpStatus;
import org.junit.Assert; import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Disabled;
import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.DisplayName;
@ -176,20 +176,19 @@ public class OpenViduProTestAppE2eTest extends AbstractOpenViduTestappE2eTest {
String fileStreamId = file.get("streamId").getAsString(); String fileStreamId = file.get("streamId").getAsString();
if (fileStreamId.equals(streamId1)) { if (fileStreamId.equals(streamId1)) {
// Normal recorded user // Normal recorded user
Assert.assertEquals("Wrong connectionId file metadata property", connectionId1, Assertions.assertEquals(connectionId1, file.get("connectionId").getAsString(),
file.get("connectionId").getAsString()); "Wrong connectionId file metadata property");
long msDuration = file.get("endTimeOffset").getAsLong() - file.get("startTimeOffset").getAsLong(); long msDuration = file.get("endTimeOffset").getAsLong() - file.get("startTimeOffset").getAsLong();
Assert.assertTrue("Wrong recording duration of individual file. Difference: " + (msDuration - 4000), Assertions.assertTrue(msDuration - 4000 < 750,
msDuration - 4000 < 750); "Wrong recording duration of individual file. Difference: " + (msDuration - 4000));
count1++; count1++;
} else if (fileStreamId.equals(streamId2)) { } else if (fileStreamId.equals(streamId2)) {
// Dynamically recorded user // Dynamically recorded user
Assert.assertEquals("Wrong connectionId file metadata property", connectionId2, Assertions.assertEquals(connectionId2, file.get("connectionId").getAsString(),
file.get("connectionId").getAsString()); "Wrong connectionId file metadata property");
long msDuration = file.get("endTimeOffset").getAsLong() - file.get("startTimeOffset").getAsLong(); long msDuration = file.get("endTimeOffset").getAsLong() - file.get("startTimeOffset").getAsLong();
Assert.assertTrue( Assertions.assertTrue(Math.abs(msDuration - 1000) < 150,
"Wrong recording duration of individual file. Difference: " + Math.abs(msDuration - 1000), "Wrong recording duration of individual file. Difference: " + Math.abs(msDuration - 1000));
Math.abs(msDuration - 1000) < 150);
String fileName = file.get("name").getAsString(); String fileName = file.get("name").getAsString();
@ -203,15 +202,16 @@ public class OpenViduProTestAppE2eTest extends AbstractOpenViduTestappE2eTest {
} }
} }
Assert.assertTrue("File name " + fileName + " not found among regex " + regexNames.toString(), found); Assertions.assertTrue(found,
"File name " + fileName + " not found among regex " + regexNames.toString());
count2++; count2++;
} else { } else {
Assert.fail("Metadata file element does not belong to a known stream (" + fileStreamId + ")"); Assertions.fail("Metadata file element does not belong to a known stream (" + fileStreamId + ")");
} }
} }
Assert.assertEquals("Wrong number of recording files for stream " + streamId1, 1, count1); Assertions.assertEquals(1, count1, "Wrong number of recording files for stream " + streamId1);
Assert.assertEquals("Wrong number of recording files for stream " + streamId2, 3, count2); Assertions.assertEquals(3, count2, "Wrong number of recording files for stream " + streamId2);
Assert.assertTrue("Some expected file name didn't existed: " + regexNames.toString(), regexNames.isEmpty()); Assertions.assertTrue(regexNames.isEmpty(), "Some expected file name didn't existed: " + regexNames.toString());
} }
@Test @Test
@ -280,20 +280,20 @@ public class OpenViduProTestAppE2eTest extends AbstractOpenViduTestappE2eTest {
// Test with openvidu-java-client // Test with openvidu-java-client
OpenVidu OV = new OpenVidu(OpenViduTestAppE2eTest.OPENVIDU_URL, OpenViduTestAppE2eTest.OPENVIDU_SECRET); OpenVidu OV = new OpenVidu(OpenViduTestAppE2eTest.OPENVIDU_URL, OpenViduTestAppE2eTest.OPENVIDU_SECRET);
Assert.assertTrue("OpenVidu object should have changed", OV.fetch()); Assertions.assertTrue(OV.fetch(), "OpenVidu object should have changed");
Session session = OV.getActiveSessions().get(0); Session session = OV.getActiveSessions().get(0);
try { try {
session.updateConnection("WRONG_CONNECTION_ID", new ConnectionProperties.Builder().build()); session.updateConnection("WRONG_CONNECTION_ID", new ConnectionProperties.Builder().build());
Assert.fail("Expected OpenViduHttpException exception"); Assertions.fail("Expected OpenViduHttpException exception");
} catch (OpenViduHttpException exception) { } catch (OpenViduHttpException exception) {
Assert.assertEquals("Wrong HTTP status", HttpStatus.SC_NOT_FOUND, exception.getStatus()); Assertions.assertEquals(HttpStatus.SC_NOT_FOUND, exception.getStatus(), "Wrong HTTP status");
} }
Assert.assertFalse("Session object should not have changed", session.fetch()); Assertions.assertFalse(session.fetch(), "Session object should not have changed");
Connection connection = session.updateConnection(connectionId, Connection connection = session.updateConnection(connectionId,
new ConnectionProperties.Builder().role(OpenViduRole.SUBSCRIBER).record(false).build()); new ConnectionProperties.Builder().role(OpenViduRole.SUBSCRIBER).record(false).build());
Assert.assertEquals("Wrong role Connection property", OpenViduRole.SUBSCRIBER, connection.getRole()); Assertions.assertEquals(OpenViduRole.SUBSCRIBER, connection.getRole(), "Wrong role Connection property");
Assert.assertFalse("Wrong record Connection property", connection.record()); Assertions.assertFalse(connection.record(), "Wrong record Connection property");
Assert.assertEquals("Wrong data Connection property", "MY_SERVER_PRO_DATA", connection.getServerData()); Assertions.assertEquals("MY_SERVER_PRO_DATA", connection.getServerData(), "Wrong data Connection property");
OpenViduTestappUser user = setupBrowserAndConnectToOpenViduTestapp("chrome"); OpenViduTestappUser user = setupBrowserAndConnectToOpenViduTestapp("chrome");
@ -315,11 +315,12 @@ public class OpenViduProTestAppE2eTest extends AbstractOpenViduTestappE2eTest {
try { try {
user.getWaiter().until(ExpectedConditions.alertIsPresent()); user.getWaiter().until(ExpectedConditions.alertIsPresent());
Alert alert = user.getDriver().switchTo().alert(); Alert alert = user.getDriver().switchTo().alert();
Assert.assertTrue("Alert does not contain expected text", Assertions.assertTrue(
alert.getText().equals("OPENVIDU_PERMISSION_DENIED: You don't have permissions to publish")); alert.getText().equals("OPENVIDU_PERMISSION_DENIED: You don't have permissions to publish"),
"Alert does not contain expected text");
alert.accept(); alert.accept();
} catch (Exception e) { } catch (Exception e) {
Assert.fail("Alert exception"); Assertions.fail("Alert exception");
} finally { } finally {
user.getEventManager().resetEventThread(false); user.getEventManager().resetEventThread(false);
} }
@ -332,12 +333,12 @@ public class OpenViduProTestAppE2eTest extends AbstractOpenViduTestappE2eTest {
restClient.rest(HttpMethod.GET, "/openvidu/api/sessions/CUSTOM_SESSION_ID", null, HttpStatus.SC_OK, true, false, restClient.rest(HttpMethod.GET, "/openvidu/api/sessions/CUSTOM_SESSION_ID", null, HttpStatus.SC_OK, true, false,
true, mergeJson(DEFAULT_JSON_SESSION, "{'mediaNodeId':'STR'}", new String[0])); true, mergeJson(DEFAULT_JSON_SESSION, "{'mediaNodeId':'STR'}", new String[0]));
Assert.assertTrue("Session object should have changed", session.fetch()); Assertions.assertTrue(session.fetch(), "Session object should have changed");
connection = session.getActiveConnections().get(0); connection = session.getActiveConnections().get(0);
final Long activeAt = connection.activeAt(); final Long activeAt = connection.activeAt();
Assert.assertTrue("activeAt should be greater than createdAt in Connection object", activeAt > createdAt); Assertions.assertTrue(activeAt > createdAt, "activeAt should be greater than createdAt in Connection object");
Assert.assertEquals("Wrong role in Connection object", OpenViduRole.SUBSCRIBER, connection.getRole()); Assertions.assertEquals(OpenViduRole.SUBSCRIBER, connection.getRole(), "Wrong role in Connection object");
Assert.assertFalse("Wrong record in Connection object", connection.record()); Assertions.assertFalse(connection.record(), "Wrong record in Connection object");
/** UPDATE ACTIVE CONNECTION **/ /** UPDATE ACTIVE CONNECTION **/
@ -422,41 +423,41 @@ public class OpenViduProTestAppE2eTest extends AbstractOpenViduTestappE2eTest {
Thread.sleep(500); Thread.sleep(500);
// Test with openvidu-java-client // Test with openvidu-java-client
Assert.assertFalse("Session object should not have changed", session.fetch()); Assertions.assertFalse(session.fetch(), "Session object should not have changed");
try { try {
session.updateConnection("WRONG_CONNECTION_ID", new ConnectionProperties.Builder().build()); session.updateConnection("WRONG_CONNECTION_ID", new ConnectionProperties.Builder().build());
Assert.fail("Expected OpenViduHttpException exception"); Assertions.fail("Expected OpenViduHttpException exception");
} catch (OpenViduHttpException exception) { } catch (OpenViduHttpException exception) {
Assert.assertEquals("Wrong HTTP status", HttpStatus.SC_NOT_FOUND, exception.getStatus()); Assertions.assertEquals(HttpStatus.SC_NOT_FOUND, exception.getStatus(), "Wrong HTTP status");
} }
Assert.assertFalse("Session object should not have changed", session.fetch()); Assertions.assertFalse(session.fetch(), "Session object should not have changed");
connection = session.updateConnection(connectionId, connection = session.updateConnection(connectionId,
new ConnectionProperties.Builder().role(OpenViduRole.PUBLISHER).build()); new ConnectionProperties.Builder().role(OpenViduRole.PUBLISHER).build());
user.getEventManager().waitUntilEventReaches("connectionPropertyChanged", 7); user.getEventManager().waitUntilEventReaches("connectionPropertyChanged", 7);
Assert.assertFalse("Session object should not have changed", session.fetch()); Assertions.assertFalse(session.fetch(), "Session object should not have changed");
Assert.assertEquals("Wrong connectionId in Connection object", connectionId, connection.getConnectionId()); Assertions.assertEquals(connectionId, connection.getConnectionId(), "Wrong connectionId in Connection object");
Assert.assertEquals("Wrong role in Connection object", OpenViduRole.PUBLISHER, connection.getRole()); Assertions.assertEquals(OpenViduRole.PUBLISHER, connection.getRole(), "Wrong role in Connection object");
Assert.assertFalse("Wrong record in Connection object", connection.record()); Assertions.assertFalse(connection.record(), "Wrong record in Connection object");
Assert.assertEquals("Wrong status in Connection object", "active", connection.getStatus()); Assertions.assertEquals("active", connection.getStatus(), "Wrong status in Connection object");
connection = session.updateConnection(connectionId, connection = session.updateConnection(connectionId,
new ConnectionProperties.Builder().role(OpenViduRole.SUBSCRIBER).build()); new ConnectionProperties.Builder().role(OpenViduRole.SUBSCRIBER).build());
user.getEventManager().waitUntilEventReaches("connectionPropertyChanged", 8); user.getEventManager().waitUntilEventReaches("connectionPropertyChanged", 8);
Assert.assertEquals("Wrong role in Connection object", OpenViduRole.SUBSCRIBER, connection.getRole()); Assertions.assertEquals(OpenViduRole.SUBSCRIBER, connection.getRole(), "Wrong role in Connection object");
Assert.assertFalse("Session object should not have changed", session.fetch()); Assertions.assertFalse(session.fetch(), "Session object should not have changed");
connection = session.updateConnection(connectionId, new ConnectionProperties.Builder() connection = session.updateConnection(connectionId, new ConnectionProperties.Builder()
.role(OpenViduRole.MODERATOR).record(false).data("NO CHANGE").build()); .role(OpenViduRole.MODERATOR).record(false).data("NO CHANGE").build());
user.getEventManager().waitUntilEventReaches("connectionPropertyChanged", 9); user.getEventManager().waitUntilEventReaches("connectionPropertyChanged", 9);
Assert.assertFalse("Session object should not have changed", session.fetch()); Assertions.assertFalse(session.fetch(), "Session object should not have changed");
Assert.assertEquals("Wrong role in Connection object", OpenViduRole.MODERATOR, connection.getRole()); Assertions.assertEquals(OpenViduRole.MODERATOR, connection.getRole(), "Wrong role in Connection object");
Assert.assertFalse("Wrong record in Connection object", connection.record()); Assertions.assertFalse(connection.record(), "Wrong record in Connection object");
Assert.assertEquals("Wrong data in Connection object", "MY_SERVER_PRO_DATA", connection.getServerData()); Assertions.assertEquals("MY_SERVER_PRO_DATA", connection.getServerData(), "Wrong data in Connection object");
Assert.assertEquals("Wrong status in Connection object", "active", connection.getStatus()); Assertions.assertEquals("active", connection.getStatus(), "Wrong status in Connection object");
user.getEventManager().resetEventThread(true); user.getEventManager().resetEventThread(true);
@ -468,10 +469,11 @@ public class OpenViduProTestAppE2eTest extends AbstractOpenViduTestappE2eTest {
user.getEventManager().waitUntilEventReaches("streamCreated", 1); user.getEventManager().waitUntilEventReaches("streamCreated", 1);
// connectionId should be equal to the one brought by the token // connectionId should be equal to the one brought by the token
Assert.assertEquals("Wrong connectionId", connectionId, Assertions.assertEquals(connectionId,
restClient.rest(HttpMethod.GET, "/openvidu/api/sessions/CUSTOM_SESSION_ID", HttpStatus.SC_OK) restClient.rest(HttpMethod.GET, "/openvidu/api/sessions/CUSTOM_SESSION_ID", HttpStatus.SC_OK)
.get("connections").getAsJsonObject().get("content").getAsJsonArray().get(0).getAsJsonObject() .get("connections").getAsJsonObject().get("content").getAsJsonArray().get(0).getAsJsonObject()
.get("connectionId").getAsString()); .get("connectionId").getAsString(),
"Wrong connectionId");
restClient.rest(HttpMethod.DELETE, "/openvidu/api/sessions/CUSTOM_SESSION_ID", HttpStatus.SC_NO_CONTENT); restClient.rest(HttpMethod.DELETE, "/openvidu/api/sessions/CUSTOM_SESSION_ID", HttpStatus.SC_NO_CONTENT);
@ -506,19 +508,19 @@ public class OpenViduProTestAppE2eTest extends AbstractOpenViduTestappE2eTest {
// Create default Connection // Create default Connection
Session session = OV.createSession(); Session session = OV.createSession();
Assert.assertFalse(session.fetch()); Assertions.assertFalse(session.fetch());
Connection connectionDefault = session.createConnection(); Connection connectionDefault = session.createConnection();
Assert.assertFalse(session.fetch()); Assertions.assertFalse(session.fetch());
Assert.assertEquals("Wrong role property", OpenViduRole.PUBLISHER, connectionDefault.getRole()); Assertions.assertEquals(OpenViduRole.PUBLISHER, connectionDefault.getRole(), "Wrong role property");
Assert.assertTrue("Wrong record property", connectionDefault.record()); Assertions.assertTrue(connectionDefault.record(), "Wrong record property");
Assert.assertEquals("Wrong data property", "", connectionDefault.getServerData()); Assertions.assertEquals("", connectionDefault.getServerData(), "Wrong data property");
// Update Connection // Update Connection
session.updateConnection(connectionDefault.getConnectionId(), new ConnectionProperties.Builder() session.updateConnection(connectionDefault.getConnectionId(), new ConnectionProperties.Builder()
.role(OpenViduRole.SUBSCRIBER).record(false).data("WILL HAVE NO EFFECT").build()); .role(OpenViduRole.SUBSCRIBER).record(false).data("WILL HAVE NO EFFECT").build());
Assert.assertEquals("Wrong role property", OpenViduRole.SUBSCRIBER, connectionDefault.getRole()); Assertions.assertEquals(OpenViduRole.SUBSCRIBER, connectionDefault.getRole(), "Wrong role property");
Assert.assertFalse("Wrong record property", connectionDefault.record()); Assertions.assertFalse(connectionDefault.record(), "Wrong record property");
Assert.assertEquals("Wrong data property", "", connectionDefault.getServerData()); Assertions.assertEquals("", connectionDefault.getServerData(), "Wrong data property");
Assert.assertFalse(session.fetch()); Assertions.assertFalse(session.fetch());
// Create custom properties Connection // Create custom properties Connection
long timestamp = System.currentTimeMillis(); long timestamp = System.currentTimeMillis();
@ -528,23 +530,24 @@ public class OpenViduProTestAppE2eTest extends AbstractOpenViduTestappE2eTest {
.videoMinRecvBandwidth(555).videoMaxSendBandwidth(555).videoMinSendBandwidth(555) .videoMinRecvBandwidth(555).videoMaxSendBandwidth(555).videoMinSendBandwidth(555)
.allowedFilters(new String[] { "555" }).build()) .allowedFilters(new String[] { "555" }).build())
.build()); .build());
Assert.assertEquals("Wrong status Connection property", "pending", connection.getStatus()); Assertions.assertEquals("pending", connection.getStatus(), "Wrong status Connection property");
Assert.assertTrue("Wrong timestamp Connection property", connection.createdAt() > timestamp); Assertions.assertTrue(connection.createdAt() > timestamp, "Wrong createdAt Connection property");
Assert.assertTrue("Wrong activeAt Connection property", connection.activeAt() == null); Assertions.assertTrue(connection.activeAt() == null, "Wrong activeAt Connection property");
Assert.assertTrue("Wrong location Connection property", connection.getLocation() == null); Assertions.assertTrue(connection.getLocation() == null, "Wrong location Connection property");
Assert.assertTrue("Wrong platform Connection property", connection.getPlatform() == null); Assertions.assertTrue(connection.getPlatform() == null, "Wrong platform Connection property");
Assert.assertTrue("Wrong clientData Connection property", connection.getClientData() == null); Assertions.assertTrue(connection.getClientData() == null, "Wrong clientData Connection property");
Assert.assertTrue("Wrong publishers Connection property", connection.getPublishers().size() == 0); Assertions.assertTrue(connection.getPublishers().size() == 0, "Wrong publishers Connection property");
Assert.assertTrue("Wrong subscribers Connection property", connection.getSubscribers().size() == 0); Assertions.assertTrue(connection.getSubscribers().size() == 0, "Wrong subscribers Connection property");
Assert.assertTrue("Wrong token Connection property", connection.getToken().contains(session.getSessionId())); Assertions.assertTrue(connection.getToken().contains(session.getSessionId()),
Assert.assertEquals("Wrong type property", ConnectionType.WEBRTC, connection.getType()); "Wrong token Connection property");
Assert.assertEquals("Wrong data property", "SERVER_SIDE_DATA", connection.getServerData()); Assertions.assertEquals(ConnectionType.WEBRTC, connection.getType(), "Wrong type property");
Assert.assertFalse("Wrong record property", connection.record()); Assertions.assertEquals("SERVER_SIDE_DATA", connection.getServerData(), "Wrong data property");
Assert.assertEquals("Wrong role property", OpenViduRole.MODERATOR, connection.getRole()); Assertions.assertFalse(connection.record(), "Wrong record property");
Assert.assertTrue("Wrong rtspUri property", connection.getRtspUri() == null); Assertions.assertEquals(OpenViduRole.MODERATOR, connection.getRole(), "Wrong role property");
Assert.assertTrue("Wrong adaptativeBitrate property", connection.adaptativeBitrate() == null); Assertions.assertTrue(connection.getRtspUri() == null, "Wrong rtspUri property");
Assert.assertTrue("Wrong onlyPlayWithSubscribers property", connection.onlyPlayWithSubscribers() == null); Assertions.assertTrue(connection.adaptativeBitrate() == null, "Wrong adaptativeBitrate property");
Assert.assertTrue("Wrong networkCache property", connection.getNetworkCache() == null); Assertions.assertTrue(connection.onlyPlayWithSubscribers() == null, "Wrong onlyPlayWithSubscribers property");
Assertions.assertTrue(connection.getNetworkCache() == null, "Wrong networkCache property");
} }
@Test @Test
@ -600,19 +603,27 @@ public class OpenViduProTestAppE2eTest extends AbstractOpenViduTestappE2eTest {
user.getEventManager().off("networkQualityLevelChanged"); user.getEventManager().off("networkQualityLevelChanged");
log.info("Thread assertions: {}", threadAssertions.toString()); log.info("Thread assertions: {}", threadAssertions.toString());
for (Iterator<Boolean> iter = threadAssertions.iterator(); iter.hasNext();) { for (Iterator<Boolean> iter = threadAssertions.iterator(); iter.hasNext();) {
Assert.assertTrue("Some Event property was wrong", iter.next()); Assertions.assertTrue(iter.next(), "Some Event property was wrong");
iter.remove(); iter.remove();
} }
// Both events should have publisher's connection ID // Both events should have publisher's connection ID
Assert.assertTrue("Wrong connectionId in event NetworkQualityLevelChangedEvent", user.getDriver() Assertions
.findElement(By.cssSelector("#openvidu-instance-0 .mat-expansion-panel:last-child .event-content")) .assertTrue(
.getAttribute("textContent").contains(connectionId)); user.getDriver()
Assert.assertTrue("Wrong connectionId in event NetworkQualityLevelChangedEvent", user.getDriver() .findElement(By.cssSelector(
.findElement(By.cssSelector("#openvidu-instance-1 .mat-expansion-panel:last-child .event-content")) "#openvidu-instance-0 .mat-expansion-panel:last-child .event-content"))
.getAttribute("textContent").contains(connectionId)); .getAttribute("textContent").contains(connectionId),
"Wrong connectionId in event NetworkQualityLevelChangedEvent");
Assertions
.assertTrue(
user.getDriver()
.findElement(By.cssSelector(
"#openvidu-instance-1 .mat-expansion-panel:last-child .event-content"))
.getAttribute("textContent").contains(connectionId),
"Wrong connectionId in event NetworkQualityLevelChangedEvent");
gracefullyLeaveParticipants(user, 1); gracefullyLeaveParticipants(user, 2);
} }
@Test @Test
@ -671,7 +682,7 @@ public class OpenViduProTestAppE2eTest extends AbstractOpenViduTestappE2eTest {
Arrays.asList(new Point[] { new Point(93, 30), new Point(30, 50) })); Arrays.asList(new Point[] { new Point(93, 30), new Point(30, 50) }));
// Green // Green
Assert.assertTrue((rgb.get("r") < 150) && (rgb.get("g") > 240) && (rgb.get("b") < 100)); Assertions.assertTrue((rgb.get("r") < 150) && (rgb.get("g") > 240) && (rgb.get("b") < 100));
filterTypeInput.clear(); filterTypeInput.clear();
filterTypeInput.sendKeys("VB:image"); filterTypeInput.sendKeys("VB:image");
@ -693,7 +704,7 @@ public class OpenViduProTestAppE2eTest extends AbstractOpenViduTestappE2eTest {
Arrays.asList(new Point[] { new Point(93, 30), new Point(30, 50) })); Arrays.asList(new Point[] { new Point(93, 30), new Point(30, 50) }));
// Red // Red
Assert.assertTrue((rgb.get("r") > 250) && (rgb.get("g") < 10) && (rgb.get("b") < 40)); Assertions.assertTrue((rgb.get("r") > 250) && (rgb.get("g") < 10) && (rgb.get("b") < 40));
// Fail exec method // Fail exec method
WebElement filterMethodInput = user.getDriver().findElement(By.id("filter-method-field")); WebElement filterMethodInput = user.getDriver().findElement(By.id("filter-method-field"));
@ -726,7 +737,7 @@ public class OpenViduProTestAppE2eTest extends AbstractOpenViduTestappE2eTest {
"Filter method executed")); "Filter method executed"));
rgb = user.getEventManager().getAverageColorFromPixels(subscriberVideo, rgb = user.getEventManager().getAverageColorFromPixels(subscriberVideo,
Arrays.asList(new Point[] { new Point(93, 30), new Point(30, 50) })); Arrays.asList(new Point[] { new Point(93, 30), new Point(30, 50) }));
Assert.assertTrue((rgb.get("r") < 10) && (rgb.get("g") < 10) && (rgb.get("b") > 240)); Assertions.assertTrue((rgb.get("r") < 10) && (rgb.get("g") < 10) && (rgb.get("b") > 240));
user.getDriver().findElement(By.id("remove-filter-btn")).click(); user.getDriver().findElement(By.id("remove-filter-btn")).click();
user.getWaiter().until( user.getWaiter().until(
@ -736,7 +747,7 @@ public class OpenViduProTestAppE2eTest extends AbstractOpenViduTestappE2eTest {
Arrays.asList(new Point[] { new Point(93, 30), new Point(30, 50) })); Arrays.asList(new Point[] { new Point(93, 30), new Point(30, 50) }));
// Green // Green
Assert.assertTrue((rgb.get("r") < 150) && (rgb.get("g") > 240) && (rgb.get("b") < 100)); Assertions.assertTrue((rgb.get("r") < 150) && (rgb.get("g") > 240) && (rgb.get("b") < 100));
gracefullyLeaveParticipants(user, 2); gracefullyLeaveParticipants(user, 2);
} }
@ -847,16 +858,16 @@ public class OpenViduProTestAppE2eTest extends AbstractOpenViduTestappE2eTest {
this.sttSubUser(user, 0, 0, "en-US", true, true); this.sttSubUser(user, 0, 0, "en-US", true, true);
if (!latch.await(80, TimeUnit.SECONDS)) { if (!latch.await(80, TimeUnit.SECONDS)) {
Assert.fail("Timeout waiting for recognized STT events"); Assertions.fail("Timeout waiting for recognized STT events");
} }
if (exc[0] != null) { if (exc[0] != null) {
throw exc[0]; throw exc[0];
} }
Assert.assertTrue("recognizing STT events should be greater than 0", recognizingSttEvents.size() > 0); Assertions.assertTrue(recognizingSttEvents.size() > 0, "recognizing STT events should be greater than 0");
Assert.assertTrue("recognized STT events should be greater than 0", Assertions.assertTrue(recognizingSttEvents.size() > recognizedSttEvents.size(),
recognizingSttEvents.size() > recognizedSttEvents.size()); "recognized STT events should be greater than 0");
// The expected text may be in just 2 recognized events instead of 3 // The expected text may be in just 2 recognized events instead of 3
int expectedCharCount = expectedRecognitionList.stream().mapToInt(w -> w.length()).sum(); int expectedCharCount = expectedRecognitionList.stream().mapToInt(w -> w.length()).sum();
@ -876,8 +887,8 @@ public class OpenViduProTestAppE2eTest extends AbstractOpenViduTestappE2eTest {
log.info("Cosine similiarity: {}", cosineSimilarity); log.info("Cosine similiarity: {}", cosineSimilarity);
log.info(expectedRecognition); log.info(expectedRecognition);
log.info(finalRecognition); log.info(finalRecognition);
Assert.assertTrue("Wrong similarity between actual and expected recognized text. Got " + cosineSimilarity, Assertions.assertTrue(cosineSimilarity < 0.1,
cosineSimilarity < 0.1); "Wrong similarity between actual and expected recognized text. Got " + cosineSimilarity);
gracefullyLeaveParticipants(user, 1); gracefullyLeaveParticipants(user, 1);
} }
@ -931,7 +942,7 @@ public class OpenViduProTestAppE2eTest extends AbstractOpenViduTestappE2eTest {
this.sttSubUser(user, 0, 0, "en-US", true, true); this.sttSubUser(user, 0, 0, "en-US", true, true);
if (!latch.await(80, TimeUnit.SECONDS)) { if (!latch.await(80, TimeUnit.SECONDS)) {
Assert.fail("Timeout waiting for recognized STT events"); Assertions.fail("Timeout waiting for recognized STT events");
} }
boolean twoConsecutiveRecognizedElements = false; boolean twoConsecutiveRecognizedElements = false;
@ -942,7 +953,7 @@ public class OpenViduProTestAppE2eTest extends AbstractOpenViduTestappE2eTest {
i++; i++;
} }
if (twoConsecutiveRecognizedElements) { if (twoConsecutiveRecognizedElements) {
Assert.fail("There are two consecutive recognized STT events. First text: \"" Assertions.fail("There are two consecutive recognized STT events. First text: \""
+ sttEvents.get(i - 1).get("text").getAsString() + "\" | Second text: \"" + sttEvents.get(i - 1).get("text").getAsString() + "\" | Second text: \""
+ sttEvents.get(i).get("text").getAsString() + "\""); + sttEvents.get(i).get("text").getAsString() + "\"");
} }
@ -1089,18 +1100,18 @@ public class OpenViduProTestAppE2eTest extends AbstractOpenViduTestappE2eTest {
finalSecondUserStts.addAll(secondUserStts); finalSecondUserStts.addAll(secondUserStts);
for (JsonObject event : finalFirstUserStts) { for (JsonObject event : finalFirstUserStts) {
Assert.assertEquals(connectionId, Assertions.assertEquals(connectionId,
event.get("connection").getAsJsonObject().get("connectionId").getAsString()); event.get("connection").getAsJsonObject().get("connectionId").getAsString());
Assert.assertEquals("en-US", event.get("lang").getAsString()); Assertions.assertEquals("en-US", event.get("lang").getAsString());
Assert.assertFalse(event.get("text").getAsString().isBlank()); Assertions.assertFalse(event.get("text").getAsString().isBlank());
Assert.assertFalse(event.get("raw").getAsString().isBlank()); Assertions.assertFalse(event.get("raw").getAsString().isBlank());
} }
for (JsonObject event : finalSecondUserStts) { for (JsonObject event : finalSecondUserStts) {
Assert.assertEquals(connectionId, Assertions.assertEquals(connectionId,
event.get("connection").getAsJsonObject().get("connectionId").getAsString()); event.get("connection").getAsJsonObject().get("connectionId").getAsString());
Assert.assertEquals("en-US", event.get("lang").getAsString()); Assertions.assertEquals("en-US", event.get("lang").getAsString());
Assert.assertFalse(event.get("text").getAsString().isBlank()); Assertions.assertFalse(event.get("text").getAsString().isBlank());
Assert.assertFalse(event.get("raw").getAsString().isBlank()); Assertions.assertFalse(event.get("raw").getAsString().isBlank());
} }
gracefullyLeaveParticipants(user, 2); gracefullyLeaveParticipants(user, 2);
@ -1160,18 +1171,18 @@ public class OpenViduProTestAppE2eTest extends AbstractOpenViduTestappE2eTest {
finalSecondUserStts.addAll(secondUserStts); finalSecondUserStts.addAll(secondUserStts);
for (JsonObject event : finalFirstUserStts) { for (JsonObject event : finalFirstUserStts) {
Assert.assertEquals(connectionId1, Assertions.assertEquals(connectionId1,
event.get("connection").getAsJsonObject().get("connectionId").getAsString()); event.get("connection").getAsJsonObject().get("connectionId").getAsString());
Assert.assertEquals("en-US", event.get("lang").getAsString()); Assertions.assertEquals("en-US", event.get("lang").getAsString());
Assert.assertFalse(event.get("text").getAsString().isBlank()); Assertions.assertFalse(event.get("text").getAsString().isBlank());
Assert.assertFalse(event.get("raw").getAsString().isBlank()); Assertions.assertFalse(event.get("raw").getAsString().isBlank());
} }
for (JsonObject event : finalSecondUserStts) { for (JsonObject event : finalSecondUserStts) {
Assert.assertEquals(connectionId2, Assertions.assertEquals(connectionId2,
event.get("connection").getAsJsonObject().get("connectionId").getAsString()); event.get("connection").getAsJsonObject().get("connectionId").getAsString());
Assert.assertEquals("en-US", event.get("lang").getAsString()); Assertions.assertEquals("en-US", event.get("lang").getAsString());
Assert.assertFalse(event.get("text").getAsString().isBlank()); Assertions.assertFalse(event.get("text").getAsString().isBlank());
Assert.assertFalse(event.get("raw").getAsString().isBlank()); Assertions.assertFalse(event.get("raw").getAsString().isBlank());
} }
gracefullyLeaveParticipants(user, 2); gracefullyLeaveParticipants(user, 2);
@ -1228,18 +1239,18 @@ public class OpenViduProTestAppE2eTest extends AbstractOpenViduTestappE2eTest {
finalSecondUserStts.addAll(secondUserStts); finalSecondUserStts.addAll(secondUserStts);
for (JsonObject event : finalFirstUserStts) { for (JsonObject event : finalFirstUserStts) {
Assert.assertEquals(connectionId, Assertions.assertEquals(connectionId,
event.get("connection").getAsJsonObject().get("connectionId").getAsString()); event.get("connection").getAsJsonObject().get("connectionId").getAsString());
Assert.assertEquals("en-US", event.get("lang").getAsString()); Assertions.assertEquals("en-US", event.get("lang").getAsString());
Assert.assertFalse(event.get("text").getAsString().isBlank()); Assertions.assertFalse(event.get("text").getAsString().isBlank());
Assert.assertFalse(event.get("raw").getAsString().isBlank()); Assertions.assertFalse(event.get("raw").getAsString().isBlank());
} }
for (JsonObject event : finalSecondUserStts) { for (JsonObject event : finalSecondUserStts) {
Assert.assertEquals(connectionId, Assertions.assertEquals(connectionId,
event.get("connection").getAsJsonObject().get("connectionId").getAsString()); event.get("connection").getAsJsonObject().get("connectionId").getAsString());
Assert.assertEquals("es-ES", event.get("lang").getAsString()); Assertions.assertEquals("es-ES", event.get("lang").getAsString());
Assert.assertFalse(event.get("text").getAsString().isBlank()); Assertions.assertFalse(event.get("text").getAsString().isBlank());
Assert.assertFalse(event.get("raw").getAsString().isBlank()); Assertions.assertFalse(event.get("raw").getAsString().isBlank());
} }
gracefullyLeaveParticipants(user, 2); gracefullyLeaveParticipants(user, 2);
@ -1297,18 +1308,18 @@ public class OpenViduProTestAppE2eTest extends AbstractOpenViduTestappE2eTest {
finalSecondUserStts.addAll(secondUserStts); finalSecondUserStts.addAll(secondUserStts);
for (JsonObject event : finalFirstUserStts) { for (JsonObject event : finalFirstUserStts) {
Assert.assertEquals(connectionId2, Assertions.assertEquals(connectionId2,
event.get("connection").getAsJsonObject().get("connectionId").getAsString()); event.get("connection").getAsJsonObject().get("connectionId").getAsString());
Assert.assertEquals("es-ES", event.get("lang").getAsString()); Assertions.assertEquals("es-ES", event.get("lang").getAsString());
Assert.assertFalse(event.get("text").getAsString().isBlank()); Assertions.assertFalse(event.get("text").getAsString().isBlank());
Assert.assertFalse(event.get("raw").getAsString().isBlank()); Assertions.assertFalse(event.get("raw").getAsString().isBlank());
} }
for (JsonObject event : finalSecondUserStts) { for (JsonObject event : finalSecondUserStts) {
Assert.assertEquals(connectionId1, Assertions.assertEquals(connectionId1,
event.get("connection").getAsJsonObject().get("connectionId").getAsString()); event.get("connection").getAsJsonObject().get("connectionId").getAsString());
Assert.assertEquals("en-US", event.get("lang").getAsString()); Assertions.assertEquals("en-US", event.get("lang").getAsString());
Assert.assertFalse(event.get("text").getAsString().isBlank()); Assertions.assertFalse(event.get("text").getAsString().isBlank());
Assert.assertFalse(event.get("raw").getAsString().isBlank()); Assertions.assertFalse(event.get("raw").getAsString().isBlank());
} }
gracefullyLeaveParticipants(user, 2); gracefullyLeaveParticipants(user, 2);
@ -1368,18 +1379,18 @@ public class OpenViduProTestAppE2eTest extends AbstractOpenViduTestappE2eTest {
finalSecondUserStts.addAll(secondUserStts); finalSecondUserStts.addAll(secondUserStts);
for (JsonObject event : finalFirstUserStts) { for (JsonObject event : finalFirstUserStts) {
Assert.assertEquals(connectionId1, Assertions.assertEquals(connectionId1,
event.get("connection").getAsJsonObject().get("connectionId").getAsString()); event.get("connection").getAsJsonObject().get("connectionId").getAsString());
Assert.assertEquals("en-US", event.get("lang").getAsString()); Assertions.assertEquals("en-US", event.get("lang").getAsString());
Assert.assertFalse(event.get("text").getAsString().isBlank()); Assertions.assertFalse(event.get("text").getAsString().isBlank());
Assert.assertFalse(event.get("raw").getAsString().isBlank()); Assertions.assertFalse(event.get("raw").getAsString().isBlank());
} }
for (JsonObject event : finalSecondUserStts) { for (JsonObject event : finalSecondUserStts) {
Assert.assertEquals(connectionId2, Assertions.assertEquals(connectionId2,
event.get("connection").getAsJsonObject().get("connectionId").getAsString()); event.get("connection").getAsJsonObject().get("connectionId").getAsString());
Assert.assertEquals("en-US", event.get("lang").getAsString()); Assertions.assertEquals("en-US", event.get("lang").getAsString());
Assert.assertFalse(event.get("text").getAsString().isBlank()); Assertions.assertFalse(event.get("text").getAsString().isBlank());
Assert.assertFalse(event.get("raw").getAsString().isBlank()); Assertions.assertFalse(event.get("raw").getAsString().isBlank());
} }
} }
@ -1430,11 +1441,11 @@ public class OpenViduProTestAppE2eTest extends AbstractOpenViduTestappE2eTest {
final List<JsonObject> finalStts = new ArrayList<>(); final List<JsonObject> finalStts = new ArrayList<>();
finalStts.addAll(stts.get(i)); finalStts.addAll(stts.get(i));
for (JsonObject event : finalStts) { for (JsonObject event : finalStts) {
Assert.assertEquals(connectionIds.get(i), Assertions.assertEquals(connectionIds.get(i),
event.get("connection").getAsJsonObject().get("connectionId").getAsString()); event.get("connection").getAsJsonObject().get("connectionId").getAsString());
Assert.assertEquals(languages.get(i), event.get("lang").getAsString()); Assertions.assertEquals(languages.get(i), event.get("lang").getAsString());
Assert.assertFalse(event.get("text").getAsString().isBlank()); Assertions.assertFalse(event.get("text").getAsString().isBlank());
Assert.assertFalse(event.get("raw").getAsString().isBlank()); Assertions.assertFalse(event.get("raw").getAsString().isBlank());
} }
} }
} }
@ -1480,8 +1491,8 @@ public class OpenViduProTestAppE2eTest extends AbstractOpenViduTestappE2eTest {
user.getEventManager().waitUntilEventReaches("speechToTextMessage", 5); user.getEventManager().waitUntilEventReaches("speechToTextMessage", 5);
Assert.assertEquals("Wrong number of connectionCreated events", 1, Assertions.assertEquals(1, user.getEventManager().getNumEvents("connectionCreated").get(),
user.getEventManager().getNumEvents("connectionCreated").get()); "Wrong number of connectionCreated events");
user.getDriver().findElement(By.id("session-api-btn-0")).click(); user.getDriver().findElement(By.id("session-api-btn-0")).click();
Thread.sleep(500); Thread.sleep(500);
@ -1492,8 +1503,8 @@ public class OpenViduProTestAppE2eTest extends AbstractOpenViduTestappE2eTest {
user.getDriver().findElement(By.id("close-dialog-btn")).click(); user.getDriver().findElement(By.id("close-dialog-btn")).click();
Thread.sleep(500); Thread.sleep(500);
Assert.assertEquals("Wrong number of connectionCreated events", 1, Assertions.assertEquals(1, user.getEventManager().getNumEvents("connectionCreated").get(),
user.getEventManager().getNumEvents("connectionCreated").get()); "Wrong number of connectionCreated events");
// After stopping composed recording speechToText events should keep coming // After stopping composed recording speechToText events should keep coming
user.getEventManager().clearAllCurrentEvents(0); user.getEventManager().clearAllCurrentEvents(0);
@ -1505,7 +1516,7 @@ public class OpenViduProTestAppE2eTest extends AbstractOpenViduTestappE2eTest {
user.getEventManager().clearAllCurrentEvents(0); user.getEventManager().clearAllCurrentEvents(0);
user.getEventManager().clearAllCurrentEvents(); user.getEventManager().clearAllCurrentEvents();
Thread.sleep(3000); Thread.sleep(3000);
Assert.assertEquals(user.getEventManager().getNumEvents("speechToTextMessage").intValue(), 0); Assertions.assertEquals(user.getEventManager().getNumEvents("speechToTextMessage").intValue(), 0);
gracefullyLeaveParticipants(user, 1); gracefullyLeaveParticipants(user, 1);
} }
@ -1539,8 +1550,8 @@ public class OpenViduProTestAppE2eTest extends AbstractOpenViduTestappE2eTest {
this.sttSubUser(user, 0, 0, "en-US", false, false); this.sttSubUser(user, 0, 0, "en-US", false, false);
} }
Assert.assertEquals("Wrong number of connectionCreated events", 1, Assertions.assertEquals(1, user.getEventManager().getNumEvents("connectionCreated").get(),
user.getEventManager().getNumEvents("connectionCreated").get()); "Wrong number of connectionCreated events");
user.getEventManager().clearAllCurrentEvents(0); user.getEventManager().clearAllCurrentEvents(0);
user.getEventManager().clearAllCurrentEvents(); user.getEventManager().clearAllCurrentEvents();
@ -1555,18 +1566,18 @@ public class OpenViduProTestAppE2eTest extends AbstractOpenViduTestappE2eTest {
}); });
if (!latch.await(80, TimeUnit.SECONDS)) { if (!latch.await(80, TimeUnit.SECONDS)) {
Assert.fail("Timeout waiting for recognized STT events"); Assertions.fail("Timeout waiting for recognized STT events");
} }
final List<JsonObject> finalStts = new ArrayList<>(); final List<JsonObject> finalStts = new ArrayList<>();
finalStts.addAll(stts); finalStts.addAll(stts);
for (JsonObject event : finalStts) { for (JsonObject event : finalStts) {
Assert.assertEquals(connectionId, Assertions.assertEquals(connectionId,
event.get("connection").getAsJsonObject().get("connectionId").getAsString()); event.get("connection").getAsJsonObject().get("connectionId").getAsString());
Assert.assertEquals("en-US", event.get("lang").getAsString()); Assertions.assertEquals("en-US", event.get("lang").getAsString());
Assert.assertFalse(event.get("text").getAsString().isBlank()); Assertions.assertFalse(event.get("text").getAsString().isBlank());
Assert.assertFalse(event.get("raw").getAsString().isBlank()); Assertions.assertFalse(event.get("raw").getAsString().isBlank());
} }
} }
@ -1612,10 +1623,10 @@ public class OpenViduProTestAppE2eTest extends AbstractOpenViduTestappE2eTest {
user.getEventManager().waitUntilEventReaches("exception", 1); user.getEventManager().waitUntilEventReaches("exception", 1);
Assert.assertEquals("Wrong exception event name", "SPEECH_TO_TEXT_DISCONNECTED", Assertions.assertEquals("SPEECH_TO_TEXT_DISCONNECTED", exceptionEvent[0].get("name").getAsString(),
exceptionEvent[0].get("name").getAsString()); "Wrong exception event name");
Assert.assertEquals("Wrong exception event message", "Network closed for unknown reason", Assertions.assertEquals("Network closed for unknown reason", exceptionEvent[0].get("message").getAsString(),
exceptionEvent[0].get("message").getAsString()); "Wrong exception event message");
user.getEventManager().clearAllCurrentEvents(0); user.getEventManager().clearAllCurrentEvents(0);
user.getEventManager().clearAllCurrentEvents(); user.getEventManager().clearAllCurrentEvents();
@ -1636,8 +1647,8 @@ public class OpenViduProTestAppE2eTest extends AbstractOpenViduTestappE2eTest {
user.getWaiter().until(ExpectedConditions.attributeToBeNotEmpty(responseTextArea, "value")); user.getWaiter().until(ExpectedConditions.attributeToBeNotEmpty(responseTextArea, "value"));
String text = user.getDriver().findElement(responseTextAreaBy).getAttribute("value"); String text = user.getDriver().findElement(responseTextAreaBy).getAttribute("value");
if (!"Subscribed to STT".equals(text)) { if (!"Subscribed to STT".equals(text)) {
Assert.assertEquals("Wrong error message on subscribe STT after STT crash", Assertions.assertEquals("Error [io.grpc.StatusRuntimeException: UNAVAILABLE: io exception. Code: 201]",
"Error [io.grpc.StatusRuntimeException: UNAVAILABLE: io exception. Code: 201]", text); text, "Wrong error message on subscribe STT after STT crash");
Thread.sleep(intervalWaitMs); Thread.sleep(intervalWaitMs);
} else { } else {
sttReconstructed = true; sttReconstructed = true;
@ -1700,7 +1711,7 @@ public class OpenViduProTestAppE2eTest extends AbstractOpenViduTestappE2eTest {
} }
} catch (Exception e) { } catch (Exception e) {
log.error(e.getMessage()); log.error(e.getMessage());
Assert.fail("Error restarting OpenVidu Server"); Assertions.fail("Error restarting OpenVidu Server");
} }
} }