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.Map;
|
||||
|
||||
import org.junit.jupiter.api.Assertions;
|
||||
import org.openqa.selenium.Dimension;
|
||||
import org.openqa.selenium.JavascriptExecutor;
|
||||
import org.openqa.selenium.WebDriver;
|
||||
|
@ -144,6 +145,7 @@ public class BrowserUser {
|
|||
}
|
||||
|
||||
public boolean assertAllElementsHaveTracks(String querySelector, boolean hasAudio, boolean hasVideo) {
|
||||
Assertions.assertTrue(this.waitUntilAllSrcObjectsDefined(querySelector, 5000));
|
||||
String calculateReturnValue = "returnValue && ";
|
||||
if (hasAudio) {
|
||||
calculateReturnValue += "el.srcObject.getAudioTracks().length === 1 && el.srcObject.getAudioTracks()[0].enabled";
|
||||
|
@ -162,6 +164,29 @@ public class BrowserUser {
|
|||
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) {
|
||||
String script = "var htmlelement = document.querySelector('#" + videoElement.getAttribute("id") + "');";
|
||||
if (newWidthInPixels != null) {
|
||||
|
|
Loading…
Reference in New Issue