Skip to content

Commit

Permalink
Merge pull request #10615 from hzi-braunschweig/10614-FixLoginTests
Browse files Browse the repository at this point in the history
#10614-FixLoginTests
  • Loading branch information
rdutu-vg authored Oct 13, 2022
2 parents ca4b9c5 + 656aef1 commit 458c4ed
Show file tree
Hide file tree
Showing 6 changed files with 33 additions and 48 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -23,9 +23,9 @@

@Getter
public enum EnvLangsTranslations {
en("English", "Deutsch"),
de("English", "Deutsch"),
ur("\u0627\u0646\u06AF\u0631\u06CC\u0632\u06CC", "\u062C\u0631\u0645\u0646");
English("English", "Deutsch"),
Deutsch("English", "Deutsch"),
Urdu("\u0627\u0646\u06AF\u0631\u06CC\u0632\u06CC", "\u062C\u0631\u0645\u0646");

private final String englishLang;
private final String germanLang;
Expand All @@ -37,8 +37,8 @@ public enum EnvLangsTranslations {

@SneakyThrows
public static EnvLangsTranslations getValueFor(String option) {
EnvLangsTranslations[] caseOutcomeOptions = EnvLangsTranslations.values();
for (EnvLangsTranslations value : caseOutcomeOptions) {
EnvLangsTranslations[] options = EnvLangsTranslations.values();
for (EnvLangsTranslations value : options) {
if (value.toString().equalsIgnoreCase(option)) {
return value;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,12 +15,10 @@ public abstract class LanguageDetectorHelper {

@SneakyThrows
public static void checkLanguage(String textToScan, String expectedLanguage) {
String langCode = getLanguageCode(expectedLanguage);
detector = LanguageDetector.getDefaultLanguageDetector().loadModels();
if (isConfidenceStrong(textToScan)) {
log.info("Check if text {} language is {}", textToScan, expectedLanguage);
Assert.assertEquals(
detector.detect(textToScan).getLanguage(), langCode, "Language is not as expected");
scanLanguage(textToScan), expectedLanguage, "Language is not as expected");
} else {
throw new LanguageDetectorException(
"LanguageDetectorHelper confidence is not at least MEDIUM");
Expand All @@ -30,21 +28,19 @@ public static void checkLanguage(String textToScan, String expectedLanguage) {
@SneakyThrows
public static String scanLanguage(String textToScan) {
detector = LanguageDetector.getDefaultLanguageDetector().loadModels();
return detector.detect(textToScan).getLanguage();
}

private static String getLanguageCode(String expectedLanguage) {
String lang =
Arrays.stream(Locale.getAvailableLocales())
.filter(locale -> locale.getDisplayLanguage().equalsIgnoreCase(expectedLanguage))
.findFirst()
.get()
.toString();
return lang.substring(0, lang.indexOf("_"));
return Arrays.stream(Locale.getAvailableLocales())
.filter(
locale ->
locale.getLanguage().equalsIgnoreCase(detector.detect(textToScan).getLanguage()))
.findFirst()
.get()
.getDisplayLanguage();
}

@SneakyThrows
private static boolean isConfidenceStrong(String textToScan) {
scanTextForNumbers(textToScan);
detector = LanguageDetector.getDefaultLanguageDetector().loadModels();
String confidence = detector.detect(sanitizeCharacters(textToScan)).getConfidence().toString();
return confidence.equalsIgnoreCase("MEDIUM") || confidence.equalsIgnoreCase("HIGH");
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -988,8 +988,8 @@ public void waitForRowToBeSelected(By rowLocator) {

public void refreshCurrentPage() throws InterruptedException {
baseSteps.refreshCurrentPage();
TimeUnit.SECONDS.sleep(3);
waitForPageLoadingSpinnerToDisappear(10);
TimeUnit.SECONDS.sleep(3);
waitForPageLoadingSpinnerToDisappear(10);
}

public void isElementGreyedOut(By elementLocator) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,12 +21,7 @@
import static org.sormas.e2etests.pages.application.LoginPage.ERROR_MESSAGE;
import static org.sormas.e2etests.pages.application.LoginPage.FAILED_LOGIN_ERROR_MESSAGE;
import static org.sormas.e2etests.pages.application.LoginPage.LOGIN_BUTTON;
import static org.sormas.e2etests.pages.application.NavBarPage.ACTION_CONFIRM_GDPR_POPUP;
import static org.sormas.e2etests.pages.application.NavBarPage.ACTION_CONFIRM_GDPR_POPUP_DE;
import static org.sormas.e2etests.pages.application.NavBarPage.DISCARD_USER_SETTINGS_BUTTON;
import static org.sormas.e2etests.pages.application.NavBarPage.GDPR_CHECKBOX;
import static org.sormas.e2etests.pages.application.NavBarPage.LOGOUT_KEYCLOAK_BUTTON;
import static org.sormas.e2etests.pages.application.NavBarPage.USER_SETTINGS_LANGUAGE_COMBOBOX_TEXT;
import static org.sormas.e2etests.pages.application.NavBarPage.*;
import static org.sormas.e2etests.pages.application.dashboard.Surveillance.SurveillanceDashboardPage.LOGOUT_BUTTON;
import static org.sormas.e2etests.steps.BaseSteps.locale;

Expand All @@ -39,6 +34,7 @@
import org.sormas.e2etests.envconfig.manager.RunningConfiguration;
import org.sormas.e2etests.helpers.AssertHelpers;
import org.sormas.e2etests.helpers.WebDriverHelpers;
import org.sormas.e2etests.helpers.strings.LanguageDetectorHelper;
import org.sormas.e2etests.pages.application.LoginPage;
import org.sormas.e2etests.pages.application.NavBarPage;
import org.sormas.e2etests.pages.application.dashboard.Surveillance.SurveillanceDashboardPage;
Expand All @@ -54,8 +50,8 @@ public LoginSteps(
AssertHelpers assertHelpers) {

Given(
"^I am logged in with name ([^\"]*)$",
(String name) -> {
"^I am logged in$",
() -> {
webDriverHelpers.waitUntilIdentifiedElementIsVisibleAndClickable(
SurveillanceDashboardPage.LOGOUT_BUTTON, 60);
});
Expand Down Expand Up @@ -213,7 +209,12 @@ public LoginSteps(
webDriverHelpers.waitUntilElementIsVisibleAndClickable(
USER_SETTINGS_LANGUAGE_COMBOBOX_TEXT);
String selectedLanguageText =
webDriverHelpers.getValueFromWebElement(USER_SETTINGS_LANGUAGE_COMBOBOX_TEXT);
(webDriverHelpers
.getValueFromWebElement(USER_SETTINGS_LANGUAGE_COMBOBOX_TEXT)
.isEmpty())
? LanguageDetectorHelper.scanLanguage(
webDriverHelpers.getTextFromWebElement(DASHBOARD_BUTTON))
: webDriverHelpers.getValueFromWebElement(USER_SETTINGS_LANGUAGE_COMBOBOX_TEXT);
Assert.assertEquals(
"Selected language is not correct", expectedLanguageText, selectedLanguageText);
webDriverHelpers.clickOnWebElementBySelector(DISCARD_USER_SETTINGS_BUTTON);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,6 @@
import org.sormas.e2etests.helpers.AssertHelpers;
import org.sormas.e2etests.helpers.WebDriverHelpers;
import org.sormas.e2etests.pages.application.LoginPage;
import org.testng.Assert;

public class KeycloakLoginSteps implements En {

Expand Down Expand Up @@ -67,15 +66,6 @@ public KeycloakLoginSteps(
webDriverHelpers.clickOnWebElementBySelector(LOGIN_KEYCLOAK_BUTTON);
webDriverHelpers.waitUntilElementIsVisibleAndClickable(USERNAME_TEXT);
});
Given(
"^I am logged in with ([^\"]*) in Keycloak Administrator Page$",
(String name) ->
assertHelpers.assertWithPoll20Second(
() ->
Assert.assertEquals(
webDriverHelpers.getTextFromWebElement(USERNAME_TEXT).trim(),
name,
"Username is not correct")));
And(
"I click on logout button on Keycloak Administrator Console Page",
() -> {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ Feature: Login with different type of users
Scenario Outline: Login with <user> user on Main Environment
Given I navigate to SORMAS login page
Then I log in as a <user>
Then I am logged in with name <user>
Then I am logged in
And I check that English word for User Settings is present in the left main menu
Then I click on the User Settings button from navbar
Then I check that English language is selected in User Settings
Expand All @@ -23,11 +23,11 @@ Feature: Login with different type of users
| Admin User |
| Rest AUTOMATION |

@env_de @LoginDe @precon
@env_de @LoginDe
Scenario Outline: Login with <user> user on German Environment
Given I navigate to SORMAS login page
Then I log in as a <user>
Then I am logged in with name <user>
Then I am logged in
Then I click on the User Settings button from navbar
And I select "Deutsch" language from Combobox in User settings
And I check that German word for User Settings is present in the left main menu
Expand All @@ -51,10 +51,8 @@ Feature: Login with different type of users
Scenario Outline: Login with <user> user on Keycloak Environment
Given I navigate to SORMAS login page
Then I log in as <user> in Keycloak enabled environment
Then I am logged in with name <user>
And I check that German word for User Settings is present in the left main menu
Then I click on the User Settings button from navbar
And I check that Deutsch language is selected in User Settings
Then I am logged in
And I check that Surveillance Dashboard header is correctly displayed in German language
And I click on logout button on Keycloak enabled environment

Examples:
Expand All @@ -66,5 +64,5 @@ Feature: Login with different type of users
Scenario: Login on Keycloak Administrator Console
Given I navigate to Keycloak Administrator Console Login page
Then I log in as Keycloak Admin to Keycloak Administrator Console
Then I am logged in with Admin Keycloak in Keycloak Administrator Page
Then I am logged in
And I click on logout button on Keycloak Administrator Console Page

0 comments on commit 458c4ed

Please sign in to comment.