From 3175b5d3282aecdfc9c92a579b81f758f78dfba6 Mon Sep 17 00:00:00 2001 From: Carlos Santos <4a.santos@gmail.com> Date: Wed, 1 Mar 2023 12:23:38 +0100 Subject: [PATCH] openvidu-components: Added more e2e test - Testing video and audio toolbar buttons - Testing screensharing with video muted --- .../e2e/webcomponent.test.ts | 2556 +++++++++-------- 1 file changed, 1377 insertions(+), 1179 deletions(-) diff --git a/openvidu-components-angular/e2e/webcomponent.test.ts b/openvidu-components-angular/e2e/webcomponent.test.ts index 4c25d829..fa06aa91 100644 --- a/openvidu-components-angular/e2e/webcomponent.test.ts +++ b/openvidu-components-angular/e2e/webcomponent.test.ts @@ -1,1050 +1,1071 @@ import { expect } from 'chai'; -import { Builder, By, Key, WebDriver } from 'selenium-webdriver'; +import { Builder, Key, WebDriver } from 'selenium-webdriver'; import { OPENVIDU_SECRET, OPENVIDU_SERVER_URL } from './config'; import { getBrowserOptionsWithoutDevices, WebComponentConfig } from './selenium.conf'; import { OpenViduComponentsPO } from './utils.po.test'; const url = `${WebComponentConfig.appUrl}?OV_URL=${OPENVIDU_SERVER_URL}&OV_SECRET=${OPENVIDU_SECRET}`; -describe('Testing API Directives', () => { - let browser: WebDriver; - let utils: OpenViduComponentsPO; - async function createChromeBrowser(): Promise { - return await new Builder() - .forBrowser(WebComponentConfig.browserName) - .withCapabilities(WebComponentConfig.browserCapabilities) - .setChromeOptions(WebComponentConfig.browserOptions) - .usingServer(WebComponentConfig.seleniumAddress) - .build(); - } +// describe('Testing API Directives', () => { +// let browser: WebDriver; +// let utils: OpenViduComponentsPO; +// async function createChromeBrowser(): Promise { +// return await new Builder() +// .forBrowser(WebComponentConfig.browserName) +// .withCapabilities(WebComponentConfig.browserCapabilities) +// .setChromeOptions(WebComponentConfig.browserOptions) +// .usingServer(WebComponentConfig.seleniumAddress) +// .build(); +// } - beforeEach(async () => { - browser = await createChromeBrowser(); - utils = new OpenViduComponentsPO(browser); - }); +// beforeEach(async () => { +// browser = await createChromeBrowser(); +// utils = new OpenViduComponentsPO(browser); +// }); - afterEach(async () => { - // console.log('data:image/png;base64,' + await browser.takeScreenshot()); - await browser.quit(); - }); +// afterEach(async () => { +// // console.log('data:image/png;base64,' + await browser.takeScreenshot()); +// await browser.quit(); +// }); - it('should join with ONLY ONE TOKEN', async () => { - await browser.get(`${url}&singleToken=true`); +// it('should join with ONLY ONE TOKEN', async () => { +// await browser.get(`${url}&singleToken=true`); - // Checking if prejoin page exist - await utils.checkPrejoinIsPresent(); +// // Checking if prejoin page exist +// await utils.checkPrejoinIsPresent(); - const joinButton = await utils.waitForElement('#join-button'); - await joinButton.click(); +// const joinButton = await utils.waitForElement('#join-button'); +// await joinButton.click(); - // Checking if session container is present - await utils.checkSessionIsPresent(); +// // Checking if session container is present +// await utils.checkSessionIsPresent(); - await utils.checkToolbarIsPresent(); +// await utils.checkToolbarIsPresent(); - // Checking if screenshare button is not present - expect(await utils.isPresent('#screenshare-btn')).to.be.false; - }); +// // Checking if screenshare button is not present +// expect(await utils.isPresent('#screenshare-btn')).to.be.false; +// }); - it('should set the MINIMAL UI', async () => { - await browser.get(`${url}&minimal=true`); - // Checking if prejoin page exist - await utils.checkPrejoinIsPresent(); +// it('should set the MINIMAL UI', async () => { +// await browser.get(`${url}&minimal=true`); +// // Checking if prejoin page exist +// await utils.checkPrejoinIsPresent(); - // Checking if layout is present - await utils.checkLayoutPresent(); +// // Checking if layout is present +// await utils.checkLayoutPresent(); - // Checking if stream component is present - utils.checkStreamIsPresent(); +// // Checking if stream component is present +// utils.checkStreamIsPresent(); - // Checking if audio detection is not displayed - expect(await utils.isPresent('#audio-wave-container')).to.be.false; +// // Checking if audio detection is not displayed +// expect(await utils.isPresent('#audio-wave-container')).to.be.false; - const joinButton = await utils.waitForElement('#join-button'); - await joinButton.click(); +// const joinButton = await utils.waitForElement('#join-button'); +// await joinButton.click(); - // Checking if session container is present - await utils.checkSessionIsPresent(); +// // Checking if session container is present +// await utils.checkSessionIsPresent(); - // Checking if toolbar is present - await utils.checkToolbarIsPresent(); +// // Checking if toolbar is present +// await utils.checkToolbarIsPresent(); - // Checking if screenshare button is not present - expect(await utils.isPresent('#screenshare-btn')).to.be.false; +// // Checking if screenshare button is not present +// expect(await utils.isPresent('#screenshare-btn')).to.be.false; - // Checking if more options button is not present - expect(await utils.isPresent('#more-options-btn')).to.be.false; +// // Checking if more options button is not present +// expect(await utils.isPresent('#more-options-btn')).to.be.false; - // Checking if participants panel button is not present - expect(await utils.isPresent('#participants-panel-btn')).to.be.false; +// // Checking if participants panel button is not present +// expect(await utils.isPresent('#participants-panel-btn')).to.be.false; - // Checking if activities panel button is not present - expect(await utils.isPresent('#activities-panel-btn')).to.be.false; +// // Checking if activities panel button is not present +// expect(await utils.isPresent('#activities-panel-btn')).to.be.false; - // Checking if logo is not displayed - expect(await utils.isPresent('#branding-logo')).to.be.false; +// // Checking if logo is not displayed +// expect(await utils.isPresent('#branding-logo')).to.be.false; - // Checking if session name is not displayed - expect(await utils.isPresent('#session-name')).to.be.false; +// // Checking if session name is not displayed +// expect(await utils.isPresent('#session-name')).to.be.false; - // Checking if nickname is not displayed - await browser.findElements(By.id('nickname-container')); - expect(await utils.isPresent('#nickname-container')).to.be.false; +// // Checking if nickname is not displayed +// await browser.findElements(By.id('nickname-container')); +// expect(await utils.isPresent('#nickname-container')).to.be.false; - // Checking if audio detection is not displayed - expect(await utils.isPresent('#audio-wave-container')).to.be.false; +// // Checking if audio detection is not displayed +// expect(await utils.isPresent('#audio-wave-container')).to.be.false; - // Checking if settings button is not displayed - expect(await utils.isPresent('#settings-container')).to.be.false; - }); +// // Checking if settings button is not displayed +// expect(await utils.isPresent('#settings-container')).to.be.false; +// }); - it('should change the UI LANG ', async () => { - await browser.get(`${url}&lang=es`); +// it('should change the UI LANG ', async () => { +// await browser.get(`${url}&lang=es`); - await utils.checkPrejoinIsPresent(); +// await utils.checkPrejoinIsPresent(); - let element = await utils.waitForElement('.lang-button'); - expect(await element.getText()).equal('Españolexpand_more'); +// let element = await utils.waitForElement('.lang-button'); +// expect(await element.getText()).equal('Españolexpand_more'); - element = await utils.waitForElement('#join-button'); - expect(await element.getText()).equal('Unirme ahora'); - }); +// element = await utils.waitForElement('#join-button'); +// expect(await element.getText()).equal('Unirme ahora'); +// }); - it('should show the PREJOIN page', async () => { - await browser.get(`${url}&prejoin=true`); +// it('should show the PREJOIN page', async () => { +// await browser.get(`${url}&prejoin=true`); - await utils.checkPrejoinIsPresent(); - }); +// await utils.checkPrejoinIsPresent(); +// }); - it('should not show the PREJOIN page', async () => { - await browser.get(`${url}&prejoin=false`); +// it('should not show the PREJOIN page', async () => { +// await browser.get(`${url}&prejoin=false`); - await utils.checkSessionIsPresent(); - }); +// await utils.checkSessionIsPresent(); +// }); - it('should run the app with VIDEO MUTED in prejoin page', async () => { - try { - let idVideoEnabled; - const script = 'return document.getElementsByTagName("video")[0].srcObject.getVideoTracks()[0].enabled;'; +// it('should run the app with VIDEO MUTED in prejoin page', async () => { +// try { +// let idVideoEnabled; +// const script = 'return document.getElementsByTagName("video")[0].srcObject.getVideoTracks()[0].enabled;'; - await browser.get(`${url}&prejoin=true&videoMuted=true`); +// await browser.get(`${url}&prejoin=true&videoMuted=true`); - await utils.checkPrejoinIsPresent(); +// await utils.checkPrejoinIsPresent(); - // Checking if video is displayed - await utils.checkVideoElementIsPresent(); +// // Checking if video is displayed +// await utils.checkVideoElementIsPresent(); - // Checking if virtual background button is disabled - const button = await utils.waitForElement('#background-effects-btn'); - expect(await button.isEnabled()).to.be.false; +// // Checking if virtual background button is disabled +// const button = await utils.waitForElement('#background-effects-btn'); +// expect(await button.isEnabled()).to.be.false; - // Checking if video track is disabled/muted - idVideoEnabled = await browser.executeScript(script); - expect(idVideoEnabled).to.be.false; +// // Checking if video track is disabled/muted +// idVideoEnabled = await browser.executeScript(script); +// expect(idVideoEnabled).to.be.false; - await utils.waitForElement('#videocam_off'); - await utils.clickOn('#join-button'); +// await utils.waitForElement('#videocam_off'); +// await utils.clickOn('#join-button'); - // Checking if video is muted after join the room - await utils.checkSessionIsPresent(); +// // Checking if video is muted after join the room +// await utils.checkSessionIsPresent(); - idVideoEnabled = await browser.executeScript(script); - expect(idVideoEnabled).to.be.false; +// idVideoEnabled = await browser.executeScript(script); +// expect(idVideoEnabled).to.be.false; - await utils.waitForElement('#videocam_off'); - expect(await utils.isPresent('#videocam_off')).to.be.true; - } catch (error) { - console.log(error); - console.log(await browser.takeScreenshot()); - } +// await utils.waitForElement('#videocam_off'); +// expect(await utils.isPresent('#videocam_off')).to.be.true; +// } catch (error) { +// console.log(error); +// console.log(await browser.takeScreenshot()); +// } +// }); - }); +// it('should run the app with VIDEO MUTED and WITHOUT PREJOIN page', async () => { +// let isVideoEnabled; +// const videoEnableScript = 'return document.getElementsByTagName("video")[0].srcObject.getVideoTracks()[0].enabled;'; - it('should run the app with VIDEO MUTED and WITHOUT PREJOIN page', async () => { - let isVideoEnabled; - const videoEnableScript = 'return document.getElementsByTagName("video")[0].srcObject.getVideoTracks()[0].enabled;'; +// await browser.get(`${url}&prejoin=false&videoMuted=true`); - await browser.get(`${url}&prejoin=false&videoMuted=true`); +// await browser.sleep(2000); - await browser.sleep(2000); +// await utils.checkSessionIsPresent(); - await utils.checkSessionIsPresent(); +// await utils.checkLayoutPresent(); - await utils.checkLayoutPresent(); +// // Checking if video is displayed +// await utils.checkVideoElementIsPresent(); - // Checking if video is displayed - await utils.checkVideoElementIsPresent(); +// // Checking if video track is disabled/muted +// isVideoEnabled = await browser.executeScript(videoEnableScript); +// expect(isVideoEnabled).to.be.false; - // Checking if video track is disabled/muted - isVideoEnabled = await browser.executeScript(videoEnableScript); - expect(isVideoEnabled).to.be.false; +// await utils.waitForElement('#videocam_off'); +// expect(await utils.isPresent('#videocam_off')).to.be.true; +// }); - await utils.waitForElement('#videocam_off'); - expect(await utils.isPresent('#videocam_off')).to.be.true; - }); +// it('should run the app with AUDIO MUTED in prejoin page', async () => { +// let isAudioEnabled; +// const script = 'return document.getElementsByTagName("video")[0].srcObject.getAudioTracks()[0].enabled;'; - it('should run the app with AUDIO MUTED in prejoin page', async () => { - let isAudioEnabled; - const script = 'return document.getElementsByTagName("video")[0].srcObject.getAudioTracks()[0].enabled;'; +// await browser.get(`${url}&audioMuted=true`); - await browser.get(`${url}&audioMuted=true`); +// await utils.checkPrejoinIsPresent(); - await utils.checkPrejoinIsPresent(); +// // Checking if video is displayed +// await utils.checkVideoElementIsPresent(); - // Checking if video is displayed - await utils.checkVideoElementIsPresent(); +// // Checking if audio track is disabled/muted +// isAudioEnabled = await browser.executeScript(script); +// expect(isAudioEnabled).to.be.false; - // Checking if audio track is disabled/muted - isAudioEnabled = await browser.executeScript(script); - expect(isAudioEnabled).to.be.false; +// await utils.waitForElement('#mic_off'); +// expect(await utils.isPresent('#mic_off')).to.be.true; - await utils.waitForElement('#mic_off'); - expect(await utils.isPresent('#mic_off')).to.be.true; +// await utils.clickOn('#join-button'); - await utils.clickOn('#join-button'); +// // Checking if audio is muted after join the room +// await utils.checkSessionIsPresent(); +// isAudioEnabled = await browser.executeScript(script); +// expect(isAudioEnabled).to.be.false; - // Checking if audio is muted after join the room - await utils.checkSessionIsPresent(); - isAudioEnabled = await browser.executeScript(script); - expect(isAudioEnabled).to.be.false; +// await utils.waitForElement('#mic_off'); +// expect(await utils.isPresent('#mic_off')).to.be.true; +// }); - await utils.waitForElement('#mic_off'); - expect(await utils.isPresent('#mic_off')).to.be.true; - }); +// it('should run the app with VIDEO MUTED and WITHOUT PREJOIN page', async () => { +// let isAudioEnabled; +// const audioEnableScript = 'return document.getElementsByTagName("video")[0].srcObject.getAudioTracks()[0].enabled;'; - it('should run the app with VIDEO MUTED and WITHOUT PREJOIN page', async () => { - let isAudioEnabled; - const audioEnableScript = 'return document.getElementsByTagName("video")[0].srcObject.getAudioTracks()[0].enabled;'; +// await browser.get(`${url}&prejoin=false&audioMuted=true`); - await browser.get(`${url}&prejoin=false&audioMuted=true`); +// await utils.checkSessionIsPresent(); - await utils.checkSessionIsPresent(); +// // Checking if video is displayed +// await utils.checkVideoElementIsPresent(); - // Checking if video is displayed - await utils.checkVideoElementIsPresent(); +// // Checking if audio track is disabled/muted +// isAudioEnabled = await browser.executeScript(audioEnableScript); +// expect(isAudioEnabled).to.be.false; - // Checking if audio track is disabled/muted - isAudioEnabled = await browser.executeScript(audioEnableScript); - expect(isAudioEnabled).to.be.false; +// await utils.waitForElement('#mic_off'); +// expect(await utils.isPresent('#mic_off')).to.be.true; +// }); - await utils.waitForElement('#mic_off'); - expect(await utils.isPresent('#mic_off')).to.be.true; - }); +// it('should HIDE the SCREENSHARE button', async () => { +// await browser.get(`${url}&prejoin=false&screenshareBtn=false`); - it('should HIDE the SCREENSHARE button', async () => { - await browser.get(`${url}&prejoin=false&screenshareBtn=false`); +// await utils.checkSessionIsPresent(); - await utils.checkSessionIsPresent(); +// // Checking if toolbar is present +// await utils.checkToolbarIsPresent(); - // Checking if toolbar is present - await utils.checkToolbarIsPresent(); +// // Checking if screenshare button is not present +// expect(await utils.isPresent('#screenshare-btn')).to.be.false; +// }); - // Checking if screenshare button is not present - expect(await utils.isPresent('#screenshare-btn')).to.be.false; - }); +// it('should HIDE the FULLSCREEN button', async () => { +// await browser.get(`${url}&prejoin=false&fullscreenBtn=false`); - it('should HIDE the FULLSCREEN button', async () => { - await browser.get(`${url}&prejoin=false&fullscreenBtn=false`); +// await utils.checkSessionIsPresent(); - await utils.checkSessionIsPresent(); +// // Checking if toolbar is present +// await utils.checkToolbarIsPresent(); - // Checking if toolbar is present - await utils.checkToolbarIsPresent(); +// // Open more options menu +// await utils.clickOn('#more-options-btn'); - // Open more options menu - await utils.clickOn('#more-options-btn'); +// await browser.sleep(500); - await browser.sleep(500); +// // Checking if fullscreen button is not present +// await utils.waitForElement('.mat-menu-content'); +// expect(await utils.isPresent('.mat-menu-content')).to.be.true; - // Checking if fullscreen button is not present - await utils.waitForElement('.mat-menu-content'); - expect(await utils.isPresent('.mat-menu-content')).to.be.true; +// await browser.findElements(By.id('fullscreen-btn')); +// expect(await utils.isPresent('#fullscreen-btn')).to.be.false; +// }); - await browser.findElements(By.id('fullscreen-btn')); - expect(await utils.isPresent('#fullscreen-btn')).to.be.false; - }); +// it('should HIDE the CAPTIONS button', async () => { +// await browser.get(`${url}&prejoin=false&toolbarCaptionsBtn=false`); - it('should HIDE the CAPTIONS button', async () => { - await browser.get(`${url}&prejoin=false&toolbarCaptionsBtn=false`); +// await utils.checkSessionIsPresent(); - await utils.checkSessionIsPresent(); +// // Checking if toolbar is present +// await utils.checkToolbarIsPresent(); - // Checking if toolbar is present - await utils.checkToolbarIsPresent(); +// // Open more options menu +// await utils.clickOn('#more-options-btn'); - // Open more options menu - await utils.clickOn('#more-options-btn'); +// await browser.sleep(500); - await browser.sleep(500); +// // Checking if button panel is present +// await utils.waitForElement('.mat-menu-content'); +// expect(await utils.isPresent('.mat-menu-content')).to.be.true; - // Checking if button panel is present - await utils.waitForElement('.mat-menu-content'); - expect(await utils.isPresent('.mat-menu-content')).to.be.true; +// // Checking if captions button is not present +// expect(await utils.isPresent('#captions-btn')).to.be.false; - // Checking if captions button is not present - expect(await utils.isPresent('#captions-btn')).to.be.false; +// await utils.clickOn('#toolbar-settings-btn'); - await utils.clickOn('#toolbar-settings-btn'); +// await browser.sleep(500); - await browser.sleep(500); +// await utils.waitForElement('.settings-container'); +// expect(await utils.isPresent('.settings-container')).to.be.true; - await utils.waitForElement('.settings-container'); - expect(await utils.isPresent('.settings-container')).to.be.true; +// expect(await utils.isPresent('#captions-opt')).to.be.false; +// }); - expect(await utils.isPresent('#captions-opt')).to.be.false; - }); +// it('should HIDE the TOOLBAR RECORDING button', async () => { +// await browser.get(`${url}&prejoin=false&toolbarRecordingButton=false`); - it('should HIDE the TOOLBAR RECORDING button', async () => { - await browser.get(`${url}&prejoin=false&toolbarRecordingButton=false`); +// await utils.checkSessionIsPresent(); - await utils.checkSessionIsPresent(); +// // Checking if toolbar is present +// await utils.checkToolbarIsPresent(); - // Checking if toolbar is present - await utils.checkToolbarIsPresent(); +// // Open more options menu +// await utils.clickOn('#more-options-btn'); - // Open more options menu - await utils.clickOn('#more-options-btn'); +// await browser.sleep(500); - await browser.sleep(500); +// // Checking if button panel is present +// await utils.waitForElement('.mat-menu-content'); +// expect(await utils.isPresent('.mat-menu-content')).to.be.true; - // Checking if button panel is present - await utils.waitForElement('.mat-menu-content'); - expect(await utils.isPresent('.mat-menu-content')).to.be.true; +// // Checking if recording button is not present +// expect(await utils.isPresent('#recording-btn')).to.be.false; +// }); - // Checking if recording button is not present - expect(await utils.isPresent('#recording-btn')).to.be.false; - }); +// it('should HIDE the TOOLBAR BROADCASTING button', async () => { +// await browser.get(`${url}&prejoin=false&toolbarBroadcastingButton=false`); - it('should HIDE the TOOLBAR BROADCASTING button', async () => { - await browser.get(`${url}&prejoin=false&toolbarBroadcastingButton=false`); +// await utils.checkSessionIsPresent(); - await utils.checkSessionIsPresent(); +// // Checking if toolbar is present +// await utils.checkToolbarIsPresent(); - // Checking if toolbar is present - await utils.checkToolbarIsPresent(); +// // Open more options menu +// await utils.clickOn('#more-options-btn'); - // Open more options menu - await utils.clickOn('#more-options-btn'); +// await browser.sleep(500); - await browser.sleep(500); +// // Checking if button panel is present +// await utils.waitForElement('.mat-menu-content'); +// expect(await utils.isPresent('.mat-menu-content')).to.be.true; - // Checking if button panel is present - await utils.waitForElement('.mat-menu-content'); - expect(await utils.isPresent('.mat-menu-content')).to.be.true; +// // Checking if broadcasting button is not present +// expect(await utils.isPresent('#broadcasting-btn')).to.be.false; +// }); - // Checking if broadcasting button is not present - expect(await utils.isPresent('#broadcasting-btn')).to.be.false; - }); +// it('should HIDE the TOOLBAR SETTINGS button', async () => { +// await browser.get(`${url}&prejoin=false&toolbarSettingsBtn=false`); - it('should HIDE the TOOLBAR SETTINGS button', async () => { - await browser.get(`${url}&prejoin=false&toolbarSettingsBtn=false`); +// await utils.checkSessionIsPresent(); - await utils.checkSessionIsPresent(); +// // Checking if toolbar is present +// await utils.checkToolbarIsPresent(); - // Checking if toolbar is present - await utils.checkToolbarIsPresent(); +// // Open more options menu +// await utils.clickOn('#more-options-btn'); - // Open more options menu - await utils.clickOn('#more-options-btn'); +// await browser.sleep(500); - await browser.sleep(500); +// // Checking if fullscreen button is not present +// await utils.waitForElement('.mat-menu-content'); +// expect(await utils.isPresent('.mat-menu-content')).to.be.true; - // Checking if fullscreen button is not present - await utils.waitForElement('.mat-menu-content'); - expect(await utils.isPresent('.mat-menu-content')).to.be.true; +// expect(await utils.isPresent('#toolbar-settings-btn')).to.be.false; +// }); - expect(await utils.isPresent('#toolbar-settings-btn')).to.be.false; - }); +// it('should HIDE the LEAVE button', async () => { +// await browser.get(`${url}&prejoin=false&leaveBtn=false`); - it('should HIDE the LEAVE button', async () => { - await browser.get(`${url}&prejoin=false&leaveBtn=false`); +// await utils.checkSessionIsPresent(); - await utils.checkSessionIsPresent(); +// // Checking if toolbar is present +// await utils.checkToolbarIsPresent(); - // Checking if toolbar is present - await utils.checkToolbarIsPresent(); +// // Checking if leave button is not present +// await browser.findElements(By.id('leave-btn')); +// expect(await utils.isPresent('#leave-btn')).to.be.false; +// }); - // Checking if leave button is not present - await browser.findElements(By.id('leave-btn')); - expect(await utils.isPresent('#leave-btn')).to.be.false; - }); +// it('should HIDE the ACTIVITIES PANEL button', async () => { +// await browser.get(`${url}&prejoin=false&activitiesPanelBtn=false`); - it('should HIDE the ACTIVITIES PANEL button', async () => { - await browser.get(`${url}&prejoin=false&activitiesPanelBtn=false`); +// await utils.checkSessionIsPresent(); - await utils.checkSessionIsPresent(); +// // Checking if toolbar is present +// await utils.checkToolbarIsPresent(); - // Checking if toolbar is present - await utils.checkToolbarIsPresent(); +// // Checking if activities panel button is not present +// expect(await utils.isPresent('#activities-panel-btn')).to.be.false; +// }); - // Checking if activities panel button is not present - expect(await utils.isPresent('#activities-panel-btn')).to.be.false; - }); +// it('should HIDE the CHAT PANEL button', async () => { +// await browser.get(`${url}&prejoin=false&chatPanelBtn=false`); - it('should HIDE the CHAT PANEL button', async () => { - await browser.get(`${url}&prejoin=false&chatPanelBtn=false`); +// await utils.checkSessionIsPresent(); - await utils.checkSessionIsPresent(); +// // Checking if toolbar is present +// await utils.checkToolbarIsPresent(); - // Checking if toolbar is present - await utils.checkToolbarIsPresent(); +// // Checking if chat panel button is not present +// expect(await utils.isPresent('#chat-panel-btn')).to.be.false; +// }); - // Checking if chat panel button is not present - expect(await utils.isPresent('#chat-panel-btn')).to.be.false; - }); +// it('should HIDE the PARTICIPANTS PANEL button', async () => { +// await browser.get(`${url}&prejoin=false&participantsPanelBtn=false`); - it('should HIDE the PARTICIPANTS PANEL button', async () => { - await browser.get(`${url}&prejoin=false&participantsPanelBtn=false`); +// await utils.checkSessionIsPresent(); - await utils.checkSessionIsPresent(); +// // Checking if toolbar is present +// await utils.checkToolbarIsPresent(); - // Checking if toolbar is present - await utils.checkToolbarIsPresent(); +// // Checking if participants panel button is not present +// expect(await utils.isPresent('#participants-panel-btn')).to.be.false; +// }); - // Checking if participants panel button is not present - expect(await utils.isPresent('#participants-panel-btn')).to.be.false; - }); +// it('should HIDE the LOGO', async () => { +// await browser.get(`${url}&prejoin=false&displayLogo=false`); - it('should HIDE the LOGO', async () => { - await browser.get(`${url}&prejoin=false&displayLogo=false`); +// await utils.checkSessionIsPresent(); - await utils.checkSessionIsPresent(); +// // Checking if toolbar is present +// await utils.checkToolbarIsPresent(); - // Checking if toolbar is present - await utils.checkToolbarIsPresent(); +// // Checking if toolbar is present +// await utils.waitForElement('#info-container'); +// expect(await utils.isPresent('#info-container')).to.be.true; - // Checking if toolbar is present - await utils.waitForElement('#info-container'); - expect(await utils.isPresent('#info-container')).to.be.true; +// // Checking if logo is not displayed +// expect(await utils.isPresent('#branding-logo')).to.be.false; +// }); - // Checking if logo is not displayed - expect(await utils.isPresent('#branding-logo')).to.be.false; - }); +// it('should HIDE the SESSION NAME', async () => { +// await browser.get(`${url}&prejoin=false&displaySessionName=false`); - it('should HIDE the SESSION NAME', async () => { - await browser.get(`${url}&prejoin=false&displaySessionName=false`); +// await utils.checkSessionIsPresent(); - await utils.checkSessionIsPresent(); +// // Checking if toolbar is present +// await utils.checkToolbarIsPresent(); - // Checking if toolbar is present - await utils.checkToolbarIsPresent(); +// // Checking if toolbar is present +// await utils.waitForElement('#info-container'); +// expect(await utils.isPresent('#info-container')).to.be.true; - // Checking if toolbar is present - await utils.waitForElement('#info-container'); - expect(await utils.isPresent('#info-container')).to.be.true; +// // Checking if session name is not displayed +// expect(await utils.isPresent('#session-name')).to.be.false; +// }); - // Checking if session name is not displayed - expect(await utils.isPresent('#session-name')).to.be.false; - }); +// it('should HIDE the PARTICIPANT NAME', async () => { +// await browser.get(`${url}&prejoin=false&displayParticipantName=false`); - it('should HIDE the PARTICIPANT NAME', async () => { - await browser.get(`${url}&prejoin=false&displayParticipantName=false`); +// await utils.checkSessionIsPresent(); - await utils.checkSessionIsPresent(); +// // Checking if toolbar is present +// await utils.checkToolbarIsPresent(); - // Checking if toolbar is present - await utils.checkToolbarIsPresent(); +// // Checking if stream component is present +// await utils.checkStreamIsPresent(); - // Checking if stream component is present - await utils.checkStreamIsPresent(); +// // Checking if nickname is not present +// expect(await utils.isPresent('#nickname-container')).to.be.false; +// }); - // Checking if nickname is not present - expect(await utils.isPresent('#nickname-container')).to.be.false; - }); +// it('should HIDE the AUDIO DETECTION element', async () => { +// await browser.get(`${url}&prejoin=false&displayAudioDetection=false`); - it('should HIDE the AUDIO DETECTION element', async () => { - await browser.get(`${url}&prejoin=false&displayAudioDetection=false`); +// await utils.checkSessionIsPresent(); - await utils.checkSessionIsPresent(); +// // Checking if toolbar is present +// await utils.checkToolbarIsPresent(); - // Checking if toolbar is present - await utils.checkToolbarIsPresent(); +// // Checking if stream component is present +// await utils.checkStreamIsPresent(); - // Checking if stream component is present - await utils.checkStreamIsPresent(); +// // Checking if audio detection is not present +// expect(await utils.isPresent('#audio-wave-container')).to.be.false; +// }); - // Checking if audio detection is not present - expect(await utils.isPresent('#audio-wave-container')).to.be.false; - }); +// it('should HIDE the STREAM SETTINGS button', async () => { +// await browser.get(`${url}&prejoin=false&settingsBtn=false`); - it('should HIDE the STREAM SETTINGS button', async () => { - await browser.get(`${url}&prejoin=false&settingsBtn=false`); +// await utils.checkSessionIsPresent(); - await utils.checkSessionIsPresent(); +// // Checking if toolbar is present +// await utils.checkToolbarIsPresent(); - // Checking if toolbar is present - await utils.checkToolbarIsPresent(); +// // Checking if stream component is present +// await utils.checkStreamIsPresent(); - // Checking if stream component is present - await utils.checkStreamIsPresent(); +// // Checking if settings button is not present +// expect(await utils.isPresent('#settings-container')).to.be.false; +// }); - // Checking if settings button is not present - expect(await utils.isPresent('#settings-container')).to.be.false; - }); +// it('should HIDE the MUTE button in participants panel', async () => { +// const sessionName = 'e2etest'; +// const fixedUrl = `${url}&prejoin=false&participantMuteBtn=false&sessionName=${sessionName}`; +// await browser.get(fixedUrl); - it('should HIDE the MUTE button in participants panel', async () => { - const sessionName = 'e2etest'; - const fixedUrl = `${url}&prejoin=false&participantMuteBtn=false&sessionName=${sessionName}`; - await browser.get(fixedUrl); +// await utils.checkSessionIsPresent(); - await utils.checkSessionIsPresent(); +// // Checking if toolbar is present +// await utils.checkToolbarIsPresent(); - // Checking if toolbar is present - await utils.checkToolbarIsPresent(); +// const participantsButton = await utils.waitForElement('#participants-panel-btn'); +// await participantsButton.click(); - const participantsButton = await utils.waitForElement('#participants-panel-btn'); - await participantsButton.click(); +// // Checking if participatns panel is displayed +// await utils.waitForElement('#participants-container'); +// expect(await utils.isPresent('#participants-container')).to.be.true; - // Checking if participatns panel is displayed - await utils.waitForElement('#participants-container'); - expect(await utils.isPresent('#participants-container')).to.be.true; +// // Checking remote participants item +// expect(await utils.isPresent('#remote-participant-item')).to.be.false; - // Checking remote participants item - expect(await utils.isPresent('#remote-participant-item')).to.be.false; +// // Starting new browser for adding a new participant +// const newTabScript = `window.open("${fixedUrl}")`; +// await browser.executeScript(newTabScript); - // Starting new browser for adding a new participant - const newTabScript = `window.open("${fixedUrl}")`; - await browser.executeScript(newTabScript); +// // Go to first tab +// const tabs = await browser.getAllWindowHandles(); +// browser.switchTo().window(tabs[0]); - // Go to first tab - const tabs = await browser.getAllWindowHandles(); - await browser.switchTo().window(tabs[0]); +// // Checking if mute button is not displayed in participant item +// await utils.waitForElement('#remote-participant-item'); +// expect(await utils.isPresent('#remote-participant-item')).to.be.true; - // Checking if mute button is not displayed in participant item - await utils.waitForElement('#remote-participant-item'); - expect(await utils.isPresent('#remote-participant-item')).to.be.true; +// expect(await utils.isPresent('#mute-btn')).to.be.false; +// }); - expect(await utils.isPresent('#mute-btn')).to.be.false; - }); +// it('should HIDE the RECORDING ACTIVITY in activities panel', async () => { +// let element; +// const fixedUrl = `${url}&prejoin=false&activitiesPanelRecordingActivity=false`; +// await browser.get(fixedUrl); - it('should HIDE the RECORDING ACTIVITY in activities panel', async () => { - let element; - const fixedUrl = `${url}&prejoin=false&activitiesPanelRecordingActivity=false`; - await browser.get(fixedUrl); +// await utils.checkSessionIsPresent(); - await utils.checkSessionIsPresent(); +// // Checking if toolbar is present +// await utils.checkToolbarIsPresent(); - // Checking if toolbar is present - await utils.checkToolbarIsPresent(); +// element = await utils.waitForElement('#activities-panel-btn'); +// await element.click(); - element = await utils.waitForElement('#activities-panel-btn'); - await element.click(); +// // Checking if participatns panel is displayed +// await utils.waitForElement('#default-activities-panel'); +// expect(await utils.isPresent('#default-activities-panel')).to.be.true; - // Checking if participatns panel is displayed - await utils.waitForElement('#default-activities-panel'); - expect(await utils.isPresent('#default-activities-panel')).to.be.true; +// // await browser.sleep(1000); - // await browser.sleep(1000); +// // Checking if recording activity exists +// await utils.waitForElement('.activities-body-container'); +// expect(await utils.isPresent('ov-recording-activity')).to.be.false; +// }); - // Checking if recording activity exists - await utils.waitForElement('.activities-body-container'); - expect(await utils.isPresent('ov-recording-activity')).to.be.false; - }); +// it('should SHOW a RECORDING ERROR in activities panel', async () => { +// let element; +// const fixedUrl = `${url}&prejoin=false&recordingError=TEST_ERROR`; +// await browser.get(fixedUrl); - it('should SHOW a RECORDING ERROR in activities panel', async () => { - let element; - const fixedUrl = `${url}&prejoin=false&recordingError=TEST_ERROR`; - await browser.get(fixedUrl); +// await utils.checkSessionIsPresent(); - await utils.checkSessionIsPresent(); +// // Checking if toolbar is present +// await utils.checkToolbarIsPresent(); - // Checking if toolbar is present - await utils.checkToolbarIsPresent(); +// element = await utils.waitForElement('#activities-panel-btn'); +// await element.click(); - element = await utils.waitForElement('#activities-panel-btn'); - await element.click(); +// // Checking if participatns panel is displayed +// await utils.waitForElement('#default-activities-panel'); +// expect(await utils.isPresent('#default-activities-panel')).to.be.true; - // Checking if participatns panel is displayed - await utils.waitForElement('#default-activities-panel'); - expect(await utils.isPresent('#default-activities-panel')).to.be.true; +// // Checking if recording activity exists +// await utils.waitForElement('#activities-container'); +// await utils.waitForElement('.activities-body-container'); - // Checking if recording activity exists - await utils.waitForElement('#activities-container'); - await utils.waitForElement('.activities-body-container'); +// await utils.waitForElement('ov-recording-activity'); +// expect(await utils.isPresent('ov-recording-activity')).to.be.true; - await utils.waitForElement('ov-recording-activity'); - expect(await utils.isPresent('ov-recording-activity')).to.be.true; +// await utils.waitForElement('.failed'); +// expect(await utils.isPresent('.failed')).to.be.true; - await utils.waitForElement('.failed'); - expect(await utils.isPresent('.failed')).to.be.true; +// // Open recording +// await browser.sleep(1000); +// element = await utils.waitForElement('ov-recording-activity'); +// await element.click(); - // Open recording - await browser.sleep(1000); - element = await utils.waitForElement('ov-recording-activity'); - await element.click(); +// element = await utils.waitForElement('.recording-error'); +// expect(await element.getAttribute('innerText')).equal('"TEST_ERROR"'); +// expect(await utils.isPresent('.recording-error')).to.be.true; +// }); - element = await utils.waitForElement('.recording-error'); - expect(await element.getAttribute('innerText')).equal('"TEST_ERROR"'); - expect(await utils.isPresent('.recording-error')).to.be.true; - }); +// it('should SHOW a BROADCASTING ERROR in activities panel', async () => { +// let element; +// const fixedUrl = `${url}&prejoin=false&broadcastingError=TEST_ERROR`; +// await browser.get(fixedUrl); - it('should SHOW a BROADCASTING ERROR in activities panel', async () => { - let element; - const fixedUrl = `${url}&prejoin=false&broadcastingError=TEST_ERROR`; - await browser.get(fixedUrl); +// await utils.checkSessionIsPresent(); - await utils.checkSessionIsPresent(); +// // Checking if toolbar is present +// await utils.checkToolbarIsPresent(); - // Checking if toolbar is present - await utils.checkToolbarIsPresent(); +// element = await utils.waitForElement('#activities-panel-btn'); +// await element.click(); - element = await utils.waitForElement('#activities-panel-btn'); - await element.click(); +// // Checking if participatns panel is displayed +// await utils.waitForElement('#default-activities-panel'); +// expect(await utils.isPresent('#default-activities-panel')).to.be.true; - // Checking if participatns panel is displayed - await utils.waitForElement('#default-activities-panel'); - expect(await utils.isPresent('#default-activities-panel')).to.be.true; +// // Checking if broadcasting activity exists +// await utils.waitForElement('#activities-container'); +// await utils.waitForElement('.activities-body-container'); - // Checking if broadcasting activity exists - await utils.waitForElement('#activities-container'); - await utils.waitForElement('.activities-body-container'); +// await utils.waitForElement('ov-broadcasting-activity'); +// expect(await utils.isPresent('ov-broadcasting-activity')).to.be.true; - await utils.waitForElement('ov-broadcasting-activity'); - expect(await utils.isPresent('ov-broadcasting-activity')).to.be.true; +// const status = await utils.waitForElement('#broadcasting-status'); +// expect(await status.getAttribute('innerText')).equals('FAILED'); - const status = await utils.waitForElement('#broadcasting-status'); - expect(await status.getAttribute('innerText')).equals('FAILED'); +// // Open broadcasting +// await browser.sleep(1000); +// await utils.clickOn('ov-broadcasting-activity'); - // Open broadcasting - await browser.sleep(1000); - await utils.clickOn('ov-broadcasting-activity'); +// element = await utils.waitForElement('#broadcasting-error'); +// expect(await element.getAttribute('innerText')).equal('TEST_ERROR'); +// }); - element = await utils.waitForElement('#broadcasting-error'); - expect(await element.getAttribute('innerText')).equal('TEST_ERROR'); - }); +// it('should HIDE the BROADCASTING ACTIVITY in activities panel', async () => { +// await browser.get(`${url}&prejoin=false&activitiesPanelBroadcastingActivity=false`); - it('should HIDE the BROADCASTING ACTIVITY in activities panel', async () => { - await browser.get(`${url}&prejoin=false&activitiesPanelBroadcastingActivity=false`); +// await utils.checkSessionIsPresent(); - await utils.checkSessionIsPresent(); +// // Checking if toolbar is present +// await utils.checkToolbarIsPresent(); - // Checking if toolbar is present - await utils.checkToolbarIsPresent(); +// await utils.waitForElement('#activities-panel-btn'); +// await utils.clickOn('#activities-panel-btn'); - await utils.waitForElement('#activities-panel-btn'); - await utils.clickOn('#activities-panel-btn') +// // Checking if participatns panel is displayed +// await utils.waitForElement('#default-activities-panel'); +// expect(await utils.isPresent('#default-activities-panel')).to.be.true; - // Checking if participatns panel is displayed - await utils.waitForElement('#default-activities-panel'); - expect(await utils.isPresent('#default-activities-panel')).to.be.true; +// // await browser.sleep(1000); - // await browser.sleep(1000); +// // Checking if recording activity exists +// await utils.waitForElement('.activities-body-container'); +// expect(await utils.isPresent('ov-broadcasting-activity')).to.be.false; +// }); +// }); - // Checking if recording activity exists - await utils.waitForElement('.activities-body-container'); - expect(await utils.isPresent('ov-broadcasting-activity')).to.be.false; - }); -}); +// describe('Testing videoconference EVENTS', () => { +// let browser: WebDriver; +// let utils: OpenViduComponentsPO; +// async function createChromeBrowser(): Promise { +// return await new Builder() +// .forBrowser(WebComponentConfig.browserName) +// .withCapabilities(WebComponentConfig.browserCapabilities) +// .setChromeOptions(WebComponentConfig.browserOptions) +// .usingServer(WebComponentConfig.seleniumAddress) +// .build(); +// } -describe('Testing videoconference EVENTS', () => { - let browser: WebDriver; - let utils: OpenViduComponentsPO; - async function createChromeBrowser(): Promise { - return await new Builder() - .forBrowser(WebComponentConfig.browserName) - .withCapabilities(WebComponentConfig.browserCapabilities) - .setChromeOptions(WebComponentConfig.browserOptions) - .usingServer(WebComponentConfig.seleniumAddress) - .build(); - } +// beforeEach(async () => { +// browser = await createChromeBrowser(); +// utils = new OpenViduComponentsPO(browser); +// }); - beforeEach(async () => { - browser = await createChromeBrowser(); - utils = new OpenViduComponentsPO(browser); - }); +// afterEach(async () => { +// await browser.quit(); +// }); - afterEach(async () => { - await browser.quit(); - }); +// it('should receive the onJoinButtonClicked event', async () => { +// await browser.get(`${url}`); - it('should receive the onJoinButtonClicked event', async () => { - await browser.get(`${url}`); +// await utils.waitForElement('#prejoin-container'); +// expect(await utils.isPresent('#prejoin-container')).to.be.true; - await utils.waitForElement('#prejoin-container'); - expect(await utils.isPresent('#prejoin-container')).to.be.true; +// // Clicking to join button +// await utils.waitForElement('#join-button'); +// await utils.clickOn('#join-button'); - // Clicking to join button - await utils.waitForElement('#join-button'); - await utils.clickOn('#join-button'); +// // Checking if onJoinButtonClicked has been received +// await utils.waitForElement('#onJoinButtonClicked'); +// expect(await utils.isPresent('#onJoinButtonClicked')).to.be.true; +// }); - // Checking if onJoinButtonClicked has been received - await utils.waitForElement('#onJoinButtonClicked'); - expect(await utils.isPresent('#onJoinButtonClicked')).to.be.true; - }); +// it('should receive the onToolbarLeaveButtonClicked event', async () => { +// await browser.get(`${url}&prejoin=false`); - it('should receive the onToolbarLeaveButtonClicked event', async () => { - await browser.get(`${url}&prejoin=false`); +// await utils.checkSessionIsPresent(); - await utils.checkSessionIsPresent(); +// await utils.checkToolbarIsPresent(); - await utils.checkToolbarIsPresent(); +// // Clicking to leave button +// const leaveButton = await utils.waitForElement('#leave-btn'); +// expect(await utils.isPresent('#leave-btn')).to.be.true; +// await leaveButton.click(); - // Clicking to leave button - const leaveButton = await utils.waitForElement('#leave-btn'); - expect(await utils.isPresent('#leave-btn')).to.be.true; - await leaveButton.click(); +// // Checking if onToolbarLeaveButtonClicked has been received +// await utils.waitForElement('#onToolbarLeaveButtonClicked'); +// expect(await utils.isPresent('#onToolbarLeaveButtonClicked')).to.be.true; +// }); - // Checking if onToolbarLeaveButtonClicked has been received - await utils.waitForElement('#onToolbarLeaveButtonClicked'); - expect(await utils.isPresent('#onToolbarLeaveButtonClicked')).to.be.true; - }); +// it('should receive the onToolbarCameraButtonClicked event', async () => { +// await browser.get(`${url}&prejoin=false`); - it('should receive the onToolbarCameraButtonClicked event', async () => { - await browser.get(`${url}&prejoin=false`); +// await utils.checkSessionIsPresent(); - await utils.checkSessionIsPresent(); +// await utils.checkToolbarIsPresent(); - await utils.checkToolbarIsPresent(); +// // Clicking to leave button +// const cameraButton = await utils.waitForElement('#camera-btn'); +// expect(await utils.isPresent('#camera-btn')).to.be.true; +// await cameraButton.click(); - // Clicking to leave button - const cameraButton = await utils.waitForElement('#camera-btn'); - expect(await utils.isPresent('#camera-btn')).to.be.true; - await cameraButton.click(); +// // Checking if onToolbarCameraButtonClicked has been received +// await utils.waitForElement('#onToolbarCameraButtonClicked'); +// expect(await utils.isPresent('#onToolbarCameraButtonClicked')).to.be.true; +// }); - // Checking if onToolbarCameraButtonClicked has been received - await utils.waitForElement('#onToolbarCameraButtonClicked'); - expect(await utils.isPresent('#onToolbarCameraButtonClicked')).to.be.true; - }); +// it('should receive the onToolbarMicrophoneButtonClicked event', async () => { +// await browser.get(`${url}&prejoin=false`); - it('should receive the onToolbarMicrophoneButtonClicked event', async () => { - await browser.get(`${url}&prejoin=false`); +// await utils.checkSessionIsPresent(); - await utils.checkSessionIsPresent(); +// await utils.checkToolbarIsPresent(); - await utils.checkToolbarIsPresent(); +// // Clicking to mic button +// const micButton = await utils.waitForElement('#mic-btn'); +// expect(await utils.isPresent('#mic-btn')).to.be.true; +// await micButton.click(); - // Clicking to mic button - const micButton = await utils.waitForElement('#mic-btn'); - expect(await utils.isPresent('#mic-btn')).to.be.true; - await micButton.click(); +// // Checking if onToolbarMicrophoneButtonClicked has been received +// await utils.waitForElement('#onToolbarMicrophoneButtonClicked'); +// expect(await utils.isPresent('#onToolbarMicrophoneButtonClicked')).to.be.true; +// }); - // Checking if onToolbarMicrophoneButtonClicked has been received - await utils.waitForElement('#onToolbarMicrophoneButtonClicked'); - expect(await utils.isPresent('#onToolbarMicrophoneButtonClicked')).to.be.true; - }); +// it('should receive the onToolbarScreenshareButtonClicked event', async () => { +// await browser.get(`${url}&prejoin=false`); - it('should receive the onToolbarScreenshareButtonClicked event', async () => { - await browser.get(`${url}&prejoin=false`); +// await utils.checkSessionIsPresent(); - await utils.checkSessionIsPresent(); +// await utils.checkToolbarIsPresent(); - await utils.checkToolbarIsPresent(); +// // Clicking to leave button +// const screenshareButton = await utils.waitForElement('#screenshare-btn'); +// expect(await utils.isPresent('#screenshare-btn')).to.be.true; +// await screenshareButton.click(); - // Clicking to leave button - const screenshareButton = await utils.waitForElement('#screenshare-btn'); - expect(await utils.isPresent('#screenshare-btn')).to.be.true; - await screenshareButton.click(); +// // Checking if onToolbarScreenshareButtonClicked has been received +// await utils.waitForElement('#onToolbarScreenshareButtonClicked'); +// expect(await utils.isPresent('#onToolbarScreenshareButtonClicked')).to.be.true; +// }); - // Checking if onToolbarScreenshareButtonClicked has been received - await utils.waitForElement('#onToolbarScreenshareButtonClicked'); - expect(await utils.isPresent('#onToolbarScreenshareButtonClicked')).to.be.true; - }); +// it('should receive the onToolbarFullscreenButtonClicked event', async () => { +// let element; +// await browser.get(`${url}&prejoin=false`); - it('should receive the onToolbarFullscreenButtonClicked event', async () => { - let element; - await browser.get(`${url}&prejoin=false`); +// await utils.checkSessionIsPresent(); - await utils.checkSessionIsPresent(); +// await utils.checkToolbarIsPresent(); - await utils.checkToolbarIsPresent(); +// // Open more options menu +// element = await utils.waitForElement('#more-options-btn'); +// expect(await utils.isPresent('#more-options-btn')).to.be.true; +// await element.click(); - // Open more options menu - element = await utils.waitForElement('#more-options-btn'); - expect(await utils.isPresent('#more-options-btn')).to.be.true; - await element.click(); +// // Clicking to fullscreen button +// await utils.waitForElement('.mat-menu-content'); - // Clicking to fullscreen button - await utils.waitForElement('.mat-menu-content'); +// const fullscreenButton = await utils.waitForElement('#fullscreen-btn'); +// expect(await utils.isPresent('#fullscreen-btn')).to.be.true; +// await fullscreenButton.click(); - const fullscreenButton = await utils.waitForElement('#fullscreen-btn'); - expect(await utils.isPresent('#fullscreen-btn')).to.be.true; - await fullscreenButton.click(); +// // Checking if onToolbarFullscreenButtonClicked has been received +// await utils.waitForElement('#onToolbarFullscreenButtonClicked'); +// expect(await utils.isPresent('#onToolbarFullscreenButtonClicked')).to.be.true; +// }); - // Checking if onToolbarFullscreenButtonClicked has been received - await utils.waitForElement('#onToolbarFullscreenButtonClicked'); - expect(await utils.isPresent('#onToolbarFullscreenButtonClicked')).to.be.true; - }); +// it('should receive the onToolbarChatPanelButtonClicked event', async () => { +// await browser.get(`${url}&prejoin=false`); - it('should receive the onToolbarChatPanelButtonClicked event', async () => { - await browser.get(`${url}&prejoin=false`); +// await utils.checkSessionIsPresent(); - await utils.checkSessionIsPresent(); +// await utils.checkToolbarIsPresent(); - await utils.checkToolbarIsPresent(); +// // Clicking to chat button +// const chatButton = await utils.waitForElement('#chat-panel-btn'); +// await chatButton.click(); - // Clicking to chat button - const chatButton = await utils.waitForElement('#chat-panel-btn'); - await chatButton.click(); +// // Checking if onToolbarChatPanelButtonClicked has been received +// await utils.waitForElement('#onToolbarChatPanelButtonClicked'); +// expect(await utils.isPresent('#onToolbarChatPanelButtonClicked')).to.be.true; +// }); - // Checking if onToolbarChatPanelButtonClicked has been received - await utils.waitForElement('#onToolbarChatPanelButtonClicked'); - expect(await utils.isPresent('#onToolbarChatPanelButtonClicked')).to.be.true; - }); +// it('should receive the onToolbarParticipantsPanelButtonClicked event', async () => { +// await browser.get(`${url}&prejoin=false`); - it('should receive the onToolbarParticipantsPanelButtonClicked event', async () => { - await browser.get(`${url}&prejoin=false`); +// await utils.checkSessionIsPresent(); - await utils.checkSessionIsPresent(); +// await utils.checkToolbarIsPresent(); - await utils.checkToolbarIsPresent(); +// // Clicking to participants button +// const participantsButton = await utils.waitForElement('#participants-panel-btn'); +// await participantsButton.click(); - // Clicking to participants button - const participantsButton = await utils.waitForElement('#participants-panel-btn'); - await participantsButton.click(); +// // Checking if onToolbarParticipantsPanelButtonClicked has been received +// await utils.waitForElement('#onToolbarParticipantsPanelButtonClicked'); +// expect(await utils.isPresent('#onToolbarParticipantsPanelButtonClicked')).to.be.true; +// }); - // Checking if onToolbarParticipantsPanelButtonClicked has been received - await utils.waitForElement('#onToolbarParticipantsPanelButtonClicked'); - expect(await utils.isPresent('#onToolbarParticipantsPanelButtonClicked')).to.be.true; - }); +// it('should receive the onToolbarActivitiesPanelButtonClicked event', async () => { +// await browser.get(`${url}&prejoin=false`); - it('should receive the onToolbarActivitiesPanelButtonClicked event', async () => { - await browser.get(`${url}&prejoin=false`); +// await utils.checkSessionIsPresent(); - await utils.checkSessionIsPresent(); +// await utils.checkToolbarIsPresent(); - await utils.checkToolbarIsPresent(); +// // Clicking to activities button +// const activitiesButton = await utils.waitForElement('#activities-panel-btn'); +// await activitiesButton.click(); - // Clicking to activities button - const activitiesButton = await utils.waitForElement('#activities-panel-btn'); - await activitiesButton.click(); +// // Checking if onToolbarActivitiesPanelButtonClicked has been received +// await utils.waitForElement('#onToolbarActivitiesPanelButtonClicked'); +// expect(await utils.isPresent('#onToolbarActivitiesPanelButtonClicked')).to.be.true; +// }); - // Checking if onToolbarActivitiesPanelButtonClicked has been received - await utils.waitForElement('#onToolbarActivitiesPanelButtonClicked'); - expect(await utils.isPresent('#onToolbarActivitiesPanelButtonClicked')).to.be.true; - }); +// it('should receive the onToolbarStartRecordingClicked event', async () => { +// await browser.get(`${url}&prejoin=false`); - it('should receive the onToolbarStartRecordingClicked event', async () => { - await browser.get(`${url}&prejoin=false`); +// await utils.checkSessionIsPresent(); +// await utils.checkToolbarIsPresent(); - await utils.checkSessionIsPresent(); - await utils.checkToolbarIsPresent(); +// // Open more options menu +// await utils.waitForElement('#more-options-btn'); +// expect(await utils.isPresent('#more-options-btn')).to.be.true; +// await utils.clickOn('#more-options-btn'); - // Open more options menu - await utils.waitForElement('#more-options-btn'); - expect(await utils.isPresent('#more-options-btn')).to.be.true; - await utils.clickOn('#more-options-btn'); +// await browser.sleep(500); - await browser.sleep(500); +// // Clicking to recording button +// await utils.waitForElement('.mat-menu-content'); - // Clicking to recording button - await utils.waitForElement('.mat-menu-content'); +// await utils.waitForElement('#recording-btn'); +// expect(await utils.isPresent('#recording-btn')).to.be.true; +// await utils.clickOn('#recording-btn'); - await utils.waitForElement('#recording-btn'); - expect(await utils.isPresent('#recording-btn')).to.be.true; - await utils.clickOn('#recording-btn'); +// // Checking if onToolbarStartRecordingClicked has been received +// await utils.waitForElement('#onToolbarStartRecordingClicked'); +// expect(await utils.isPresent('#onToolbarStartRecordingClicked')).to.be.true; +// }); - // Checking if onToolbarStartRecordingClicked has been received - await utils.waitForElement('#onToolbarStartRecordingClicked'); - expect(await utils.isPresent('#onToolbarStartRecordingClicked')).to.be.true; - }); +// // TODO: it needs an OpenVidu PRO +// // it('should receive the onToolbarStopBroadcastingClicked event', async () => { +// // await browser.get(`${url}&prejoin=false`); - // TODO: it needs an OpenVidu PRO - // it('should receive the onToolbarStopBroadcastingClicked event', async () => { - // await browser.get(`${url}&prejoin=false`); +// // await utils.checkSessionIsPresent(); +// // await utils.checkToolbarIsPresent(); - // await utils.checkSessionIsPresent(); - // await utils.checkToolbarIsPresent(); +// // // Open more options menu +// // await utils.waitForElement('#more-options-btn'); +// // expect(await utils.isPresent('#more-options-btn')).to.be.true; +// // await utils.clickOn('#more-options-btn'); - // // Open more options menu - // await utils.waitForElement('#more-options-btn'); - // expect(await utils.isPresent('#more-options-btn')).to.be.true; - // await utils.clickOn('#more-options-btn'); +// // await browser.sleep(500); - // await browser.sleep(500); +// // await utils.waitForElement('.mat-menu-content'); - // await utils.waitForElement('.mat-menu-content'); +// // await utils.waitForElement('#broadcasting-btn'); +// // await utils.clickOn('#broadcasting-btn'); - // await utils.waitForElement('#broadcasting-btn'); - // await utils.clickOn('#broadcasting-btn'); +// // await browser.sleep(500); - // await browser.sleep(500); +// // await utils.waitForElement('.sidenav-menu'); +// // await utils.waitForElement('#activities-container'); - // await utils.waitForElement('.sidenav-menu'); - // await utils.waitForElement('#activities-container'); +// // await utils.waitForElement('#broadcasting-url-input'); +// // const input = await utils.waitForElement('#broadcast-url-input'); +// // await input.sendKeys('BroadcastUrl'); +// // await utils.clickOn('#broadcasting-btn'); - // await utils.waitForElement('#broadcasting-url-input'); - // const input = await utils.waitForElement('#broadcast-url-input'); - // await input.sendKeys('BroadcastUrl'); - // await utils.clickOn('#broadcasting-btn'); +// // // Open more options menu +// // await utils.waitForElement('#more-options-btn'); +// // expect(await utils.isPresent('#more-options-btn')).to.be.true; +// // await utils.clickOn('#more-options-btn'); - // // Open more options menu - // await utils.waitForElement('#more-options-btn'); - // expect(await utils.isPresent('#more-options-btn')).to.be.true; - // await utils.clickOn('#more-options-btn'); +// // await browser.sleep(500); - // await browser.sleep(500); +// // await utils.waitForElement('.mat-menu-content'); - // await utils.waitForElement('.mat-menu-content'); +// // await utils.waitForElement('#broadcasting-btn'); +// // await utils.clickOn('#broadcasting-btn'); - // await utils.waitForElement('#broadcasting-btn'); - // await utils.clickOn('#broadcasting-btn'); +// // // Checking if onToolbarStopBroadcastingClicked has been received +// // await utils.waitForElement('#onToolbarStopBroadcastingClicked'); +// // expect(await utils.isPresent('#onToolbarStopBroadcastingClicked')).to.be.true; +// // }); - // // Checking if onToolbarStopBroadcastingClicked has been received - // await utils.waitForElement('#onToolbarStopBroadcastingClicked'); - // expect(await utils.isPresent('#onToolbarStopBroadcastingClicked')).to.be.true; - // }); +// it('should receive the onActivitiesPanelStartRecordingClicked event', async () => { +// let element; +// await browser.get(`${url}&prejoin=false`); - it('should receive the onActivitiesPanelStartRecordingClicked event', async () => { - let element; - await browser.get(`${url}&prejoin=false`); +// await utils.checkSessionIsPresent(); - await utils.checkSessionIsPresent(); +// await utils.checkToolbarIsPresent(); - await utils.checkToolbarIsPresent(); +// // Open activities panel +// element = await utils.waitForElement('#activities-panel-btn'); +// expect(await utils.isPresent('#activities-panel-btn')).to.be.true; +// await element.click(); - // Open activities panel - element = await utils.waitForElement('#activities-panel-btn'); - expect(await utils.isPresent('#activities-panel-btn')).to.be.true; - await element.click(); +// await browser.sleep(1000); - await browser.sleep(1000); +// // Open recording +// element = await utils.waitForElement('ov-recording-activity'); +// await element.click(); - // Open recording - element = await utils.waitForElement('ov-recording-activity'); - await element.click(); +// await browser.sleep(1000); - await browser.sleep(1000); +// // Clicking to recording button +// element = await utils.waitForElement('#start-recording-btn'); +// expect(await element.isEnabled()).to.be.true; - // Clicking to recording button - element = await utils.waitForElement('#start-recording-btn'); - expect(await element.isEnabled()).to.be.true; +// await element.click(); - await element.click(); +// // Checking if onActivitiesPanelStartRecordingClicked has been received +// await utils.waitForElement('#onActivitiesPanelStartRecordingClicked'); +// expect(await utils.isPresent('#onActivitiesPanelStartRecordingClicked')).to.be.true; +// }); - // Checking if onActivitiesPanelStartRecordingClicked has been received - await utils.waitForElement('#onActivitiesPanelStartRecordingClicked'); - expect(await utils.isPresent('#onActivitiesPanelStartRecordingClicked')).to.be.true; - }); +// it('should receive the PLAY and DELETE recording events', async () => { +// let element; +// await browser.get(`${url}&prejoin=false`); - it('should receive the PLAY and DELETE recording events', async () => { - let element; - await browser.get(`${url}&prejoin=false`); +// await utils.checkSessionIsPresent(); - await utils.checkSessionIsPresent(); +// await utils.checkToolbarIsPresent(); - await utils.checkToolbarIsPresent(); +// // Clicking to activities button +// const activitiesButton = await utils.waitForElement('#activities-panel-btn'); +// expect(await utils.isPresent('#activities-panel-btn')).to.be.true; +// await activitiesButton.click(); - // Clicking to activities button - const activitiesButton = await utils.waitForElement('#activities-panel-btn'); - expect(await utils.isPresent('#activities-panel-btn')).to.be.true; - await activitiesButton.click(); +// await browser.sleep(1500); +// // Open recording +// element = await utils.waitForElement('ov-recording-activity'); +// await element.click(); - await browser.sleep(1500); - // Open recording - element = await utils.waitForElement('ov-recording-activity'); - await element.click(); +// await browser.sleep(1500); - await browser.sleep(1500); +// // Delete event +// element = await utils.waitForElement('#delete-recording-btn'); +// expect(await utils.isPresent('#delete-recording-btn')).to.be.true; +// await element.click(); - // Delete event - element = await utils.waitForElement('#delete-recording-btn'); - expect(await utils.isPresent('#delete-recording-btn')).to.be.true; - await element.click(); +// element = await utils.waitForElement('#delete-recording-confirm-btn'); +// expect(await utils.isPresent('#delete-recording-confirm-btn')).to.be.true; +// await element.click(); - element = await utils.waitForElement('#delete-recording-confirm-btn'); - expect(await utils.isPresent('#delete-recording-confirm-btn')).to.be.true; - await element.click(); +// await utils.waitForElement('#onActivitiesPanelDeleteRecordingClicked'); +// expect(await utils.isPresent('#onActivitiesPanelDeleteRecordingClicked')).to.be.true; +// }); - await utils.waitForElement('#onActivitiesPanelDeleteRecordingClicked'); - expect(await utils.isPresent('#onActivitiesPanelDeleteRecordingClicked')).to.be.true; - }); +// it('should receive the onActivitiesPanelStartBroadcasting event', async () => { +// await browser.get(`${url}&prejoin=false`); - it('should receive the onActivitiesPanelStartBroadcasting event', async () => { - await browser.get(`${url}&prejoin=false`); +// await utils.checkSessionIsPresent(); +// await utils.checkToolbarIsPresent(); - await utils.checkSessionIsPresent(); - await utils.checkToolbarIsPresent(); +// // Get activities button and click into it +// await utils.waitForElement('#activities-panel-btn'); +// await utils.clickOn('#activities-panel-btn'); +// await browser.sleep(500); - // Get activities button and click into it - await utils.waitForElement('#activities-panel-btn'); - await utils.clickOn('#activities-panel-btn'); - await browser.sleep(500); +// await utils.waitForElement('.sidenav-menu'); +// await utils.waitForElement('#activities-container'); +// expect(await utils.isPresent('#activities-container')).to.be.true; - await utils.waitForElement('.sidenav-menu'); - await utils.waitForElement('#activities-container'); - expect(await utils.isPresent('#activities-container')).to.be.true; +// await utils.waitForElement('#broadcasting-activity'); +// await utils.clickOn('#broadcasting-activity'); - await utils.waitForElement('#broadcasting-activity'); - await utils.clickOn('#broadcasting-activity'); +// await browser.sleep(1000); - await browser.sleep(1000); +// const button = await utils.waitForElement('#broadcasting-btn'); +// expect(await button.isEnabled()).to.be.false; - const button = await utils.waitForElement('#broadcasting-btn'); - expect(await button.isEnabled()).to.be.false; +// const input = await utils.waitForElement('#broadcast-url-input'); +// await input.sendKeys('BroadcastUrl'); +// await utils.clickOn('#broadcasting-btn'); - const input = await utils.waitForElement('#broadcast-url-input'); - await input.sendKeys('BroadcastUrl'); +// // Checking if onActivitiesPanelStartBroadcastingClicked has been received +// await utils.waitForElement('#onActivitiesPanelStartBroadcastingClicked'); +// expect(await utils.isPresent('#onActivitiesPanelStartBroadcastingClicked')).to.be.true; - await utils.clickOn('#broadcasting-btn'); +// // TODO: it needs an OpenVidu PRO (onActivitiesPanelStopBroadcastingClicked event) - // Checking if onActivitiesPanelStartBroadcastingClicked has been received - await utils.waitForElement('#onActivitiesPanelStartBroadcastingClicked'); - expect(await utils.isPresent('#onActivitiesPanelStartBroadcastingClicked')).to.be.true; +// // expect(await utils.isPresent('#broadcasting-tag')).to.be.true; +// // await utils.clickOn('#stop-broadcasting-btn'); - // TODO: it needs an OpenVidu PRO (onActivitiesPanelStopBroadcastingClicked event) +// // // Checking if onActivitiesPanelStopBroadcastingClicked has been received +// // await utils.waitForElement('#onActivitiesPanelStopBroadcastingClicked'); +// // expect(await utils.isPresent('#onActivitiesPanelStopBroadcastingClicked')).to.be.true; +// // expect(await utils.isPresent('#broadcasting-tag')).to.be.false; +// }); - // expect(await utils.isPresent('#broadcasting-tag')).to.be.true; +// it('should receive the onSessionCreated event', async () => { +// await browser.get(`${url}&prejoin=false`); - // await utils.clickOn('#stop-broadcasting-btn'); +// await utils.checkSessionIsPresent(); - // // Checking if onActivitiesPanelStopBroadcastingClicked has been received - // await utils.waitForElement('#onActivitiesPanelStopBroadcastingClicked'); - // expect(await utils.isPresent('#onActivitiesPanelStopBroadcastingClicked')).to.be.true; - // expect(await utils.isPresent('#broadcasting-tag')).to.be.false; - }); +// await utils.checkToolbarIsPresent(); - it('should receive the onSessionCreated event', async () => { - await browser.get(`${url}&prejoin=false`); +// await utils.waitForElement('#onSessionCreated'); +// expect(await utils.isPresent('#onSessionCreated')).to.be.true; - await utils.checkSessionIsPresent(); +// expect(await utils.isPresent('#onJoinButtonClicked')).to.be.false; +// }); - await utils.checkToolbarIsPresent(); +// // * PUBLISHER EVENTS - await utils.waitForElement('#onSessionCreated'); - expect(await utils.isPresent('#onSessionCreated')).to.be.true; +// it('should receive onParticipantCreated event from LOCAL participant', async () => { +// const participantName = 'TEST_USER'; +// await browser.get(`${url}&participantName=${participantName}`); +// await utils.waitForElement(`#${participantName}-onParticipantCreated`); +// expect(await utils.isPresent(`#${participantName}-onParticipantCreated`)).to.be.true; +// }); - expect(await utils.isPresent('#onJoinButtonClicked')).to.be.false; - }); +// // * SESSION EVENTS - // * PUBLISHER EVENTS +// it('should receive connectionCreated event from LOCAL participant', async () => { +// const participantName = 'TEST_USER'; +// await browser.get(`${url}&prejoin=false&participantName=${participantName}`); - it('should receive onParticipantCreated event from LOCAL participant', async () => { - const participantName = 'TEST_USER'; - await browser.get(`${url}&participantName=${participantName}`); - await utils.waitForElement(`#${participantName}-onParticipantCreated`); - expect(await utils.isPresent(`#${participantName}-onParticipantCreated`)).to.be.true; - }); +// await utils.waitForElement(`#${participantName}-connectionCreated`); +// expect(await utils.isPresent(`#${participantName}-connectionCreated`)).to.be.true; +// }); - // * SESSION EVENTS +// it('should receive sessionDisconnected event from LOCAL participant', async () => { +// const participantName = 'TEST_USER'; +// let element; +// await browser.get(`${url}&prejoin=false&participantName=${participantName}`); - it('should receive connectionCreated event from LOCAL participant', async () => { - const participantName = 'TEST_USER'; - await browser.get(`${url}&prejoin=false&participantName=${participantName}`); +// await utils.checkSessionIsPresent(); - await utils.waitForElement(`#${participantName}-connectionCreated`); - expect(await utils.isPresent(`#${participantName}-connectionCreated`)).to.be.true; - }); +// await utils.checkToolbarIsPresent(); - it('should receive sessionDisconnected event from LOCAL participant', async () => { - const participantName = 'TEST_USER'; - let element; - await browser.get(`${url}&prejoin=false&participantName=${participantName}`); +// // Checking if leave button is not present +// element = await utils.waitForElement('#leave-btn'); +// await element.click(); - await utils.checkSessionIsPresent(); +// await utils.waitForElement(`#${participantName}-sessionDisconnected`); +// expect(await utils.isPresent(`#${participantName}-sessionDisconnected`)).to.be.true; +// }); +// }); - await utils.checkToolbarIsPresent(); +// describe('Testing screenshare features', () => { +// let browser: WebDriver; +// let utils: OpenViduComponentsPO; +// async function createChromeBrowser(): Promise { +// return await new Builder() +// .forBrowser(WebComponentConfig.browserName) +// .withCapabilities(WebComponentConfig.browserCapabilities) +// .setChromeOptions(WebComponentConfig.browserOptions) +// .usingServer(WebComponentConfig.seleniumAddress) +// .build(); +// } - // Checking if leave button is not present - element = await utils.waitForElement('#leave-btn'); - await element.click(); +// beforeEach(async () => { +// browser = await createChromeBrowser(); +// utils = new OpenViduComponentsPO(browser); +// }); - await utils.waitForElement(`#${participantName}-sessionDisconnected`); - expect(await utils.isPresent(`#${participantName}-sessionDisconnected`)).to.be.true; - }); -}); +// afterEach(async () => { +// await browser.quit(); +// }); +// it('should toggle screensharing twice', async () => { +// let element; +// await browser.get(`${url}&prejoin=false`); describe('Testing stream video menu features', () => { let browser: WebDriver; let utils: OpenViduComponentsPO; @@ -1094,6 +1115,523 @@ describe('Testing screenshare features', () => { .build(); } +// await utils.checkLayoutPresent(); + +// // Clicking to screensharing button +// const screenshareButton = await utils.waitForElement('#screenshare-btn'); +// expect(await screenshareButton.isDisplayed()).to.be.true; +// await screenshareButton.click(); + +// await utils.waitForElement('.OV_big'); +// element = await browser.findElements(By.css('video')); +// expect(element.length).equals(2); + +// // Clicking to screensharing button +// await screenshareButton.click(); + +// element = await browser.findElements(By.css('video')); +// expect(element.length).equals(1); + +// // toggle screenshare again +// await screenshareButton.click(); + +// await utils.waitForElement('.OV_big'); +// element = await browser.findElements(By.css('video')); +// expect(element.length).equals(2); + +// await screenshareButton.click(); + +// element = await browser.findElements(By.css('video')); +// expect(element.length).equals(1); +// }); + +// it('should show only screen if toggle screensharing with video muted', async () => { +// let element; +// await browser.get(`${url}&prejoin=false`); + +// await utils.checkLayoutPresent(); + +// const camButton = await utils.waitForElement('#camera-btn'); +// await camButton.click(); + +// // Clicking to screensharing button +// const screenshareButton = await utils.waitForElement('#screenshare-btn'); +// expect(await screenshareButton.isDisplayed()).to.be.true; +// await screenshareButton.click(); + +// await browser.sleep(1000); +// await utils.waitForElement('.OV_big'); +// element = await browser.findElements(By.css('video')); +// expect(element.length).equals(1); + +// await screenshareButton.click(); +// await browser.sleep(1000); +// element = await browser.findElements(By.css('video')); +// expect(element.length).equals(1); +// }); + +// it('should screensharing with audio muted', async () => { +// let element, isAudioEnabled; +// const getAudioScript = (className: string) => { +// return `return document.getElementsByClassName('${className}')[0].srcObject.getAudioTracks()[0].enabled;`; +// }; +// await browser.get(`${url}&prejoin=false`); + +// await utils.checkLayoutPresent(); + +// const micButton = await utils.waitForElement('#mic-btn'); +// await micButton.click(); + +// // Clicking to screensharing button +// const screenshareButton = await utils.waitForElement('#screenshare-btn'); +// expect(await utils.isPresent('#screenshare-btn')).to.be.true; +// await screenshareButton.click(); + +// await utils.waitForElement('.screen-type'); +// element = await browser.findElements(By.css('video')); +// expect(element.length).equals(2); + +// isAudioEnabled = await browser.executeScript(getAudioScript('screen-type')); +// expect(isAudioEnabled).to.be.false; + +// await utils.waitForElement('#statusMic'); +// element = await browser.findElements(By.id('statusMic')); +// expect(element.length).equals(2); + +// // Clicking to screensharing button +// await screenshareButton.click(); + +// element = await browser.findElements(By.css('video')); +// expect(element.length).equals(1); +// }); + +// it('should show and hide CAMERA stream when muting video with screensharing', async () => { +// let element; +// await browser.get(`${url}&prejoin=false`); + +// await utils.checkLayoutPresent(); + +// // Clicking to screensharing button +// const screenshareButton = await utils.waitForElement('#screenshare-btn'); +// expect(await screenshareButton.isDisplayed()).to.be.true; +// await screenshareButton.click(); + +// await utils.waitForElement('.OV_big'); +// element = await browser.findElements(By.css('video')); +// expect(element.length).equals(2); + +// const muteVideoButton = await utils.waitForElement('#camera-btn'); +// await muteVideoButton.click(); + +// element = await browser.findElements(By.css('video')); +// expect(element.length).equals(1); +// }); + +// it('should screenshare has audio active when camera is muted', async () => { +// let element, isAudioEnabled; +// const audioEnableScript = 'return document.getElementsByTagName("video")[0].srcObject.getAudioTracks()[0].enabled;'; + +// await browser.get(`${url}&prejoin=false`); + +// await utils.checkLayoutPresent(); + +// // Clicking to screensharing button +// const screenshareButton = await utils.waitForElement('#screenshare-btn'); +// expect(await utils.isPresent('#screenshare-btn')).to.be.true; +// await screenshareButton.click(); + +// element = await utils.waitForElement('.OV_big'); +// element = await browser.findElements(By.css('video')); +// expect(element.length).equals(2); + +// element = await browser.findElements(By.id('statusMic')); +// expect(element.length).equals(1); + +// // Muting camera video +// const muteVideoButton = await utils.waitForElement('#camera-btn'); +// await muteVideoButton.click(); + +// element = await browser.findElements(By.css('video')); +// expect(element.length).equals(1); + +// await browser.sleep(500); +// expect(await utils.isPresent('#statusMic')).to.be.false; + +// // Checking if audio is muted after join the room +// isAudioEnabled = await browser.executeScript(audioEnableScript); +// expect(isAudioEnabled).to.be.true; + +// // Unmuting camera +// await muteVideoButton.click(); + +// element = await utils.waitForElement('.camera-type'); +// element = await browser.findElements(By.css('video')); +// expect(element.length).equals(2); + +// element = await browser.findElements(By.id('statusMic')); +// expect(element.length).equals(1); +// }); + +// it('should camera come back with audio muted when screensharing', async () => { +// let element, isAudioEnabled; + +// const getAudioScript = (className: string) => { +// return `return document.getElementsByClassName('${className}')[0].srcObject.getAudioTracks()[0].enabled;`; +// }; + +// await browser.get(`${url}&prejoin=false`); + +// await utils.checkLayoutPresent(); + +// // Clicking to screensharing button +// const screenshareButton = await utils.waitForElement('#screenshare-btn'); +// await screenshareButton.click(); + +// await utils.waitForElement('.screen-type'); +// element = await browser.findElements(By.css('video')); +// expect(element.length).equals(2); + +// element = await browser.findElements(By.id('statusMic')); +// expect(element.length).equals(1); + +// // Mute camera +// const muteVideoButton = await utils.waitForElement('#camera-btn'); +// await muteVideoButton.click(); + +// element = await browser.findElements(By.css('video')); +// expect(element.length).equals(1); + +// expect(await utils.isPresent('#statusMic')).to.be.false; + +// // Checking if audio is muted after join the room +// isAudioEnabled = await browser.executeScript(getAudioScript('screen-type')); +// expect(isAudioEnabled).to.be.true; + +// // Mute audio +// const muteAudioButton = await utils.waitForElement('#mic-btn'); +// await muteAudioButton.click(); + +// await utils.waitForElement('#statusMic'); +// element = await browser.findElements(By.id('statusMic')); +// expect(element.length).equals(1); + +// isAudioEnabled = await browser.executeScript(getAudioScript('screen-type')); +// expect(isAudioEnabled).to.be.false; + +// // Unmute camera +// await muteVideoButton.click(); + +// await utils.waitForElement('.camera-type'); +// element = await browser.findElements(By.css('video')); +// expect(element.length).equals(2); + +// element = await browser.findElements(By.id('statusMic')); +// expect(element.length).equals(2); + +// isAudioEnabled = await browser.executeScript(getAudioScript('camera-type')); +// expect(isAudioEnabled).to.be.false; +// }); +// }); + +// describe('Testing panels', () => { +// let browser: WebDriver; +// let utils: OpenViduComponentsPO; + +// async function createChromeBrowser(): Promise { +// return await new Builder() +// .forBrowser(WebComponentConfig.browserName) +// .withCapabilities(WebComponentConfig.browserCapabilities) +// .setChromeOptions(WebComponentConfig.browserOptions) +// .usingServer(WebComponentConfig.seleniumAddress) +// .build(); +// } + +// beforeEach(async () => { +// browser = await createChromeBrowser(); +// utils = new OpenViduComponentsPO(browser); +// }); + +// afterEach(async () => { +// await browser.quit(); +// }); + +// /** +// * TODO +// * It only works with OpenVidu PRO because this is a PRO feature +// */ +// // it('should toggle BACKGROUND panel on prejoin page when VIDEO is MUTED', async () => { +// // let element; +// // await browser.get(`${url}`); +// // element = await utils.waitForElement('#pre-join-container'); +// // expect(await utils.isPresent('#pre-join-container')).to.be.true; + +// // const backgroundButton = await utils.waitForElement('#background-effects-btn'); +// // expect(await utils.isPresent('#background-effects-btn')).to.be.true; +// // expect(await backgroundButton.isEnabled()).to.be.true; +// // await backgroundButton.click(); +// // await browser.sleep(500); + +// // await utils.waitForElement('#background-effects-container'); +// // expect(await utils.isPresent('#background-effects-container')).to.be.true; + +// // element = await utils.waitForElement('#camera-button'); +// // expect(await utils.isPresent('#camera-button')).to.be.true; +// // expect(await element.isEnabled()).to.be.true; +// // await element.click(); + +// // await browser.sleep(500); +// // element = await utils.waitForElement('#video-poster'); +// // expect(await utils.isPresent('#video-poster')).to.be.true; + +// // expect(await backgroundButton.isDisplayed()).to.be.true; +// // expect(await backgroundButton.isEnabled()).to.be.false; + +// // expect(await utils.isPresent('#background-effects-container')).to.be.false; +// // }); + +// it('should toggle CHAT panel', async () => { +// await browser.get(`${url}&prejoin=false`); + +// await utils.checkLayoutPresent(); + +// const chatButton = await utils.waitForElement('#chat-panel-btn'); +// await chatButton.click(); + +// await utils.waitForElement('.sidenav-menu'); +// await utils.waitForElement('.input-container'); +// expect(await utils.isPresent('.input-container')).to.be.true; + +// await utils.waitForElement('.messages-container'); +// expect(await utils.isPresent('.messages-container')).to.be.true; + +// await chatButton.click(); + +// expect(await utils.isPresent('.input-container')).to.be.false; +// expect(await utils.isPresent('.messages-container')).to.be.false; +// }); + +// it('should toggle PARTICIPANTS panel', async () => { +// await browser.get(`${url}&prejoin=false`); + +// await utils.checkLayoutPresent(); + +// const participantBtn = await utils.waitForElement('#participants-panel-btn'); +// await participantBtn.click(); + +// await utils.waitForElement('.sidenav-menu'); + +// await utils.waitForElement('.local-participant-container'); +// expect(await utils.isPresent('.local-participant-container')).to.be.true; + +// await utils.waitForElement('ov-participant-panel-item'); +// expect(await utils.isPresent('ov-participant-panel-item')).to.be.true; + +// await participantBtn.click(); + +// expect(await utils.isPresent('.local-participant-container')).to.be.false; +// expect(await utils.isPresent('ov-participant-panel-item')).to.be.false; +// }); + +// it('should toggle ACTIVITIES panel', async () => { +// await browser.get(`${url}&prejoin=false`); + +// await utils.checkLayoutPresent(); + +// // Get activities button and click into it +// const activitiesBtn = await utils.waitForElement('#activities-panel-btn'); +// await activitiesBtn.click(); + +// await utils.waitForElement('.sidenav-menu'); +// await utils.waitForElement('#activities-container'); +// expect(await utils.isPresent('#activities-container')).to.be.true; + +// await utils.waitForElement('#recording-activity'); +// expect(await utils.isPresent('#recording-activity')).to.be.true; +// await activitiesBtn.click(); + +// expect(await utils.isPresent('#activities-container')).to.be.false; +// expect(await utils.isPresent('#recording-activity')).to.be.false; +// }); + +// it('should toggle SETTINGS panel', async () => { +// let element; +// await browser.get(`${url}&prejoin=false`); + +// await utils.checkLayoutPresent(); + +// // Checking if toolbar is present +// await utils.checkToolbarIsPresent(); + +// // Open more options menu +// element = await utils.waitForElement('#more-options-btn'); +// await element.click(); + +// await browser.sleep(500); + +// // Checking if mat menu is present +// element = await utils.waitForElement('.mat-menu-content'); +// expect(await utils.isPresent('.mat-menu-content')).to.be.true; + +// // Get settings button and click into it +// const settingsBtn = await utils.waitForElement('#toolbar-settings-btn'); +// await settingsBtn.click(); + +// element = await utils.waitForElement('.sidenav-menu'); +// expect(await utils.isPresent('#default-settings-panel')).to.be.true; +// }); + +// it('should switching between PARTICIPANTS and CHAT panels', async () => { +// await browser.get(`${url}&prejoin=false`); + +// await utils.checkSessionIsPresent(); + +// await utils.checkToolbarIsPresent(); + +// // Open chat panel +// const chatButton = await utils.waitForElement('#chat-panel-btn'); +// await chatButton.click(); + +// await utils.waitForElement('.sidenav-menu'); +// expect(await utils.isPresent('.sidenav-menu')).to.be.true; + +// await utils.waitForElement('.input-container'); +// expect(await utils.isPresent('.input-container')).to.be.true; + +// expect(await utils.isPresent('.messages-container')).to.be.true; + +// // Open participants panel +// const participantBtn = await utils.waitForElement('#participants-panel-btn'); +// await participantBtn.click(); + +// await utils.waitForElement('.sidenav-menu'); + +// expect(await utils.isPresent('.local-participant-container')).to.be.true; + +// expect(await utils.isPresent('ov-participant-panel-item')).to.be.true; + +// // Switch to chat panel +// await chatButton.click(); + +// await utils.waitForElement('.sidenav-menu'); + +// expect(await utils.isPresent('.input-container')).to.be.true; + +// expect(await utils.isPresent('.messages-container')).to.be.true; + +// expect(await utils.isPresent('.local-participant-container')).to.be.false; + +// expect(await utils.isPresent('ov-participant-panel-item')).to.be.false; + +// // Close chat panel +// await chatButton.click(); +// await browser.findElements(By.className('input-container')); +// expect(await utils.isPresent('.input-container')).to.be.false; + +// expect(await utils.isPresent('messages-container')).to.be.false; +// }); + +// it('should switching between sections in SETTINGS PANEL', async () => { +// let element; +// await browser.get(`${url}&prejoin=false`); + +// await utils.checkToolbarIsPresent(); + +// // Checking if toolbar is present +// await utils.checkToolbarIsPresent(); + +// // Open more options menu +// element = await utils.waitForElement('#more-options-btn'); +// await element.click(); + +// await browser.sleep(500); + +// // Checking if mat menu is present +// await utils.waitForElement('.mat-menu-content'); +// expect(await utils.isPresent('.mat-menu-content')).to.be.true; + +// // Get settings button and click into it +// const settingsBtn = await utils.waitForElement('#toolbar-settings-btn'); +// await settingsBtn.click(); + +// await utils.waitForElement('.sidenav-menu'); +// expect(await utils.isPresent('.sidenav-menu')).to.be.true; + +// // Check if general section is shown +// element = await utils.waitForElement('#general-opt'); +// await element.click(); + +// expect(await utils.isPresent('ov-nickname-input')).to.be.true; + +// // Check if video section is shown +// element = await utils.waitForElement('#video-opt'); +// await element.click(); + +// expect(await utils.isPresent('ov-video-devices-select')).to.be.true; + +// // Check if audio section is shown +// element = await utils.waitForElement('#audio-opt'); +// await element.click(); + +// expect(await utils.isPresent('ov-audio-devices-select')).to.be.true; +// }); +// }); + +// describe('Testing CHAT features', () => { +// let browser: WebDriver; +// let utils: OpenViduComponentsPO; + +// async function createChromeBrowser(): Promise { +// return await new Builder() +// .forBrowser(WebComponentConfig.browserName) +// .withCapabilities(WebComponentConfig.browserCapabilities) +// .setChromeOptions(WebComponentConfig.browserOptions) +// .usingServer(WebComponentConfig.seleniumAddress) +// .build(); +// } + +// beforeEach(async () => { +// browser = await createChromeBrowser(); +// utils = new OpenViduComponentsPO(browser); +// }); + +// afterEach(async () => { +// await browser.quit(); +// }); + +// it('should send an url message and converts in a link', async () => { +// await browser.get(`${url}&prejoin=false`); + +// await utils.checkLayoutPresent(); + +// const chatButton = await utils.waitForElement('#chat-panel-btn'); +// await chatButton.click(); + +// await utils.waitForElement('.sidenav-menu'); +// await utils.waitForElement('.input-container'); +// expect(await utils.isPresent('.input-container')).to.be.true; + +// const input = await utils.waitForElement('#chat-input'); +// await input.sendKeys('demos.openvidu.io'); + +// await utils.clickOn('#send-btn'); + +// await utils.waitForElement('.msg-content a'); +// expect(await utils.isPresent('.msg-content a')).to.be.true; +// }); +// }); + +describe('Testing TOOLBAR features', () => { + let browser: WebDriver; + let utils: OpenViduComponentsPO; + async function createChromeBrowser(): Promise { + return await new Builder() + .forBrowser(WebComponentConfig.browserName) + .withCapabilities(WebComponentConfig.browserCapabilities) + .setChromeOptions(WebComponentConfig.browserOptions) + .usingServer(WebComponentConfig.seleniumAddress) + .build(); + } + beforeEach(async () => { browser = await createChromeBrowser(); utils = new OpenViduComponentsPO(browser); @@ -1103,33 +1641,7 @@ describe('Testing screenshare features', () => { await browser.quit(); }); - it('should toggle screensharing', async () => { - let element; - await browser.get(`${url}&prejoin=false`); - - await utils.checkLayoutPresent(); - - // Clicking to screensharing button - const screenshareButton = await utils.waitForElement('#screenshare-btn'); - expect(await screenshareButton.isDisplayed()).to.be.true; - await screenshareButton.click(); - - await utils.waitForElement('.OV_big'); - element = await browser.findElements(By.css('video')); - expect(element.length).equals(2); - - // Clicking to screensharing button - await screenshareButton.click(); - - element = await browser.findElements(By.css('video')); - expect(element.length).equals(1); - }); - - it('should screensharing with audio muted', async () => { - let element, isAudioEnabled; - const getAudioScript = (className: string) => { - return `return document.getElementsByClassName('${className}')[0].srcObject.getAudioTracks()[0].enabled;`; - }; + it('should mute and unmute the local microphone', async () => { await browser.get(`${url}&prejoin=false`); await utils.checkLayoutPresent(); @@ -1137,442 +1649,30 @@ describe('Testing screenshare features', () => { const micButton = await utils.waitForElement('#mic-btn'); await micButton.click(); - // Clicking to screensharing button - const screenshareButton = await utils.waitForElement('#screenshare-btn'); - expect(await utils.isPresent('#screenshare-btn')).to.be.true; - await screenshareButton.click(); + await utils.waitForElement('#mic-btn #mic_off'); + expect(await utils.isPresent('#mic-btn #mic_off')).to.be.true; - await utils.waitForElement('.screen-type'); - element = await browser.findElements(By.css('video')); - expect(element.length).equals(2); + await micButton.click(); - isAudioEnabled = await browser.executeScript(getAudioScript('screen-type')); - expect(isAudioEnabled).to.be.false; - - await utils.waitForElement('#statusMic'); - element = await browser.findElements(By.id('statusMic')); - expect(element.length).equals(2); - - // Clicking to screensharing button - await screenshareButton.click(); - - element = await browser.findElements(By.css('video')); - expect(element.length).equals(1); + await utils.waitForElement('#mic-btn #mic'); + expect(await utils.isPresent('#mic-btn #mic')).to.be.true; }); - it('should show and hide CAMERA stream when muting video with screensharing', async () => { - let element; + it('should mute and unmute the local camera', async () => { await browser.get(`${url}&prejoin=false`); await utils.checkLayoutPresent(); - // Clicking to screensharing button - const screenshareButton = await utils.waitForElement('#screenshare-btn'); - expect(await screenshareButton.isDisplayed()).to.be.true; - await screenshareButton.click(); + const cameraButton = await utils.waitForElement('#camera-btn'); + await cameraButton.click(); - await utils.waitForElement('.OV_big'); - element = await browser.findElements(By.css('video')); - expect(element.length).equals(2); + await utils.waitForElement('#camera-btn #videocam_off'); + expect(await utils.isPresent('#camera-btn #videocam_off')).to.be.true; - const muteVideoButton = await utils.waitForElement('#camera-btn'); - await muteVideoButton.click(); + await cameraButton.click(); - element = await browser.findElements(By.css('video')); - expect(element.length).equals(1); - }); - - it('should screenshare has audio active when camera is muted', async () => { - let element, isAudioEnabled; - const audioEnableScript = 'return document.getElementsByTagName("video")[0].srcObject.getAudioTracks()[0].enabled;'; - - await browser.get(`${url}&prejoin=false`); - - await utils.checkLayoutPresent(); - - // Clicking to screensharing button - const screenshareButton = await utils.waitForElement('#screenshare-btn'); - expect(await utils.isPresent('#screenshare-btn')).to.be.true; - await screenshareButton.click(); - - element = await utils.waitForElement('.OV_big'); - element = await browser.findElements(By.css('video')); - expect(element.length).equals(2); - - element = await browser.findElements(By.id('statusMic')); - expect(element.length).equals(1); - - // Muting camera video - const muteVideoButton = await utils.waitForElement('#camera-btn'); - await muteVideoButton.click(); - - element = await browser.findElements(By.css('video')); - expect(element.length).equals(1); - - await browser.sleep(500); - expect(await utils.isPresent('#statusMic')).to.be.false; - - // Checking if audio is muted after join the room - isAudioEnabled = await browser.executeScript(audioEnableScript); - expect(isAudioEnabled).to.be.true; - - // Unmuting camera - await muteVideoButton.click(); - - element = await utils.waitForElement('.camera-type'); - element = await browser.findElements(By.css('video')); - expect(element.length).equals(2); - - element = await browser.findElements(By.id('statusMic')); - expect(element.length).equals(1); - }); - - it('should camera come back with audio muted when screensharing', async () => { - let element, isAudioEnabled; - - const getAudioScript = (className: string) => { - return `return document.getElementsByClassName('${className}')[0].srcObject.getAudioTracks()[0].enabled;`; - }; - - await browser.get(`${url}&prejoin=false`); - - await utils.checkLayoutPresent(); - - // Clicking to screensharing button - const screenshareButton = await utils.waitForElement('#screenshare-btn'); - await screenshareButton.click(); - - await utils.waitForElement('.screen-type'); - element = await browser.findElements(By.css('video')); - expect(element.length).equals(2); - - element = await browser.findElements(By.id('statusMic')); - expect(element.length).equals(1); - - // Mute camera - const muteVideoButton = await utils.waitForElement('#camera-btn'); - await muteVideoButton.click(); - - element = await browser.findElements(By.css('video')); - expect(element.length).equals(1); - - expect(await utils.isPresent('#statusMic')).to.be.false; - - // Checking if audio is muted after join the room - isAudioEnabled = await browser.executeScript(getAudioScript('screen-type')); - expect(isAudioEnabled).to.be.true; - - // Mute audio - const muteAudioButton = await utils.waitForElement('#mic-btn'); - await muteAudioButton.click(); - - await utils.waitForElement('#statusMic'); - element = await browser.findElements(By.id('statusMic')); - expect(element.length).equals(1); - - isAudioEnabled = await browser.executeScript(getAudioScript('screen-type')); - expect(isAudioEnabled).to.be.false; - - // Unmute camera - await muteVideoButton.click(); - - await utils.waitForElement('.camera-type'); - element = await browser.findElements(By.css('video')); - expect(element.length).equals(2); - - element = await browser.findElements(By.id('statusMic')); - expect(element.length).equals(2); - - isAudioEnabled = await browser.executeScript(getAudioScript('camera-type')); - expect(isAudioEnabled).to.be.false; - }); -}); - -describe('Testing panels', () => { - let browser: WebDriver; - let utils: OpenViduComponentsPO; - - async function createChromeBrowser(): Promise { - return await new Builder() - .forBrowser(WebComponentConfig.browserName) - .withCapabilities(WebComponentConfig.browserCapabilities) - .setChromeOptions(WebComponentConfig.browserOptions) - .usingServer(WebComponentConfig.seleniumAddress) - .build(); - } - - beforeEach(async () => { - browser = await createChromeBrowser(); - utils = new OpenViduComponentsPO(browser); - }); - - afterEach(async () => { - await browser.quit(); - }); - - /** - * TODO - * It only works with OpenVidu PRO because this is a PRO feature - */ - // it('should toggle BACKGROUND panel on prejoin page when VIDEO is MUTED', async () => { - // let element; - // await browser.get(`${url}`); - // element = await utils.waitForElement('#pre-join-container'); - // expect(await utils.isPresent('#pre-join-container')).to.be.true; - - // const backgroundButton = await utils.waitForElement('#background-effects-btn'); - // expect(await utils.isPresent('#background-effects-btn')).to.be.true; - // expect(await backgroundButton.isEnabled()).to.be.true; - // await backgroundButton.click(); - // await browser.sleep(500); - - // await utils.waitForElement('#background-effects-container'); - // expect(await utils.isPresent('#background-effects-container')).to.be.true; - - // element = await utils.waitForElement('#camera-button'); - // expect(await utils.isPresent('#camera-button')).to.be.true; - // expect(await element.isEnabled()).to.be.true; - // await element.click(); - - // await browser.sleep(500); - // element = await utils.waitForElement('#video-poster'); - // expect(await utils.isPresent('#video-poster')).to.be.true; - - // expect(await backgroundButton.isDisplayed()).to.be.true; - // expect(await backgroundButton.isEnabled()).to.be.false; - - // expect(await utils.isPresent('#background-effects-container')).to.be.false; - // }); - - it('should toggle CHAT panel', async () => { - await browser.get(`${url}&prejoin=false`); - - await utils.checkLayoutPresent(); - - const chatButton = await utils.waitForElement('#chat-panel-btn'); - await chatButton.click(); - - await utils.waitForElement('.sidenav-menu'); - await utils.waitForElement('.input-container'); - expect(await utils.isPresent('.input-container')).to.be.true; - - await utils.waitForElement('.messages-container'); - expect(await utils.isPresent('.messages-container')).to.be.true; - - await chatButton.click(); - - expect(await utils.isPresent('.input-container')).to.be.false; - expect(await utils.isPresent('.messages-container')).to.be.false; - }); - - it('should toggle PARTICIPANTS panel', async () => { - await browser.get(`${url}&prejoin=false`); - - await utils.checkLayoutPresent(); - - const participantBtn = await utils.waitForElement('#participants-panel-btn'); - await participantBtn.click(); - - await utils.waitForElement('.sidenav-menu'); - - await utils.waitForElement('.local-participant-container'); - expect(await utils.isPresent('.local-participant-container')).to.be.true; - - await utils.waitForElement('ov-participant-panel-item'); - expect(await utils.isPresent('ov-participant-panel-item')).to.be.true; - - await participantBtn.click(); - - expect(await utils.isPresent('.local-participant-container')).to.be.false; - expect(await utils.isPresent('ov-participant-panel-item')).to.be.false; - }); - - it('should toggle ACTIVITIES panel', async () => { - await browser.get(`${url}&prejoin=false`); - - await utils.checkLayoutPresent(); - - // Get activities button and click into it - const activitiesBtn = await utils.waitForElement('#activities-panel-btn'); - await activitiesBtn.click(); - - await utils.waitForElement('.sidenav-menu'); - await utils.waitForElement('#activities-container'); - expect(await utils.isPresent('#activities-container')).to.be.true; - - await utils.waitForElement('#recording-activity'); - expect(await utils.isPresent('#recording-activity')).to.be.true; - await activitiesBtn.click(); - - expect(await utils.isPresent('#activities-container')).to.be.false; - expect(await utils.isPresent('#recording-activity')).to.be.false; - }); - - it('should toggle SETTINGS panel', async () => { - let element; - await browser.get(`${url}&prejoin=false`); - - await utils.checkLayoutPresent(); - - // Checking if toolbar is present - await utils.checkToolbarIsPresent(); - - // Open more options menu - element = await utils.waitForElement('#more-options-btn'); - await element.click(); - - await browser.sleep(500); - - // Checking if mat menu is present - element = await utils.waitForElement('.mat-menu-content'); - expect(await utils.isPresent('.mat-menu-content')).to.be.true; - - // Get settings button and click into it - const settingsBtn = await utils.waitForElement('#toolbar-settings-btn'); - await settingsBtn.click(); - - element = await utils.waitForElement('.sidenav-menu'); - expect(await utils.isPresent('#default-settings-panel')).to.be.true; - }); - - it('should switching between PARTICIPANTS and CHAT panels', async () => { - await browser.get(`${url}&prejoin=false`); - - await utils.checkSessionIsPresent(); - - await utils.checkToolbarIsPresent(); - - // Open chat panel - const chatButton = await utils.waitForElement('#chat-panel-btn'); - await chatButton.click(); - - await utils.waitForElement('.sidenav-menu'); - expect(await utils.isPresent('.sidenav-menu')).to.be.true; - - await utils.waitForElement('.input-container'); - expect(await utils.isPresent('.input-container')).to.be.true; - - expect(await utils.isPresent('.messages-container')).to.be.true; - - // Open participants panel - const participantBtn = await utils.waitForElement('#participants-panel-btn'); - await participantBtn.click(); - - await utils.waitForElement('.sidenav-menu'); - - expect(await utils.isPresent('.local-participant-container')).to.be.true; - - expect(await utils.isPresent('ov-participant-panel-item')).to.be.true; - - // Switch to chat panel - await chatButton.click(); - - await utils.waitForElement('.sidenav-menu'); - - expect(await utils.isPresent('.input-container')).to.be.true; - - expect(await utils.isPresent('.messages-container')).to.be.true; - - expect(await utils.isPresent('.local-participant-container')).to.be.false; - - expect(await utils.isPresent('ov-participant-panel-item')).to.be.false; - - // Close chat panel - await chatButton.click(); - await browser.findElements(By.className('input-container')); - expect(await utils.isPresent('.input-container')).to.be.false; - - expect(await utils.isPresent('messages-container')).to.be.false; - }); - - it('should switching between sections in SETTINGS PANEL', async () => { - let element; - await browser.get(`${url}&prejoin=false`); - - await utils.checkToolbarIsPresent(); - - // Checking if toolbar is present - await utils.checkToolbarIsPresent(); - - // Open more options menu - element = await utils.waitForElement('#more-options-btn'); - await element.click(); - - await browser.sleep(500); - - // Checking if mat menu is present - await utils.waitForElement('.mat-menu-content'); - expect(await utils.isPresent('.mat-menu-content')).to.be.true; - - // Get settings button and click into it - const settingsBtn = await utils.waitForElement('#toolbar-settings-btn'); - await settingsBtn.click(); - - await utils.waitForElement('.sidenav-menu'); - expect(await utils.isPresent('.sidenav-menu')).to.be.true; - - // Check if general section is shown - element = await utils.waitForElement('#general-opt'); - await element.click(); - - expect(await utils.isPresent('ov-nickname-input')).to.be.true; - - // Check if video section is shown - element = await utils.waitForElement('#video-opt'); - await element.click(); - - expect(await utils.isPresent('ov-video-devices-select')).to.be.true; - - // Check if audio section is shown - element = await utils.waitForElement('#audio-opt'); - await element.click(); - - expect(await utils.isPresent('ov-audio-devices-select')).to.be.true; - }); -}); - -describe('Testing CHAT features', () => { - let browser: WebDriver; - let utils: OpenViduComponentsPO; - - async function createChromeBrowser(): Promise { - return await new Builder() - .forBrowser(WebComponentConfig.browserName) - .withCapabilities(WebComponentConfig.browserCapabilities) - .setChromeOptions(WebComponentConfig.browserOptions) - .usingServer(WebComponentConfig.seleniumAddress) - .build(); - } - - beforeEach(async () => { - browser = await createChromeBrowser(); - utils = new OpenViduComponentsPO(browser); - }); - - afterEach(async () => { - await browser.quit(); - }); - - it('should send an url message and converts in a link', async () => { - await browser.get(`${url}&prejoin=false`); - - await utils.checkLayoutPresent(); - - const chatButton = await utils.waitForElement('#chat-panel-btn'); - await chatButton.click(); - - await utils.waitForElement('.sidenav-menu'); - await utils.waitForElement('.input-container'); - expect(await utils.isPresent('.input-container')).to.be.true; - - - const input = await utils.waitForElement('#chat-input'); - await input.sendKeys('demos.openvidu.io'); - - await utils.clickOn('#send-btn'); - - await utils.waitForElement('.msg-content a'); - expect(await utils.isPresent('.msg-content a')).to.be.true; + await utils.waitForElement('#camera-btn #videocam'); + expect(await utils.isPresent('#camera-btn #videocam')).to.be.true; }); }); @@ -1813,7 +1913,6 @@ describe('Testing PRO features with OpenVidu CE', () => { // Expect it shows the pro feature alert await utils.chceckProFeatureAlertIsPresent(); - }); it('should SHOW the CAPTIONS PRO feature dialog', async () => { @@ -1861,7 +1960,6 @@ describe('Testing PRO features with OpenVidu CE', () => { }); }); - /** * TODO: * The following E2E TESTS only work with OpenVidu PRO. @@ -2039,3 +2137,103 @@ describe('Testing PRO features with OpenVidu CE', () => { // }); // }); + +describe('Testing WITHOUT MEDIA DEVICES permissions', () => { + let browser: WebDriver; + let utils: OpenViduComponentsPO; + async function createChromeBrowser(): Promise { + return await new Builder() + .forBrowser(WebComponentConfig.browserName) + .withCapabilities(WebComponentConfig.browserCapabilities) + .setChromeOptions(getBrowserOptionsWithoutDevices()) + .usingServer(WebComponentConfig.seleniumAddress) + .build(); + } + + beforeEach(async () => { + browser = await createChromeBrowser(); + utils = new OpenViduComponentsPO(browser); + }); + + afterEach(async () => { + await browser.quit(); + }); + + it('should be able to ACCESS to PREJOIN page', async () => { + await browser.get(`${url}`); + + await utils.checkPrejoinIsPresent(); + + let button = await utils.waitForElement('#camera-button'); + expect(await button.isEnabled()).to.be.false; + + button = await utils.waitForElement('#microphone-button'); + expect(await button.isEnabled()).to.be.false; + }); + + it('should be able to ACCESS to ROOM page', async () => { + await browser.get(`${url}`); + + await utils.checkPrejoinIsPresent(); + + await utils.clickOn('#join-button'); + + await utils.checkSessionIsPresent(); + + await utils.checkToolbarIsPresent(); + + let button = await utils.waitForElement('#camera-btn'); + expect(await button.isEnabled()).to.be.false; + + button = await utils.waitForElement('#mic-btn'); + expect(await button.isEnabled()).to.be.false; + }); + + it('should be able to ACCESS to ROOM page without prejoin', async () => { + await browser.get(`${url}&prejoin=false`); + + await utils.checkSessionIsPresent(); + + await utils.checkToolbarIsPresent(); + + let button = await utils.waitForElement('#camera-btn'); + expect(await button.isEnabled()).to.be.false; + + button = await utils.waitForElement('#mic-btn'); + expect(await button.isEnabled()).to.be.false; + }); + + it('should the settings buttons be disabled', async () => { + await browser.get(`${url}&prejoin=false`); + + await utils.checkToolbarIsPresent(); + + // Open more options menu + await utils.clickOn('#more-options-btn'); + + await browser.sleep(500); + + // Checking if fullscreen button is not present + await utils.waitForElement('.mat-menu-content'); + expect(await utils.isPresent('.mat-menu-content')).to.be.true; + + await utils.clickOn('#toolbar-settings-btn'); + + await browser.sleep(500); + + await utils.waitForElement('.settings-container'); + expect(await utils.isPresent('.settings-container')).to.be.true; + + await utils.clickOn('#video-opt'); + expect(await utils.isPresent('ov-video-devices-select')).to.be.true; + + let button = await utils.waitForElement('#camera-button'); + expect(await button.isEnabled()).to.be.false; + + await utils.clickOn('#audio-opt'); + expect(await utils.isPresent('ov-audio-devices-select')).to.be.true; + + button = await utils.waitForElement('#microphone-button'); + expect(await button.isEnabled()).to.be.false; + }); +});