diff --git a/openvidu-components-angular/e2e/webcomponent-app/app.js b/openvidu-components-angular/e2e/webcomponent-app/app.js index d2c0869a..3b988a7c 100644 --- a/openvidu-components-angular/e2e/webcomponent-app/app.js +++ b/openvidu-components-angular/e2e/webcomponent-app/app.js @@ -19,6 +19,7 @@ var PARTICIPANT_MUTE_BUTTON; var PARTICIPANTS_PANEL_BUTTON; var ACTIVITIES_RECORDING_ACTIVITY; var RECORDING_ERROR; +var TOOLBAR_SETTINGS_BUTTON; var SESSION_NAME; @@ -35,6 +36,8 @@ $(document).ready(() => { SCREENSHARE_BUTTON = url.searchParams.get("screenshareBtn") === null ? true : url.searchParams.get("screenshareBtn") === 'true'; RECORDING_BUTTON = url.searchParams.get("recordingBtn") === null ? true : url.searchParams.get("recordingBtn") === 'true'; FULLSCREEN_BUTTON = url.searchParams.get("fullscreenBtn") === null ? true : url.searchParams.get("fullscreenBtn") === 'true'; + TOOLBAR_SETTINGS_BUTTON = url.searchParams.get("toolbarSettingsBtn") === null ? true : url.searchParams.get("toolbarSettingsBtn") === 'true'; + LEAVE_BUTTON = url.searchParams.get("leaveBtn") === null ? true : url.searchParams.get("leaveBtn") === 'true'; ACTIVITIES_PANEL_BUTTON = url.searchParams.get("activitiesPanelBtn") === null ? true : url.searchParams.get("activitiesPanelBtn") === 'true'; CHAT_PANEL_BUTTON = url.searchParams.get("chatPanelBtn") === null ? true : url.searchParams.get("chatPanelBtn") === 'true'; @@ -52,7 +55,7 @@ $(document).ready(() => { PARTICIPANT_MUTE_BUTTON = url.searchParams.get("participantMuteBtn") === null ? true : url.searchParams.get("participantMuteBtn") === 'true'; - SESSION_NAME = url.searchParams.get("sessionName") === null ? `E2ESession${Math.floor(Math.random()*100)}` : url.searchParams.get("sessionName"); + SESSION_NAME = url.searchParams.get("sessionName") === null ? `E2ESession${Math.floor(Date.now())}` : url.searchParams.get("sessionName"); var webComponent = document.querySelector('openvidu-webcomponent'); @@ -145,6 +148,7 @@ async function joinSession(sessionName, participantName) { webComponent.toolbarScreenshareButton = SCREENSHARE_BUTTON; webComponent.toolbarFullscreenButton = FULLSCREEN_BUTTON; + webComponent.toolbarSettingsButton = TOOLBAR_SETTINGS_BUTTON; webComponent.toolbarLeaveButton = LEAVE_BUTTON; webComponent.toolbarRecordingButton = RECORDING_BUTTON; webComponent.toolbarActivitiesPanelButton = ACTIVITIES_PANEL_BUTTON; diff --git a/openvidu-components-angular/e2e/webcomponent.test.ts b/openvidu-components-angular/e2e/webcomponent.test.ts index 4c6eb9ec..5d4740fc 100644 --- a/openvidu-components-angular/e2e/webcomponent.test.ts +++ b/openvidu-components-angular/e2e/webcomponent.test.ts @@ -252,6 +252,29 @@ describe('Testing API Directives', () => { expect(element.length).equals(0); }); + it('should HIDE the TOOLBAR SETTINGS button', async () => { + let element; + await browser.get(`${url}?prejoin=false&toolbarSettingsBtn=false`); + element = await browser.wait(until.elementLocated(By.id('session-container')), TIMEOUT); + expect(await element.isDisplayed()).to.be.true; + + // Checking if toolbar is present + element = await browser.wait(until.elementLocated(By.id('media-buttons-container')), TIMEOUT); + expect(await element.isDisplayed()).to.be.true; + + // Open more options menu + element = await browser.wait(until.elementLocated(By.id('more-options-btn')), TIMEOUT); + await element.click(); + + await browser.sleep(500); + + // Checking if fullscreen button is not present + element = await browser.wait(until.elementLocated(By.className('mat-menu-content')), TIMEOUT); + expect(await element.isDisplayed()).to.be.true; + element = await browser.findElements(By.id('toolbar-settings-btn')); + expect(element.length).equals(0); + }); + it('should HIDE the LEAVE button', async () => { let element; await browser.get(`${url}?prejoin=false&leaveBtn=false`); @@ -372,7 +395,7 @@ describe('Testing API Directives', () => { expect(element.length).equals(0); }); - it('should HIDE the SETTINGS button', async () => { + it('should HIDE the STREAM SETTINGS button', async () => { let element; await browser.get(`${url}?prejoin=false&settingsBtn=false`); element = await browser.wait(until.elementLocated(By.id('session-container')), TIMEOUT); @@ -1178,6 +1201,37 @@ describe('Testing panel toggling', () => { expect(element.length).equals(0); }); + it('should toggle SETTINGS panel', async () => { + let element; + await browser.get(`${url}?prejoin=false`); + element = await browser.wait(until.elementLocated(By.id('layout')), TIMEOUT); + expect(await element.isDisplayed()).to.be.true; + + // Checking if toolbar is present + element = await browser.wait(until.elementLocated(By.id('media-buttons-container')), TIMEOUT); + expect(await element.isDisplayed()).to.be.true; + + // Open more options menu + element = await browser.wait(until.elementLocated(By.id('more-options-btn')), TIMEOUT); + await element.click(); + + await browser.sleep(500); + + // Checking if mat menu is present + element = await browser.wait(until.elementLocated(By.className('mat-menu-content')), TIMEOUT); + expect(await element.isDisplayed()).to.be.true; + + // Get settings button and click into it + const activitiesBtn = await browser.findElement(By.id('toolbar-settings-btn')); + expect(await activitiesBtn.isDisplayed()).to.be.true; + await activitiesBtn.click(); + + element = await browser.wait(until.elementLocated(By.className('sidenav-menu')), TIMEOUT); + element = await browser.findElements(By.id('default-settings-panel')); + expect(element.length).equals(1); + + }); + it('should switching between PARTICIPANTS and CHAT panels', async () => { let element; await browser.get(`${url}?prejoin=false`);