From 2cb4211555ae14c7cad5dc75b834938efd3f93a7 Mon Sep 17 00:00:00 2001 From: pabloFuente Date: Tue, 20 Dec 2022 20:22:50 +0100 Subject: [PATCH] openvidu-test-e2e: fix STT tests --- .../test/e2e/OpenViduProTestAppE2eTest.java | 41 +++++++++++++------ 1 file changed, 29 insertions(+), 12 deletions(-) diff --git a/openvidu-test-e2e/src/test/java/io/openvidu/test/e2e/OpenViduProTestAppE2eTest.java b/openvidu-test-e2e/src/test/java/io/openvidu/test/e2e/OpenViduProTestAppE2eTest.java index a9cb2f72..4bce14eb 100644 --- a/openvidu-test-e2e/src/test/java/io/openvidu/test/e2e/OpenViduProTestAppE2eTest.java +++ b/openvidu-test-e2e/src/test/java/io/openvidu/test/e2e/OpenViduProTestAppE2eTest.java @@ -1859,6 +1859,26 @@ public class OpenViduProTestAppE2eTest extends AbstractOpenViduTestappE2eTest { body = "{'lang':'es-ES', 'mediaNode': {'id': '" + mediaNodeId + "'}}"; restClient.rest(HttpMethod.POST, "/openvidu/api/speech-to-text/load", body, HttpStatus.SC_OK); + OpenViduTestappUser user = setupBrowserAndConnectToOpenViduTestapp("chromeFakeAudio"); + user.getDriver().get(APP_URL); + user.getDriver().findElement(By.id("add-user-btn")).click(); + user.getDriver().findElement(By.className("join-btn")).sendKeys(Keys.ENTER); + user.getEventManager().waitUntilEventReaches("streamCreated", 1); + user.getEventManager().waitUntilEventReaches("streamPlaying", 1); + + sttSubUser(user, 0, 0, "es-ES", true, true); + + // 405 + restClient.rest(HttpMethod.POST, "/openvidu/api/speech-to-text/unload", body, HttpStatus.SC_METHOD_NOT_ALLOWED); + + gracefullyLeaveParticipants(user, 1); + + // Wait some time for the STT subscription to be closed + Thread.sleep(1500); + + // 409: "manual" does not automatic unload lang model + restClient.rest(HttpMethod.POST, "/openvidu/api/speech-to-text/load", body, HttpStatus.SC_CONFLICT); + /** * POST /openvidu/api/speech-to-text/unload **/ @@ -1896,8 +1916,7 @@ public class OpenViduProTestAppE2eTest extends AbstractOpenViduTestappE2eTest { restClient.rest(HttpMethod.POST, "/openvidu/api/speech-to-text/load", body, HttpStatus.SC_OK); - OpenViduTestappUser user = setupBrowserAndConnectToOpenViduTestapp("chromeFakeAudio"); - user.getDriver().get(APP_URL); + user.getEventManager().clearAllCurrentEvents(); user.getDriver().findElement(By.id("add-user-btn")).click(); user.getDriver().findElement(By.className("join-btn")).sendKeys(Keys.ENTER); user.getEventManager().waitUntilEventReaches("streamCreated", 1); @@ -1913,8 +1932,8 @@ public class OpenViduProTestAppE2eTest extends AbstractOpenViduTestappE2eTest { // Wait some time for the STT subscription to be closed Thread.sleep(1500); - // 200 OK - restClient.rest(HttpMethod.POST, "/openvidu/api/speech-to-text/unload", body, HttpStatus.SC_OK); + // 409: "on_demand" automatic unload of lang model + restClient.rest(HttpMethod.POST, "/openvidu/api/speech-to-text/unload", body, HttpStatus.SC_CONFLICT); } @Test @@ -1942,7 +1961,7 @@ public class OpenViduProTestAppE2eTest extends AbstractOpenViduTestappE2eTest { user.getEventManager().waitUntilEventReaches("streamPlaying", 3); sttSubUser(user, 0, 0, "en-US", true, false, - "Vosk model for language 'en-US' is not loaded and OPENVIDU_PRO_SPEECH_TO_TEXT_VOSK_MODEL_LOAD_STRATEGY is manual", + "Vosk model for language \"en-US\" is not loaded and OPENVIDU_PRO_SPEECH_TO_TEXT_VOSK_MODEL_LOAD_STRATEGY is \"manual\"", false); String body = "{'lang':'en-US', 'mediaNode': {'id': '" + mediaNodeId + "'}}"; @@ -1953,7 +1972,7 @@ public class OpenViduProTestAppE2eTest extends AbstractOpenViduTestappE2eTest { user.getEventManager().waitUntilEventReaches("speechToTextMessage", 2); sttSubUser(user, 1, 1, "es-ES", true, false, - "Vosk model for language 'es-ES' is not loaded and OPENVIDU_PRO_SPEECH_TO_TEXT_VOSK_MODEL_LOAD_STRATEGY is manual", + "Vosk model for language \"es-ES\" is not loaded and OPENVIDU_PRO_SPEECH_TO_TEXT_VOSK_MODEL_LOAD_STRATEGY is \"manual\"", false); // First participant still receiving STT events @@ -1970,19 +1989,17 @@ public class OpenViduProTestAppE2eTest extends AbstractOpenViduTestappE2eTest { user.getEventManager().waitUntilEventReaches(0, "speechToTextMessage", 4); user.getEventManager().waitUntilEventReaches(1, "speechToTextMessage", 4); - // Unloading lang in use should not affect current STT subscriptions + // 405 body = "{'lang':'es-ES', 'mediaNode': {'id': '" + mediaNodeId + "'}}"; - restClient.rest(HttpMethod.POST, "/openvidu/api/speech-to-text/unload", body, HttpStatus.SC_OK); + restClient.rest(HttpMethod.POST, "/openvidu/api/speech-to-text/unload", body, HttpStatus.SC_METHOD_NOT_ALLOWED); body = "{'lang':'en-US', 'mediaNode': {'id': '" + mediaNodeId + "'}}"; - restClient.rest(HttpMethod.POST, "/openvidu/api/speech-to-text/unload", body, HttpStatus.SC_OK); + restClient.rest(HttpMethod.POST, "/openvidu/api/speech-to-text/unload", body, HttpStatus.SC_METHOD_NOT_ALLOWED); user.getEventManager().clearAllCurrentEvents(0); user.getEventManager().clearAllCurrentEvents(1); user.getEventManager().waitUntilEventReaches(0, "speechToTextMessage", 4); user.getEventManager().waitUntilEventReaches(1, "speechToTextMessage", 4); - // Subscriptions to an unloaded lang should fail even with active subscriptions - // with that lang previously unloaded from memory sttSubUser(user, 1, 0, "en-US", true, true); gracefullyLeaveParticipants(user, 2); @@ -2218,7 +2235,7 @@ public class OpenViduProTestAppE2eTest extends AbstractOpenViduTestappE2eTest { private void restartSttContainer(String mediaNodeContainerId) throws Exception { String restartCommand = "docker exec -i " + mediaNodeContainerId - + " /bin/sh -c \"docker restart speech-to-text-services\""; + + " /bin/sh -c \"docker restart speech-to-text-service\""; commandLine.executeCommand(restartCommand, 30); }