mirror of https://github.com/OpenVidu/openvidu.git
openvidu-tesr-browsers: wait for srcObject to be defined when checking media elements
parent
9f4bcc827e
commit
cbc8a6b859
|
@ -24,6 +24,7 @@ import java.util.Iterator;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
|
import org.junit.jupiter.api.Assertions;
|
||||||
import org.openqa.selenium.Dimension;
|
import org.openqa.selenium.Dimension;
|
||||||
import org.openqa.selenium.JavascriptExecutor;
|
import org.openqa.selenium.JavascriptExecutor;
|
||||||
import org.openqa.selenium.WebDriver;
|
import org.openqa.selenium.WebDriver;
|
||||||
|
@ -144,6 +145,7 @@ public class BrowserUser {
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean assertAllElementsHaveTracks(String querySelector, boolean hasAudio, boolean hasVideo) {
|
public boolean assertAllElementsHaveTracks(String querySelector, boolean hasAudio, boolean hasVideo) {
|
||||||
|
Assertions.assertTrue(this.waitUntilAllSrcObjectsDefined(querySelector, 5000));
|
||||||
String calculateReturnValue = "returnValue && ";
|
String calculateReturnValue = "returnValue && ";
|
||||||
if (hasAudio) {
|
if (hasAudio) {
|
||||||
calculateReturnValue += "el.srcObject.getAudioTracks().length === 1 && el.srcObject.getAudioTracks()[0].enabled";
|
calculateReturnValue += "el.srcObject.getAudioTracks().length === 1 && el.srcObject.getAudioTracks()[0].enabled";
|
||||||
|
@ -162,6 +164,29 @@ public class BrowserUser {
|
||||||
return tracks;
|
return tracks;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private boolean waitUntilAllSrcObjectsDefined(String querySelector, int maxMsWait) {
|
||||||
|
final int sleepInterval = 50;
|
||||||
|
int maxIterations = maxMsWait / sleepInterval;
|
||||||
|
int counter = 0;
|
||||||
|
boolean defined = srcObjectDefined(querySelector);
|
||||||
|
while (!defined && counter < maxIterations) {
|
||||||
|
try {
|
||||||
|
Thread.sleep(sleepInterval);
|
||||||
|
} catch (InterruptedException e) {
|
||||||
|
}
|
||||||
|
defined = srcObjectDefined(querySelector);
|
||||||
|
counter++;
|
||||||
|
}
|
||||||
|
return defined;
|
||||||
|
}
|
||||||
|
|
||||||
|
private boolean srcObjectDefined(String querySelector) {
|
||||||
|
String script = "return ![...document.querySelectorAll('" + querySelector
|
||||||
|
+ "')].some(mediaElement => !mediaElement.srcObject);";
|
||||||
|
boolean defined = (boolean) ((JavascriptExecutor) driver).executeScript(script);
|
||||||
|
return defined;
|
||||||
|
}
|
||||||
|
|
||||||
public void changeElementSize(WebElement videoElement, Integer newWidthInPixels, Integer newHeightInPixels) {
|
public void changeElementSize(WebElement videoElement, Integer newWidthInPixels, Integer newHeightInPixels) {
|
||||||
String script = "var htmlelement = document.querySelector('#" + videoElement.getAttribute("id") + "');";
|
String script = "var htmlelement = document.querySelector('#" + videoElement.getAttribute("id") + "');";
|
||||||
if (newWidthInPixels != null) {
|
if (newWidthInPixels != null) {
|
||||||
|
|
Loading…
Reference in New Issue