From eb062359a9eca8665833d610100525c8832a3a01 Mon Sep 17 00:00:00 2001 From: Vlad Senyuta <66071557+VladSenyuta@users.noreply.github.com> Date: Mon, 26 Sep 2022 16:02:48 +0300 Subject: [PATCH] [e2e] Update module structure (#2641) --- .../provectus/kafka/ui/helpers/ApiHelper.java | 5 +- .../kafka/ui/helpers/TestConfiguration.java | 21 -------- .../provectus/kafka/ui/pages/MainPage.java | 6 +-- .../pages/connector/ConnectorCreateView.java | 8 +-- .../pages/connector/ConnectorUpdateView.java | 49 ------------------- .../ui/pages/connector/ConnectorsList.java | 12 ++--- .../ui/pages/connector/ConnectorsView.java | 40 ++++++++++----- .../ui/pages/schema/SchemaCreateView.java | 4 +- .../kafka/ui/pages/schema/SchemaEditView.java | 4 +- .../ui/pages/schema/SchemaRegistryList.java | 6 +-- .../kafka/ui/pages/schema/SchemaView.java | 5 +- .../topic/TopicCreateEditSettingsView.java | 4 +- .../kafka/ui/pages/topic/TopicView.java | 14 +++--- .../kafka/ui/pages/topic/TopicsList.java | 12 ++--- .../provectus/kafka/ui/settings/Source.java | 7 +++ .../{extensions => utilities}/FileUtils.java | 2 +- .../{extensions => utilities}/WaitUtils.java | 2 +- .../{extensions => utilities}/WebUtils.java | 7 ++- .../qaseIoUtils/DisplayNameGenerator.java} | 5 +- .../qaseIoUtils}/QaseExtension.java | 6 +-- .../qaseIoUtils}/TestCaseGenerator.java | 25 +++++++--- .../annotations}/AutomationStatus.java | 4 +- .../qaseIoUtils/annotations}/Suite.java | 2 +- .../qaseIoUtils/enums}/Status.java | 2 +- .../NoReferenceScreenshotFoundException.java | 2 +- .../screenshots/Screenshooter.java | 4 +- .../kafka/ui/utils/BrowserUtils.java | 23 --------- .../ui/utils/qaseIO/MethodNameUtils.java | 23 --------- ...it.platform.launcher.TestExecutionListener | 2 +- .../com/provectus/kafka/ui/SmokeTests.java | 4 +- .../com/provectus/kafka/ui/base/BaseTest.java | 34 ++++++------- .../com/provectus/kafka/ui/base/Config.java | 19 +++++++ .../kafka/ui/tests/ConnectorsTests.java | 15 +++--- .../kafka/ui/tests/SchemasTests.java | 8 +-- .../provectus/kafka/ui/tests/TopicTests.java | 8 +-- 35 files changed, 166 insertions(+), 228 deletions(-) delete mode 100644 kafka-ui-e2e-checks/src/main/java/com/provectus/kafka/ui/helpers/TestConfiguration.java delete mode 100644 kafka-ui-e2e-checks/src/main/java/com/provectus/kafka/ui/pages/connector/ConnectorUpdateView.java create mode 100644 kafka-ui-e2e-checks/src/main/java/com/provectus/kafka/ui/settings/Source.java rename kafka-ui-e2e-checks/src/main/java/com/provectus/kafka/ui/{extensions => utilities}/FileUtils.java (94%) rename kafka-ui-e2e-checks/src/main/java/com/provectus/kafka/ui/{extensions => utilities}/WaitUtils.java (95%) rename kafka-ui-e2e-checks/src/main/java/com/provectus/kafka/ui/{extensions => utilities}/WebUtils.java (68%) rename kafka-ui-e2e-checks/src/main/java/com/provectus/kafka/ui/{utils/CamelCaseToSpacedDisplayNameGenerator.java => utilities/qaseIoUtils/DisplayNameGenerator.java} (85%) rename kafka-ui-e2e-checks/src/main/java/com/provectus/kafka/ui/{extensions => utilities/qaseIoUtils}/QaseExtension.java (98%) rename kafka-ui-e2e-checks/src/main/java/com/provectus/kafka/ui/{utils/qaseIO => utilities/qaseIoUtils}/TestCaseGenerator.java (86%) rename kafka-ui-e2e-checks/src/main/java/com/provectus/kafka/ui/{utils/qaseIO/annotation => utilities/qaseIoUtils/annotations}/AutomationStatus.java (58%) rename kafka-ui-e2e-checks/src/main/java/com/provectus/kafka/ui/{utils/qaseIO/annotation => utilities/qaseIoUtils/annotations}/Suite.java (74%) rename kafka-ui-e2e-checks/src/main/java/com/provectus/kafka/ui/{utils/qaseIO => utilities/qaseIoUtils/enums}/Status.java (51%) rename kafka-ui-e2e-checks/src/main/java/com/provectus/kafka/ui/{ => utilities}/screenshots/NoReferenceScreenshotFoundException.java (78%) rename kafka-ui-e2e-checks/src/main/java/com/provectus/kafka/ui/{ => utilities}/screenshots/Screenshooter.java (98%) delete mode 100644 kafka-ui-e2e-checks/src/main/java/com/provectus/kafka/ui/utils/BrowserUtils.java delete mode 100644 kafka-ui-e2e-checks/src/main/java/com/provectus/kafka/ui/utils/qaseIO/MethodNameUtils.java create mode 100644 kafka-ui-e2e-checks/src/test/java/com/provectus/kafka/ui/base/Config.java diff --git a/kafka-ui-e2e-checks/src/main/java/com/provectus/kafka/ui/helpers/ApiHelper.java b/kafka-ui-e2e-checks/src/main/java/com/provectus/kafka/ui/helpers/ApiHelper.java index b094a243a8..b9f5506e6e 100644 --- a/kafka-ui-e2e-checks/src/main/java/com/provectus/kafka/ui/helpers/ApiHelper.java +++ b/kafka-ui-e2e-checks/src/main/java/com/provectus/kafka/ui/helpers/ApiHelper.java @@ -13,6 +13,7 @@ import com.provectus.kafka.ui.api.model.TopicCreation; import com.provectus.kafka.ui.models.Connector; import com.provectus.kafka.ui.models.Schema; import com.provectus.kafka.ui.models.Topic; +import com.provectus.kafka.ui.settings.Source; import lombok.SneakyThrows; import lombok.extern.slf4j.Slf4j; import org.springframework.web.reactive.function.client.WebClientResponseException; @@ -21,7 +22,7 @@ import java.util.HashMap; import java.util.Map; import static com.codeborne.selenide.Selenide.sleep; -import static com.provectus.kafka.ui.extensions.FileUtils.fileToString; +import static com.provectus.kafka.ui.utilities.FileUtils.fileToString; @Slf4j @@ -29,7 +30,7 @@ public class ApiHelper { int partitions = 1; int replicationFactor = 1; - String baseURL = TestConfiguration.BASE_API_URL; + String baseURL = Source.BASE_API_URL; @SneakyThrows diff --git a/kafka-ui-e2e-checks/src/main/java/com/provectus/kafka/ui/helpers/TestConfiguration.java b/kafka-ui-e2e-checks/src/main/java/com/provectus/kafka/ui/helpers/TestConfiguration.java deleted file mode 100644 index f8cf311167..0000000000 --- a/kafka-ui-e2e-checks/src/main/java/com/provectus/kafka/ui/helpers/TestConfiguration.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.provectus.kafka.ui.helpers; - -public class TestConfiguration { - public static boolean CLEAR_REPORTS_DIR = - Boolean.parseBoolean(System.getProperty("CLEAR_REPORTS_DIR", "true")); - public static String BASE_API_URL = System.getProperty("BASE_URL", "http://localhost:8080"); - public static String BASE_WEB_URL = System.getProperty("BASE_DOCKER_URL", "http://host.testcontainers.internal:8080"); - public static boolean USE_LOCAL_BROWSER = - Boolean.parseBoolean(System.getProperty("USE_LOCAL_BROWSER", "true")); - public static String REPORTS_FOLDER = System.getProperty("REPORTS_FOLDER", "allure-results"); - public static Boolean SCREENSHOTS = - Boolean.parseBoolean(System.getProperty("SCREENSHOTS", "true")); - public static Boolean SAVE_PAGE_SOURCE = - Boolean.parseBoolean(System.getProperty("SAVE_PAGE_SOURCE", "false")); - public static Boolean REOPEN_BROWSER_ON_FAIL = - Boolean.parseBoolean(System.getProperty("REOPEN_BROWSER_ON_FAIL", "true")); - public static String BROWSER = System.getProperty("BROWSER", "chromium"); - public static String BROWSER_SIZE = System.getProperty("BROWSER_SIZE", "1920x1080"); - public static Boolean ENABLE_VNC = Boolean.parseBoolean(System.getProperty("ENABLE_VNC", "true")); - -} diff --git a/kafka-ui-e2e-checks/src/main/java/com/provectus/kafka/ui/pages/MainPage.java b/kafka-ui-e2e-checks/src/main/java/com/provectus/kafka/ui/pages/MainPage.java index f6ab04fd94..ba93f0535c 100644 --- a/kafka-ui-e2e-checks/src/main/java/com/provectus/kafka/ui/pages/MainPage.java +++ b/kafka-ui-e2e-checks/src/main/java/com/provectus/kafka/ui/pages/MainPage.java @@ -3,8 +3,8 @@ package com.provectus.kafka.ui.pages; import com.codeborne.selenide.Condition; import com.codeborne.selenide.Selenide; import com.codeborne.selenide.SelenideElement; -import com.provectus.kafka.ui.extensions.WaitUtils; -import com.provectus.kafka.ui.helpers.TestConfiguration; +import com.provectus.kafka.ui.utilities.WaitUtils; +import com.provectus.kafka.ui.settings.Source; import io.qameta.allure.Step; import lombok.experimental.ExtensionMethod; import org.openqa.selenium.By; @@ -19,7 +19,7 @@ public class MainPage { @Step public MainPage goTo() { - Selenide.open(TestConfiguration.BASE_WEB_URL + path); + Selenide.open(Source.BASE_WEB_URL + path); return this; } diff --git a/kafka-ui-e2e-checks/src/main/java/com/provectus/kafka/ui/pages/connector/ConnectorCreateView.java b/kafka-ui-e2e-checks/src/main/java/com/provectus/kafka/ui/pages/connector/ConnectorCreateView.java index a12aca5917..16faa76058 100644 --- a/kafka-ui-e2e-checks/src/main/java/com/provectus/kafka/ui/pages/connector/ConnectorCreateView.java +++ b/kafka-ui-e2e-checks/src/main/java/com/provectus/kafka/ui/pages/connector/ConnectorCreateView.java @@ -2,15 +2,15 @@ package com.provectus.kafka.ui.pages.connector; import com.codeborne.selenide.Condition; import com.codeborne.selenide.SelenideElement; -import com.provectus.kafka.ui.extensions.WaitUtils; -import com.provectus.kafka.ui.utils.BrowserUtils; +import com.provectus.kafka.ui.utilities.WaitUtils; import io.qameta.allure.Step; import lombok.experimental.ExtensionMethod; import org.openqa.selenium.By; import static com.codeborne.selenide.Selenide.$; import static com.codeborne.selenide.Selenide.sleep; -import static com.provectus.kafka.ui.screenshots.Screenshooter.log; +import static com.provectus.kafka.ui.utilities.WebUtils.javaExecutorClick; +import static com.provectus.kafka.ui.utilities.screenshots.Screenshooter.log; @ExtensionMethod(WaitUtils.class) public class ConnectorCreateView { @@ -28,7 +28,7 @@ public class ConnectorCreateView { contentTextArea.setValue(""); contentTextArea.setValue(String.valueOf(configJson.toCharArray())); nameField.click(); - BrowserUtils.javaExecutorClick(submitButton); + javaExecutorClick(submitButton); sleep(4000); log.info("Connector config is submitted"); return new ConnectorsView(); diff --git a/kafka-ui-e2e-checks/src/main/java/com/provectus/kafka/ui/pages/connector/ConnectorUpdateView.java b/kafka-ui-e2e-checks/src/main/java/com/provectus/kafka/ui/pages/connector/ConnectorUpdateView.java deleted file mode 100644 index 4e7e7b5220..0000000000 --- a/kafka-ui-e2e-checks/src/main/java/com/provectus/kafka/ui/pages/connector/ConnectorUpdateView.java +++ /dev/null @@ -1,49 +0,0 @@ -package com.provectus.kafka.ui.pages.connector; - -import com.codeborne.selenide.Condition; -import com.codeborne.selenide.SelenideElement; -import com.provectus.kafka.ui.utils.BrowserUtils; -import io.qameta.allure.Step; -import org.openqa.selenium.By; -import org.openqa.selenium.Keys; - -import static com.codeborne.selenide.Selectors.byLinkText; -import static com.codeborne.selenide.Selenide.*; -import static com.provectus.kafka.ui.screenshots.Screenshooter.log; - -public class ConnectorUpdateView { - SelenideElement submitButton = $(By.xpath("//button[@type='submit']")); - SelenideElement contentTextArea = $("[wrap]"); - - - @Step("Update connector from new JSON") - public ConnectorUpdateView updateConnectorConfig(String configJson) { - BrowserUtils.javaExecutorClick($("#config")); - String str = configJson.replace("\r\n", ""); - executeJavaScript( - "function clearAndNot(){" + - "var editor = ace.edit('config');" + - "editor.setValue(\"\");" + - "editor.setValue('" + str + "');}" + - "clearAndNot();"); - $("#config").click(); - submitButton.click(); - $(byLinkText("Edit Config")).shouldBe(Condition.visible); - sleep(3000); - return this; - } - - @Step("Set connector config JSON") - public ConnectorsView updConnectorConfig(String configJson) { - $("#config").click(); - contentTextArea.sendKeys(Keys.LEFT_CONTROL+"a"); - contentTextArea.setValue(""); - contentTextArea.setValue(String.valueOf(configJson.toCharArray())); - $("#config").click(); - submitButton.shouldBe(Condition.enabled); - BrowserUtils.javaExecutorClick(submitButton); - sleep(4000); - log.info("Connector config is submitted"); - return new ConnectorsView(); - } -} diff --git a/kafka-ui-e2e-checks/src/main/java/com/provectus/kafka/ui/pages/connector/ConnectorsList.java b/kafka-ui-e2e-checks/src/main/java/com/provectus/kafka/ui/pages/connector/ConnectorsList.java index d088f9cd3d..2eb8fdb282 100644 --- a/kafka-ui-e2e-checks/src/main/java/com/provectus/kafka/ui/pages/connector/ConnectorsList.java +++ b/kafka-ui-e2e-checks/src/main/java/com/provectus/kafka/ui/pages/connector/ConnectorsList.java @@ -2,16 +2,16 @@ package com.provectus.kafka.ui.pages.connector; import com.codeborne.selenide.Condition; import com.codeborne.selenide.Selenide; -import com.provectus.kafka.ui.extensions.WaitUtils; -import com.provectus.kafka.ui.helpers.TestConfiguration; -import com.provectus.kafka.ui.utils.BrowserUtils; +import com.provectus.kafka.ui.utilities.WaitUtils; +import com.provectus.kafka.ui.settings.Source; import io.qameta.allure.Step; import lombok.experimental.ExtensionMethod; import org.openqa.selenium.By; import static com.codeborne.selenide.Selenide.$; import static com.codeborne.selenide.Selenide.$x; -import static com.provectus.kafka.ui.extensions.WebUtils.isVisible; +import static com.provectus.kafka.ui.utilities.WebUtils.isVisible; +import static com.provectus.kafka.ui.utilities.WebUtils.javaExecutorClick; @ExtensionMethod(WaitUtils.class) public class ConnectorsList { @@ -20,7 +20,7 @@ public class ConnectorsList { @Step("Open URL to {cluster}") public ConnectorsList goTo(String cluster) { - Selenide.open(TestConfiguration.BASE_WEB_URL + String.format(path, cluster)); + Selenide.open(Source.BASE_WEB_URL + String.format(path, cluster)); return this; } @@ -32,7 +32,7 @@ public class ConnectorsList { @Step("Click on button 'Create Connector'") public ConnectorCreateView clickCreateConnectorButton() { - BrowserUtils.javaExecutorClick($x("//button[text()='Create Connector']")); + javaExecutorClick($x("//button[text()='Create Connector']")); return new ConnectorCreateView(); } diff --git a/kafka-ui-e2e-checks/src/main/java/com/provectus/kafka/ui/pages/connector/ConnectorsView.java b/kafka-ui-e2e-checks/src/main/java/com/provectus/kafka/ui/pages/connector/ConnectorsView.java index 772549c1c3..48f05529e3 100644 --- a/kafka-ui-e2e-checks/src/main/java/com/provectus/kafka/ui/pages/connector/ConnectorsView.java +++ b/kafka-ui-e2e-checks/src/main/java/com/provectus/kafka/ui/pages/connector/ConnectorsView.java @@ -3,44 +3,62 @@ package com.provectus.kafka.ui.pages.connector; import com.codeborne.selenide.Condition; import com.codeborne.selenide.Selenide; import com.codeborne.selenide.SelenideElement; -import com.provectus.kafka.ui.helpers.TestConfiguration; -import com.provectus.kafka.ui.extensions.WaitUtils; -import com.provectus.kafka.ui.utils.BrowserUtils; +import com.provectus.kafka.ui.settings.Source; +import com.provectus.kafka.ui.utilities.WaitUtils; import io.qameta.allure.Step; import lombok.experimental.ExtensionMethod; import org.openqa.selenium.By; +import org.openqa.selenium.Keys; -import static com.codeborne.selenide.Selenide.$; -import static com.codeborne.selenide.Selenide.$x; +import static com.codeborne.selenide.Selenide.*; +import static com.provectus.kafka.ui.utilities.WebUtils.javaExecutorClick; +import static com.provectus.kafka.ui.utilities.screenshots.Screenshooter.log; @ExtensionMethod(WaitUtils.class) public class ConnectorsView { private static final String path = "/ui/clusters/%s/connects/first/connectors/%s"; + protected SelenideElement submitButton = $(By.xpath("//button[@type='submit']")); + protected SelenideElement contentTextArea = $("[wrap]"); @Step public ConnectorsView goTo(String cluster, String connector) { - Selenide.open(String.format(TestConfiguration.BASE_WEB_URL + path, cluster, connector)); + Selenide.open(String.format(Source.BASE_WEB_URL + path, cluster, connector)); return this; } @Step() - public ConnectorUpdateView openConfigTab() { - BrowserUtils.javaExecutorClick($(By.xpath("//a[text() ='Config']"))); - return new ConnectorUpdateView(); + public ConnectorsView openConfigTab() { + javaExecutorClick($(By.xpath("//a[text() ='Config']"))); + return new ConnectorsView(); + } + + @Step("Set connector config JSON") + public ConnectorsView setConfig(String configJson) { + $("#config").click(); + contentTextArea.sendKeys(Keys.LEFT_CONTROL+"a"); + contentTextArea.setValue(""); + contentTextArea.setValue(String.valueOf(configJson.toCharArray())); + $("#config").click(); + submitButton.shouldBe(Condition.enabled); + javaExecutorClick(submitButton); + sleep(4000); + log.info("Connector config is submitted"); + return new ConnectorsView(); } @Step("Click 'Delete' button") public void clickDeleteButton() { - BrowserUtils.javaExecutorClick($x("//button[text()='Delete']")); + javaExecutorClick($x("//button[text()='Delete']")); SelenideElement confirmButton = $x("//div[@role=\"dialog\"]//button[text()='Confirm']"); confirmButton.shouldBe(Condition.enabled).click(); confirmButton.shouldBe(Condition.disappear); } @Step - public void connectorIsVisibleOnOverview() { + public ConnectorsView waitUntilScreenReady() { $(By.xpath("//a[text() ='Tasks']")).shouldBe(Condition.visible); $(By.xpath("//a[text() ='Config']")).shouldBe(Condition.visible); $(By.xpath("//a[text() ='Overview']")).shouldBe(Condition.visible); + return this; } } diff --git a/kafka-ui-e2e-checks/src/main/java/com/provectus/kafka/ui/pages/schema/SchemaCreateView.java b/kafka-ui-e2e-checks/src/main/java/com/provectus/kafka/ui/pages/schema/SchemaCreateView.java index c41153bbdb..aca3d0d6fc 100644 --- a/kafka-ui-e2e-checks/src/main/java/com/provectus/kafka/ui/pages/schema/SchemaCreateView.java +++ b/kafka-ui-e2e-checks/src/main/java/com/provectus/kafka/ui/pages/schema/SchemaCreateView.java @@ -2,12 +2,12 @@ package com.provectus.kafka.ui.pages.schema; import com.codeborne.selenide.SelenideElement; import com.provectus.kafka.ui.api.model.SchemaType; -import com.provectus.kafka.ui.utils.BrowserUtils; import io.qameta.allure.Step; import org.openqa.selenium.By; import static com.codeborne.selenide.Selenide.$; import static com.codeborne.selenide.Selenide.$x; +import static com.provectus.kafka.ui.utilities.WebUtils.javaExecutorClick; public class SchemaCreateView { @@ -22,7 +22,7 @@ public class SchemaCreateView { } @Step public SchemaView clickSubmit() { - BrowserUtils.javaExecutorClick(submitSchemaButton); + javaExecutorClick(submitSchemaButton); return new SchemaView(); } @Step diff --git a/kafka-ui-e2e-checks/src/main/java/com/provectus/kafka/ui/pages/schema/SchemaEditView.java b/kafka-ui-e2e-checks/src/main/java/com/provectus/kafka/ui/pages/schema/SchemaEditView.java index 9e853908e5..7dabffcd91 100644 --- a/kafka-ui-e2e-checks/src/main/java/com/provectus/kafka/ui/pages/schema/SchemaEditView.java +++ b/kafka-ui-e2e-checks/src/main/java/com/provectus/kafka/ui/pages/schema/SchemaEditView.java @@ -5,13 +5,13 @@ import com.codeborne.selenide.Selenide; import com.codeborne.selenide.SelenideElement; import com.provectus.kafka.ui.api.model.CompatibilityLevel; import com.provectus.kafka.ui.api.model.SchemaType; -import com.provectus.kafka.ui.utils.BrowserUtils; import io.qameta.allure.Step; import org.openqa.selenium.By; import org.openqa.selenium.Keys; import static com.codeborne.selenide.Selenide.$; import static com.codeborne.selenide.Selenide.$x; +import static com.provectus.kafka.ui.utilities.WebUtils.javaExecutorClick; public class SchemaEditView { @@ -32,7 +32,7 @@ public class SchemaEditView { } @Step public SchemaView clickSubmit() { - BrowserUtils.javaExecutorClick($(By.xpath("//button[@type='submit']"))); + javaExecutorClick($(By.xpath("//button[@type='submit']"))); return new SchemaView(); } diff --git a/kafka-ui-e2e-checks/src/main/java/com/provectus/kafka/ui/pages/schema/SchemaRegistryList.java b/kafka-ui-e2e-checks/src/main/java/com/provectus/kafka/ui/pages/schema/SchemaRegistryList.java index cdd50de737..e8a08264ab 100644 --- a/kafka-ui-e2e-checks/src/main/java/com/provectus/kafka/ui/pages/schema/SchemaRegistryList.java +++ b/kafka-ui-e2e-checks/src/main/java/com/provectus/kafka/ui/pages/schema/SchemaRegistryList.java @@ -2,12 +2,12 @@ package com.provectus.kafka.ui.pages.schema; import com.codeborne.selenide.Condition; import com.codeborne.selenide.SelenideElement; -import com.provectus.kafka.ui.utils.BrowserUtils; import io.qameta.allure.Step; import org.openqa.selenium.By; import static com.codeborne.selenide.Selenide.*; -import static com.provectus.kafka.ui.extensions.WebUtils.isVisible; +import static com.provectus.kafka.ui.utilities.WebUtils.isVisible; +import static com.provectus.kafka.ui.utilities.WebUtils.javaExecutorClick; public class SchemaRegistryList { @@ -15,7 +15,7 @@ public class SchemaRegistryList { @Step public SchemaCreateView clickCreateSchema() { - BrowserUtils.javaExecutorClick(schemaButton); + javaExecutorClick(schemaButton); return new SchemaCreateView(); } diff --git a/kafka-ui-e2e-checks/src/main/java/com/provectus/kafka/ui/pages/schema/SchemaView.java b/kafka-ui-e2e-checks/src/main/java/com/provectus/kafka/ui/pages/schema/SchemaView.java index e0b90bf3dd..b224bf102e 100644 --- a/kafka-ui-e2e-checks/src/main/java/com/provectus/kafka/ui/pages/schema/SchemaView.java +++ b/kafka-ui-e2e-checks/src/main/java/com/provectus/kafka/ui/pages/schema/SchemaView.java @@ -2,11 +2,12 @@ package com.provectus.kafka.ui.pages.schema; import com.codeborne.selenide.Condition; import com.codeborne.selenide.SelenideElement; -import com.provectus.kafka.ui.utils.BrowserUtils; import io.qameta.allure.Step; import org.openqa.selenium.By; import static com.codeborne.selenide.Selenide.*; +import static com.provectus.kafka.ui.utilities.WebUtils.javaExecutorClick; + public class SchemaView { protected SelenideElement dotMenuBtn = $$x("//button[@aria-label='Dropdown Toggle']").first(); @@ -29,7 +30,7 @@ public class SchemaView { } @Step public SchemaRegistryList removeSchema() { - BrowserUtils.javaExecutorClick(dotMenuBtn); + javaExecutorClick(dotMenuBtn); $(By.xpath("//*[contains(text(),'Remove')]")).click(); SelenideElement confirmButton = $x("//div[@role=\"dialog\"]//button[text()='Confirm']"); confirmButton.shouldBe(Condition.enabled).click(); diff --git a/kafka-ui-e2e-checks/src/main/java/com/provectus/kafka/ui/pages/topic/TopicCreateEditSettingsView.java b/kafka-ui-e2e-checks/src/main/java/com/provectus/kafka/ui/pages/topic/TopicCreateEditSettingsView.java index e7c75e3b9e..1ee1cc1eda 100644 --- a/kafka-ui-e2e-checks/src/main/java/com/provectus/kafka/ui/pages/topic/TopicCreateEditSettingsView.java +++ b/kafka-ui-e2e-checks/src/main/java/com/provectus/kafka/ui/pages/topic/TopicCreateEditSettingsView.java @@ -6,9 +6,9 @@ import com.codeborne.selenide.ElementsCollection; import com.codeborne.selenide.SelenideElement; import io.qameta.allure.Step; import org.openqa.selenium.By; -import com.provectus.kafka.ui.utils.BrowserUtils; import static com.codeborne.selenide.Selenide.*; +import static com.provectus.kafka.ui.utilities.WebUtils.javaExecutorClick; import static org.assertj.core.api.Assertions.assertThat; public class TopicCreateEditSettingsView { @@ -83,7 +83,7 @@ public class TopicCreateEditSettingsView { } @Step public TopicView sendData() { - BrowserUtils.javaExecutorClick($x("//button[@type='submit']")); + javaExecutorClick($x("//button[@type='submit']")); return new TopicView(); } @Step diff --git a/kafka-ui-e2e-checks/src/main/java/com/provectus/kafka/ui/pages/topic/TopicView.java b/kafka-ui-e2e-checks/src/main/java/com/provectus/kafka/ui/pages/topic/TopicView.java index adcd478828..4ac303573f 100644 --- a/kafka-ui-e2e-checks/src/main/java/com/provectus/kafka/ui/pages/topic/TopicView.java +++ b/kafka-ui-e2e-checks/src/main/java/com/provectus/kafka/ui/pages/topic/TopicView.java @@ -3,14 +3,14 @@ package com.provectus.kafka.ui.pages.topic; import com.codeborne.selenide.Condition; import com.codeborne.selenide.Selenide; import com.codeborne.selenide.SelenideElement; -import com.provectus.kafka.ui.extensions.WaitUtils; -import com.provectus.kafka.ui.helpers.TestConfiguration; -import com.provectus.kafka.ui.utils.BrowserUtils; +import com.provectus.kafka.ui.utilities.WaitUtils; +import com.provectus.kafka.ui.settings.Source; import io.qameta.allure.Step; import lombok.experimental.ExtensionMethod; import org.openqa.selenium.By; import static com.codeborne.selenide.Selenide.*; +import static com.provectus.kafka.ui.utilities.WebUtils.javaExecutorClick; @ExtensionMethod({WaitUtils.class}) public class TopicView { @@ -20,7 +20,7 @@ public class TopicView { @Step public TopicView goTo(String cluster, String topic) { - Selenide.open(TestConfiguration.BASE_WEB_URL + String.format(URL_PATH, cluster, topic)); + Selenide.open(Source.BASE_WEB_URL + String.format(URL_PATH, cluster, topic)); return this; } @@ -32,7 +32,7 @@ public class TopicView { @Step public TopicCreateEditSettingsView openEditSettings() { - BrowserUtils.javaExecutorClick(dotMenuBtn); + javaExecutorClick(dotMenuBtn); $x("//li[@role][text()='Edit settings']").click(); return new TopicCreateEditSettingsView(); } @@ -45,7 +45,7 @@ public class TopicView { @Step public TopicsList deleteTopic() { - BrowserUtils.javaExecutorClick(dotMenuBtn); + javaExecutorClick(dotMenuBtn); $x("//ul[@role='menu']//div[text()='Remove Topic']").click(); SelenideElement confirmButton = $x("//div[@role=\"dialog\"]//button[text()='Confirm']"); confirmButton.shouldBe(Condition.enabled).click(); @@ -55,7 +55,7 @@ public class TopicView { @Step public ProduceMessagePanel clickOnButton(String buttonName) { - BrowserUtils.javaExecutorClick($(By.xpath(String.format("//div//button[text()='%s']", buttonName)))); + javaExecutorClick($(By.xpath(String.format("//div//button[text()='%s']", buttonName)))); return new ProduceMessagePanel(); } diff --git a/kafka-ui-e2e-checks/src/main/java/com/provectus/kafka/ui/pages/topic/TopicsList.java b/kafka-ui-e2e-checks/src/main/java/com/provectus/kafka/ui/pages/topic/TopicsList.java index c3c833b89b..72fe6cfbf5 100644 --- a/kafka-ui-e2e-checks/src/main/java/com/provectus/kafka/ui/pages/topic/TopicsList.java +++ b/kafka-ui-e2e-checks/src/main/java/com/provectus/kafka/ui/pages/topic/TopicsList.java @@ -3,15 +3,15 @@ package com.provectus.kafka.ui.pages.topic; import com.codeborne.selenide.CollectionCondition; import com.codeborne.selenide.Condition; import com.codeborne.selenide.Selenide; -import com.provectus.kafka.ui.extensions.WaitUtils; -import com.provectus.kafka.ui.helpers.TestConfiguration; -import com.provectus.kafka.ui.utils.BrowserUtils; +import com.provectus.kafka.ui.utilities.WaitUtils; +import com.provectus.kafka.ui.settings.Source; import io.qameta.allure.Step; import lombok.experimental.ExtensionMethod; import org.openqa.selenium.By; import static com.codeborne.selenide.Selenide.*; -import static com.provectus.kafka.ui.extensions.WebUtils.isVisible; +import static com.provectus.kafka.ui.utilities.WebUtils.isVisible; +import static com.provectus.kafka.ui.utilities.WebUtils.javaExecutorClick; @ExtensionMethod(WaitUtils.class) public class TopicsList { @@ -20,7 +20,7 @@ public class TopicsList { @Step public TopicsList goTo(String cluster) { - Selenide.open(TestConfiguration.BASE_WEB_URL + String.format(path, cluster)); + Selenide.open(Source.BASE_WEB_URL + String.format(path, cluster)); return this; } @@ -33,7 +33,7 @@ public class TopicsList { @Step public TopicCreateEditSettingsView pressCreateNewTopic() { - BrowserUtils.javaExecutorClick($x("//button[normalize-space(text()) ='Add a Topic']")); + javaExecutorClick($x("//button[normalize-space(text()) ='Add a Topic']")); return new TopicCreateEditSettingsView(); } diff --git a/kafka-ui-e2e-checks/src/main/java/com/provectus/kafka/ui/settings/Source.java b/kafka-ui-e2e-checks/src/main/java/com/provectus/kafka/ui/settings/Source.java new file mode 100644 index 0000000000..f1c780214c --- /dev/null +++ b/kafka-ui-e2e-checks/src/main/java/com/provectus/kafka/ui/settings/Source.java @@ -0,0 +1,7 @@ +package com.provectus.kafka.ui.settings; + +public abstract class Source { + + public static String BASE_API_URL = System.getProperty("BASE_URL", "http://localhost:8080"); + public static String BASE_WEB_URL = System.getProperty("BASE_DOCKER_URL", "http://host.testcontainers.internal:8080"); +} diff --git a/kafka-ui-e2e-checks/src/main/java/com/provectus/kafka/ui/extensions/FileUtils.java b/kafka-ui-e2e-checks/src/main/java/com/provectus/kafka/ui/utilities/FileUtils.java similarity index 94% rename from kafka-ui-e2e-checks/src/main/java/com/provectus/kafka/ui/extensions/FileUtils.java rename to kafka-ui-e2e-checks/src/main/java/com/provectus/kafka/ui/utilities/FileUtils.java index bbe4dbf0b4..c2489a86c2 100644 --- a/kafka-ui-e2e-checks/src/main/java/com/provectus/kafka/ui/extensions/FileUtils.java +++ b/kafka-ui-e2e-checks/src/main/java/com/provectus/kafka/ui/utilities/FileUtils.java @@ -1,4 +1,4 @@ -package com.provectus.kafka.ui.extensions; +package com.provectus.kafka.ui.utilities; import org.testcontainers.shaded.org.apache.commons.io.IOUtils; diff --git a/kafka-ui-e2e-checks/src/main/java/com/provectus/kafka/ui/extensions/WaitUtils.java b/kafka-ui-e2e-checks/src/main/java/com/provectus/kafka/ui/utilities/WaitUtils.java similarity index 95% rename from kafka-ui-e2e-checks/src/main/java/com/provectus/kafka/ui/extensions/WaitUtils.java rename to kafka-ui-e2e-checks/src/main/java/com/provectus/kafka/ui/utilities/WaitUtils.java index f6f404d4b1..ec4ee223cb 100644 --- a/kafka-ui-e2e-checks/src/main/java/com/provectus/kafka/ui/extensions/WaitUtils.java +++ b/kafka-ui-e2e-checks/src/main/java/com/provectus/kafka/ui/utilities/WaitUtils.java @@ -1,4 +1,4 @@ -package com.provectus.kafka.ui.extensions; +package com.provectus.kafka.ui.utilities; import com.codeborne.selenide.Condition; import com.codeborne.selenide.SelenideElement; diff --git a/kafka-ui-e2e-checks/src/main/java/com/provectus/kafka/ui/extensions/WebUtils.java b/kafka-ui-e2e-checks/src/main/java/com/provectus/kafka/ui/utilities/WebUtils.java similarity index 68% rename from kafka-ui-e2e-checks/src/main/java/com/provectus/kafka/ui/extensions/WebUtils.java rename to kafka-ui-e2e-checks/src/main/java/com/provectus/kafka/ui/utilities/WebUtils.java index 2c39fb550d..f88a98f5ba 100644 --- a/kafka-ui-e2e-checks/src/main/java/com/provectus/kafka/ui/extensions/WebUtils.java +++ b/kafka-ui-e2e-checks/src/main/java/com/provectus/kafka/ui/utilities/WebUtils.java @@ -1,12 +1,17 @@ -package com.provectus.kafka.ui.extensions; +package com.provectus.kafka.ui.utilities; import com.codeborne.selenide.Condition; +import com.codeborne.selenide.Selenide; import com.codeborne.selenide.SelenideElement; import lombok.extern.slf4j.Slf4j; @Slf4j public class WebUtils { + public static void javaExecutorClick(SelenideElement element){ + Selenide.executeJavaScript("arguments[0].click();", element); + } + public static boolean isVisible(SelenideElement element) { boolean isVisible = false; try { diff --git a/kafka-ui-e2e-checks/src/main/java/com/provectus/kafka/ui/utils/CamelCaseToSpacedDisplayNameGenerator.java b/kafka-ui-e2e-checks/src/main/java/com/provectus/kafka/ui/utilities/qaseIoUtils/DisplayNameGenerator.java similarity index 85% rename from kafka-ui-e2e-checks/src/main/java/com/provectus/kafka/ui/utils/CamelCaseToSpacedDisplayNameGenerator.java rename to kafka-ui-e2e-checks/src/main/java/com/provectus/kafka/ui/utilities/qaseIoUtils/DisplayNameGenerator.java index f5c0d689af..15d239983c 100644 --- a/kafka-ui-e2e-checks/src/main/java/com/provectus/kafka/ui/utils/CamelCaseToSpacedDisplayNameGenerator.java +++ b/kafka-ui-e2e-checks/src/main/java/com/provectus/kafka/ui/utilities/qaseIoUtils/DisplayNameGenerator.java @@ -1,12 +1,11 @@ -package com.provectus.kafka.ui.utils; +package com.provectus.kafka.ui.utilities.qaseIoUtils; -import org.junit.jupiter.api.DisplayNameGenerator; import org.junit.platform.commons.util.ClassUtils; import org.junit.platform.commons.util.Preconditions; import java.lang.reflect.Method; -public class CamelCaseToSpacedDisplayNameGenerator implements DisplayNameGenerator { +public class DisplayNameGenerator implements org.junit.jupiter.api.DisplayNameGenerator { @Override public String generateDisplayNameForClass(Class testClass) { String name = testClass.getName(); diff --git a/kafka-ui-e2e-checks/src/main/java/com/provectus/kafka/ui/extensions/QaseExtension.java b/kafka-ui-e2e-checks/src/main/java/com/provectus/kafka/ui/utilities/qaseIoUtils/QaseExtension.java similarity index 98% rename from kafka-ui-e2e-checks/src/main/java/com/provectus/kafka/ui/extensions/QaseExtension.java rename to kafka-ui-e2e-checks/src/main/java/com/provectus/kafka/ui/utilities/qaseIoUtils/QaseExtension.java index 1f87d0d1bb..fcc19f31e2 100644 --- a/kafka-ui-e2e-checks/src/main/java/com/provectus/kafka/ui/extensions/QaseExtension.java +++ b/kafka-ui-e2e-checks/src/main/java/com/provectus/kafka/ui/utilities/qaseIoUtils/QaseExtension.java @@ -1,6 +1,5 @@ -package com.provectus.kafka.ui.extensions; +package com.provectus.kafka.ui.utilities.qaseIoUtils; -import com.provectus.kafka.ui.utils.qaseIO.TestCaseGenerator; import io.qase.api.QaseClient; import io.qase.api.StepStorage; import io.qase.api.exceptions.QaseException; @@ -41,11 +40,9 @@ public class QaseExtension implements TestExecutionListener { static { String qaseApiToken = System.getProperty("QASEIO_API_TOKEN"); - if (qaseApiToken == null || StringUtils.isEmpty(qaseApiToken)) { throw new RuntimeException("QaseIO API token should be present"); } - if ("true".equalsIgnoreCase(System.getProperty("QASEIO_CREATE_TESTRUN"))) { System.setProperty("QASE_RUN_NAME", "Automation run " + new SimpleDateFormat("dd/MM/yyyy HH:mm:ss").format(new Date())); @@ -56,7 +53,6 @@ public class QaseExtension implements TestExecutionListener { System.setProperty("QASE_USE_BULK", "false"); } - @Override public void executionStarted(TestIdentifier testIdentifier) { if (QaseClient.isEnabled() && testIdentifier.isTest()) { diff --git a/kafka-ui-e2e-checks/src/main/java/com/provectus/kafka/ui/utils/qaseIO/TestCaseGenerator.java b/kafka-ui-e2e-checks/src/main/java/com/provectus/kafka/ui/utilities/qaseIoUtils/TestCaseGenerator.java similarity index 86% rename from kafka-ui-e2e-checks/src/main/java/com/provectus/kafka/ui/utils/qaseIO/TestCaseGenerator.java rename to kafka-ui-e2e-checks/src/main/java/com/provectus/kafka/ui/utilities/qaseIoUtils/TestCaseGenerator.java index 8f1f57d8ae..05666621c4 100644 --- a/kafka-ui-e2e-checks/src/main/java/com/provectus/kafka/ui/utils/qaseIO/TestCaseGenerator.java +++ b/kafka-ui-e2e-checks/src/main/java/com/provectus/kafka/ui/utilities/qaseIoUtils/TestCaseGenerator.java @@ -1,7 +1,8 @@ -package com.provectus.kafka.ui.utils.qaseIO; +package com.provectus.kafka.ui.utilities.qaseIoUtils; -import com.provectus.kafka.ui.utils.qaseIO.annotation.AutomationStatus; -import com.provectus.kafka.ui.utils.qaseIO.annotation.Suite; +import com.provectus.kafka.ui.utilities.qaseIoUtils.annotations.AutomationStatus; +import com.provectus.kafka.ui.utilities.qaseIoUtils.annotations.Suite; +import com.provectus.kafka.ui.utilities.qaseIoUtils.enums.Status; import io.qase.api.QaseClient; import io.qase.api.annotation.CaseId; import io.qase.client.ApiClient; @@ -9,14 +10,13 @@ import io.qase.client.api.CasesApi; import io.qase.client.model.*; import lombok.SneakyThrows; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.ArrayUtils; +import org.apache.commons.lang3.StringUtils; import org.junit.Assert; import org.junit.platform.engine.support.descriptor.MethodSource; import java.lang.reflect.Method; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.Objects; +import java.util.*; import static io.qase.api.QaseClient.getConfig; @@ -146,9 +146,18 @@ public class TestCaseGenerator { return true; } + private static String formatTestCaseTitle(String testMethodName) { + String[] split = StringUtils.splitByCharacterTypeCamelCase(testMethodName); + String[] name = Arrays.stream(split).map(String::toLowerCase).toArray(String[]::new); + String[] subarray = ArrayUtils.subarray(name, 1, name.length); + ArrayList stringList = new ArrayList<>(Arrays.asList(subarray)); + stringList.add(0, StringUtils.capitalize(name[0])); + return StringUtils.join(stringList, " "); + } + public static String generateTestCaseTitle(Method testMethod) { return getClassName(MethodSource.from(testMethod)) + "." + testMethod.getName() + " : " + - MethodNameUtils.formatTestCaseTitle(testMethod.getName()); + formatTestCaseTitle(testMethod.getName()); } private static String getClassName(MethodSource testSource) { diff --git a/kafka-ui-e2e-checks/src/main/java/com/provectus/kafka/ui/utils/qaseIO/annotation/AutomationStatus.java b/kafka-ui-e2e-checks/src/main/java/com/provectus/kafka/ui/utilities/qaseIoUtils/annotations/AutomationStatus.java similarity index 58% rename from kafka-ui-e2e-checks/src/main/java/com/provectus/kafka/ui/utils/qaseIO/annotation/AutomationStatus.java rename to kafka-ui-e2e-checks/src/main/java/com/provectus/kafka/ui/utilities/qaseIoUtils/annotations/AutomationStatus.java index d6b7734412..abaed2a0ee 100644 --- a/kafka-ui-e2e-checks/src/main/java/com/provectus/kafka/ui/utils/qaseIO/annotation/AutomationStatus.java +++ b/kafka-ui-e2e-checks/src/main/java/com/provectus/kafka/ui/utilities/qaseIoUtils/annotations/AutomationStatus.java @@ -1,6 +1,6 @@ -package com.provectus.kafka.ui.utils.qaseIO.annotation; +package com.provectus.kafka.ui.utilities.qaseIoUtils.annotations; -import com.provectus.kafka.ui.utils.qaseIO.Status; +import com.provectus.kafka.ui.utilities.qaseIoUtils.enums.Status; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; diff --git a/kafka-ui-e2e-checks/src/main/java/com/provectus/kafka/ui/utils/qaseIO/annotation/Suite.java b/kafka-ui-e2e-checks/src/main/java/com/provectus/kafka/ui/utilities/qaseIoUtils/annotations/Suite.java similarity index 74% rename from kafka-ui-e2e-checks/src/main/java/com/provectus/kafka/ui/utils/qaseIO/annotation/Suite.java rename to kafka-ui-e2e-checks/src/main/java/com/provectus/kafka/ui/utilities/qaseIoUtils/annotations/Suite.java index c70fe0308b..3e688cd797 100644 --- a/kafka-ui-e2e-checks/src/main/java/com/provectus/kafka/ui/utils/qaseIO/annotation/Suite.java +++ b/kafka-ui-e2e-checks/src/main/java/com/provectus/kafka/ui/utilities/qaseIoUtils/annotations/Suite.java @@ -1,4 +1,4 @@ -package com.provectus.kafka.ui.utils.qaseIO.annotation; +package com.provectus.kafka.ui.utilities.qaseIoUtils.annotations; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; diff --git a/kafka-ui-e2e-checks/src/main/java/com/provectus/kafka/ui/utils/qaseIO/Status.java b/kafka-ui-e2e-checks/src/main/java/com/provectus/kafka/ui/utilities/qaseIoUtils/enums/Status.java similarity index 51% rename from kafka-ui-e2e-checks/src/main/java/com/provectus/kafka/ui/utils/qaseIO/Status.java rename to kafka-ui-e2e-checks/src/main/java/com/provectus/kafka/ui/utilities/qaseIoUtils/enums/Status.java index 534a153014..024acbc91a 100644 --- a/kafka-ui-e2e-checks/src/main/java/com/provectus/kafka/ui/utils/qaseIO/Status.java +++ b/kafka-ui-e2e-checks/src/main/java/com/provectus/kafka/ui/utilities/qaseIoUtils/enums/Status.java @@ -1,4 +1,4 @@ -package com.provectus.kafka.ui.utils.qaseIO; +package com.provectus.kafka.ui.utilities.qaseIoUtils.enums; public enum Status { AUTOMATED, TO_BE_AUTOMATED, MANUAL; diff --git a/kafka-ui-e2e-checks/src/main/java/com/provectus/kafka/ui/screenshots/NoReferenceScreenshotFoundException.java b/kafka-ui-e2e-checks/src/main/java/com/provectus/kafka/ui/utilities/screenshots/NoReferenceScreenshotFoundException.java similarity index 78% rename from kafka-ui-e2e-checks/src/main/java/com/provectus/kafka/ui/screenshots/NoReferenceScreenshotFoundException.java rename to kafka-ui-e2e-checks/src/main/java/com/provectus/kafka/ui/utilities/screenshots/NoReferenceScreenshotFoundException.java index 9818aab011..0011c4f0a1 100644 --- a/kafka-ui-e2e-checks/src/main/java/com/provectus/kafka/ui/screenshots/NoReferenceScreenshotFoundException.java +++ b/kafka-ui-e2e-checks/src/main/java/com/provectus/kafka/ui/utilities/screenshots/NoReferenceScreenshotFoundException.java @@ -1,4 +1,4 @@ -package com.provectus.kafka.ui.screenshots; +package com.provectus.kafka.ui.utilities.screenshots; public class NoReferenceScreenshotFoundException extends Throwable { public NoReferenceScreenshotFoundException(String name) { diff --git a/kafka-ui-e2e-checks/src/main/java/com/provectus/kafka/ui/screenshots/Screenshooter.java b/kafka-ui-e2e-checks/src/main/java/com/provectus/kafka/ui/utilities/screenshots/Screenshooter.java similarity index 98% rename from kafka-ui-e2e-checks/src/main/java/com/provectus/kafka/ui/screenshots/Screenshooter.java rename to kafka-ui-e2e-checks/src/main/java/com/provectus/kafka/ui/utilities/screenshots/Screenshooter.java index d412050b29..136a9e8bd4 100644 --- a/kafka-ui-e2e-checks/src/main/java/com/provectus/kafka/ui/screenshots/Screenshooter.java +++ b/kafka-ui-e2e-checks/src/main/java/com/provectus/kafka/ui/utilities/screenshots/Screenshooter.java @@ -1,4 +1,4 @@ -package com.provectus.kafka.ui.screenshots; +package com.provectus.kafka.ui.utilities.screenshots; import io.qameta.allure.Allure; import io.qameta.allure.Attachment; @@ -29,7 +29,7 @@ public class Screenshooter { private static final int PIXELS_THRESHOLD = Integer.parseInt(System.getProperty("PIXELS_THRESHOLD", "200")); private static final String SCREENSHOTS_FOLDER = - System.getProperty("SCREENSHOTS_FOLDER", "com/provectus/kafka/ui/screenshots/"); + System.getProperty("SCREENSHOTS_FOLDER", "com/provectus/kafka/ui/utilities/screenshots/"); private static final String DIFF_SCREENSHOTS_FOLDER = System.getProperty("DIFF_SCREENSHOTS_FOLDER", "build/__diff__/"); private static final String ACTUAL_SCREENSHOTS_FOLDER = diff --git a/kafka-ui-e2e-checks/src/main/java/com/provectus/kafka/ui/utils/BrowserUtils.java b/kafka-ui-e2e-checks/src/main/java/com/provectus/kafka/ui/utils/BrowserUtils.java deleted file mode 100644 index 7549c5c111..0000000000 --- a/kafka-ui-e2e-checks/src/main/java/com/provectus/kafka/ui/utils/BrowserUtils.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.provectus.kafka.ui.utils; - -import com.codeborne.selenide.Selenide; -import com.codeborne.selenide.SelenideElement; -import org.openqa.selenium.NoSuchElementException; - -public class BrowserUtils { - - public static void javaExecutorClick(SelenideElement element){ - Selenide.executeJavaScript("arguments[0].click();", element); - } - - public static void waitElementPresentJavaExecutor( SelenideElement element ) { - try { - Selenide.executeJavaScript("return typeof(arguments[0]) != 'undefined' && arguments[0] != null;", - element); - } - catch(org.openqa.selenium.StaleElementReferenceException | NoSuchElementException ex){ - Selenide.executeJavaScript("return typeof(arguments[0]) != 'undefined' && arguments[0] != null;", - element); - } - } -} diff --git a/kafka-ui-e2e-checks/src/main/java/com/provectus/kafka/ui/utils/qaseIO/MethodNameUtils.java b/kafka-ui-e2e-checks/src/main/java/com/provectus/kafka/ui/utils/qaseIO/MethodNameUtils.java deleted file mode 100644 index 3bd8bf6736..0000000000 --- a/kafka-ui-e2e-checks/src/main/java/com/provectus/kafka/ui/utils/qaseIO/MethodNameUtils.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.provectus.kafka.ui.utils.qaseIO; - -import org.apache.commons.lang3.ArrayUtils; -import org.apache.commons.lang3.StringUtils; - -import java.util.ArrayList; -import java.util.Arrays; - -public class MethodNameUtils { - - public static String formatTestCaseTitle(String testMethodName) { - String[] split = StringUtils.splitByCharacterTypeCamelCase(testMethodName); - - String[] name = Arrays.stream(split).map(String::toLowerCase).toArray(String[]::new); - - String[] subarray = ArrayUtils.subarray(name, 1, name.length); - - ArrayList stringList = new ArrayList<>(Arrays.asList(subarray)); - stringList.add(0, StringUtils.capitalize(name[0])); - - return StringUtils.join(stringList, " "); - } -} diff --git a/kafka-ui-e2e-checks/src/main/resources/META-INF/services/org.junit.platform.launcher.TestExecutionListener b/kafka-ui-e2e-checks/src/main/resources/META-INF/services/org.junit.platform.launcher.TestExecutionListener index a63e49fe75..dd3c3f5e90 100644 --- a/kafka-ui-e2e-checks/src/main/resources/META-INF/services/org.junit.platform.launcher.TestExecutionListener +++ b/kafka-ui-e2e-checks/src/main/resources/META-INF/services/org.junit.platform.launcher.TestExecutionListener @@ -1 +1 @@ -com.provectus.kafka.ui.extensions.QaseExtension \ No newline at end of file +com.provectus.kafka.ui.utilities.qaseIoUtils.QaseExtension \ No newline at end of file diff --git a/kafka-ui-e2e-checks/src/test/java/com/provectus/kafka/ui/SmokeTests.java b/kafka-ui-e2e-checks/src/test/java/com/provectus/kafka/ui/SmokeTests.java index 3c364bbeed..ee2024d0e7 100644 --- a/kafka-ui-e2e-checks/src/test/java/com/provectus/kafka/ui/SmokeTests.java +++ b/kafka-ui-e2e-checks/src/test/java/com/provectus/kafka/ui/SmokeTests.java @@ -1,8 +1,8 @@ package com.provectus.kafka.ui; import com.provectus.kafka.ui.base.BaseTest; -import com.provectus.kafka.ui.utils.qaseIO.Status; -import com.provectus.kafka.ui.utils.qaseIO.annotation.AutomationStatus; +import com.provectus.kafka.ui.utilities.qaseIoUtils.enums.Status; +import com.provectus.kafka.ui.utilities.qaseIoUtils.annotations.AutomationStatus; import io.qase.api.annotation.CaseId; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; diff --git a/kafka-ui-e2e-checks/src/test/java/com/provectus/kafka/ui/base/BaseTest.java b/kafka-ui-e2e-checks/src/test/java/com/provectus/kafka/ui/base/BaseTest.java index dbb13c3df2..990bad8dba 100644 --- a/kafka-ui-e2e-checks/src/test/java/com/provectus/kafka/ui/base/BaseTest.java +++ b/kafka-ui-e2e-checks/src/test/java/com/provectus/kafka/ui/base/BaseTest.java @@ -4,11 +4,10 @@ import com.codeborne.selenide.Configuration; import com.codeborne.selenide.WebDriverRunner; import com.codeborne.selenide.logevents.SelenideLogger; import com.provectus.kafka.ui.helpers.Helpers; -import com.provectus.kafka.ui.helpers.TestConfiguration; import com.provectus.kafka.ui.pages.Pages; -import com.provectus.kafka.ui.screenshots.Screenshooter; -import com.provectus.kafka.ui.utils.CamelCaseToSpacedDisplayNameGenerator; -import com.provectus.kafka.ui.utils.qaseIO.TestCaseGenerator; +import com.provectus.kafka.ui.utilities.qaseIoUtils.DisplayNameGenerator; +import com.provectus.kafka.ui.utilities.qaseIoUtils.TestCaseGenerator; +import com.provectus.kafka.ui.utilities.screenshots.Screenshooter; import io.github.cdimascio.dotenv.Dotenv; import io.qameta.allure.Allure; import io.qameta.allure.selenide.AllureSelenide; @@ -32,7 +31,7 @@ import java.io.IOException; import java.util.Arrays; @Slf4j -@DisplayNameGeneration(CamelCaseToSpacedDisplayNameGenerator.class) +@DisplayNameGeneration(DisplayNameGenerator.class) public class BaseTest { public static final String SELENIUM_IMAGE_NAME = "selenium/standalone-chrome:103.0"; @@ -103,7 +102,7 @@ public class BaseTest { } } Dotenv.load().entries().forEach(env -> System.setProperty(env.getKey(), env.getValue())); - if (TestConfiguration.CLEAR_REPORTS_DIR) { + if (Config.CLEAR_REPORTS_DIR) { clearReports(); } setup(); @@ -125,28 +124,27 @@ public class BaseTest { @SneakyThrows private static void setup() { - Configuration.reportsFolder = TestConfiguration.REPORTS_FOLDER; - Configuration.screenshots = TestConfiguration.SCREENSHOTS; - Configuration.savePageSource = TestConfiguration.SAVE_PAGE_SOURCE; - Configuration.reopenBrowserOnFail = TestConfiguration.REOPEN_BROWSER_ON_FAIL; - Configuration.browser = TestConfiguration.BROWSER; - Configuration.baseUrl = TestConfiguration.BASE_WEB_URL; + Configuration.reportsFolder = Config.REPORTS_FOLDER; + Configuration.screenshots = Config.SCREENSHOTS; + Configuration.savePageSource = Config.SAVE_PAGE_SOURCE; + Configuration.reopenBrowserOnFail = Config.REOPEN_BROWSER_ON_FAIL; + Configuration.browser = Config.BROWSER; Configuration.timeout = 10000; Configuration.pageLoadTimeout = 180000; - Configuration.browserSize = TestConfiguration.BROWSER_SIZE; + Configuration.browserSize = Config.BROWSER_SIZE; SelenideLogger.addListener("allure", new AllureSelenide().savePageSource(false)); } public static void clearReports() { - log.info(String.format("Clearing reports dir [%s]...", TestConfiguration.REPORTS_FOLDER)); - File allureResults = new File(TestConfiguration.REPORTS_FOLDER); + log.info(String.format("Clearing reports dir [%s]...", Config.REPORTS_FOLDER)); + File allureResults = new File(Config.REPORTS_FOLDER); if (allureResults.isDirectory()) { File[] list = allureResults.listFiles(); if (list != null) { Arrays.stream(list) - .sequential() - .filter(e -> !e.getName().equals("categories.json")) - .forEach(File::delete); + .sequential() + .filter(e -> !e.getName().equals("categories.json")) + .forEach(File::delete); } } } diff --git a/kafka-ui-e2e-checks/src/test/java/com/provectus/kafka/ui/base/Config.java b/kafka-ui-e2e-checks/src/test/java/com/provectus/kafka/ui/base/Config.java new file mode 100644 index 0000000000..900a6c0f90 --- /dev/null +++ b/kafka-ui-e2e-checks/src/test/java/com/provectus/kafka/ui/base/Config.java @@ -0,0 +1,19 @@ +package com.provectus.kafka.ui.base; + +public abstract class Config { + + public static boolean CLEAR_REPORTS_DIR = + Boolean.parseBoolean(System.getProperty("CLEAR_REPORTS_DIR", "true")); + public static boolean USE_LOCAL_BROWSER = + Boolean.parseBoolean(System.getProperty("USE_LOCAL_BROWSER", "true")); + public static String REPORTS_FOLDER = System.getProperty("REPORTS_FOLDER", "allure-results"); + public static Boolean SCREENSHOTS = + Boolean.parseBoolean(System.getProperty("SCREENSHOTS", "true")); + public static Boolean SAVE_PAGE_SOURCE = + Boolean.parseBoolean(System.getProperty("SAVE_PAGE_SOURCE", "false")); + public static Boolean REOPEN_BROWSER_ON_FAIL = + Boolean.parseBoolean(System.getProperty("REOPEN_BROWSER_ON_FAIL", "true")); + public static String BROWSER = System.getProperty("BROWSER", "chromium"); + public static String BROWSER_SIZE = System.getProperty("BROWSER_SIZE", "1920x1080"); + public static Boolean ENABLE_VNC = Boolean.parseBoolean(System.getProperty("ENABLE_VNC", "true")); +} diff --git a/kafka-ui-e2e-checks/src/test/java/com/provectus/kafka/ui/tests/ConnectorsTests.java b/kafka-ui-e2e-checks/src/test/java/com/provectus/kafka/ui/tests/ConnectorsTests.java index 2b858eec1b..bc643fa5b3 100644 --- a/kafka-ui-e2e-checks/src/test/java/com/provectus/kafka/ui/tests/ConnectorsTests.java +++ b/kafka-ui-e2e-checks/src/test/java/com/provectus/kafka/ui/tests/ConnectorsTests.java @@ -4,16 +4,16 @@ import com.provectus.kafka.ui.base.BaseTest; import com.provectus.kafka.ui.helpers.Helpers; import com.provectus.kafka.ui.models.Connector; import com.provectus.kafka.ui.models.Topic; -import com.provectus.kafka.ui.utils.qaseIO.Status; -import com.provectus.kafka.ui.utils.qaseIO.annotation.AutomationStatus; -import com.provectus.kafka.ui.utils.qaseIO.annotation.Suite; +import com.provectus.kafka.ui.utilities.qaseIoUtils.enums.Status; +import com.provectus.kafka.ui.utilities.qaseIoUtils.annotations.AutomationStatus; +import com.provectus.kafka.ui.utilities.qaseIoUtils.annotations.Suite; import io.qase.api.annotation.CaseId; import org.junit.jupiter.api.*; import java.util.ArrayList; import java.util.List; -import static com.provectus.kafka.ui.extensions.FileUtils.getResourceAsString; +import static com.provectus.kafka.ui.utilities.FileUtils.getResourceAsString; public class ConnectorsTests extends BaseTest { private static final long SUITE_ID = 10; @@ -80,9 +80,10 @@ public class ConnectorsTests extends BaseTest { pages.openConnectorsList(CLUSTER_NAME) .waitUntilScreenReady() .openConnector(CONNECTOR_FOR_UPDATE.getName()); - pages.connectorsView.connectorIsVisibleOnOverview(); - pages.connectorsView.openConfigTab() - .updConnectorConfig(CONNECTOR_FOR_UPDATE.getConfig()); + pages.connectorsView + .waitUntilScreenReady() + .openConfigTab() + .setConfig(CONNECTOR_FOR_UPDATE.getConfig()); pages.openConnectorsList(CLUSTER_NAME); Assertions.assertTrue(pages.connectorsList.isConnectorVisible(CONNECTOR_FOR_UPDATE.getName()),"isConnectorVisible()"); } diff --git a/kafka-ui-e2e-checks/src/test/java/com/provectus/kafka/ui/tests/SchemasTests.java b/kafka-ui-e2e-checks/src/test/java/com/provectus/kafka/ui/tests/SchemasTests.java index 265defb045..02588bcc10 100644 --- a/kafka-ui-e2e-checks/src/test/java/com/provectus/kafka/ui/tests/SchemasTests.java +++ b/kafka-ui-e2e-checks/src/test/java/com/provectus/kafka/ui/tests/SchemasTests.java @@ -7,9 +7,9 @@ import com.provectus.kafka.ui.models.Schema; import com.provectus.kafka.ui.pages.MainPage; import com.provectus.kafka.ui.pages.schema.SchemaEditView; import com.provectus.kafka.ui.pages.schema.SchemaView; -import com.provectus.kafka.ui.utils.qaseIO.Status; -import com.provectus.kafka.ui.utils.qaseIO.annotation.AutomationStatus; -import com.provectus.kafka.ui.utils.qaseIO.annotation.Suite; +import com.provectus.kafka.ui.utilities.qaseIoUtils.enums.Status; +import com.provectus.kafka.ui.utilities.qaseIoUtils.annotations.AutomationStatus; +import com.provectus.kafka.ui.utilities.qaseIoUtils.annotations.Suite; import io.qase.api.annotation.CaseId; import lombok.SneakyThrows; import org.junit.jupiter.api.*; @@ -17,7 +17,7 @@ import org.junit.jupiter.api.*; import java.util.ArrayList; import java.util.List; -import static com.provectus.kafka.ui.extensions.FileUtils.fileToString; +import static com.provectus.kafka.ui.utilities.FileUtils.fileToString; @TestMethodOrder(MethodOrderer.OrderAnnotation.class) diff --git a/kafka-ui-e2e-checks/src/test/java/com/provectus/kafka/ui/tests/TopicTests.java b/kafka-ui-e2e-checks/src/test/java/com/provectus/kafka/ui/tests/TopicTests.java index c284f2217b..5c6b0b86c1 100644 --- a/kafka-ui-e2e-checks/src/test/java/com/provectus/kafka/ui/tests/TopicTests.java +++ b/kafka-ui-e2e-checks/src/test/java/com/provectus/kafka/ui/tests/TopicTests.java @@ -6,9 +6,9 @@ import com.provectus.kafka.ui.models.Topic; import com.provectus.kafka.ui.pages.MainPage; import com.provectus.kafka.ui.pages.topic.TopicCreateEditSettingsView; import com.provectus.kafka.ui.pages.topic.TopicView; -import com.provectus.kafka.ui.utils.qaseIO.Status; -import com.provectus.kafka.ui.utils.qaseIO.annotation.AutomationStatus; -import com.provectus.kafka.ui.utils.qaseIO.annotation.Suite; +import com.provectus.kafka.ui.utilities.qaseIoUtils.enums.Status; +import com.provectus.kafka.ui.utilities.qaseIoUtils.annotations.AutomationStatus; +import com.provectus.kafka.ui.utilities.qaseIoUtils.annotations.Suite; import io.qase.api.annotation.CaseId; import org.assertj.core.api.SoftAssertions; import org.junit.jupiter.api.*; @@ -16,7 +16,7 @@ import org.junit.jupiter.api.*; import java.util.ArrayList; import java.util.List; -import static com.provectus.kafka.ui.extensions.FileUtils.fileToString; +import static com.provectus.kafka.ui.utilities.FileUtils.fileToString; public class TopicTests extends BaseTest { private static final long SUITE_ID = 2;