mirror of https://github.com/OpenVidu/openvidu.git
openvidu-test-e2e: identify testapp user on each openvidu-browser event
parent
6bc8c31af1
commit
0621f205c5
|
@ -268,8 +268,9 @@ public class OpenViduEventManager {
|
|||
|
||||
private void emitEvents() {
|
||||
while (!this.eventQueue.isEmpty()) {
|
||||
JsonObject event = this.eventQueue.poll();
|
||||
final String eventType = event.get("type").getAsString();
|
||||
JsonObject userAndEvent = this.eventQueue.poll();
|
||||
final JsonObject event = userAndEvent.get("event").getAsJsonObject();
|
||||
final String eventType = event.get("type").getAsString();
|
||||
|
||||
log.info(eventType);
|
||||
|
||||
|
@ -291,7 +292,8 @@ public class OpenViduEventManager {
|
|||
|
||||
String[] events = rawEvents.replaceFirst("^<br>", "").split("<br>");
|
||||
for (String e : events) {
|
||||
JsonObject event = JsonParser.parseString(e).getAsJsonObject();
|
||||
JsonObject userAndEvent = JsonParser.parseString(e).getAsJsonObject();
|
||||
final JsonObject event = userAndEvent.get("event").getAsJsonObject();
|
||||
final String eventType = event.get("type").getAsString();
|
||||
|
||||
this.eventQueue.add(event);
|
||||
|
|
|
@ -24,6 +24,7 @@ import org.apache.commons.io.FileUtils;
|
|||
import org.apache.http.HttpStatus;
|
||||
import org.junit.Assert;
|
||||
import org.junit.jupiter.api.AfterEach;
|
||||
import org.openqa.selenium.By;
|
||||
import org.openqa.selenium.TakesScreenshot;
|
||||
import org.openqa.selenium.WebDriver;
|
||||
import org.openqa.selenium.WebElement;
|
||||
|
@ -686,4 +687,19 @@ public class OpenViduTestE2e {
|
|||
}
|
||||
}
|
||||
|
||||
protected void waitUntilUserHasEventsPresent(BrowserUser user, int numberOfUser, String eventType,
|
||||
int numberOfEvents) {
|
||||
user.getWaiter().until(d -> {
|
||||
List<WebElement> elements = d.findElements(By.cssSelector("#openvidu-instance-" + numberOfUser
|
||||
+ " .mat-expansion-panel .mat-expansion-panel-header .mat-content"));
|
||||
long numberOfEventsOfRequiredType = elements.stream().filter(e -> eventType.equals(e.getText().trim()))
|
||||
.count();
|
||||
if (numberOfEvents == numberOfEventsOfRequiredType) {
|
||||
return true;
|
||||
} else {
|
||||
return null;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -298,7 +298,7 @@ export class OpenviduInstanceComponent implements OnInit, OnChanges, OnDestroy {
|
|||
updateEventList(eventName: string, eventContent: string, event: Event) {
|
||||
const eventInterface: OpenViduEvent = { eventName, eventContent, event };
|
||||
this.events.push(eventInterface);
|
||||
this.testFeedService.pushNewEvent(event);
|
||||
this.testFeedService.pushNewEvent({user: this.index, event});
|
||||
}
|
||||
|
||||
toggleSubscribeTo(): void {
|
||||
|
@ -523,7 +523,16 @@ export class OpenviduInstanceComponent implements OnInit, OnChanges, OnDestroy {
|
|||
}
|
||||
if (this.sessionEvents.speechToTextMessage) {
|
||||
this.session.on('speechToTextMessage', (event: SpeechToTextEvent) => {
|
||||
this.updateEventList('speechToTextMessage', event.connection.connectionId, event);
|
||||
const displayedContent = {
|
||||
connection: event.connection.connectionId,
|
||||
text: event.text,
|
||||
reason: event.reason,
|
||||
lang: event.lang
|
||||
}
|
||||
this.updateEventList('speechToTextMessage', JSON.stringify(displayedContent), event);
|
||||
if (event.reason === 'recognized') {
|
||||
console.warn(event);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
|
|
@ -108,7 +108,7 @@ export class TestScenariosComponent implements OnInit, OnDestroy {
|
|||
|
||||
this.eventsInfoSubscription = this.testFeedService.newLastEvent$.subscribe(
|
||||
newEvent => {
|
||||
(window as any).myEvents += ('<br>' + JSON.stringify(newEvent));
|
||||
(window as any).myEvents += ('<br>' + this.testFeedService.stringifyEventNoCircularDependencies(newEvent));
|
||||
});
|
||||
}
|
||||
|
||||
|
@ -409,7 +409,7 @@ export class TestScenariosComponent implements OnInit, OnDestroy {
|
|||
};
|
||||
report.serverEvents = streamInRemoteInfo.events;
|
||||
for (const ev of report.serverEvents) {
|
||||
ev.timestamp = Number(ev.timestamp) - report.startTime;
|
||||
ev.timestamp = Number(ev.timestamp) - report.startTime;
|
||||
}
|
||||
});
|
||||
|
||||
|
|
|
@ -4,8 +4,6 @@ import { OpenviduParamsService } from '../../services/openvidu-params.service';
|
|||
import { TestFeedService } from '../../services/test-feed.service';
|
||||
import { SessionConf } from '../openvidu-instance/openvidu-instance.component';
|
||||
|
||||
var stringify = require('json-stringify-safe');
|
||||
|
||||
@Component({
|
||||
selector: 'app-test-sessions',
|
||||
templateUrl: './test-sessions.component.html',
|
||||
|
@ -41,7 +39,7 @@ export class TestSessionsComponent implements OnInit, OnDestroy {
|
|||
|
||||
this.eventsInfoSubscription = this.testFeedService.newLastEvent$.subscribe(
|
||||
newEvent => {
|
||||
(window as any).myEvents += ('<br>' + this.stringifyEventNoCircularDependencies(newEvent));
|
||||
(window as any).myEvents += ('<br>' + this.testFeedService.stringifyEventNoCircularDependencies(newEvent));
|
||||
});
|
||||
}
|
||||
|
||||
|
@ -103,15 +101,4 @@ export class TestSessionsComponent implements OnInit, OnDestroy {
|
|||
this.loadSubs(subs);
|
||||
}
|
||||
|
||||
stringifyEventNoCircularDependencies(event: Event): string {
|
||||
return stringify(event, (key, value) => {
|
||||
// Remove unnecessary properties
|
||||
if (key == 'ee' || key == 'openvidu' || key == 'userHandlerArrowHandler' || key == 'handlers') {
|
||||
return
|
||||
} else {
|
||||
return value;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -3,10 +3,12 @@ import { Subject } from 'rxjs';
|
|||
|
||||
import { Event } from 'openvidu-browser';
|
||||
|
||||
var stringify = require('json-stringify-safe');
|
||||
|
||||
@Injectable()
|
||||
export class TestFeedService {
|
||||
|
||||
lastEvent: Event;
|
||||
lastEvent: { user: number, event: Event };
|
||||
newLastEvent$ = new Subject<any>();
|
||||
|
||||
constructor() { }
|
||||
|
@ -15,9 +17,20 @@ export class TestFeedService {
|
|||
return this.lastEvent;
|
||||
}
|
||||
|
||||
pushNewEvent(event: Event) {
|
||||
this.lastEvent = event;
|
||||
pushNewEvent({ user: number, event: Event }) {
|
||||
this.lastEvent = { user: number, event: Event };
|
||||
this.newLastEvent$.next(this.lastEvent);
|
||||
}
|
||||
|
||||
stringifyEventNoCircularDependencies(event: Event): string {
|
||||
return stringify(event, (key, value) => {
|
||||
// Remove unnecessary properties
|
||||
if (key == 'ee' || key == 'openvidu' || key == 'userHandlerArrowHandler' || key == 'handlers') {
|
||||
return
|
||||
} else {
|
||||
return value;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue