2024-03-06 22:26:03 +08:00
|
|
|
const { test } = require('../fixtures');
|
2021-12-15 01:10:44 +08:00
|
|
|
const { CustomParameters } = require('./customparameters');
|
2023-06-22 20:21:10 +08:00
|
|
|
const { DisabledFeatures } = require('./disabledFeatures');
|
2021-12-15 01:10:44 +08:00
|
|
|
const c = require('./constants');
|
|
|
|
const { encodeCustomParams, getAllShortcutParams, hexToRgb } = require('./util');
|
2023-06-22 20:21:10 +08:00
|
|
|
const { CreateParameters } = require('./createParameters');
|
2024-03-15 19:56:35 +08:00
|
|
|
const { PARAMETER_HIDE_PRESENTATION_TOAST } = require('../core/constants');
|
|
|
|
|
|
|
|
const hidePresentationToast = encodeCustomParams(PARAMETER_HIDE_PRESENTATION_TOAST);
|
2021-12-15 01:10:44 +08:00
|
|
|
|
2023-06-22 20:21:10 +08:00
|
|
|
test.describe.parallel('Create Parameters', () => {
|
|
|
|
test('Record Meeting', async ({ browser, context, page }) => {
|
|
|
|
const createParam = new CreateParameters(browser, context);
|
2023-07-31 22:24:25 +08:00
|
|
|
await createParam.initModPage(page, true, { createParameter: c.recordMeeting });
|
2023-06-22 20:21:10 +08:00
|
|
|
await createParam.recordMeeting();
|
|
|
|
});
|
|
|
|
|
|
|
|
test.describe.parallel('Banner', () => {
|
|
|
|
test('Banner Text @ci', async ({ browser, context, page }) => {
|
|
|
|
const createParam = new CreateParameters(browser, context);
|
2024-01-20 00:42:01 +08:00
|
|
|
await createParam.initModPage(page, true, { createParameter: c.bannerText });
|
2023-06-22 20:21:10 +08:00
|
|
|
await createParam.bannerText();
|
|
|
|
});
|
|
|
|
|
|
|
|
test('Banner Color @ci', async ({ browser, context, page }) => {
|
|
|
|
const createParam = new CreateParameters(browser, context);
|
2024-01-20 00:42:01 +08:00
|
|
|
const colorToRGB = hexToRgb(c.color.substring(1));
|
|
|
|
await createParam.initModPage(page, true, { createParameter: `${encodeCustomParams(c.bannerColor)}&${c.bannerText}` });
|
2023-06-22 20:21:10 +08:00
|
|
|
await createParam.bannerColor(colorToRGB);
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
2024-01-20 00:42:01 +08:00
|
|
|
// see https://github.com/bigbluebutton/bigbluebutton/issues/19426
|
|
|
|
test('Max Participants @flaky', async ({ browser, context, page }) => {
|
2023-06-22 20:21:10 +08:00
|
|
|
const createParam = new CreateParameters(browser, context);
|
2023-07-31 22:24:25 +08:00
|
|
|
await createParam.initModPage(page, true, { createParameter: c.maxParticipants });
|
2023-06-22 20:21:10 +08:00
|
|
|
await createParam.initModPage2(true, context);
|
|
|
|
await createParam.maxParticipants(context);
|
|
|
|
});
|
|
|
|
|
2024-01-20 00:42:01 +08:00
|
|
|
// Not working due to missing data provided by GraphQL
|
|
|
|
test('Meeting Duration @flaky', async ({ browser, context, page }) => {
|
2023-06-22 20:21:10 +08:00
|
|
|
const createParam = new CreateParameters(browser, context);
|
2023-07-31 22:24:25 +08:00
|
|
|
await createParam.initModPage(page, true, { createParameter: c.duration });
|
2023-06-22 20:21:10 +08:00
|
|
|
await createParam.duration();
|
|
|
|
});
|
|
|
|
|
|
|
|
test('Message Only To Moderators', async ({ browser, context, page }) => {
|
|
|
|
const createParam = new CreateParameters(browser, context);
|
2023-07-31 22:24:25 +08:00
|
|
|
await createParam.initModPage(page, true, { createParameter: c.moderatorOnlyMessage });
|
2023-06-22 20:21:10 +08:00
|
|
|
await createParam.moderatorOnlyMessage(context);
|
|
|
|
});
|
|
|
|
|
|
|
|
test('Webcams Shows Only For Moderators', async ({ browser, context, page }) => {
|
|
|
|
const createParam = new CreateParameters(browser, context);
|
2023-07-31 22:24:25 +08:00
|
|
|
await createParam.initModPage(page, true, { createParameter: c.webcamsOnlyForModerator });
|
2023-06-22 20:21:10 +08:00
|
|
|
await createParam.initUserPage2(true, context);
|
|
|
|
await createParam.webcamsOnlyForModerator(context);
|
|
|
|
});
|
|
|
|
|
|
|
|
test('Mute On Start', async ({ browser, context, page }) => {
|
|
|
|
const createParam = new CreateParameters(browser, context);
|
2023-07-31 22:24:25 +08:00
|
|
|
await createParam.initModPage(page, true, { createParameter: c.muteOnStart });
|
2023-06-22 20:21:10 +08:00
|
|
|
await createParam.muteOnStart();
|
|
|
|
});
|
|
|
|
|
|
|
|
test('Allow Mods To Unmute Users', async ({ browser, context, page }) => {
|
|
|
|
const createParam = new CreateParameters(browser, context);
|
2023-07-31 22:24:25 +08:00
|
|
|
await createParam.initModPage(page, true, { createParameter: c.allowModsToUnmuteUsers });
|
2023-06-22 20:21:10 +08:00
|
|
|
await createParam.allowModsToUnmuteUsers(context);
|
|
|
|
});
|
|
|
|
|
|
|
|
test('Lock Settings Disable Webcam', async ({ browser, context, page }) => {
|
|
|
|
const createParam = new CreateParameters(browser, context);
|
2023-07-31 22:24:25 +08:00
|
|
|
await createParam.initModPage(page, true, { createParameter: c.lockSettingsDisableCam });
|
2023-06-22 20:21:10 +08:00
|
|
|
await createParam.initUserPage(true, context);
|
|
|
|
await createParam.lockSettingsDisableCam();
|
|
|
|
});
|
|
|
|
|
|
|
|
test('Lock Settings Disable Microphone', async ({ browser, context, page }) => {
|
|
|
|
const createParam = new CreateParameters(browser, context);
|
2023-07-31 22:24:25 +08:00
|
|
|
await createParam.initModPage(page, true, { createParameter: c.lockSettingsDisableMic });
|
2023-06-22 20:21:10 +08:00
|
|
|
await createParam.initUserPage(false, context);
|
|
|
|
await createParam.lockSettingsDisableMic();
|
|
|
|
});
|
|
|
|
|
|
|
|
test('Lock Settings Disable Public Chat', async ({ browser, context, page }) => {
|
|
|
|
const createParam = new CreateParameters(browser, context);
|
2023-07-31 22:24:25 +08:00
|
|
|
await createParam.initModPage(page, true, { createParameter: c.lockSettingsDisablePublicChat });
|
2023-06-22 20:21:10 +08:00
|
|
|
await createParam.initUserPage(true, context);
|
|
|
|
await createParam.lockSettingsDisablePublicChat();
|
|
|
|
});
|
|
|
|
|
|
|
|
test('Lock Settings Hide User List', async ({ browser, context, page }) => {
|
|
|
|
const createParam = new CreateParameters(browser, context);
|
2023-07-31 22:24:25 +08:00
|
|
|
await createParam.initModPage(page, true, { createParameter: c.lockSettingsHideUserList });
|
2023-06-22 20:21:10 +08:00
|
|
|
await createParam.initUserPage(true, context);
|
|
|
|
await createParam.initUserPage2(true, context);
|
|
|
|
await createParam.lockSettingsHideUserList();
|
|
|
|
});
|
|
|
|
|
|
|
|
test('Allow Moderator To Eject Cameras', async ({ browser, context, page }) => {
|
|
|
|
const createParam = new CreateParameters(browser, context);
|
2023-07-31 22:24:25 +08:00
|
|
|
await createParam.initModPage(page, true, { createParameter: c.allowModsToEjectCameras });
|
2023-06-22 20:21:10 +08:00
|
|
|
await createParam.initUserPage(true, context);
|
|
|
|
await createParam.allowModsToEjectCameras();
|
|
|
|
});
|
2023-02-22 02:28:53 +08:00
|
|
|
|
2023-06-08 21:44:03 +08:00
|
|
|
test.describe.parallel('Disabled Features @ci', () => {
|
2023-06-07 22:19:09 +08:00
|
|
|
test.describe.serial(() => {
|
|
|
|
test('Breakout rooms', async ({ browser, context, page}) => {
|
2023-06-22 20:21:10 +08:00
|
|
|
const disabledFeatures = new DisabledFeatures(browser, context);
|
2023-07-31 22:24:25 +08:00
|
|
|
await disabledFeatures.initModPage(page, true, { createParameter: c.breakoutRoomsDisabled });
|
2023-06-22 20:21:10 +08:00
|
|
|
await disabledFeatures.breakoutRooms();
|
2023-06-07 22:19:09 +08:00
|
|
|
});
|
|
|
|
test('Breakout rooms (exclude)', async ({ browser, context, page}) => {
|
2023-06-22 20:21:10 +08:00
|
|
|
const disabledFeatures = new DisabledFeatures(browser, context);
|
2023-07-31 22:24:25 +08:00
|
|
|
await disabledFeatures.initModPage(page, true, { createParameter: c.breakoutRoomsExclude });
|
2023-06-22 20:21:10 +08:00
|
|
|
await disabledFeatures.breakoutRoomsExclude();
|
2023-06-07 22:19:09 +08:00
|
|
|
});
|
|
|
|
});
|
2023-06-22 20:21:10 +08:00
|
|
|
|
2023-06-07 22:19:09 +08:00
|
|
|
test.describe.serial(() => {
|
2023-06-14 04:31:47 +08:00
|
|
|
test('Speech Recognition', async ({ browser, context, page}) => {
|
2023-06-22 20:21:10 +08:00
|
|
|
const disabledFeatures = new DisabledFeatures(browser, context);
|
2023-07-31 22:24:25 +08:00
|
|
|
await disabledFeatures.initModPage(page, false, { createParameter: c.speechRecognitionDisabled });
|
2023-06-22 20:21:10 +08:00
|
|
|
await disabledFeatures.speechRecognition();
|
2023-06-07 22:19:09 +08:00
|
|
|
});
|
2023-06-14 04:31:47 +08:00
|
|
|
test('Speech Recognition (exclude)', async ({ browser, context, page}) => {
|
2023-06-22 20:21:10 +08:00
|
|
|
const disabledFeatures = new DisabledFeatures(browser, context);
|
2023-07-31 22:24:25 +08:00
|
|
|
await disabledFeatures.initModPage(page, false, { createParameter: c.speechRecognitionExclude });
|
2023-06-22 20:21:10 +08:00
|
|
|
await disabledFeatures.speechRecognitionExclude();
|
2023-06-07 22:19:09 +08:00
|
|
|
});
|
|
|
|
});
|
2023-06-22 20:21:10 +08:00
|
|
|
|
2023-06-07 22:19:09 +08:00
|
|
|
test.describe.serial(() => {
|
2024-04-23 02:46:44 +08:00
|
|
|
// current testing code is checking the old (write) captions
|
|
|
|
// this parameter should works the same way with the automatic captions
|
|
|
|
test.fixme();
|
2023-06-07 22:19:09 +08:00
|
|
|
test('Captions', async ({ browser, context, page }) => {
|
2023-06-22 20:21:10 +08:00
|
|
|
const disabledFeatures = new DisabledFeatures(browser, context);
|
2023-07-31 22:24:25 +08:00
|
|
|
await disabledFeatures.initModPage(page, true, { createParameter: c.captionsDisabled });
|
2023-06-22 20:21:10 +08:00
|
|
|
await disabledFeatures.captions();
|
2023-06-07 22:19:09 +08:00
|
|
|
});
|
|
|
|
test('Captions (exclude)', async ({ browser, context, page }) => {
|
2023-06-22 20:21:10 +08:00
|
|
|
const disabledFeatures = new DisabledFeatures(browser, context);
|
2023-07-31 22:24:25 +08:00
|
|
|
await disabledFeatures.initModPage(page, true, { createParameter: c.captionsExclude });
|
2023-06-22 20:21:10 +08:00
|
|
|
await disabledFeatures.captionsExclude();
|
2023-06-07 22:19:09 +08:00
|
|
|
});
|
|
|
|
});
|
2023-06-22 20:21:10 +08:00
|
|
|
|
2023-06-07 22:19:09 +08:00
|
|
|
test.describe.serial(() => {
|
|
|
|
test('Chat', async ({ browser, context, page }) => {
|
2023-06-22 20:21:10 +08:00
|
|
|
const disabledFeatures = new DisabledFeatures(browser, context);
|
2023-07-31 22:24:25 +08:00
|
|
|
await disabledFeatures.initModPage(page, true, { createParameter: c.chatDisabled });
|
2023-06-22 20:21:10 +08:00
|
|
|
await disabledFeatures.chat();
|
2023-06-07 22:19:09 +08:00
|
|
|
});
|
2023-09-26 01:40:11 +08:00
|
|
|
test('Chat (exclude)', async ({ browser, context, page }) => {
|
2023-06-22 20:21:10 +08:00
|
|
|
const disabledFeatures = new DisabledFeatures(browser, context);
|
2023-07-31 22:24:25 +08:00
|
|
|
await disabledFeatures.initModPage(page, true, { createParameter: c.chatExclude });
|
2023-06-22 20:21:10 +08:00
|
|
|
await disabledFeatures.chatExclude();
|
2023-06-07 22:19:09 +08:00
|
|
|
});
|
|
|
|
});
|
2023-06-22 20:21:10 +08:00
|
|
|
|
2023-06-07 22:19:09 +08:00
|
|
|
test.describe.serial(() => {
|
|
|
|
test('External Videos', async ({ browser, context, page }) => {
|
2023-06-22 20:21:10 +08:00
|
|
|
const disabledFeatures = new DisabledFeatures(browser, context);
|
2023-07-31 22:24:25 +08:00
|
|
|
await disabledFeatures.initModPage(page, true, { createParameter: c.externalVideosDisabled });
|
2023-06-22 20:21:10 +08:00
|
|
|
await disabledFeatures.externalVideos();
|
2023-06-07 22:19:09 +08:00
|
|
|
});
|
|
|
|
test('External Videos (exclude)', async ({ browser, context, page }) => {
|
2023-06-22 20:21:10 +08:00
|
|
|
const disabledFeatures = new DisabledFeatures(browser, context);
|
2023-07-31 22:24:25 +08:00
|
|
|
await disabledFeatures.initModPage(page, true, { createParameter: c.externalVideosExclude });
|
2023-06-22 20:21:10 +08:00
|
|
|
await disabledFeatures.externalVideosExclude();
|
2023-06-07 22:19:09 +08:00
|
|
|
});
|
|
|
|
});
|
2023-06-22 20:21:10 +08:00
|
|
|
|
2023-06-07 22:19:09 +08:00
|
|
|
test.describe.serial(() => {
|
|
|
|
test('Layouts', async ({ browser, context, page }) => {
|
2023-06-22 20:21:10 +08:00
|
|
|
const disabledFeatures = new DisabledFeatures(browser, context);
|
2023-07-31 22:24:25 +08:00
|
|
|
await disabledFeatures.initModPage(page, true, { createParameter: c.layoutsDisabled });
|
2023-06-22 20:21:10 +08:00
|
|
|
await disabledFeatures.layouts();
|
2023-06-07 22:19:09 +08:00
|
|
|
});
|
|
|
|
test('Layouts (exclude)', async ({ browser, context, page }) => {
|
2023-06-22 20:21:10 +08:00
|
|
|
const disabledFeatures = new DisabledFeatures(browser, context);
|
2023-07-31 22:24:25 +08:00
|
|
|
await disabledFeatures.initModPage(page, true, { createParameter: c.layoutsExclude });
|
2023-06-22 20:21:10 +08:00
|
|
|
await disabledFeatures.layoutsExclude();
|
2023-06-07 22:19:09 +08:00
|
|
|
});
|
|
|
|
});
|
2023-06-22 20:21:10 +08:00
|
|
|
|
2023-06-07 22:19:09 +08:00
|
|
|
test.describe.serial(() => {
|
|
|
|
test('Learning Dashboard', async ({ browser, context, page }) => {
|
2023-06-22 20:21:10 +08:00
|
|
|
const disabledFeatures = new DisabledFeatures(browser, context);
|
2023-07-31 22:24:25 +08:00
|
|
|
await disabledFeatures.initModPage(page, true, { createParameter: c.learningDashboardDisabled });
|
2023-06-22 20:21:10 +08:00
|
|
|
await disabledFeatures.learningDashboard();
|
2023-06-07 22:19:09 +08:00
|
|
|
});
|
|
|
|
test('Learning Dashboard (exclude)', async ({ browser, context, page }) => {
|
2023-06-22 20:21:10 +08:00
|
|
|
const disabledFeatures = new DisabledFeatures(browser, context);
|
2023-07-31 22:24:25 +08:00
|
|
|
await disabledFeatures.initModPage(page, true, { createParameter: c.learningDashboardExclude });
|
2023-06-22 20:21:10 +08:00
|
|
|
await disabledFeatures.learningDashboardExclude();
|
2023-06-07 22:19:09 +08:00
|
|
|
});
|
|
|
|
});
|
2023-06-22 20:21:10 +08:00
|
|
|
|
2023-06-07 22:19:09 +08:00
|
|
|
test.describe.serial(() => {
|
|
|
|
test('Polls', async ({ browser, context, page }) => {
|
2023-06-22 20:21:10 +08:00
|
|
|
const disabledFeatures = new DisabledFeatures(browser, context);
|
2023-07-31 22:24:25 +08:00
|
|
|
await disabledFeatures.initModPage(page, true, { createParameter: c.pollsDisabled });
|
2023-06-22 20:21:10 +08:00
|
|
|
await disabledFeatures.polls();
|
2023-06-07 22:19:09 +08:00
|
|
|
});
|
|
|
|
test('Polls (exclude)', async ({ browser, context, page }) => {
|
2023-06-22 20:21:10 +08:00
|
|
|
const disabledFeatures = new DisabledFeatures(browser, context);
|
2023-07-31 22:24:25 +08:00
|
|
|
await disabledFeatures.initModPage(page, true, { createParameter: c.pollsExclude });
|
2023-06-22 20:21:10 +08:00
|
|
|
await disabledFeatures.pollsExclude();
|
2023-06-07 22:19:09 +08:00
|
|
|
});
|
|
|
|
});
|
2023-06-22 20:21:10 +08:00
|
|
|
|
2023-06-07 22:19:09 +08:00
|
|
|
test.describe.serial(() => {
|
|
|
|
test('Screenshare', async ({ browser, context, page }) => {
|
2023-06-22 20:21:10 +08:00
|
|
|
const disabledFeatures = new DisabledFeatures(browser, context);
|
2023-07-31 22:24:25 +08:00
|
|
|
await disabledFeatures.initModPage(page, true, { createParameter: c.screenshareDisabled });
|
2023-06-22 20:21:10 +08:00
|
|
|
await disabledFeatures.screenshare();
|
2023-06-07 22:19:09 +08:00
|
|
|
});
|
|
|
|
test('Screenshare (exclude)', async ({ browser, context, page }) => {
|
2023-06-22 20:21:10 +08:00
|
|
|
const disabledFeatures = new DisabledFeatures(browser, context);
|
2023-07-31 22:24:25 +08:00
|
|
|
await disabledFeatures.initModPage(page, true, { createParameter: c.screenshareExclude });
|
2023-06-22 20:21:10 +08:00
|
|
|
await disabledFeatures.screenshareExclude();
|
2023-06-07 22:19:09 +08:00
|
|
|
});
|
|
|
|
});
|
2023-06-22 20:21:10 +08:00
|
|
|
|
2023-06-07 22:19:09 +08:00
|
|
|
test.describe.serial(() => {
|
|
|
|
test('Shared Notes', async ({ browser, context, page }) => {
|
2023-06-22 20:21:10 +08:00
|
|
|
const disabledFeatures = new DisabledFeatures(browser, context);
|
2023-07-31 22:24:25 +08:00
|
|
|
await disabledFeatures.initModPage(page, true, { createParameter: c.sharedNotesDisabled });
|
2023-06-22 20:21:10 +08:00
|
|
|
await disabledFeatures.sharedNotes();
|
2023-06-07 22:19:09 +08:00
|
|
|
});
|
|
|
|
test('Shared Notes (exclude)', async ({ browser, context, page }) => {
|
2023-06-22 20:21:10 +08:00
|
|
|
const disabledFeatures = new DisabledFeatures(browser, context);
|
2023-07-31 22:24:25 +08:00
|
|
|
await disabledFeatures.initModPage(page, true, { createParameter: c.sharedNotesExclude });
|
2023-06-22 20:21:10 +08:00
|
|
|
await disabledFeatures.sharedNotesExclude();
|
2023-06-07 22:19:09 +08:00
|
|
|
});
|
|
|
|
});
|
2023-06-22 20:21:10 +08:00
|
|
|
|
2023-06-07 22:19:09 +08:00
|
|
|
test.describe.serial(() => {
|
|
|
|
test('Virtual Background', async ({ browser, context, page }) => {
|
2023-06-22 20:21:10 +08:00
|
|
|
const disabledFeatures = new DisabledFeatures(browser, context);
|
2023-07-31 22:24:25 +08:00
|
|
|
await disabledFeatures.initModPage(page, true, { createParameter: c.virtualBackgroundsDisabled });
|
2023-06-22 20:21:10 +08:00
|
|
|
await disabledFeatures.virtualBackgrounds();
|
2023-06-07 22:19:09 +08:00
|
|
|
});
|
|
|
|
test('Virtual Background (exclude)', async ({ browser, context, page }) => {
|
2023-06-22 20:21:10 +08:00
|
|
|
const disabledFeatures = new DisabledFeatures(browser, context);
|
2023-07-31 22:24:25 +08:00
|
|
|
await disabledFeatures.initModPage(page, true, { createParameter: c.virtualBackgroundsExclude });
|
2023-06-22 20:21:10 +08:00
|
|
|
await disabledFeatures.virtualBackgroundsExclude();
|
2023-06-07 22:19:09 +08:00
|
|
|
});
|
|
|
|
});
|
2023-06-22 20:21:10 +08:00
|
|
|
|
2023-06-07 22:19:09 +08:00
|
|
|
test.describe.serial(() => {
|
|
|
|
test('Download Presentation With Annotations', async ({ browser, context, page }) => {
|
2023-06-22 20:21:10 +08:00
|
|
|
const disabledFeatures = new DisabledFeatures(browser, context);
|
2023-07-31 22:24:25 +08:00
|
|
|
await disabledFeatures.initModPage(page, true, { createParameter: c.downloadPresentationWithAnnotationsDisabled });
|
2023-06-22 20:21:10 +08:00
|
|
|
await disabledFeatures.downloadPresentationWithAnnotations();
|
2023-06-07 22:19:09 +08:00
|
|
|
});
|
|
|
|
test('Download Presentation With Annotations (exclude)', async ({ browser, context, page }) => {
|
2023-06-22 20:21:10 +08:00
|
|
|
const disabledFeatures = new DisabledFeatures(browser, context);
|
2023-07-31 22:24:25 +08:00
|
|
|
await disabledFeatures.initModPage(page, true, { createParameter: c.downloadPresentationWithAnnotationsExclude });
|
2023-06-22 20:21:10 +08:00
|
|
|
await disabledFeatures.downloadPresentationWithAnnotationsExclude();
|
2023-06-07 22:19:09 +08:00
|
|
|
});
|
|
|
|
});
|
2023-08-05 03:47:23 +08:00
|
|
|
|
2023-06-07 22:19:09 +08:00
|
|
|
test.describe.serial(() => {
|
|
|
|
test('Import Presentation With Annotations From Breakout Rooms', async ({ browser, context, page }) => {
|
2023-06-22 20:21:10 +08:00
|
|
|
const disabledFeatures = new DisabledFeatures(browser, context);
|
2023-07-31 22:24:25 +08:00
|
|
|
await disabledFeatures.initModPage(page, true, { createParameter: c.importPresentationWithAnnotationsFromBreakoutRoomsDisabled });
|
2023-06-22 20:21:10 +08:00
|
|
|
await disabledFeatures.importPresentationWithAnnotationsFromBreakoutRooms();
|
2023-06-07 22:19:09 +08:00
|
|
|
});
|
|
|
|
test('Import Presentation With Annotations From Breakout Rooms (exclude)', async ({ browser, context, page }) => {
|
2023-06-22 20:21:10 +08:00
|
|
|
const disabledFeatures = new DisabledFeatures(browser, context);
|
2023-07-31 22:24:25 +08:00
|
|
|
await disabledFeatures.initModPage(page, true, { createParameter: c.importPresentationWithAnnotationsFromBreakoutRoomsExclude });
|
2023-06-22 20:21:10 +08:00
|
|
|
await disabledFeatures.importPresentationWithAnnotationsFromBreakoutRoomsExclude();
|
2023-06-07 22:19:09 +08:00
|
|
|
});
|
|
|
|
});
|
2023-06-22 20:21:10 +08:00
|
|
|
|
2023-06-07 22:19:09 +08:00
|
|
|
test.describe.serial(() => {
|
|
|
|
test('Import Shared Notes From Breakout Rooms', async ({ browser, context, page }) => {
|
2023-06-22 20:21:10 +08:00
|
|
|
const disabledFeatures = new DisabledFeatures(browser, context);
|
2023-07-31 22:24:25 +08:00
|
|
|
await disabledFeatures.initModPage(page, true, { createParameter: c.importSharedNotesFromBreakoutRoomsDisabled });
|
2023-06-22 20:21:10 +08:00
|
|
|
await disabledFeatures.importSharedNotesFromBreakoutRooms();
|
2023-06-07 22:19:09 +08:00
|
|
|
});
|
|
|
|
test('Import Shared Notes From Breakout Rooms (exclude)', async ({ browser, context, page }) => {
|
2023-06-22 20:21:10 +08:00
|
|
|
const disabledFeatures = new DisabledFeatures(browser, context);
|
2023-07-31 22:24:25 +08:00
|
|
|
await disabledFeatures.initModPage(page, true, { createParameter: c.importSharedNotesFromBreakoutRoomsExclude });
|
2023-06-22 20:21:10 +08:00
|
|
|
await disabledFeatures.importSharedNotesFromBreakoutRoomsExclude();
|
2023-06-07 22:19:09 +08:00
|
|
|
});
|
|
|
|
});
|
2023-06-22 20:21:10 +08:00
|
|
|
|
2023-06-07 22:19:09 +08:00
|
|
|
test.describe.serial(() => {
|
|
|
|
test('Presentation', async ({ browser, context, page }) => {
|
2023-06-22 20:21:10 +08:00
|
|
|
const disabledFeatures = new DisabledFeatures(browser, context);
|
2023-07-31 22:24:25 +08:00
|
|
|
await disabledFeatures.initModPage(page, true, { createParameter: c.presentationDisabled });
|
2023-06-22 20:21:10 +08:00
|
|
|
await disabledFeatures.presentation();
|
2023-06-07 22:19:09 +08:00
|
|
|
});
|
|
|
|
test('Presentation (exclude)', async ({ browser, context, page }) => {
|
2023-06-22 20:21:10 +08:00
|
|
|
const disabledFeatures = new DisabledFeatures(browser, context);
|
2023-07-31 22:24:25 +08:00
|
|
|
await disabledFeatures.initModPage(page, true, { createParameter: c.presentationExclude });
|
2023-06-22 20:21:10 +08:00
|
|
|
await disabledFeatures.presentationExclude();
|
2023-06-07 22:19:09 +08:00
|
|
|
});
|
|
|
|
});
|
2023-06-22 20:21:10 +08:00
|
|
|
|
2023-06-07 22:19:09 +08:00
|
|
|
test.describe.serial(() => {
|
|
|
|
test('Custom Virtual Background', async ({ browser, context, page }) => {
|
2023-06-22 20:21:10 +08:00
|
|
|
const disabledFeatures = new DisabledFeatures(browser, context);
|
2023-07-31 22:24:25 +08:00
|
|
|
await disabledFeatures.initModPage(page, true, { createParameter: c.customVirtualBackgroundDisabled });
|
2023-06-22 20:21:10 +08:00
|
|
|
await disabledFeatures.customVirtualBackground();
|
2023-06-07 22:19:09 +08:00
|
|
|
});
|
|
|
|
test('Custom Virtual Background (exclude)', async ({ browser, context, page }) => {
|
2023-06-22 20:21:10 +08:00
|
|
|
const disabledFeatures = new DisabledFeatures(browser, context);
|
2023-07-31 22:24:25 +08:00
|
|
|
await disabledFeatures.initModPage(page, true, { createParameter: c.customVirtualBackgroundExclude });
|
2023-06-22 20:21:10 +08:00
|
|
|
await disabledFeatures.customVirtualBackgroundExclude();
|
2023-06-07 22:19:09 +08:00
|
|
|
});
|
2023-04-14 01:27:32 +08:00
|
|
|
});
|
2023-07-13 06:53:12 +08:00
|
|
|
|
|
|
|
test.describe.serial(() => {
|
|
|
|
test('Slide Snapshot', async ({ browser, context, page }) => {
|
2023-07-31 22:24:25 +08:00
|
|
|
const disabledFeatures = new DisabledFeatures(browser, context);
|
|
|
|
await disabledFeatures.initModPage(page, true, { createParameter: c.slideSnapshotDisabled });
|
|
|
|
await disabledFeatures.slideSnapshot();
|
2023-07-13 06:53:12 +08:00
|
|
|
});
|
|
|
|
test('Slide Snapshot (exclude)', async ({ browser, context, page }) => {
|
2023-07-31 22:24:25 +08:00
|
|
|
const disabledFeatures = new DisabledFeatures(browser, context);
|
|
|
|
await disabledFeatures.initModPage(page, true, { createParameter: c.slideSnapshotExclude });
|
|
|
|
await disabledFeatures.slideSnapshotExclude();
|
2023-07-13 06:53:12 +08:00
|
|
|
});
|
|
|
|
});
|
|
|
|
|
|
|
|
test.describe.serial(() => {
|
|
|
|
test('Camera As Content', async ({ browser, context, page }) => {
|
2023-07-31 22:24:25 +08:00
|
|
|
const disabledFeatures = new DisabledFeatures(browser, context);
|
|
|
|
await disabledFeatures.initModPage(page, true, { createParameter: c.cameraAsContent });
|
|
|
|
await disabledFeatures.cameraAsContent();
|
2023-07-13 06:53:12 +08:00
|
|
|
});
|
|
|
|
test('Camera As Content (exclude)', async ({ browser, context, page }) => {
|
2023-07-31 22:24:25 +08:00
|
|
|
const disabledFeatures = new DisabledFeatures(browser, context);
|
|
|
|
await disabledFeatures.initModPage(page, true, { createParameter: c.cameraAsContentExclude });
|
|
|
|
await disabledFeatures.cameraAsContentExclude();
|
2023-07-13 06:53:12 +08:00
|
|
|
});
|
|
|
|
});
|
2023-02-22 02:28:53 +08:00
|
|
|
});
|
2022-01-20 21:03:18 +08:00
|
|
|
});
|
2023-07-01 04:16:22 +08:00
|
|
|
|
|
|
|
test.describe.parallel('Custom Parameters', () => {
|
|
|
|
test('Show Public Chat On Login', async ({ browser, context, page }) => {
|
|
|
|
const customParam = new CustomParameters(browser, context);
|
2023-07-31 22:24:25 +08:00
|
|
|
await customParam.initModPage(page, true, { joinParameter: c.showPublicChatOnLogin });
|
2023-07-01 04:16:22 +08:00
|
|
|
await customParam.showPublicChatOnLogin();
|
|
|
|
});
|
|
|
|
|
|
|
|
test('Show Participants on Login', async ({ browser, context, page }) => {
|
|
|
|
const customParam = new CustomParameters(browser, context);
|
2023-07-31 22:24:25 +08:00
|
|
|
await customParam.initModPage(page, true, { joinParameter: c.showParticipantsOnLogin });
|
2023-07-01 04:16:22 +08:00
|
|
|
await customParam.showParticipantsOnLogin();
|
|
|
|
});
|
|
|
|
|
|
|
|
test('Client title', async ({ browser, context, page }) => {
|
|
|
|
const customParam = new CustomParameters(browser, context);
|
2023-07-31 22:24:25 +08:00
|
|
|
await customParam.initModPage(page, true, { joinParameter: c.clientTitle });
|
2023-07-01 04:16:22 +08:00
|
|
|
await customParam.clientTitle();
|
|
|
|
});
|
|
|
|
|
|
|
|
test('Ask For Feedback On Logout', async ({ browser, context, page }) => {
|
|
|
|
const customParam = new CustomParameters(browser, context);
|
2023-07-31 22:24:25 +08:00
|
|
|
await customParam.initModPage(page, true, { joinParameter: c.askForFeedbackOnLogout });
|
2023-07-01 04:16:22 +08:00
|
|
|
await customParam.askForFeedbackOnLogout();
|
|
|
|
});
|
|
|
|
|
|
|
|
test('Display Branding Area', async ({ browser, context, page }) => {
|
|
|
|
const customParam = new CustomParameters(browser, context);
|
2023-08-23 04:25:50 +08:00
|
|
|
await customParam.initModPage(page, true, { createParameter: `${c.displayBrandingArea}&${encodeCustomParams(c.logo)}` });
|
2023-07-01 04:16:22 +08:00
|
|
|
await customParam.displayBrandingArea();
|
|
|
|
});
|
|
|
|
|
2024-01-20 00:42:01 +08:00
|
|
|
test('Shortcuts @ci', async ({ browser, context, page }) => {
|
2023-07-01 04:16:22 +08:00
|
|
|
const customParam = new CustomParameters(browser, context);
|
|
|
|
const shortcutParam = getAllShortcutParams();
|
2023-07-31 22:24:25 +08:00
|
|
|
await customParam.initModPage(page, true, { joinParameter: encodeCustomParams(shortcutParam) });
|
2023-07-01 04:16:22 +08:00
|
|
|
await customParam.initUserPage(true, context, { useModMeetingId: true });
|
|
|
|
await customParam.shortcuts();
|
|
|
|
});
|
|
|
|
|
2023-09-26 01:40:11 +08:00
|
|
|
test('Custom Styles: CSS code @ci', async ({ browser, context, page }) => {
|
2023-07-01 04:16:22 +08:00
|
|
|
const customParam = new CustomParameters(browser, context);
|
2023-07-31 22:24:25 +08:00
|
|
|
await customParam.initModPage(page, true, { joinParameter: encodeCustomParams(c.customStyle) });
|
2023-07-01 04:16:22 +08:00
|
|
|
await customParam.customStyle();
|
|
|
|
});
|
|
|
|
|
|
|
|
test('Custom Styles: URL', async ({ browser, context, page }) => {
|
|
|
|
test.fixme();
|
|
|
|
const customParam = new CustomParameters(browser, context);
|
2023-07-31 22:24:25 +08:00
|
|
|
await customParam.initModPage(page, true, { joinParameter: encodeCustomParams(c.customStyleUrl) });
|
2023-07-01 04:16:22 +08:00
|
|
|
await customParam.customStyle();
|
|
|
|
});
|
|
|
|
|
|
|
|
test('Auto Swap Layout', async ({ browser, context, page }) => {
|
|
|
|
const customParam = new CustomParameters(browser, context);
|
2023-07-31 22:24:25 +08:00
|
|
|
await customParam.initModPage(page, true, { joinParameter: c.autoSwapLayout });
|
2023-07-01 04:16:22 +08:00
|
|
|
await customParam.autoSwapLayout();
|
|
|
|
});
|
|
|
|
|
|
|
|
test('Hide Actions Bar @ci', async ({ browser, context, page }) => {
|
|
|
|
const customParam = new CustomParameters(browser, context);
|
2023-07-31 22:24:25 +08:00
|
|
|
await customParam.initModPage(page, true, { joinParameter: c.hideActionsBar });
|
2023-07-01 04:16:22 +08:00
|
|
|
await customParam.hideActionsBarTest();
|
|
|
|
});
|
|
|
|
|
|
|
|
test('Override Default Locale', async ({ browser, context, page }) => {
|
|
|
|
const customParam = new CustomParameters(browser, context);
|
2023-07-31 22:24:25 +08:00
|
|
|
await customParam.initModPage(page, true, { joinParameter: c.overrideDefaultLocale });
|
2023-07-01 04:16:22 +08:00
|
|
|
await customParam.overrideDefaultLocaleTest();
|
|
|
|
});
|
|
|
|
|
|
|
|
test('Hide NavBar @ci', async ({ browser, context, page }) => {
|
|
|
|
const customParam = new CustomParameters(browser, context);
|
2023-07-31 22:24:25 +08:00
|
|
|
await customParam.initModPage(page, true, { joinParameter: c.hideNavBar });
|
2023-07-01 04:16:22 +08:00
|
|
|
await customParam.hideNavBarTest();
|
|
|
|
});
|
|
|
|
|
|
|
|
test('Preferred Camera Profile', async ({ browser, context, page }) => {
|
|
|
|
const customParam = new CustomParameters(browser, context);
|
2023-07-31 22:24:25 +08:00
|
|
|
await customParam.initModPage(page, true, { joinParameter: c.preferredCameraProfile });
|
2023-07-01 04:16:22 +08:00
|
|
|
await customParam.preferredCameraProfileTest();
|
|
|
|
});
|
|
|
|
|
|
|
|
test.describe.parallel('Audio', () => {
|
2024-01-20 00:42:01 +08:00
|
|
|
// see https://github.com/bigbluebutton/bigbluebutton/issues/19427
|
2024-02-02 19:37:28 +08:00
|
|
|
test('Auto join @ci', async ({ browser, context, page }) => {
|
2023-07-01 04:16:22 +08:00
|
|
|
const customParam = new CustomParameters(browser, context);
|
2023-07-31 22:24:25 +08:00
|
|
|
await customParam.initModPage(page, false, { joinParameter: c.autoJoin });
|
2023-07-01 04:16:22 +08:00
|
|
|
await customParam.autoJoin();
|
|
|
|
});
|
|
|
|
|
|
|
|
test('Disable Listen Only Mode @ci', async ({ browser, context, page }) => {
|
|
|
|
const customParam = new CustomParameters(browser, context);
|
2023-07-31 22:24:25 +08:00
|
|
|
await customParam.initModPage(page, false, { joinParameter: c.listenOnlyMode });
|
2023-07-01 04:16:22 +08:00
|
|
|
await customParam.listenOnlyMode();
|
|
|
|
});
|
|
|
|
|
2024-01-20 00:42:01 +08:00
|
|
|
// see https://github.com/bigbluebutton/bigbluebutton/issues/19428
|
2024-02-02 19:37:28 +08:00
|
|
|
test('Force Listen Only @ci', async ({ browser, context, page }) => {
|
2023-07-01 04:16:22 +08:00
|
|
|
const customParam = new CustomParameters(browser, context);
|
2023-07-31 22:24:25 +08:00
|
|
|
await customParam.initUserPage(false, context, { useModMeetingId: false, joinParameter: c.forceListenOnly });
|
2023-07-01 04:16:22 +08:00
|
|
|
await customParam.forceListenOnly(page);
|
|
|
|
});
|
|
|
|
|
|
|
|
test('Skip audio check', async ({ browser, context, page }) => {
|
|
|
|
const customParam = new CustomParameters(browser, context);
|
2023-07-31 22:24:25 +08:00
|
|
|
await customParam.initModPage(page, false, { joinParameter: c.skipCheck });
|
2023-07-01 04:16:22 +08:00
|
|
|
await customParam.skipCheck();
|
|
|
|
});
|
|
|
|
|
|
|
|
test('Skip audio check on first join', async ({ browser, context, page }) => {
|
|
|
|
const customParam = new CustomParameters(browser, context);
|
2024-03-21 21:22:02 +08:00
|
|
|
await customParam.initModPage(page, false, { joinParameter: `${c.skipCheckOnFirstJoin}&${hidePresentationToast}` });
|
2023-07-01 04:16:22 +08:00
|
|
|
await customParam.skipCheckOnFirstJoin();
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
|
|
|
test.describe.parallel('Presentation', () => {
|
2024-01-20 00:42:01 +08:00
|
|
|
// see https://github.com/bigbluebutton/bigbluebutton/issues/19456
|
2024-02-02 19:37:28 +08:00
|
|
|
test('Hide Presentation on join @ci', async ({ browser, context, page }) => {
|
2023-07-01 04:16:22 +08:00
|
|
|
const customParam = new CustomParameters(browser, context);
|
2024-01-20 00:42:01 +08:00
|
|
|
await customParam.initModPage(page, true, { joinParameter: c.hidePresentationOnJoin });
|
|
|
|
await customParam.initUserPage(true, context, { useModMeetingId: true, joinParameter: c.hidePresentationOnJoin });
|
2023-07-01 04:16:22 +08:00
|
|
|
await customParam.hidePresentationOnJoin();
|
|
|
|
});
|
|
|
|
|
2023-12-06 02:15:25 +08:00
|
|
|
test('Force Restore Presentation On New Events @ci @flaky', async ({ browser, context, page }) => {
|
2023-07-01 04:16:22 +08:00
|
|
|
const customParam = new CustomParameters(browser, context);
|
2023-07-31 22:24:25 +08:00
|
|
|
const joinParameter = c.forceRestorePresentationOnNewEvents;
|
|
|
|
await customParam.initModPage(page, true, { joinParameter });
|
|
|
|
await customParam.forceRestorePresentationOnNewEvents(joinParameter);
|
2023-07-01 04:16:22 +08:00
|
|
|
});
|
|
|
|
|
|
|
|
test('Force Restore Presentation On New Poll Result', async ({ browser, context, page }) => {
|
|
|
|
const customParam = new CustomParameters(browser, context);
|
2024-03-21 21:22:02 +08:00
|
|
|
const joinParameter = `${c.forceRestorePresentationOnNewEvents}&${hidePresentationToast}`;
|
|
|
|
await customParam.initModPage(page, true, { joinParameter });
|
2023-07-31 22:24:25 +08:00
|
|
|
await customParam.forceRestorePresentationOnNewPollResult(joinParameter);
|
2023-07-01 04:16:22 +08:00
|
|
|
});
|
|
|
|
});
|
|
|
|
|
|
|
|
test.describe.parallel('Webcam', () => {
|
|
|
|
test('Disable Webcam Sharing @ci', async ({ browser, context, page }) => {
|
|
|
|
const customParam = new CustomParameters(browser, context);
|
2023-07-31 22:24:25 +08:00
|
|
|
await customParam.initModPage(page, true, { joinParameter: c.enableVideo });
|
2023-07-01 04:16:22 +08:00
|
|
|
await customParam.enableVideo();
|
|
|
|
});
|
|
|
|
|
|
|
|
test('Skip Video Preview', async ({ browser, context, page }) => {
|
|
|
|
const customParam = new CustomParameters(browser, context);
|
2023-07-31 22:24:25 +08:00
|
|
|
await customParam.initModPage(page, true, { joinParameter: c.skipVideoPreview });
|
2023-07-01 04:16:22 +08:00
|
|
|
await customParam.skipVideoPreview();
|
|
|
|
});
|
|
|
|
|
|
|
|
test('Skip Video Preview on First Join @ci', async ({ browser, context, page }) => {
|
|
|
|
const customParam = new CustomParameters(browser, context);
|
2023-07-31 22:24:25 +08:00
|
|
|
await customParam.initModPage(page, true, { joinParameter: c.skipVideoPreviewOnFirstJoin });
|
2023-07-01 04:16:22 +08:00
|
|
|
await customParam.skipVideoPreviewOnFirstJoin();
|
|
|
|
});
|
|
|
|
|
|
|
|
test('Mirror Own Webcam @ci', async ({ browser, context, page }) => {
|
|
|
|
const customParam = new CustomParameters(browser, context);
|
2023-07-31 22:24:25 +08:00
|
|
|
await customParam.initModPage(page, true, { joinParameter: c.mirrorOwnWebcam });
|
2023-07-01 04:16:22 +08:00
|
|
|
await customParam.mirrorOwnWebcam();
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
|
|
|
test.describe.parallel('Whiteboard', () => {
|
|
|
|
test.skip();
|
|
|
|
test('Multi Users Pen Only', async ({ browser, context, page }) => {
|
|
|
|
const customParam = new CustomParameters(browser, context);
|
2023-07-31 22:24:25 +08:00
|
|
|
await customParam.initModPage(page, true, { joinParameter: c.multiUserPenOnly });
|
2023-08-23 04:25:50 +08:00
|
|
|
await customParam.initUserPage(true, context, { useModMeetingId: true, createParameter: c.multiUserPenOnly });
|
2023-07-01 04:16:22 +08:00
|
|
|
await customParam.multiUserPenOnly();
|
|
|
|
});
|
|
|
|
|
|
|
|
test('Presenter Tools', async ({ browser, context, page }) => {
|
|
|
|
const customParam = new CustomParameters(browser, context);
|
2023-07-31 22:24:25 +08:00
|
|
|
await customParam.initModPage(page, true, { joinParameter: encodeCustomParams(c.presenterTools) });
|
2023-07-01 04:16:22 +08:00
|
|
|
await customParam.presenterTools();
|
|
|
|
});
|
|
|
|
|
|
|
|
test('Multi Users Tools', async ({ browser, context, page }) => {
|
|
|
|
const customParam = new CustomParameters(browser, context);
|
2023-07-31 22:24:25 +08:00
|
|
|
await customParam.initModPage(page, true, { joinParameter: encodeCustomParams(c.multiUserTools) });
|
|
|
|
await customParam.initUserPage(true, context, { useModMeetingId: true, joinParameter: encodeCustomParams(c.multiUserTools) });
|
2023-07-01 04:16:22 +08:00
|
|
|
await customParam.multiUserTools();
|
|
|
|
});
|
|
|
|
});
|
|
|
|
});
|