content/hifi-content/robin/robinStuff/computerForSeattle/automations/first_test.js
2022-02-14 02:04:11 +01:00

181 lines
No EOL
4.8 KiB
JavaScript

const { Builder, By, Key, until, WebDriverWait } = require('selenium-webdriver');
const chrome = require('selenium-webdriver/chrome');
const firefox = require('selenium-webdriver/firefox');
var invalid = [];
var tests = ["XaosPrincess",
"Piper.Peppercorn",
"FaloniaB",
"Adam_Lorimer",
"Tomo",
"DeepRifter",
"ChrisLongVR",
"JimJ",
"cccc9999",
"nozaj@hotmail.com",
"Vishnu",
"DrFran",
"Starflower",
"fluxintime",
"alexqgb@gmail.com",
"PublicVRLab",
"Lpasca",
"troach06",
"Nescolet",
"PK",
"Snitz",
"artrevin",
"Kim_Flintoff",
"toshihoo",
"lizabender",
"iftf02",
"iftf03",
"Johnny Magic",
"wkarshat",
"Notyet",
"Ultranique",
"Yoofaloof",
"dustywizard",
"rapomax",
"madders",
"nara_malone",
"RoverVR",
"Java2606",
"guillefix",
"ThePixel8or",
"Osuvox",
"Andrew23",
"Xel-ha",
"jasonofthestorm",
"Tmoney",
"PyxJasta",
"MrsSpelling",
"marcorsotti",
"Madman"];
var username = "robin@highfidelity.io";
var pswd = "Stronghold0";
var INVALID_ERROR_TEXT = "cannot be found, user does not exist";
var IS_ALREADY_A_MEMBER_TEXT = "is already a member.";
var driver = new Builder()
.forBrowser('firefox')
.build(); // (webdriver.Capabilities.firefox()).build();
(async function go() {
try {
await driver.get('https://highfidelity.com/user/groups/Face2Face');
var loginUNPromise = driver.findElement(By.id('user_login'))
var loginPWPromise = driver.findElement(By.id('user_password'));
Promise.all([loginUNPromise, loginPWPromise])
.then(([login_un, login_pw]) => {
login_un.sendKeys(username);
login_pw.sendKeys(pswd);
return driver.findElement(By.name('commit'));
})
.then(enterButton => {
return enterButton.click();
})
.then(() => {
return driver.findElement(By.className("panel panel-default members")); // By.id('new_group_membership'));
})
.then(elem => {
console.log(elem);
var submitForm = elem.findElement(By.name('commit'));
var enterUsernamesForm = elem.findElement(By.id('group_membership_user'));
var errorBox = elem.findElement(By.className("error alert alert-danger"));
return Promise.all([enterUsernamesForm, submitForm, errorBox]);
})
.then(async function ([enterUN, submitButton, errorBox]) {
for (var i = 0; i < tests.length; i++) {
await enterName(tests[i], enterUN, submitButton, errorBox);
}
})
.then(() => {
console.log("Invalid username list:");
console.log(invalid);
})
.catch(err => console.error(err));
} catch (err) {
console.log(err);
console.log("Current invalid username list:");
console.log(invalid);
}
})();
function timeout(ms) {
return new Promise(resolve => setTimeout(resolve, ms));
}
async function sleep(fn, ...args) {
await timeout(3000);
return fn(...args);
}
async function enterName(name, enterUN, submitButton, errorBox) {
await enterUN.sendKeys(name)
.then(async () => {
await driver.sleep(1000);
return null;
})
.then(() => {
return submitButton.click();
})
.then(async () => {
await driver.sleep(1000);
return null;
})
.then(async () => {
// document.getElementsByClassName('error alert alert-danger')[0].innerText;")
return await errorBox.isDisplayed()
})
.then(async bool => {
if (bool === true) {
var text = await errorBox.getText();
var errorText = text.toLowerCase();
var invalidText = INVALID_ERROR_TEXT.toLowerCase();
var usernameText = name.toLowerCase();
// currently only checks for invalid username
if (errorText.indexOf(invalidText) > -1 && errorText.indexOf(usernameText) === 0) {
console.log("invalid user!!");
invalid.push(name);
}
}
})
};
function checkTitle() {
browser.getTitle()
.then(function (title) {
console.log(title);
})
.catch(function (err) {
console.log(err);
});
}
function handleFailure(err) {
console.error("Error is: ", err);
quitDriver();
}
function quitDriver() {
browser.quit();
}
// https://highfidelity.com/user/groups/Face2Face
// id = "group_membership_user"
// group_membership_rank
// submit // name=commit value "Add Member"