bigbluebutton-Github/bigbluebutton-tests/playwright/options/options.js
2023-04-24 17:52:47 -03:00

167 lines
7.8 KiB
JavaScript

const { expect } = require('@playwright/test');
const { openAboutModal, openSettings, getLocaleValues } = require('./util');
const e = require('../core/elements');
const Page = require("../core/page");
const { ELEMENT_WAIT_TIME } = require('../core/constants');
const { MultiUsers } = require('../user/multiusers');
class Options extends MultiUsers {
constructor(browser, context) {
super(browser, context);
}
async handleHelpPage(context) {
await this.modPage.waitAndClick(e.optionsButton);
const [newPage] = await Promise.all([
context.waitForEvent('page'),
this.modPage.waitAndClick(e.helpButton),
]);
this.helpPage = new Page(context, newPage);
}
async openedAboutModal() {
await openAboutModal(this.modPage);
await this.modPage.hasElement(e.closeModal);
await this.modPage.waitAndClick(e.closeModal);
}
async openHelp() {
await this.helpPage.haveTitle(/BigBlueButton Tutorials/);
await this.modPage.hasElement(e.presentationTitle);
}
async localesTest() {
const selectedKeysBySelector = {
[e.messageTitle]: 'app.userList.messagesTitle',
[e.notesTitle]: 'app.userList.notesTitle',
[e.userListToggleBtn]: 'app.navBar.userListToggleBtnLabel',
[e.hidePublicChat]: 'app.chat.titlePublic',
[e.sendButton]: 'app.chat.submitLabel',
[e.actions]: 'app.actionsBar.actionsDropdown.actionsLabel',
[e.joinAudio]: 'app.audio.joinAudio',
[e.joinVideo]: 'app.video.joinVideo',
[e.startScreenSharing]: 'app.actionsBar.actionsDropdown.desktopShareLabel',
[e.minimizePresentation]: 'app.actionsBar.actionsDropdown.minimizePresentationLabel',
[e.raiseHandBtn]: 'app.actionsBar.emojiMenu.raiseHandLabel',
[e.connectionStatusBtn]: 'app.connection-status.label',
[e.optionsButton]: 'app.navBar.settingsDropdown.optionsLabel',
}
for (const locale of e.locales) {
console.log(`Testing ${locale} locale`);
const currentValuesBySelector = await getLocaleValues(selectedKeysBySelector, locale);
await openSettings(this.modPage);
await this.modPage.waitForSelector(e.languageSelector);
const langDropdown = await this.modPage.page.$(e.languageSelector);
await langDropdown.selectOption({ value: locale });
await this.modPage.waitAndClick(e.modalConfirmButton);
await this.modPage.waitForSelector(e.toastContainer);
for (const selector in currentValuesBySelector) {
await this.modPage.hasText(selector, currentValuesBySelector[selector]);
}
}
}
async darkMode() {
await openSettings(this.modPage);
await this.modPage.waitAndClickElement(e.darkModeToggleBtn);
await this.modPage.waitAndClick(e.modalConfirmButton);
//Checking user list
await this.modPage.waitAndClick(e.sharedNotes, ELEMENT_WAIT_TIME);
await this.modPage.backgroundColorTest(e.sharedNotesBackground, 'rgb(34, 36, 37)');
await this.modPage.waitAndClick(e.manageUsers);
await this.modPage.waitAndClick(e.guestPolicyLabel);
await this.modPage.backgroundColorTest(e.simpleModal, 'rgb(34, 36, 37)');
await this.modPage.waitAndClick(e.closeModal);
await this.modPage.waitAndClick(e.chatButton);
await this.modPage.backgroundColorTest(e.chatButton, 'rgb(48, 51, 52)');
await this.modPage.textColorTest(e.chatButton, 'rgb(208, 205, 201)');
await this.modPage.textColorTest(e.hidePublicChat, 'rgb(170, 164, 155)');
await this.modPage.textColorTest(`${e.chatOptions} >> span`, 'rgb(170, 164, 155)');
await this.modPage.textColorTest(`${e.manageUsers} >> span`, 'rgb(170, 164, 155)');
await this.modPage.waitAndClick(e.manageUsers);
await this.modPage.waitAndClick(e.lockViewersButton);
await this.modPage.backgroundColorTest(e.simpleModal, 'rgb(34, 36, 37)');
await this.modPage.waitAndClick(e.applyLockSettings);
//Checking public chat
await this.modPage.backgroundColorTest(e.publicChat, 'rgb(34, 36, 37)');
await this.modPage.backgroundColorTest(e.chatWelcomeMessageText, 'rgb(37, 39, 40)');
await this.modPage.backgroundColorTest(`${e.sendButton} >> span`, 'rgb(24, 94, 168)');
await this.modPage.backgroundColorTest(e.chatBox, 'rgb(34, 36, 37)');
await this.modPage.textColorTest(e.chatBox, 'rgb(170, 164, 155)');
// Checking actions bar background and buttons color
await this.modPage.backgroundColorTest(e.actionsBarBackground, 'rgb(30, 32, 33)')
await this.modPage.textColorTest(`${e.joinAudio} >> span`, 'rgb(222, 220, 217)');
await this.modPage.backgroundColorTest(`${e.joinAudio} >> span`, 'rgba(0, 0, 0, 0)');
await this.modPage.textColorTest(`${e.joinVideo} >> span`, 'rgb(222, 220, 217)');
await this.modPage.backgroundColorTest(`${e.joinVideo} >> span`, 'rgba(0, 0, 0, 0)');
await this.modPage.textColorTest(`${e.startScreenSharing} >> span`, 'rgb(222, 220, 217)');
await this.modPage.backgroundColorTest(`${e.startScreenSharing} >> span`, 'rgba(0, 0, 0, 0)');
await this.modPage.textColorTest(`${e.raiseHandBtn} >> span`, 'rgb(222, 220, 217)');
await this.modPage.backgroundColorTest(`${e.raiseHandBtn} >> span`, 'rgba(0, 0, 0, 0)');
await this.modPage.backgroundColorTest(`${e.actions} >> span`, 'rgb(24, 94, 168)');
await this.modPage.backgroundColorTest(`${e.minimizePresentation} >> span`, 'rgb(24, 94, 168)');
// Checking buttons background and navbar background
await this.modPage.backgroundColorTest(e.navbarBackground, 'rgb(30, 32, 33)');
await this.modPage.textColorTest(`${e.userListToggleBtn} >> span`, 'rgb(222, 220, 217)');
await this.modPage.textColorTest(`${e.optionsButton} >> span`, 'rgb(222, 220, 217)');
// Checking presentation area
await this.modPage.backgroundColorTest(e.whiteboardOptionsButton, 'rgb(34, 36, 37)');
await this.modPage.textColorTest(e.whiteboardOptionsButton, 'rgb(208, 205, 201)');
await this.modPage.waitAndClick(e.optionsButton);
await this.modPage.waitAndClick(e.settings);
await this.modPage.backgroundColorTest(e.fullscreenModal, 'rgb(34, 36, 37)');
await this.modPage.waitAndClick(e.modalConfirmButton);
await this.modPage.backgroundColorTest(e.presentationToolbarWrapper, 'rgb(39, 42, 42)');
await openSettings(this.modPage);
await this.modPage.waitAndClickElement(e.darkModeToggleBtn);
await this.modPage.waitAndClick(e.modalConfirmButton);
}
async fontSizeTest() {
// Increasing font size
await openSettings(this.modPage);
await this.modPage.waitAndClick(e.increaseFontSize);
await this.modPage.waitAndClick(e.modalConfirmButton);
await this.modPage.fontSizeCheck(e.chatButton, '16px');//text + icon
await this.modPage.fontSizeCheck(e.chatWelcomeMessageText, '16px');
await this.modPage.fontSizeCheck(e.chatMessages, '16px');
await this.modPage.fontSizeCheck(e.sharedNotes, '14px');
await this.modPage.fontSizeCheck(e.usersList, '16px');
await this.modPage.fontSizeCheck(e.currentUser, '16px');
await this.modPage.fontSizeCheck(e.actionsBarBackground, '16px');
await this.modPage.fontSizeCheck(e.navbarBackground, '24px');
// Decreasing font size
await openSettings(this.modPage);
await this.modPage.waitAndClick(e.decreaseFontSize);
await this.modPage.waitAndClick(e.decreaseFontSize);
await this.modPage.waitAndClick(e.modalConfirmButton);
await this.modPage.fontSizeCheck(e.chatButton, '12px');
await this.modPage.fontSizeCheck(e.chatWelcomeMessageText, '12px');
await this.modPage.fontSizeCheck(e.chatMessages, '12px')
await this.modPage.fontSizeCheck(e.sharedNotes, '10.5px');
await this.modPage.fontSizeCheck(e.usersList, '12px');
await this.modPage.fontSizeCheck(e.currentUser, '12px');
await this.modPage.fontSizeCheck(e.actionsBarBackground, '12px');
await this.modPage.fontSizeCheck(e.navbarBackground, '18px');
}
}
exports.Options = Options;