1163 lines
28 KiB
JavaScript
1163 lines
28 KiB
JavaScript
// (c) Copyright Ascensio System SIA 2010-2024
|
|
//
|
|
// This program is a free software product.
|
|
// You can redistribute it and/or modify it under the terms
|
|
// of the GNU Affero General Public License (AGPL) version 3 as published by the Free Software
|
|
// Foundation. In accordance with Section 7(a) of the GNU AGPL its Section 15 shall be amended
|
|
// to the effect that Ascensio System SIA expressly excludes the warranty of non-infringement of
|
|
// any third-party rights.
|
|
//
|
|
// This program is distributed WITHOUT ANY WARRANTY, without even the implied warranty
|
|
// of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For details, see
|
|
// the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
|
//
|
|
// You can contact Ascensio System SIA at Lubanas st. 125a-25, Riga, Latvia, EU, LV-1021.
|
|
//
|
|
// The interactive user interfaces in modified source and object code versions of the Program must
|
|
// display Appropriate Legal Notices, as required under Section 5 of the GNU AGPL version 3.
|
|
//
|
|
// Pursuant to Section 7(b) of the License you must retain the original Product logo when
|
|
// distributing the program. Pursuant to Section 7(e) we decline to grant you any rights under
|
|
// trademark law for use of our trademarks.
|
|
//
|
|
// All the Product's GUI elements, including illustrations and icon sets, as well as technical writing
|
|
// content are licensed under the terms of the Creative Commons Attribution-ShareAlike 4.0
|
|
// International. See the License terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
|
|
|
const Endpoints = require("./mocking/endpoints.js");
|
|
|
|
const browser = process.env.profile || "chromium";
|
|
const deviceType = process.env.DEVICE_TYPE || "desktop";
|
|
|
|
const isModel = !!process.env.MODEL;
|
|
|
|
const featureName = isModel
|
|
? `Client actions on '${browser}' with '${deviceType}' dimension (model)`
|
|
: `Client actions on '${browser}' with '${deviceType}' dimension`;
|
|
|
|
Feature(featureName);
|
|
|
|
const saveData = {
|
|
lng: "fr",
|
|
timeZoneID: "Pacific/Tahiti",
|
|
};
|
|
|
|
const saveDataWelcomePageSettings = {
|
|
title: "Hello",
|
|
};
|
|
|
|
const saveDataPortalRenaming = {
|
|
alias: "NewPortalName",
|
|
};
|
|
|
|
Scenario("Tfa auth success", async ({ I }) => {
|
|
I.mockEndpoint(Endpoints.confirm, "confirm");
|
|
I.mockEndpoint(Endpoints.code, "code");
|
|
I.mockEndpoint(Endpoints.settings, "settings");
|
|
I.mockEndpoint(Endpoints.build, "build");
|
|
I.mockEndpoint(Endpoints.info, "info");
|
|
I.mockEndpoint(Endpoints.self, "self");
|
|
I.mockEndpoint(Endpoints.validation, "validation");
|
|
|
|
I.amOnPage("/confirm/TfaAuth");
|
|
I.fillField("code", "123456");
|
|
I.click({
|
|
react: "Button",
|
|
});
|
|
|
|
I.see("Documents");
|
|
});
|
|
|
|
Scenario("Tfa auth error", async ({ I }) => {
|
|
I.mockEndpoint(Endpoints.confirm, "confirm");
|
|
I.mockEndpoint(Endpoints.settings, "settings");
|
|
I.mockEndpoint(Endpoints.build, "build");
|
|
I.mockEndpoint(Endpoints.providers, "providers");
|
|
I.mockEndpoint(Endpoints.capabilities, "capabilities");
|
|
I.mockEndpoint(Endpoints.code, "codeError");
|
|
I.mockEndpoint(Endpoints.validation, "validation");
|
|
|
|
I.amOnPage("/confirm/TfaAuth");
|
|
I.fillField("code", "123456");
|
|
I.click({
|
|
react: "Button",
|
|
});
|
|
|
|
I.see("Web Office");
|
|
});
|
|
|
|
Scenario("Tfa activation success", async ({ I }) => {
|
|
I.mockEndpoint(Endpoints.confirm, "confirm");
|
|
I.mockEndpoint(Endpoints.setup, "setup");
|
|
I.mockEndpoint(Endpoints.validation, "validation");
|
|
I.mockEndpoint(Endpoints.settings, "settings");
|
|
I.mockEndpoint(Endpoints.build, "build");
|
|
I.mockEndpoint(Endpoints.info, "info");
|
|
I.mockEndpoint(Endpoints.self, "self");
|
|
|
|
I.amOnPage("/confirm/TfaActivation");
|
|
|
|
I.fillField("code", "123456");
|
|
|
|
I.click({
|
|
react: "Button",
|
|
});
|
|
|
|
I.see("Documents");
|
|
});
|
|
|
|
Scenario("Profile remove success", async ({ I }) => {
|
|
I.mockEndpoint(Endpoints.confirm, "confirm");
|
|
|
|
I.amOnPage("/confirm/ProfileRemove");
|
|
|
|
I.click({
|
|
react: "Button",
|
|
});
|
|
|
|
I.wait(2);
|
|
I.see("Web Office");
|
|
});
|
|
|
|
Scenario("Change email", async ({ I }) => {
|
|
I.mockEndpoint(Endpoints.confirm, "confirm");
|
|
I.mockEndpoint(Endpoints.settings, "settings");
|
|
I.mockEndpoint(Endpoints.build, "build");
|
|
I.mockEndpoint(Endpoints.info, "info");
|
|
I.mockEndpoint(Endpoints.self, "self");
|
|
|
|
I.amOnPage("/confirm/EmailChange");
|
|
I.see("People");
|
|
});
|
|
|
|
Scenario("Activate email", async ({ I }) => {
|
|
I.mockEndpoint(Endpoints.confirm, "confirm");
|
|
|
|
I.amOnPage("/confirm/EmailActivation");
|
|
I.see("Web Office");
|
|
});
|
|
|
|
Scenario("Change password", async ({ I }) => {
|
|
I.mockEndpoint(Endpoints.settings, "settings");
|
|
I.mockEndpoint(Endpoints.password, "password");
|
|
I.mockEndpoint(Endpoints.confirm, "confirm");
|
|
I.mockEndpoint(Endpoints.build, "build");
|
|
I.mockEndpoint(Endpoints.info, "info");
|
|
I.mockEndpoint(Endpoints.self, "self");
|
|
|
|
I.amOnPage("/confirm/PasswordChange");
|
|
|
|
I.fillField("password", "qwerty12");
|
|
I.click({
|
|
react: "Button",
|
|
});
|
|
|
|
I.see("Documents");
|
|
});
|
|
|
|
Scenario("Customization change language", async ({ I }) => {
|
|
I.mockEndpoint(Endpoints.common, "common");
|
|
I.mockEndpoint(Endpoints.cultures, "cultures");
|
|
I.mockEndpoint(Endpoints.timezones, "timezones");
|
|
I.mockEndpoint(Endpoints.settings, "settingsCustomization");
|
|
I.mockEndpoint(Endpoints.build, "build");
|
|
I.mockEndpoint(Endpoints.info, "infoSettings");
|
|
I.mockEndpoint(Endpoints.self, "selfSettings");
|
|
I.mockEndpoint(Endpoints.timeandlanguage, "timeandlanguage");
|
|
|
|
if (deviceType !== "mobile") {
|
|
if (browser === "webkit") {
|
|
I.wait(30);
|
|
}
|
|
I.amOnPage("/settings/common/customization");
|
|
}
|
|
|
|
if (deviceType === "mobile") {
|
|
I.amOnPage("/settings/common/customization/language-and-time-zone");
|
|
}
|
|
|
|
const languageCurrent = await I.grabTextFrom("#comboBoxLanguage");
|
|
|
|
I.click({
|
|
react: "ComboBox",
|
|
props: {
|
|
id: "comboBoxLanguage",
|
|
},
|
|
});
|
|
|
|
I.seeElement(".dropdown-container");
|
|
|
|
I.click({
|
|
react: "div",
|
|
props: {
|
|
label: "French (France)",
|
|
},
|
|
});
|
|
|
|
I.seeElement({
|
|
react: "ComboButton",
|
|
props: {
|
|
selectedOption: { key: "fr", label: "French (France)" },
|
|
},
|
|
});
|
|
|
|
const languageNew = await I.grabTextFrom("#comboBoxLanguage");
|
|
|
|
if (languageCurrent === languageNew) {
|
|
I.dontSee("You have unsaved changes");
|
|
|
|
I.seeElement({
|
|
react: "Button",
|
|
props: {
|
|
label: "Save",
|
|
isDisabled: true,
|
|
},
|
|
});
|
|
|
|
I.seeElement({
|
|
react: "Button",
|
|
props: {
|
|
label: "Cancel",
|
|
isDisabled: true,
|
|
},
|
|
});
|
|
}
|
|
|
|
if (languageCurrent !== languageNew) {
|
|
I.see("You have unsaved changes");
|
|
|
|
I.seeElement({
|
|
react: "Button",
|
|
props: {
|
|
label: "Save",
|
|
isDisabled: false,
|
|
},
|
|
});
|
|
|
|
I.seeElement({
|
|
react: "Button",
|
|
props: {
|
|
label: "Cancel",
|
|
isDisabled: false,
|
|
},
|
|
});
|
|
|
|
I.click("Save");
|
|
|
|
I.checkRequest(
|
|
"http://localhost:8092/api/2.0/settings/timeandlanguage.json",
|
|
saveData,
|
|
"settings",
|
|
"timeandlanguage"
|
|
);
|
|
|
|
I.seeElement({
|
|
react: "Button",
|
|
props: {
|
|
label: "Save",
|
|
isDisabled: true,
|
|
},
|
|
});
|
|
|
|
I.seeElement({
|
|
react: "Button",
|
|
props: {
|
|
label: "Cancel",
|
|
isDisabled: true,
|
|
},
|
|
});
|
|
|
|
I.seeElement({
|
|
react: "ComboButton",
|
|
props: {
|
|
selectedOption: { key: "fr", label: "French (France)" },
|
|
},
|
|
});
|
|
|
|
I.dontSee("You have unsaved changes");
|
|
}
|
|
});
|
|
|
|
Scenario("Customization change time zone", async ({ I }) => {
|
|
I.mockEndpoint(Endpoints.common, "common");
|
|
I.mockEndpoint(Endpoints.cultures, "cultures");
|
|
I.mockEndpoint(Endpoints.timezones, "timezones");
|
|
I.mockEndpoint(Endpoints.settings, "settingsCustomization");
|
|
I.mockEndpoint(Endpoints.build, "build");
|
|
I.mockEndpoint(Endpoints.info, "infoSettings");
|
|
I.mockEndpoint(Endpoints.self, "selfSettings");
|
|
I.mockEndpoint(Endpoints.timeandlanguage, "timeandlanguage");
|
|
|
|
if (deviceType !== "mobile") {
|
|
if (browser === "webkit") {
|
|
I.wait(30);
|
|
}
|
|
I.amOnPage("/settings/common/customization");
|
|
}
|
|
|
|
if (deviceType === "mobile") {
|
|
I.amOnPage("/settings/common/customization/language-and-time-zone");
|
|
}
|
|
|
|
I.click({
|
|
react: "ComboBox",
|
|
props: {
|
|
id: "comboBoxTimezone",
|
|
},
|
|
});
|
|
|
|
const timeZoneCurrent = await I.grabTextFrom("#comboBoxTimezone");
|
|
|
|
I.seeElement(".dropdown-container");
|
|
|
|
I.click({
|
|
react: "div",
|
|
props: {
|
|
label: "(UTC-10:00) Pacific/Tahiti",
|
|
},
|
|
});
|
|
|
|
I.seeElement({
|
|
react: "ComboButton",
|
|
props: {
|
|
selectedOption: {
|
|
key: "Pacific/Tahiti",
|
|
label: "(UTC-10:00) Pacific/Tahiti",
|
|
},
|
|
},
|
|
});
|
|
|
|
const timeZoneNew = await I.grabTextFrom("#comboBoxTimezone");
|
|
|
|
if (timeZoneCurrent === timeZoneNew) {
|
|
I.dontSee("You have unsaved changes");
|
|
|
|
I.seeElement({
|
|
react: "Button",
|
|
props: {
|
|
label: "Save",
|
|
isDisabled: true,
|
|
},
|
|
});
|
|
|
|
I.seeElement({
|
|
react: "Button",
|
|
props: {
|
|
label: "Cancel",
|
|
isDisabled: true,
|
|
},
|
|
});
|
|
}
|
|
|
|
if (timeZoneCurrent !== timeZoneNew) {
|
|
I.see("You have unsaved changes");
|
|
|
|
I.seeElement({
|
|
react: "Button",
|
|
props: {
|
|
label: "Save",
|
|
isDisabled: false,
|
|
},
|
|
});
|
|
|
|
I.seeElement({
|
|
react: "Button",
|
|
props: {
|
|
label: "Cancel",
|
|
isDisabled: false,
|
|
},
|
|
});
|
|
|
|
I.click("Save");
|
|
|
|
I.checkRequest(
|
|
"http://localhost:8092/api/2.0/settings/timeandlanguage.json",
|
|
saveData,
|
|
"settings",
|
|
"timeandlanguage"
|
|
);
|
|
|
|
I.seeElement({
|
|
react: "Button",
|
|
props: {
|
|
label: "Save",
|
|
isDisabled: true,
|
|
},
|
|
});
|
|
|
|
I.seeElement({
|
|
react: "Button",
|
|
props: {
|
|
label: "Cancel",
|
|
isDisabled: true,
|
|
},
|
|
});
|
|
|
|
I.seeElement({
|
|
react: "ComboButton",
|
|
props: {
|
|
selectedOption: {
|
|
key: "Pacific/Tahiti",
|
|
label: "(UTC-10:00) Pacific/Tahiti",
|
|
},
|
|
},
|
|
});
|
|
|
|
I.dontSee("You have unsaved changes");
|
|
}
|
|
});
|
|
|
|
Scenario("Customization cancel button test language", async ({ I }) => {
|
|
I.mockEndpoint(Endpoints.common, "common");
|
|
I.mockEndpoint(Endpoints.cultures, "cultures");
|
|
I.mockEndpoint(Endpoints.timezones, "timezones");
|
|
I.mockEndpoint(Endpoints.settings, "settingsCustomization");
|
|
I.mockEndpoint(Endpoints.build, "build");
|
|
I.mockEndpoint(Endpoints.info, "infoSettings");
|
|
I.mockEndpoint(Endpoints.self, "selfSettings");
|
|
|
|
if (deviceType !== "mobile") {
|
|
if (browser === "webkit") {
|
|
I.wait(30);
|
|
}
|
|
I.amOnPage("/settings/common/customization");
|
|
}
|
|
|
|
if (deviceType === "mobile") {
|
|
I.amOnPage("/settings/common/customization/language-and-time-zone");
|
|
}
|
|
|
|
I.click({
|
|
react: "ComboBox",
|
|
props: {
|
|
id: "comboBoxLanguage",
|
|
},
|
|
});
|
|
|
|
const languageCurrent = await I.grabTextFrom("#comboBoxLanguage");
|
|
|
|
I.seeElement(".dropdown-container");
|
|
|
|
I.click({
|
|
react: "div",
|
|
props: {
|
|
label: "French (France)",
|
|
},
|
|
});
|
|
|
|
I.seeElement({
|
|
react: "ComboButton",
|
|
props: {
|
|
selectedOption: { key: "fr", label: "French (France)" },
|
|
},
|
|
});
|
|
|
|
const languageNew = await I.grabTextFrom("#comboBoxLanguage");
|
|
|
|
if (languageCurrent !== languageNew) {
|
|
I.dontSee(languageCurrent);
|
|
|
|
I.see("You have unsaved changes");
|
|
|
|
I.seeElement({
|
|
react: "Button",
|
|
props: {
|
|
label: "Save",
|
|
isDisabled: false,
|
|
},
|
|
});
|
|
|
|
I.seeElement({
|
|
react: "Button",
|
|
props: {
|
|
label: "Cancel",
|
|
isDisabled: false,
|
|
},
|
|
});
|
|
|
|
I.click("Cancel");
|
|
|
|
I.dontSee("You have unsaved changes");
|
|
|
|
I.seeElement({
|
|
react: "Button",
|
|
props: {
|
|
label: "Save",
|
|
isDisabled: true,
|
|
},
|
|
});
|
|
|
|
I.seeElement({
|
|
react: "Button",
|
|
props: {
|
|
label: "Cancel",
|
|
isDisabled: true,
|
|
},
|
|
});
|
|
|
|
I.dontSee(languageNew);
|
|
|
|
I.see(languageCurrent);
|
|
}
|
|
});
|
|
|
|
Scenario("Customization cancel button test time zone", async ({ I }) => {
|
|
I.mockEndpoint(Endpoints.common, "common");
|
|
I.mockEndpoint(Endpoints.cultures, "cultures");
|
|
I.mockEndpoint(Endpoints.timezones, "timezones");
|
|
I.mockEndpoint(Endpoints.settings, "settingsCustomization");
|
|
I.mockEndpoint(Endpoints.build, "build");
|
|
I.mockEndpoint(Endpoints.info, "infoSettings");
|
|
I.mockEndpoint(Endpoints.self, "selfSettings");
|
|
|
|
if (deviceType !== "mobile") {
|
|
if (browser === "webkit") {
|
|
I.wait(30);
|
|
}
|
|
I.amOnPage("/settings/common/customization");
|
|
}
|
|
|
|
if (deviceType === "mobile") {
|
|
I.amOnPage("/settings/common/customization/language-and-time-zone");
|
|
}
|
|
|
|
I.click({
|
|
react: "ComboBox",
|
|
props: {
|
|
id: "comboBoxTimezone",
|
|
},
|
|
});
|
|
|
|
const timeZoneCurrent = await I.grabTextFrom("#comboBoxTimezone");
|
|
|
|
I.seeElement(".dropdown-container");
|
|
|
|
I.click({
|
|
react: "div",
|
|
props: {
|
|
label: "(UTC-10:00) Pacific/Tahiti",
|
|
},
|
|
});
|
|
|
|
I.seeElement({
|
|
react: "ComboButton",
|
|
props: {
|
|
selectedOption: {
|
|
key: "Pacific/Tahiti",
|
|
label: "(UTC-10:00) Pacific/Tahiti",
|
|
},
|
|
},
|
|
});
|
|
|
|
const timeZoneNew = await I.grabTextFrom("#comboBoxTimezone");
|
|
|
|
if (timeZoneCurrent !== timeZoneNew) {
|
|
I.dontSee(timeZoneCurrent);
|
|
|
|
I.see("You have unsaved changes");
|
|
|
|
I.seeElement({
|
|
react: "Button",
|
|
props: {
|
|
label: "Save",
|
|
isDisabled: false,
|
|
},
|
|
});
|
|
|
|
I.seeElement({
|
|
react: "Button",
|
|
props: {
|
|
label: "Cancel",
|
|
isDisabled: false,
|
|
},
|
|
});
|
|
|
|
I.click("Cancel");
|
|
|
|
I.dontSee("You have unsaved changes");
|
|
|
|
I.seeElement({
|
|
react: "Button",
|
|
props: {
|
|
label: "Save",
|
|
isDisabled: true,
|
|
},
|
|
});
|
|
|
|
I.seeElement({
|
|
react: "Button",
|
|
props: {
|
|
label: "Cancel",
|
|
isDisabled: true,
|
|
},
|
|
});
|
|
|
|
I.dontSee(timeZoneNew);
|
|
|
|
I.see(timeZoneCurrent);
|
|
}
|
|
});
|
|
|
|
Scenario("Welcome Page Settings Save button test", async ({ I }) => {
|
|
I.mockEndpoint(Endpoints.common, "common");
|
|
I.mockEndpoint(Endpoints.cultures, "cultures");
|
|
I.mockEndpoint(Endpoints.timezones, "timezones");
|
|
I.mockEndpoint(Endpoints.settings, "settingsCustomization");
|
|
I.mockEndpoint(Endpoints.build, "build");
|
|
I.mockEndpoint(Endpoints.info, "infoSettings");
|
|
I.mockEndpoint(Endpoints.self, "selfSettings");
|
|
I.mockEndpoint(Endpoints.greetingsettings, "greetingsettings");
|
|
|
|
if (deviceType !== "mobile") {
|
|
if (browser === "webkit") {
|
|
I.wait(30);
|
|
}
|
|
I.amOnPage("/settings/common/customization");
|
|
}
|
|
|
|
if (deviceType === "mobile") {
|
|
I.amOnPage("/settings/common/customization/welcome-page-settings");
|
|
}
|
|
|
|
const titleCurrent = await I.grabValueFrom("#textInputContainerWelcomePage");
|
|
|
|
I.fillField("#textInputContainerWelcomePage", "Hello");
|
|
|
|
I.seeElement({
|
|
react: "TextInput",
|
|
props: {
|
|
value: "Hello",
|
|
},
|
|
});
|
|
|
|
const titleNew = await I.grabValueFrom("#textInputContainerWelcomePage");
|
|
|
|
if (titleCurrent === titleNew) {
|
|
I.dontSee("You have unsaved changes");
|
|
|
|
I.seeElement({
|
|
react: "Button",
|
|
props: {
|
|
label: "Save",
|
|
isDisabled: true,
|
|
},
|
|
});
|
|
}
|
|
|
|
if (titleCurrent !== titleNew) {
|
|
I.see("You have unsaved changes");
|
|
|
|
I.seeElement({
|
|
react: "Button",
|
|
props: {
|
|
label: "Save",
|
|
isDisabled: false,
|
|
},
|
|
});
|
|
|
|
I.click({
|
|
react: "Button",
|
|
props: {
|
|
label: "Save",
|
|
id: "buttonsWelcomePage",
|
|
},
|
|
});
|
|
|
|
I.checkRequest(
|
|
"http://localhost:8092/api/2.0/settings/greetingsettings.json",
|
|
saveDataWelcomePageSettings,
|
|
"settings",
|
|
"greetingsettings"
|
|
);
|
|
|
|
I.seeElement({
|
|
react: "Button",
|
|
props: {
|
|
label: "Save",
|
|
isDisabled: true,
|
|
},
|
|
});
|
|
|
|
I.seeElement({
|
|
react: "TextInput",
|
|
props: {
|
|
value: "Hello",
|
|
},
|
|
});
|
|
|
|
I.dontSee("You have unsaved changes");
|
|
}
|
|
});
|
|
|
|
Scenario(
|
|
"Welcome Page Settings Restore to Default button test",
|
|
async ({ I }) => {
|
|
I.mockEndpoint(Endpoints.common, "common");
|
|
I.mockEndpoint(Endpoints.cultures, "cultures");
|
|
I.mockEndpoint(Endpoints.timezones, "timezones");
|
|
I.mockEndpoint(Endpoints.settings, "settingsCustomization");
|
|
I.mockEndpoint(Endpoints.build, "build");
|
|
I.mockEndpoint(Endpoints.info, "infoSettings");
|
|
I.mockEndpoint(Endpoints.self, "selfSettings");
|
|
I.mockEndpoint(Endpoints.restore, "restore");
|
|
|
|
if (deviceType !== "mobile") {
|
|
if (browser === "webkit") {
|
|
I.wait(30);
|
|
}
|
|
I.amOnPage("/settings/common/customization");
|
|
}
|
|
|
|
if (deviceType === "mobile") {
|
|
I.amOnPage("/settings/common/customization/welcome-page-settings");
|
|
}
|
|
|
|
I.fillField("#textInputContainerWelcomePage", "Hello");
|
|
|
|
I.seeElement({
|
|
react: "TextInput",
|
|
props: {
|
|
value: "Hello",
|
|
},
|
|
});
|
|
|
|
I.click({
|
|
react: "Button",
|
|
props: {
|
|
label: "Restore to Default",
|
|
id: "buttonsWelcomePage",
|
|
},
|
|
});
|
|
|
|
I.checkRequest(
|
|
"http://localhost:8092/api/2.0/settings/greetingsettings/restore.json",
|
|
"",
|
|
"settings",
|
|
"restore"
|
|
);
|
|
|
|
I.seeElement({
|
|
react: "TextInput",
|
|
props: {
|
|
value: "Cloud Office Applications",
|
|
},
|
|
});
|
|
}
|
|
);
|
|
|
|
Scenario("Portal Renaming cancel button test", async ({ I }) => {
|
|
I.mockEndpoint(Endpoints.common, "common");
|
|
I.mockEndpoint(Endpoints.cultures, "cultures");
|
|
I.mockEndpoint(Endpoints.timezones, "timezones");
|
|
I.mockEndpoint(Endpoints.settings, "settingsCustomization");
|
|
I.mockEndpoint(Endpoints.build, "build");
|
|
I.mockEndpoint(Endpoints.info, "infoSettings");
|
|
I.mockEndpoint(Endpoints.self, "selfSettings");
|
|
|
|
if (deviceType !== "mobile") {
|
|
if (browser === "webkit") {
|
|
I.wait(30);
|
|
}
|
|
I.amOnPage("/settings/common/customization");
|
|
}
|
|
|
|
if (deviceType === "mobile") {
|
|
I.amOnPage("/settings/common/customization/portal-renaming");
|
|
}
|
|
|
|
const nameCurrent = await I.grabValueFrom(
|
|
"#textInputContainerPortalRenaming"
|
|
);
|
|
|
|
I.fillField("#textInputContainerPortalRenaming", "NewPortalName");
|
|
|
|
I.seeElement({
|
|
react: "TextInput",
|
|
props: {
|
|
value: "NewPortalName",
|
|
},
|
|
});
|
|
|
|
within("#buttonsPortalRenaming", () => {
|
|
I.click({
|
|
react: "Button",
|
|
props: {
|
|
label: "Cancel",
|
|
isDisabled: false,
|
|
},
|
|
});
|
|
});
|
|
|
|
I.dontSee("You have unsaved changes");
|
|
I.dontSee("NewPortalName");
|
|
|
|
I.seeInField("#textInputContainerPortalRenaming", nameCurrent);
|
|
});
|
|
|
|
Scenario("Portal Renaming save button test", async ({ I }) => {
|
|
I.mockEndpoint(Endpoints.common, "common");
|
|
I.mockEndpoint(Endpoints.cultures, "cultures");
|
|
I.mockEndpoint(Endpoints.timezones, "timezones");
|
|
I.mockEndpoint(Endpoints.settings, "settingsCustomization");
|
|
I.mockEndpoint(Endpoints.build, "build");
|
|
I.mockEndpoint(Endpoints.info, "infoSettings");
|
|
I.mockEndpoint(Endpoints.self, "selfSettings");
|
|
I.mockEndpoint(Endpoints.portalRenaming, "portalRenaming");
|
|
|
|
if (deviceType !== "mobile") {
|
|
if (browser === "webkit") {
|
|
I.wait(30);
|
|
}
|
|
I.amOnPage("/settings/common/customization");
|
|
}
|
|
|
|
if (deviceType === "mobile") {
|
|
I.amOnPage("/settings/common/customization/portal-renaming");
|
|
}
|
|
|
|
I.fillField("#textInputContainerPortalRenaming", "NewPortalName");
|
|
|
|
I.seeElement({
|
|
react: "TextInput",
|
|
props: {
|
|
value: "NewPortalName",
|
|
},
|
|
});
|
|
|
|
within("#buttonsPortalRenaming", () => {
|
|
I.click({
|
|
react: "Button",
|
|
props: {
|
|
label: "Save",
|
|
isDisabled: false,
|
|
},
|
|
});
|
|
});
|
|
|
|
I.checkRequest(
|
|
"http://localhost:8092/api/2.0/portal/portalrename.json",
|
|
saveDataPortalRenaming,
|
|
"settings",
|
|
"portalRenaming"
|
|
);
|
|
|
|
I.dontSee("You have unsaved changes");
|
|
|
|
I.seeElement({
|
|
react: "TextInput",
|
|
props: {
|
|
value: "NewPortalName",
|
|
},
|
|
});
|
|
});
|
|
|
|
Scenario("Portal Renaming error PortalNameLength test", async ({ I }) => {
|
|
I.mockEndpoint(Endpoints.common, "common");
|
|
I.mockEndpoint(Endpoints.cultures, "cultures");
|
|
I.mockEndpoint(Endpoints.timezones, "timezones");
|
|
I.mockEndpoint(Endpoints.settings, "settingsCustomization");
|
|
I.mockEndpoint(Endpoints.build, "build");
|
|
I.mockEndpoint(Endpoints.info, "infoSettings");
|
|
I.mockEndpoint(Endpoints.self, "selfSettings");
|
|
|
|
if (deviceType !== "mobile") {
|
|
if (browser === "webkit") {
|
|
I.wait(30);
|
|
}
|
|
I.amOnPage("/settings/common/customization");
|
|
}
|
|
|
|
if (deviceType === "mobile") {
|
|
I.amOnPage("/settings/common/customization/portal-renaming");
|
|
}
|
|
|
|
I.fillField("#textInputContainerPortalRenaming", "12345");
|
|
|
|
I.see("The account name must be between 6 and 50 characters long");
|
|
});
|
|
|
|
Scenario("Portal Renaming error PortalNameIncorrect test", async ({ I }) => {
|
|
I.mockEndpoint(Endpoints.common, "common");
|
|
I.mockEndpoint(Endpoints.cultures, "cultures");
|
|
I.mockEndpoint(Endpoints.timezones, "timezones");
|
|
I.mockEndpoint(Endpoints.settings, "settingsCustomization");
|
|
I.mockEndpoint(Endpoints.build, "build");
|
|
I.mockEndpoint(Endpoints.info, "infoSettings");
|
|
I.mockEndpoint(Endpoints.self, "selfSettings");
|
|
|
|
if (deviceType !== "mobile") {
|
|
if (browser === "webkit") {
|
|
I.wait(30);
|
|
}
|
|
I.amOnPage("/settings/common/customization");
|
|
}
|
|
|
|
if (deviceType === "mobile") {
|
|
I.amOnPage("/settings/common/customization/portal-renaming");
|
|
}
|
|
|
|
I.fillField("#textInputContainerPortalRenaming", "Новое имя");
|
|
|
|
I.see("Incorrect account name");
|
|
});
|
|
|
|
// SECURITY SETTINGS TESTS
|
|
|
|
Scenario("Setting password strength change test success", async ({ I }) => {
|
|
I.mockEndpoint(Endpoints.self, "selfSettings");
|
|
I.mockEndpoint(Endpoints.info, "infoSettings");
|
|
I.mockEndpoint(Endpoints.build, "build");
|
|
I.mockEndpoint(Endpoints.settings, "settingsCustomization");
|
|
I.mockEndpoint(Endpoints.common, "common");
|
|
I.mockEndpoint(Endpoints.password, "password");
|
|
I.mockEndpoint(Endpoints.tfaapp, "tfaapp");
|
|
|
|
if (deviceType === "mobile") {
|
|
I.amOnPage("/settings/security/access-portal/password");
|
|
|
|
I.see("Minimal password length");
|
|
|
|
I.click({
|
|
react: "Checkbox",
|
|
props: {
|
|
value: "digits",
|
|
},
|
|
});
|
|
|
|
I.see("You have unsaved changes");
|
|
I.click("Save");
|
|
|
|
I.see("Settings have been successfully updated");
|
|
}
|
|
});
|
|
|
|
Scenario("Setting password strength change test error", async ({ I }) => {
|
|
I.mockEndpoint(Endpoints.self, "selfSettings");
|
|
I.mockEndpoint(Endpoints.info, "infoSettings");
|
|
I.mockEndpoint(Endpoints.build, "build");
|
|
I.mockEndpoint(Endpoints.settings, "settingsCustomization");
|
|
I.mockEndpoint(Endpoints.common, "common");
|
|
I.mockEndpoint(Endpoints.password, "password");
|
|
I.mockEndpoint(Endpoints.tfaapp, "tfaapp");
|
|
|
|
if (deviceType === "mobile") {
|
|
I.amOnPage("/settings/security/access-portal/password");
|
|
|
|
I.see("Minimal password length");
|
|
|
|
I.click({
|
|
react: "Checkbox",
|
|
props: {
|
|
value: "digits",
|
|
},
|
|
});
|
|
|
|
I.see("You have unsaved changes");
|
|
|
|
I.mockEndpoint(Endpoints.password, "passwordError");
|
|
|
|
I.click("Save");
|
|
|
|
I.see("Error");
|
|
}
|
|
});
|
|
|
|
Scenario("Tfa on from settings", async ({ I }) => {
|
|
I.mockEndpoint(Endpoints.self, "selfSettings");
|
|
I.mockEndpoint(Endpoints.info, "infoSettings");
|
|
I.mockEndpoint(Endpoints.build, "build");
|
|
I.mockEndpoint(Endpoints.settings, "settingsCustomization");
|
|
I.mockEndpoint(Endpoints.common, "common");
|
|
I.mockEndpoint(Endpoints.password, "password");
|
|
I.mockEndpoint(Endpoints.tfaapp, "tfaapp");
|
|
I.mockEndpoint(Endpoints.tfaconfirm, "tfaconfirm");
|
|
I.mockEndpoint(Endpoints.confirm, "confirm");
|
|
I.mockEndpoint(Endpoints.setup, "setup");
|
|
|
|
if (deviceType === "mobile") {
|
|
I.amOnPage("/settings/security/access-portal/tfa");
|
|
|
|
I.see("Two-factor authentication");
|
|
|
|
I.click({
|
|
react: "RadioButton",
|
|
props: {
|
|
value: "app",
|
|
},
|
|
});
|
|
|
|
I.click("Save");
|
|
I.see("Configure your authenticator application");
|
|
}
|
|
});
|
|
|
|
Scenario("Tfa on from settings custom scenario", async ({ I }) => {
|
|
I.mockEndpoint(Endpoints.self, "selfSettings");
|
|
I.mockEndpoint(Endpoints.info, "infoSettings");
|
|
I.mockEndpoint(Endpoints.build, "build");
|
|
I.mockEndpoint(Endpoints.settings, "settingsCustomization");
|
|
I.mockEndpoint(Endpoints.common, "common");
|
|
I.mockEndpoint(Endpoints.password, "password");
|
|
I.mockEndpoint(Endpoints.tfaapp, "tfaapp");
|
|
I.mockEndpoint(Endpoints.tfaconfirm, "tfaconfirm");
|
|
I.mockEndpoint(Endpoints.confirm, "confirm");
|
|
I.mockEndpoint(Endpoints.setup, "setup");
|
|
I.mockEndpoint(Endpoints.providers, "providers");
|
|
I.mockEndpoint(Endpoints.capabilities, "capabilities");
|
|
I.mockEndpoint(Endpoints.auth, "auth");
|
|
|
|
if (deviceType === "mobile") {
|
|
I.amOnPage("/settings/security/access-portal/tfa");
|
|
|
|
I.see("Two-factor authentication");
|
|
|
|
I.click({
|
|
react: "RadioButton",
|
|
props: {
|
|
value: "app",
|
|
},
|
|
});
|
|
|
|
I.click("Save");
|
|
I.see("Configure your authenticator application");
|
|
|
|
I.click({
|
|
react: "Avatar",
|
|
});
|
|
I.see("Settings");
|
|
I.click("Settings");
|
|
I.see("Common");
|
|
|
|
I.click({
|
|
react: "Avatar",
|
|
});
|
|
I.click("Sign Out");
|
|
I.see("Cloud Office Applications");
|
|
|
|
I.fillField("login", "test@example.com");
|
|
I.fillField("password", "12345678");
|
|
I.click({
|
|
react: "Button",
|
|
props: {
|
|
className: "login-button",
|
|
type: "page",
|
|
},
|
|
});
|
|
|
|
I.wait(2);
|
|
|
|
I.see("Configure your authenticator application");
|
|
}
|
|
});
|
|
|
|
Scenario("Trusted mail settings change test success", async ({ I }) => {
|
|
I.mockEndpoint(Endpoints.settings, "settings");
|
|
I.mockEndpoint(Endpoints.build, "build");
|
|
I.mockEndpoint(Endpoints.info, "infoSettings");
|
|
I.mockEndpoint(Endpoints.self, "selfSettings");
|
|
I.mockEndpoint(Endpoints.common, "common");
|
|
I.mockEndpoint(Endpoints.password, "password");
|
|
I.mockEndpoint(Endpoints.tfaapp, "tfaapp");
|
|
I.mockEndpoint(Endpoints.maildomainsettings, "maildomainsettings");
|
|
|
|
if (deviceType === "mobile") {
|
|
I.amOnPage("/settings/security/access-portal/trusted-mail");
|
|
|
|
I.see("Trusted mail domain settings");
|
|
|
|
I.click({
|
|
react: "RadioButton",
|
|
props: {
|
|
value: "1",
|
|
},
|
|
});
|
|
|
|
I.see("You have unsaved changes");
|
|
|
|
I.see("Add trusted domain");
|
|
I.click("Add trusted domain");
|
|
|
|
I.seeElement("#domain-input-0");
|
|
I.fillField("#user-input-0", "test.com");
|
|
|
|
I.click("Save");
|
|
|
|
I.dontSee("You have unsaved changes");
|
|
I.see("Settings have been successfully updated");
|
|
}
|
|
});
|
|
|
|
Scenario("Trusted mail settings change test error", async ({ I }) => {
|
|
I.mockEndpoint(Endpoints.settings, "settings");
|
|
I.mockEndpoint(Endpoints.build, "build");
|
|
I.mockEndpoint(Endpoints.info, "infoSettings");
|
|
I.mockEndpoint(Endpoints.self, "selfSettings");
|
|
I.mockEndpoint(Endpoints.common, "common");
|
|
I.mockEndpoint(Endpoints.password, "password");
|
|
I.mockEndpoint(Endpoints.tfaapp, "tfaapp");
|
|
I.mockEndpoint(Endpoints.maildomainsettings, "maildomainsettings");
|
|
|
|
if (deviceType === "mobile") {
|
|
I.amOnPage("/settings/security/access-portal/trusted-mail");
|
|
|
|
I.see("Trusted mail domain settings");
|
|
|
|
I.click({
|
|
react: "RadioButton",
|
|
props: {
|
|
value: "1",
|
|
},
|
|
});
|
|
|
|
I.see("You have unsaved changes");
|
|
|
|
I.see("Add trusted domain");
|
|
I.click("Add trusted domain");
|
|
|
|
I.seeElement("#domain-input-0");
|
|
I.fillField("#user-input-0", "test");
|
|
|
|
I.click("Save");
|
|
|
|
I.see("You have unsaved changes");
|
|
I.see("Incorrect domain");
|
|
}
|
|
});
|
|
|
|
Scenario("Trusted mail settings change test server error", async ({ I }) => {
|
|
I.mockEndpoint(Endpoints.settings, "settings");
|
|
I.mockEndpoint(Endpoints.build, "build");
|
|
I.mockEndpoint(Endpoints.info, "infoSettings");
|
|
I.mockEndpoint(Endpoints.self, "selfSettings");
|
|
I.mockEndpoint(Endpoints.common, "common");
|
|
I.mockEndpoint(Endpoints.password, "password");
|
|
I.mockEndpoint(Endpoints.tfaapp, "tfaapp");
|
|
I.mockEndpoint(Endpoints.maildomainsettings, "maildomainsettingsError");
|
|
|
|
if (deviceType === "mobile") {
|
|
I.amOnPage("/settings/security/access-portal/trusted-mail");
|
|
|
|
I.see("Trusted mail domain settings");
|
|
|
|
I.click({
|
|
react: "RadioButton",
|
|
props: {
|
|
value: "1",
|
|
},
|
|
});
|
|
|
|
I.see("You have unsaved changes");
|
|
|
|
I.see("Add trusted domain");
|
|
I.click("Add trusted domain");
|
|
|
|
I.seeElement("#domain-input-0");
|
|
I.fillField("#domain-input-0", "test.com");
|
|
|
|
I.click("Save");
|
|
|
|
I.see("You have unsaved changes");
|
|
I.see("Request failed with status code 400");
|
|
}
|
|
});
|