mirror of https://github.com/OpenVidu/openvidu.git
e2e subscribeTo tests
parent
705e7a4e82
commit
194f6fd3ce
|
@ -205,15 +205,17 @@ public class OpenViduEventManager {
|
||||||
}
|
}
|
||||||
|
|
||||||
private boolean hasAudioTracks(WebElement videoElement) {
|
private boolean hasAudioTracks(WebElement videoElement) {
|
||||||
long numberAudioTracks = (long) ((JavascriptExecutor) driver).executeScript(
|
boolean audioTracks = (boolean) ((JavascriptExecutor) driver).executeScript(
|
||||||
"return $('#" + videoElement.getAttribute("id") + "').prop('srcObject').getAudioTracks().length;");
|
"return ($('#" + videoElement.getAttribute("id") + "').prop('srcObject').getAudioTracks().length > 0)"
|
||||||
return (numberAudioTracks > 0);
|
+ "&& ($('#" + videoElement.getAttribute("id") + "').prop('srcObject').getAudioTracks()[0].enabled)");
|
||||||
|
return audioTracks;
|
||||||
}
|
}
|
||||||
|
|
||||||
private boolean hasVideoTracks(WebElement videoElement) {
|
private boolean hasVideoTracks(WebElement videoElement) {
|
||||||
long numberAudioTracks = (long) ((JavascriptExecutor) driver).executeScript(
|
boolean videoTracks = (boolean) ((JavascriptExecutor) driver).executeScript(
|
||||||
"return $('#" + videoElement.getAttribute("id") + "').prop('srcObject').getVideoTracks().length;");
|
"return ($('#" + videoElement.getAttribute("id") + "').prop('srcObject').getVideoTracks().length > 0)"
|
||||||
return (numberAudioTracks > 0);
|
+ "&& ($('#" + videoElement.getAttribute("id") + "').prop('srcObject').getVideoTracks()[0].enabled)");
|
||||||
|
return videoTracks;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -23,6 +23,7 @@ import static org.openqa.selenium.OutputType.BASE64;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
import java.util.Arrays;
|
||||||
import java.util.Iterator;
|
import java.util.Iterator;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
@ -97,14 +98,14 @@ public class OpenViduTestAppE2eTest {
|
||||||
void setupBrowser(String browser) {
|
void setupBrowser(String browser) {
|
||||||
|
|
||||||
switch (browser) {
|
switch (browser) {
|
||||||
case "chrome":
|
case "chrome":
|
||||||
this.user = new ChromeUser("TestUser", 50);
|
this.user = new ChromeUser("TestUser", 50);
|
||||||
break;
|
break;
|
||||||
case "firefox":
|
case "firefox":
|
||||||
this.user = new FirefoxUser("TestUser", 50);
|
this.user = new FirefoxUser("TestUser", 50);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
this.user = new ChromeUser("TestUser", 50);
|
this.user = new ChromeUser("TestUser", 50);
|
||||||
}
|
}
|
||||||
|
|
||||||
user.getDriver().get(APP_URL);
|
user.getDriver().get(APP_URL);
|
||||||
|
@ -570,6 +571,8 @@ public class OpenViduTestAppE2eTest {
|
||||||
Assert.assertTrue(user.getEventManager().assertMediaTracks(user.getDriver().findElements(By.tagName("video")),
|
Assert.assertTrue(user.getEventManager().assertMediaTracks(user.getDriver().findElements(By.tagName("video")),
|
||||||
true, true));
|
true, true));
|
||||||
|
|
||||||
|
// Global unsubscribe-subscribe
|
||||||
|
|
||||||
user.getDriver().findElements(By.className(("sub-btn"))).get(0).click();
|
user.getDriver().findElements(By.className(("sub-btn"))).get(0).click();
|
||||||
user.getWaiter().until(ExpectedConditions.numberOfElementsToBe(By.tagName("video"), 1));
|
user.getWaiter().until(ExpectedConditions.numberOfElementsToBe(By.tagName("video"), 1));
|
||||||
user.getDriver().findElements(By.className(("sub-btn"))).get(0).click();
|
user.getDriver().findElements(By.className(("sub-btn"))).get(0).click();
|
||||||
|
@ -579,6 +582,26 @@ public class OpenViduTestAppE2eTest {
|
||||||
Assert.assertTrue(user.getEventManager().assertMediaTracks(user.getDriver().findElements(By.tagName("video")),
|
Assert.assertTrue(user.getEventManager().assertMediaTracks(user.getDriver().findElements(By.tagName("video")),
|
||||||
true, true));
|
true, true));
|
||||||
|
|
||||||
|
// Video unsubscribe
|
||||||
|
|
||||||
|
Iterable<WebElement> firstVideo = Arrays.asList(user.getDriver().findElements(By.tagName("video")).get(0));
|
||||||
|
user.getDriver().findElements(By.className(("sub-video-btn"))).get(0).click();
|
||||||
|
Thread.sleep(1000);
|
||||||
|
Assert.assertTrue(user.getEventManager().assertMediaTracks(firstVideo, true, false));
|
||||||
|
|
||||||
|
// Audio unsubscribe
|
||||||
|
|
||||||
|
user.getDriver().findElements(By.className(("sub-audio-btn"))).get(0).click();
|
||||||
|
Thread.sleep(1000);
|
||||||
|
Assert.assertTrue(user.getEventManager().assertMediaTracks(firstVideo, false, false));
|
||||||
|
|
||||||
|
// Video and audio subscribe
|
||||||
|
|
||||||
|
user.getDriver().findElements(By.className(("sub-video-btn"))).get(0).click();
|
||||||
|
user.getDriver().findElements(By.className(("sub-audio-btn"))).get(0).click();
|
||||||
|
Thread.sleep(1000);
|
||||||
|
Assert.assertTrue(user.getEventManager().assertMediaTracks(firstVideo, true, true));
|
||||||
|
|
||||||
gracefullyLeaveParticipants(2);
|
gracefullyLeaveParticipants(2);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -638,8 +661,8 @@ public class OpenViduTestAppE2eTest {
|
||||||
user.getDriver().findElement(By.id("auto-join-checkbox")).click();
|
user.getDriver().findElement(By.id("auto-join-checkbox")).click();
|
||||||
|
|
||||||
// First publication (audio + video [CAMERA])
|
// First publication (audio + video [CAMERA])
|
||||||
user.getEventManager().on("videoPlaying", (event)-> {
|
user.getEventManager().on("videoPlaying", (event) -> {
|
||||||
listOfThreadAssertions.add(((String)event.get("eventContent")).contains("CAMERA"));
|
listOfThreadAssertions.add(((String) event.get("eventContent")).contains("CAMERA"));
|
||||||
});
|
});
|
||||||
user.getDriver().findElement(By.id("one2many-btn")).click();
|
user.getDriver().findElement(By.id("one2many-btn")).click();
|
||||||
user.getEventManager().waitUntilEventReaches("videoPlaying", 2);
|
user.getEventManager().waitUntilEventReaches("videoPlaying", 2);
|
||||||
|
@ -653,8 +676,8 @@ public class OpenViduTestAppE2eTest {
|
||||||
true, true));
|
true, true));
|
||||||
|
|
||||||
// Second publication (only video (SCREEN))
|
// Second publication (only video (SCREEN))
|
||||||
user.getEventManager().on("videoPlaying", (event)-> {
|
user.getEventManager().on("videoPlaying", (event) -> {
|
||||||
listOfThreadAssertions.add(((String)event.get("eventContent")).contains("SCREEN"));
|
listOfThreadAssertions.add(((String) event.get("eventContent")).contains("SCREEN"));
|
||||||
});
|
});
|
||||||
user.getDriver().findElements(By.className("change-publisher-btn")).get(0).click();
|
user.getDriver().findElements(By.className("change-publisher-btn")).get(0).click();
|
||||||
user.getEventManager().waitUntilEventReaches("videoPlaying", 4);
|
user.getEventManager().waitUntilEventReaches("videoPlaying", 4);
|
||||||
|
@ -668,8 +691,8 @@ public class OpenViduTestAppE2eTest {
|
||||||
false, true));
|
false, true));
|
||||||
|
|
||||||
// Third publication (audio + video [CAMERA])
|
// Third publication (audio + video [CAMERA])
|
||||||
user.getEventManager().on("videoPlaying", (event)-> {
|
user.getEventManager().on("videoPlaying", (event) -> {
|
||||||
listOfThreadAssertions.add(((String)event.get("eventContent")).contains("CAMERA"));
|
listOfThreadAssertions.add(((String) event.get("eventContent")).contains("CAMERA"));
|
||||||
});
|
});
|
||||||
user.getDriver().findElements(By.className("change-publisher-btn")).get(0).click();
|
user.getDriver().findElements(By.className("change-publisher-btn")).get(0).click();
|
||||||
user.getEventManager().waitUntilEventReaches("videoPlaying", 6);
|
user.getEventManager().waitUntilEventReaches("videoPlaying", 6);
|
||||||
|
@ -691,7 +714,9 @@ public class OpenViduTestAppE2eTest {
|
||||||
for (int j = 1; j <= numberOfParticipants; j++) {
|
for (int j = 1; j <= numberOfParticipants; j++) {
|
||||||
user.getDriver().findElement(By.id("remove-user-btn")).sendKeys(Keys.ENTER);
|
user.getDriver().findElement(By.id("remove-user-btn")).sendKeys(Keys.ENTER);
|
||||||
user.getEventManager().waitUntilEventReaches("sessionDisconnected", j);
|
user.getEventManager().waitUntilEventReaches("sessionDisconnected", j);
|
||||||
accumulatedConnectionDestroyed = (j != numberOfParticipants) ? (accumulatedConnectionDestroyed + numberOfParticipants - j) : (accumulatedConnectionDestroyed);
|
accumulatedConnectionDestroyed = (j != numberOfParticipants)
|
||||||
|
? (accumulatedConnectionDestroyed + numberOfParticipants - j)
|
||||||
|
: (accumulatedConnectionDestroyed);
|
||||||
user.getEventManager().waitUntilEventReaches("connectionDestroyed", accumulatedConnectionDestroyed);
|
user.getEventManager().waitUntilEventReaches("connectionDestroyed", accumulatedConnectionDestroyed);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue