mirror of https://github.com/OpenVidu/openvidu.git
356 lines
11 KiB
TypeScript
356 lines
11 KiB
TypeScript
![]() |
import { OpenViduCall } from './app.po';
|
||
|
import { browser, Key } from 'protractor';
|
||
|
import { protractor } from 'protractor/built/ptor';
|
||
|
|
||
|
describe('Connect to the room', () => {
|
||
|
const OVC = new OpenViduCall();
|
||
|
|
||
|
beforeEach(() => {
|
||
|
browser.waitForAngularEnabled(false);
|
||
|
browser.get('#/call/');
|
||
|
});
|
||
|
|
||
|
it('should navigate to OpenVidu room', () => {
|
||
|
const input = OVC.getRoomInput(browser);
|
||
|
input.clear();
|
||
|
input.sendKeys('OpenVidu');
|
||
|
OVC.getRoomJoinButton(browser).click();
|
||
|
expect(browser.getCurrentUrl()).toMatch('#/call/OpenVidu');
|
||
|
});
|
||
|
|
||
|
it('should show a short room name error', () => {
|
||
|
const input = OVC.getRoomInput(browser);
|
||
|
input.clear();
|
||
|
input.sendKeys('OV');
|
||
|
const shortError = OVC.getShortRoomNameError(browser);
|
||
|
expect(shortError.isDisplayed()).toBeTruthy();
|
||
|
OVC.getRoomJoinButton(browser).click();
|
||
|
expect(browser.getCurrentUrl()).toMatch('#/call/');
|
||
|
});
|
||
|
|
||
|
it('should show a required name room error', async () => {
|
||
|
const input = OVC.getRoomInput(browser);
|
||
|
await input.sendKeys(Key.CONTROL, 'a');
|
||
|
await input.sendKeys(Key.DELETE);
|
||
|
expect(OVC.getRequiredRoomNameError(browser).isDisplayed()).toBeTruthy();
|
||
|
OVC.getRoomJoinButton(browser).click();
|
||
|
expect(browser.getCurrentUrl()).toMatch('#/call/');
|
||
|
});
|
||
|
});
|
||
|
|
||
|
describe('Testing config card', () => {
|
||
|
const OVC = new OpenViduCall();
|
||
|
const EC = protractor.ExpectedConditions;
|
||
|
|
||
|
beforeEach(() => {
|
||
|
browser.waitForAngularEnabled(false);
|
||
|
browser.get('#/call/OpenVidu');
|
||
|
});
|
||
|
|
||
|
it('should show the config card', () => {
|
||
|
const configCard = OVC.getConfigCard(browser);
|
||
|
browser.wait(EC.visibilityOf(configCard), 3000);
|
||
|
expect(configCard.isDisplayed()).toBeTruthy();
|
||
|
});
|
||
|
|
||
|
it('should close the config card and go to home', () => {
|
||
|
browser.wait(EC.visibilityOf(OVC.getConfigCard(browser)), 3000);
|
||
|
expect(OVC.getConfigCard(browser).isDisplayed()).toBeTruthy();
|
||
|
|
||
|
browser.wait(EC.elementToBeClickable(OVC.getCloseButtonConfigCard(browser)), 5000);
|
||
|
OVC.getCloseButtonConfigCard(browser).click();
|
||
|
expect(browser.getCurrentUrl()).toMatch('#/call/');
|
||
|
|
||
|
// browser.wait(EC.elementToBeClickable(OVC.getCamButton(browser)), 5000);
|
||
|
// OVC.getCamButton(browser).click();
|
||
|
// browser.wait(EC.visibilityOf(OVC.getCamIcon(browser)), 5000);
|
||
|
// expect(OVC.getCamIcon(browser).isDisplayed()).toBeTruthy();
|
||
|
});
|
||
|
|
||
|
it('should be able to mute the camera', async () => {
|
||
|
let isVideoEnabled: boolean;
|
||
|
const videoEnableScript =
|
||
|
'const videoTrack = document.getElementsByTagName("video")[0].srcObject.getVideoTracks()[0]; return videoTrack.enabled;';
|
||
|
|
||
|
browser.wait(EC.elementToBeClickable(OVC.getConfigCardCameraButton(browser)), 5000);
|
||
|
|
||
|
OVC.getAllVideos(browser).then((videos) => {
|
||
|
expect(videos.length).toEqual(1);
|
||
|
});
|
||
|
|
||
|
isVideoEnabled = await browser.executeScript(videoEnableScript);
|
||
|
expect(isVideoEnabled).toBe(true);
|
||
|
|
||
|
OVC.getConfigCardCameraButton(browser).click();
|
||
|
isVideoEnabled = await browser.executeScript(videoEnableScript);
|
||
|
expect(isVideoEnabled).toBe(false);
|
||
|
});
|
||
|
|
||
|
it('should be able to mute the microphone', async () => {
|
||
|
let isAudioEnabled: boolean;
|
||
|
const audioEnableScript =
|
||
|
'const audioTrack = document.getElementsByTagName("video")[0].srcObject.getAudioTracks()[0]; return audioTrack.enabled;';
|
||
|
|
||
|
browser.wait(EC.elementToBeClickable(OVC.getConfigCardMicrophoneButton(browser)), 5000);
|
||
|
|
||
|
OVC.getAllVideos(browser).then((videos) => {
|
||
|
expect(videos.length).toEqual(1);
|
||
|
});
|
||
|
|
||
|
isAudioEnabled = await browser.executeScript(audioEnableScript);
|
||
|
expect(isAudioEnabled).toBe(true);
|
||
|
|
||
|
OVC.getConfigCardMicrophoneButton(browser).click();
|
||
|
isAudioEnabled = await browser.executeScript(audioEnableScript);
|
||
|
expect(isAudioEnabled).toBe(false);
|
||
|
});
|
||
|
|
||
|
// Unable to share screen in a headless chrome
|
||
|
xit('should be able to share the screen', async () => {
|
||
|
browser.wait(EC.elementToBeClickable(OVC.getConfigCardScreenShareButton(browser)), 5000);
|
||
|
|
||
|
OVC.getAllVideos(browser).then((videos) => {
|
||
|
expect(videos.length).toEqual(1);
|
||
|
});
|
||
|
|
||
|
OVC.getConfigCardScreenShareButton(browser).click();
|
||
|
|
||
|
OVC.getAllVideos(browser).then((videos) => {
|
||
|
expect(videos.length).toEqual(2);
|
||
|
});
|
||
|
});
|
||
|
|
||
|
// Unable to share screen in a headless chrome
|
||
|
xit('should be able to share the screen and remove the camera video if it is muted', () => {
|
||
|
browser.wait(EC.elementToBeClickable(OVC.getConfigCardScreenShareButton(browser)), 5000);
|
||
|
browser.wait(EC.elementToBeClickable(OVC.getConfigCardCameraButton(browser)), 5000);
|
||
|
|
||
|
OVC.getAllVideos(browser).then((videos) => {
|
||
|
expect(videos.length).toEqual(1);
|
||
|
});
|
||
|
|
||
|
OVC.getConfigCardCameraButton(browser).click();
|
||
|
|
||
|
OVC.getAllVideos(browser).then((videos) => {
|
||
|
expect(videos.length).toEqual(1);
|
||
|
});
|
||
|
|
||
|
OVC.getConfigCardScreenShareButton(browser).click();
|
||
|
|
||
|
OVC.getAllVideos(browser).then((videos) => {
|
||
|
expect(videos.length).toEqual(1);
|
||
|
});
|
||
|
});
|
||
|
|
||
|
// Unable to share screen in a headless chrome
|
||
|
xit('should be able to add the camera video when the screen is active clicking on camera button', () => {
|
||
|
browser.wait(EC.elementToBeClickable(OVC.getConfigCardScreenShareButton(browser)), 5000);
|
||
|
browser.wait(EC.elementToBeClickable(OVC.getConfigCardCameraButton(browser)), 5000);
|
||
|
|
||
|
OVC.getAllVideos(browser).then((videos) => {
|
||
|
expect(videos.length).toEqual(1);
|
||
|
});
|
||
|
|
||
|
OVC.getConfigCardCameraButton(browser).click();
|
||
|
|
||
|
OVC.getAllVideos(browser).then((videos) => {
|
||
|
expect(videos.length).toEqual(1);
|
||
|
});
|
||
|
|
||
|
OVC.getConfigCardScreenShareButton(browser).click();
|
||
|
|
||
|
OVC.getAllVideos(browser).then((videos) => {
|
||
|
expect(videos.length).toEqual(1);
|
||
|
});
|
||
|
|
||
|
OVC.getConfigCardCameraButton(browser).click();
|
||
|
|
||
|
OVC.getAllVideos(browser).then((videos) => {
|
||
|
expect(videos.length).toEqual(2);
|
||
|
});
|
||
|
});
|
||
|
|
||
|
it('should be able to add the camera video disabling screen share', () => {
|
||
|
browser.wait(EC.elementToBeClickable(OVC.getConfigCardScreenShareButton(browser)), 5000);
|
||
|
browser.wait(EC.elementToBeClickable(OVC.getConfigCardCameraButton(browser)), 5000);
|
||
|
|
||
|
OVC.getAllVideos(browser).then((videos) => {
|
||
|
expect(videos.length).toEqual(1);
|
||
|
});
|
||
|
|
||
|
OVC.getConfigCardCameraButton(browser).click();
|
||
|
|
||
|
OVC.getAllVideos(browser).then((videos) => {
|
||
|
expect(videos.length).toEqual(1);
|
||
|
});
|
||
|
OVC.getConfigCardScreenShareButton(browser).click();
|
||
|
|
||
|
OVC.getAllVideos(browser).then((videos) => {
|
||
|
expect(videos.length).toEqual(1);
|
||
|
});
|
||
|
|
||
|
OVC.getConfigCardScreenShareButton(browser).click();
|
||
|
|
||
|
OVC.getAllVideos(browser).then((videos) => {
|
||
|
expect(videos.length).toEqual(1);
|
||
|
});
|
||
|
});
|
||
|
|
||
|
it('should be able to join to room', async () => {
|
||
|
browser.wait(EC.elementToBeClickable(OVC.getRoomJoinButton(browser)), 5000);
|
||
|
OVC.getRoomJoinButton(browser).click();
|
||
|
expect(OVC.getRoomContainer(browser).isDisplayed()).toBeTruthy();
|
||
|
});
|
||
|
});
|
||
|
|
||
|
describe('Testing room', () => {
|
||
|
const OVC = new OpenViduCall();
|
||
|
const EC = protractor.ExpectedConditions;
|
||
|
|
||
|
beforeEach(() => {
|
||
|
browser.waitForAngularEnabled(false);
|
||
|
browser.get('#/call/');
|
||
|
browser.wait(EC.elementToBeClickable(OVC.getRoomJoinButton(browser)), 5000);
|
||
|
OVC.getRoomJoinButton(browser).click();
|
||
|
browser.sleep(1000);
|
||
|
|
||
|
browser.wait(EC.elementToBeClickable(OVC.getRoomJoinButton(browser)), 5000);
|
||
|
OVC.getRoomJoinButton(browser).click();
|
||
|
browser.sleep(1000);
|
||
|
});
|
||
|
|
||
|
afterEach(() => {
|
||
|
browser.wait(EC.elementToBeClickable(OVC.getLeaveButton(browser)), 5000);
|
||
|
OVC.getLeaveButton(browser).click();
|
||
|
expect(expect(browser.getCurrentUrl()).toMatch('#/call/'));
|
||
|
});
|
||
|
|
||
|
it('should be able to mute the camera', async () => {
|
||
|
let isVideoEnabled: boolean;
|
||
|
const videoEnableScript =
|
||
|
'const videoTrack = document.getElementsByTagName("video")[0].srcObject.getVideoTracks()[0]; return videoTrack.enabled;';
|
||
|
|
||
|
browser.wait(EC.elementToBeClickable(OVC.getRoomCameraButton(browser)), 5000);
|
||
|
|
||
|
OVC.getAllVideos(browser).then((videos) => {
|
||
|
expect(videos.length).toEqual(1);
|
||
|
});
|
||
|
|
||
|
isVideoEnabled = await browser.executeScript(videoEnableScript);
|
||
|
expect(isVideoEnabled).toBe(true);
|
||
|
|
||
|
OVC.getRoomCameraButton(browser).click();
|
||
|
isVideoEnabled = await browser.executeScript(videoEnableScript);
|
||
|
|
||
|
expect(isVideoEnabled).toBe(false);
|
||
|
|
||
|
// Uncomment when muted video is shown
|
||
|
// expect(OVC.getCameraStatusDisabled(browser).isDisplayed()).toBe(true);
|
||
|
});
|
||
|
|
||
|
it('should be able to mute the microphone', async () => {
|
||
|
let isAudioEnabled: boolean;
|
||
|
const audioEnableScript =
|
||
|
'const audioTrack = document.getElementsByTagName("video")[0].srcObject.getAudioTracks()[0]; return audioTrack.enabled;';
|
||
|
|
||
|
browser.wait(EC.elementToBeClickable(OVC.getRoomMicrophoneButton(browser)), 5000);
|
||
|
|
||
|
OVC.getAllVideos(browser).then((videos) => {
|
||
|
expect(videos.length).toEqual(1);
|
||
|
});
|
||
|
|
||
|
isAudioEnabled = await browser.executeScript(audioEnableScript);
|
||
|
expect(isAudioEnabled).toBe(true);
|
||
|
|
||
|
OVC.getRoomMicrophoneButton(browser).click();
|
||
|
isAudioEnabled = await browser.executeScript(audioEnableScript);
|
||
|
expect(isAudioEnabled).toBe(false);
|
||
|
expect(OVC.getMicrophoneStatusDisabled(browser).isDisplayed()).toBe(true);
|
||
|
});
|
||
|
|
||
|
// Unable to share screen in a headless chrome
|
||
|
xit('should be able to share the screen', () => {
|
||
|
browser.wait(EC.elementToBeClickable(OVC.getRoomScreenButton(browser)), 5000);
|
||
|
|
||
|
OVC.getAllVideos(browser).then((videos) => {
|
||
|
expect(videos.length).toEqual(1);
|
||
|
});
|
||
|
|
||
|
browser.sleep(3000);
|
||
|
OVC.getRoomScreenButton(browser).click();
|
||
|
|
||
|
OVC.getAllVideos(browser).then((videos) => {
|
||
|
expect(videos.length).toEqual(2);
|
||
|
});
|
||
|
});
|
||
|
|
||
|
// Unable to share screen in a headless chrome
|
||
|
xit('should be able to share the screen and remove the camera video if it is muted', () => {
|
||
|
browser.wait(EC.elementToBeClickable(OVC.getRoomScreenButton(browser)), 5000);
|
||
|
browser.wait(EC.elementToBeClickable(OVC.getRoomCameraButton(browser)), 5000);
|
||
|
|
||
|
OVC.getAllVideos(browser).then((videos) => {
|
||
|
expect(videos.length).toEqual(1);
|
||
|
});
|
||
|
|
||
|
OVC.getRoomCameraButton(browser).click();
|
||
|
|
||
|
OVC.getAllVideos(browser).then((videos) => {
|
||
|
expect(videos.length).toEqual(1);
|
||
|
});
|
||
|
|
||
|
OVC.getRoomScreenButton(browser).click();
|
||
|
|
||
|
OVC.getAllVideos(browser).then((videos) => {
|
||
|
expect(videos.length).toEqual(1);
|
||
|
});
|
||
|
});
|
||
|
|
||
|
// Unable to share screen in a headless chrome
|
||
|
xit('should be able to add the camera video disabling screen share', () => {
|
||
|
browser.wait(EC.elementToBeClickable(OVC.getRoomScreenButton(browser)), 5000);
|
||
|
browser.wait(EC.elementToBeClickable(OVC.getRoomCameraButton(browser)), 5000);
|
||
|
|
||
|
OVC.getAllVideos(browser).then((videos) => {
|
||
|
expect(videos.length).toEqual(1);
|
||
|
});
|
||
|
|
||
|
OVC.getRoomCameraButton(browser).click();
|
||
|
|
||
|
OVC.getAllVideos(browser).then((videos) => {
|
||
|
expect(videos.length).toEqual(1);
|
||
|
});
|
||
|
|
||
|
OVC.getRoomScreenButton(browser).click();
|
||
|
OVC.getAllVideos(browser).then((videos) => {
|
||
|
expect(videos.length).toEqual(1);
|
||
|
});
|
||
|
|
||
|
OVC.getRoomScreenButton(browser).click();
|
||
|
OVC.getAllVideos(browser).then((videos) => {
|
||
|
expect(videos.length).toEqual(1);
|
||
|
});
|
||
|
});
|
||
|
|
||
|
it('should enable and disable fullscreen', () => {
|
||
|
browser.wait(EC.elementToBeClickable(OVC.getFullscreenButton(browser)), 5000);
|
||
|
const button = OVC.getFullscreenButton(browser);
|
||
|
button.click();
|
||
|
browser.sleep(1000);
|
||
|
browser.driver
|
||
|
.manage()
|
||
|
.window()
|
||
|
.getSize()
|
||
|
.then((value) => {
|
||
|
expect(value.width === OVC.getVideo(browser).width && value.height === OVC.getVideo(browser).height);
|
||
|
button.click();
|
||
|
browser.driver
|
||
|
.manage()
|
||
|
.window()
|
||
|
.getSize()
|
||
|
.then((value2) => {
|
||
|
expect(value2.width !== OVC.getVideo(browser).width && value2.height !== OVC.getVideo(browser).height);
|
||
|
});
|
||
|
});
|
||
|
});
|
||
|
});
|