2020-06-09 03:40:28 +08:00
|
|
|
const path = require('path');
|
|
|
|
|
2020-05-13 21:53:14 +08:00
|
|
|
async function autoJoinTest(test) {
|
2020-05-22 00:45:52 +08:00
|
|
|
const resp = await test.page.evaluate(async () => {
|
|
|
|
const rep = await document.querySelectorAll('div[aria-label="Join audio modal"]').length === 0;
|
|
|
|
return rep !== false;
|
|
|
|
});
|
2020-05-13 21:53:14 +08:00
|
|
|
return resp;
|
|
|
|
}
|
|
|
|
|
2020-05-13 23:26:30 +08:00
|
|
|
async function listenOnlyMode(test) {
|
|
|
|
try {
|
|
|
|
const resp = await test.page.evaluate(async () => {
|
|
|
|
await document.querySelectorAll('div[class^="connecting--"]')[0];
|
2020-05-15 22:49:03 +08:00
|
|
|
const audibleButton = await document.querySelectorAll('button[aria-label="Echo is audible"]').length !== 0;
|
|
|
|
return audibleButton !== false;
|
2020-05-13 23:26:30 +08:00
|
|
|
});
|
|
|
|
return resp;
|
|
|
|
} catch (e) {
|
|
|
|
console.log(e);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2020-05-14 00:54:56 +08:00
|
|
|
async function forceListenOnly(test) {
|
|
|
|
try {
|
|
|
|
const resp = await test.page.evaluate(async () => {
|
|
|
|
await document.querySelectorAll('div[class^="connecting--"]')[0];
|
2020-05-22 00:45:52 +08:00
|
|
|
if (await document.querySelectorAll('button[aria-label="Echo is audible"]').length > 0) {
|
2020-05-15 22:49:03 +08:00
|
|
|
return false;
|
|
|
|
}
|
|
|
|
const audibleNotification = await document.querySelectorAll('div[class^="toastContainer--"]')[0].innerText === 'You have joined the audio conference';
|
|
|
|
return audibleNotification !== false;
|
2020-05-14 00:54:56 +08:00
|
|
|
});
|
|
|
|
return resp;
|
|
|
|
} catch (e) {
|
|
|
|
console.log(e);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2020-05-15 22:49:03 +08:00
|
|
|
async function skipCheck(test) {
|
|
|
|
try {
|
|
|
|
await test.waitForSelector('div[class^="toastContainer--"]');
|
|
|
|
const resp1 = await test.page.evaluate(async () => await document.querySelectorAll('div[class^="toastContainer--"]').length !== 0);
|
|
|
|
await test.waitForSelector('button[aria-label="Mute"]');
|
|
|
|
const resp2 = await test.page.evaluate(async () => await document.querySelectorAll('button[aria-label="Mute"]').length !== 0);
|
2020-06-16 01:21:44 +08:00
|
|
|
return resp1 === true && resp2 === true;
|
2020-05-15 22:49:03 +08:00
|
|
|
} catch (e) {
|
|
|
|
console.log(e);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
async function countTestElements(element) {
|
|
|
|
return document.querySelectorAll(element).length !== 0;
|
|
|
|
}
|
|
|
|
|
2020-05-22 00:45:52 +08:00
|
|
|
async function getTestElement(element) {
|
|
|
|
return document.querySelectorAll(element).length === 0;
|
|
|
|
}
|
|
|
|
|
2020-06-02 02:42:56 +08:00
|
|
|
function hexToRgb(hex) {
|
|
|
|
const bigint = parseInt(hex, 16);
|
|
|
|
const r = (bigint >> 16) & 255;
|
|
|
|
const g = (bigint >> 8) & 255;
|
|
|
|
const b = bigint & 255;
|
|
|
|
return `rgb(${r}, ${g}, ${b})`;
|
|
|
|
}
|
|
|
|
|
2020-06-09 03:40:28 +08:00
|
|
|
async function zoomIn(test) {
|
|
|
|
try {
|
|
|
|
await test.page.evaluate(() => {
|
|
|
|
setInterval(() => {
|
|
|
|
document.querySelector('button[aria-label="Zoom in"]').scrollBy(0, 10);
|
|
|
|
}, 100);
|
|
|
|
});
|
|
|
|
return true;
|
|
|
|
} catch (e) {
|
|
|
|
console.log(e);
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
async function zoomOut(test) {
|
|
|
|
try {
|
|
|
|
await test.page.evaluate(() => {
|
|
|
|
setInterval(() => {
|
|
|
|
document.querySelector('button[aria-label="Zoom in"]').scrollBy(10, 0);
|
|
|
|
}, 100);
|
|
|
|
}); return true;
|
|
|
|
} catch (e) {
|
|
|
|
console.log(e);
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
async function poll(test) {
|
|
|
|
try {
|
|
|
|
await test.page.evaluate(async () => await document.querySelectorAll('button[aria-label="Actions"]')[0].click());
|
2020-06-10 03:53:01 +08:00
|
|
|
await test.waitForSelector('li[data-test="polling"]');
|
|
|
|
await test.click('li[data-test="polling"]', true);
|
2020-06-09 03:40:28 +08:00
|
|
|
await test.waitForSelector('button[aria-label="Yes / No"]');
|
|
|
|
await test.click('button[aria-label="Yes / No"]', true);
|
|
|
|
await test.waitForSelector('button[aria-label="Publish polling results"]');
|
|
|
|
await test.click('button[aria-label="Publish polling results"]', true);
|
|
|
|
return true;
|
|
|
|
} catch (e) {
|
|
|
|
console.log(e);
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
async function previousSlide(test) {
|
|
|
|
try {
|
2020-08-28 20:42:27 +08:00
|
|
|
await test.waitForSelector('button[data-test="prevSlide"]');
|
|
|
|
await test.click('button[data-test="prevSlide"]', true);
|
2020-06-09 03:40:28 +08:00
|
|
|
return true;
|
|
|
|
} catch (e) {
|
|
|
|
console.log(e);
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
async function nextSlide(test) {
|
|
|
|
try {
|
2020-08-28 20:42:27 +08:00
|
|
|
await test.waitForSelector('button[data-test="nextSlide"]');
|
|
|
|
await test.click('button[data-test="nextSlide"]', true);
|
2020-06-09 03:40:28 +08:00
|
|
|
return true;
|
|
|
|
} catch (e) {
|
|
|
|
console.log(e);
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
async function annotation(test) {
|
|
|
|
await test.waitForSelector('button[aria-label="Tools"]');
|
|
|
|
await test.click('button[aria-label="Tools"]', true);
|
|
|
|
await test.waitForSelector('button[aria-label="Pencil"]');
|
|
|
|
await test.click('button[aria-label="Pencil"]', true);
|
|
|
|
await test.click('svg[data-test="whiteboard"]', true);
|
|
|
|
const annoted = await test.page.evaluate(async () => await document.querySelectorAll('[data-test="whiteboard"] > g > g')[1].innerHTML !== '');
|
|
|
|
return annoted;
|
|
|
|
}
|
|
|
|
|
|
|
|
async function presetationUpload(test) {
|
|
|
|
try {
|
|
|
|
await test.waitForSelector('button[aria-label="Actions"]');
|
|
|
|
await test.click('button[aria-label="Actions"]', true);
|
|
|
|
await test.waitForSelector('li[data-test="uploadPresentation"]');
|
|
|
|
await test.click('li[data-test="uploadPresentation"]', true);
|
|
|
|
const elementHandle = await test.page.$('input[type=file]');
|
|
|
|
await elementHandle.uploadFile(path.join(__dirname, '../media/DifferentSizes.pdf'));
|
|
|
|
await test.click('button[aria-label="Confirm "]', true);
|
|
|
|
return true;
|
|
|
|
} catch (e) {
|
|
|
|
console.log(e);
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
exports.zoomIn = zoomIn;
|
|
|
|
exports.zoomOut = zoomOut;
|
|
|
|
exports.poll = poll;
|
|
|
|
exports.previousSlide = previousSlide;
|
|
|
|
exports.nextSlide = nextSlide;
|
|
|
|
exports.annotation = annotation;
|
|
|
|
exports.presetationUpload = presetationUpload;
|
2020-06-02 02:42:56 +08:00
|
|
|
exports.hexToRgb = hexToRgb;
|
2020-05-22 00:45:52 +08:00
|
|
|
exports.getTestElement = getTestElement;
|
2020-05-15 22:49:03 +08:00
|
|
|
exports.countTestElements = countTestElements;
|
2020-05-13 21:53:14 +08:00
|
|
|
exports.autoJoinTest = autoJoinTest;
|
2020-05-13 23:26:30 +08:00
|
|
|
exports.listenOnlyMode = listenOnlyMode;
|
2020-05-15 22:49:03 +08:00
|
|
|
exports.forceListenOnly = forceListenOnly;
|
|
|
|
exports.skipCheck = skipCheck;
|