From 1fa95a6d86a18bd0fc8617bb7a609287d12d5e17 Mon Sep 17 00:00:00 2001 From: Nikol Georgieva Date: Fri, 6 Jun 2025 12:32:33 +0300 Subject: [PATCH 1/4] add test for extensionpoints --- .../tests/framework/browser/Browser.java | 2 + .../framework/browser/impl/BrowserImpl.java | 11 ++++ .../dirigible/tests/framework/ide/IDE.java | 18 +++++- .../tests/framework/ide/IDEFactory.java | 9 ++- .../framework/ide/OperationsPerspective.java | 22 +++++++ .../ide/OperationsPerspectiveFactory.java | 24 +++++++ .../tests/framework/ide/Workbench.java | 29 ++++++++- .../ui/tests/CreateExtensionPointIT.java | 62 +++++++++++++++++++ 8 files changed, 169 insertions(+), 8 deletions(-) create mode 100644 tests/tests-framework/src/main/java/org/eclipse/dirigible/tests/framework/ide/OperationsPerspective.java create mode 100644 tests/tests-framework/src/main/java/org/eclipse/dirigible/tests/framework/ide/OperationsPerspectiveFactory.java create mode 100644 tests/tests-integrations/src/main/java/org/eclipse/dirigible/integration/tests/ui/tests/CreateExtensionPointIT.java diff --git a/tests/tests-framework/src/main/java/org/eclipse/dirigible/tests/framework/browser/Browser.java b/tests/tests-framework/src/main/java/org/eclipse/dirigible/tests/framework/browser/Browser.java index 67fbe8920b8..6ebe6b42a06 100644 --- a/tests/tests-framework/src/main/java/org/eclipse/dirigible/tests/framework/browser/Browser.java +++ b/tests/tests-framework/src/main/java/org/eclipse/dirigible/tests/framework/browser/Browser.java @@ -80,6 +80,8 @@ public interface Browser { void doubleClickOnElementContainingText(String htmlElementType, String text); + void doubleClickOnElementById(String id); + void rightClickOnElementById(String id); void rightClickOnElementContainingText(HtmlElementType htmlElementType, String text); diff --git a/tests/tests-framework/src/main/java/org/eclipse/dirigible/tests/framework/browser/impl/BrowserImpl.java b/tests/tests-framework/src/main/java/org/eclipse/dirigible/tests/framework/browser/impl/BrowserImpl.java index 71dd527b69c..d3cdd1f2e2a 100644 --- a/tests/tests-framework/src/main/java/org/eclipse/dirigible/tests/framework/browser/impl/BrowserImpl.java +++ b/tests/tests-framework/src/main/java/org/eclipse/dirigible/tests/framework/browser/impl/BrowserImpl.java @@ -270,6 +270,12 @@ public By constructCssSelectorByTypeAndAttribute(String elementType, String attr return Selectors.byCssSelector(cssSelector); } + @Override + public void doubleClickOnElementById(String id) { + By by = Selectors.byId(id); + handleElementInAllFrames(by, this::doubleClickElement, Condition.visible, Condition.enabled); + } + @Override public void close() { Selenide.closeWebDriver(); @@ -467,6 +473,11 @@ private void clickElement(SelenideElement element) { .click(); } + private void doubleClickElement(SelenideElement element) { + element.scrollIntoView(true) + .doubleClick(); + } + @Override public void assertElementExistByAttributePatternAndText(HtmlElementType elementType, HtmlAttribute attribute, String pattern, String text) { diff --git a/tests/tests-framework/src/main/java/org/eclipse/dirigible/tests/framework/ide/IDE.java b/tests/tests-framework/src/main/java/org/eclipse/dirigible/tests/framework/ide/IDE.java index 8e4c9cb1bd1..61e24a08b32 100644 --- a/tests/tests-framework/src/main/java/org/eclipse/dirigible/tests/framework/ide/IDE.java +++ b/tests/tests-framework/src/main/java/org/eclipse/dirigible/tests/framework/ide/IDE.java @@ -42,19 +42,22 @@ public class IDE { private final WorkbenchFactory workbenchFactory; private final DatabasePerspectiveFactory databasePerspectiveFactory; private final GitPerspectiveFactory gitPerspectiveFactory; + private final OperationsPerspectiveFactory operationsPerspectiveFactory; @Autowired IDE(Browser browser, RestAssuredExecutor restAssuredExecutor, WorkbenchFactory workbenchFactory, - DatabasePerspectiveFactory databasePerspectiveFactory, GitPerspectiveFactory gitPerspectiveFactory) { + DatabasePerspectiveFactory databasePerspectiveFactory, GitPerspectiveFactory gitPerspectiveFactory, + OperationsPerspectiveFactory operationsPerspectiveFactory) { this(browser, DirigibleTestTenant.createDefaultTenant() .getUsername(), DirigibleTestTenant.createDefaultTenant() .getPassword(), - restAssuredExecutor, workbenchFactory, databasePerspectiveFactory, gitPerspectiveFactory); + restAssuredExecutor, workbenchFactory, databasePerspectiveFactory, gitPerspectiveFactory, operationsPerspectiveFactory); } IDE(Browser browser, String username, String password, RestAssuredExecutor restAssuredExecutor, WorkbenchFactory workbenchFactory, - DatabasePerspectiveFactory databasePerspectiveFactory, GitPerspectiveFactory gitPerspectiveFactory) { + DatabasePerspectiveFactory databasePerspectiveFactory, GitPerspectiveFactory gitPerspectiveFactory, + OperationsPerspectiveFactory operationsPerspectiveFactory) { this.browser = browser; this.restAssuredExecutor = restAssuredExecutor; this.username = username; @@ -62,6 +65,7 @@ public class IDE { this.workbenchFactory = workbenchFactory; this.databasePerspectiveFactory = databasePerspectiveFactory; this.gitPerspectiveFactory = gitPerspectiveFactory; + this.operationsPerspectiveFactory = operationsPerspectiveFactory; } public Browser getBrowser() { @@ -96,6 +100,14 @@ public DatabasePerspective openDatabasePerspective() { return databasePerspectiveFactory.create(browser); } + public OperationsPerspective openOperationsPerspective() { + openHomePage(); + + browser.clickOnElementById("perspective-operations"); + + return operationsPerspectiveFactory.create(browser); + } + public void openHomePage() { browser.openPath(ROOT_PATH); login(false); diff --git a/tests/tests-framework/src/main/java/org/eclipse/dirigible/tests/framework/ide/IDEFactory.java b/tests/tests-framework/src/main/java/org/eclipse/dirigible/tests/framework/ide/IDEFactory.java index 1976f4f9203..1bd6ea4a598 100644 --- a/tests/tests-framework/src/main/java/org/eclipse/dirigible/tests/framework/ide/IDEFactory.java +++ b/tests/tests-framework/src/main/java/org/eclipse/dirigible/tests/framework/ide/IDEFactory.java @@ -25,14 +25,17 @@ public class IDEFactory { private final WorkbenchFactory workbenchFactory; private final DatabasePerspectiveFactory databasePerspectiveFactory; private final GitPerspectiveFactory gitPerspectiveFactory; + private final OperationsPerspectiveFactory operationsPerspectiveFactory; protected IDEFactory(BrowserFactory browserFactory, RestAssuredExecutor restAssuredExecutor, WorkbenchFactory workbenchFactory, - DatabasePerspectiveFactory databasePerspectiveFactory, GitPerspectiveFactory gitPerspectiveFactory) { + DatabasePerspectiveFactory databasePerspectiveFactory, GitPerspectiveFactory gitPerspectiveFactory, + OperationsPerspectiveFactory operationsPerspectiveFactory) { this.browserFactory = browserFactory; this.restAssuredExecutor = restAssuredExecutor; this.workbenchFactory = workbenchFactory; this.databasePerspectiveFactory = databasePerspectiveFactory; this.gitPerspectiveFactory = gitPerspectiveFactory; + this.operationsPerspectiveFactory = operationsPerspectiveFactory; } public IDE create() { @@ -46,11 +49,11 @@ public IDE create(String username, String password) { public IDE create(Browser browser, String username, String password) { return new IDE(browser, username, password, restAssuredExecutor, workbenchFactory, databasePerspectiveFactory, - gitPerspectiveFactory); + gitPerspectiveFactory, operationsPerspectiveFactory); } public IDE create(String host, String username, String password) { return new IDE(browserFactory.createByHost(host), username, password, restAssuredExecutor, workbenchFactory, - databasePerspectiveFactory, gitPerspectiveFactory); + databasePerspectiveFactory, gitPerspectiveFactory, operationsPerspectiveFactory); } } diff --git a/tests/tests-framework/src/main/java/org/eclipse/dirigible/tests/framework/ide/OperationsPerspective.java b/tests/tests-framework/src/main/java/org/eclipse/dirigible/tests/framework/ide/OperationsPerspective.java new file mode 100644 index 00000000000..23c852fd41e --- /dev/null +++ b/tests/tests-framework/src/main/java/org/eclipse/dirigible/tests/framework/ide/OperationsPerspective.java @@ -0,0 +1,22 @@ +package org.eclipse.dirigible.tests.framework.ide; + +import org.eclipse.dirigible.tests.framework.browser.Browser; +import org.eclipse.dirigible.tests.framework.browser.HtmlElementType; +import org.springframework.context.annotation.Lazy; +import org.springframework.stereotype.Component; + +@Lazy +@Component +public class OperationsPerspective { + private final Browser browser; + + protected OperationsPerspective(Browser browser) { + this.browser = browser; + } + + public void assertExtensionPointIsPresent(String extensionPointFileName, String extensionFileName) { + browser.doubleClickOnElementContainingText(HtmlElementType.ANCHOR, "test1"); + browser.assertElementExistsByTypeAndText(HtmlElementType.ANCHOR, extensionPointFileName); + browser.assertElementExistsByTypeAndText(HtmlElementType.ANCHOR, extensionFileName); + } +} diff --git a/tests/tests-framework/src/main/java/org/eclipse/dirigible/tests/framework/ide/OperationsPerspectiveFactory.java b/tests/tests-framework/src/main/java/org/eclipse/dirigible/tests/framework/ide/OperationsPerspectiveFactory.java new file mode 100644 index 00000000000..994a7064eeb --- /dev/null +++ b/tests/tests-framework/src/main/java/org/eclipse/dirigible/tests/framework/ide/OperationsPerspectiveFactory.java @@ -0,0 +1,24 @@ +package org.eclipse.dirigible.tests.framework.ide; + +import org.eclipse.dirigible.tests.framework.browser.Browser; +import org.springframework.context.annotation.Lazy; +import org.springframework.stereotype.Component; + + +@Lazy +@Component +public class OperationsPerspectiveFactory { + private final Browser browser; + + protected OperationsPerspectiveFactory(Browser browser) { + this.browser = browser; + } + + public OperationsPerspective create() { + return create(browser); + } + + public OperationsPerspective create(Browser browser) { + return new OperationsPerspective(browser); + } +} diff --git a/tests/tests-framework/src/main/java/org/eclipse/dirigible/tests/framework/ide/Workbench.java b/tests/tests-framework/src/main/java/org/eclipse/dirigible/tests/framework/ide/Workbench.java index a23f8527a9f..dab70fa0b74 100644 --- a/tests/tests-framework/src/main/java/org/eclipse/dirigible/tests/framework/ide/Workbench.java +++ b/tests/tests-framework/src/main/java/org/eclipse/dirigible/tests/framework/ide/Workbench.java @@ -9,17 +9,20 @@ */ package org.eclipse.dirigible.tests.framework.ide; +import org.apache.commons.lang3.SystemUtils; import org.eclipse.dirigible.tests.framework.browser.Browser; import org.eclipse.dirigible.tests.framework.browser.HtmlAttribute; import org.eclipse.dirigible.tests.framework.browser.HtmlElementType; import org.eclipse.dirigible.tests.framework.util.SynchronizationUtil; +import org.openqa.selenium.Keys; public class Workbench { public static final String PROJECTS_VIEW_ID = "pvtree"; public static final String PROJECT_NAME_INPUT_ID = "pgfi1"; + private static final String FILE_NAME_INPUT_ID = "fdti1"; private static final String PROJECTS_CONTEXT_MENU_NEW_PROJECT = "New Project"; - private static final String CREATE_PROJECT_BUTTON_TEXT = "Create"; + private static final String CREATE_BUTTON_TEXT = "Create"; private final Browser browser; private final WelcomeViewFactory welcomeViewFactory; @@ -66,7 +69,7 @@ public void createNewProject(String projectName) { browser.enterTextInElementById(PROJECT_NAME_INPUT_ID, projectName); - browser.clickOnElementWithText(HtmlElementType.BUTTON, CREATE_PROJECT_BUTTON_TEXT); + browser.clickOnElementWithText(HtmlElementType.BUTTON, CREATE_BUTTON_TEXT); } public void createFileInProject(String projectName, String newFileType) { @@ -95,4 +98,26 @@ public Terminal openTerminal() { return terminalFactory.create(browser); } + public void createCustomElement(String fileName, String elementType) { + browser.clickOnElementByAttributePatternAndText(HtmlElementType.SPAN, HtmlAttribute.CLASS, "fd-menu__title", elementType); + browser.enterTextInElementById(FILE_NAME_INPUT_ID, fileName); + browser.clickOnElementWithText(HtmlElementType.BUTTON, CREATE_BUTTON_TEXT); + } + + public void createCustomElementInProject(String projectName, String fileName, String elementType) { + browser.rightClickOnElementContainingText(HtmlElementType.ANCHOR, projectName); + createCustomElement(fileName, elementType); + } + + public void selectAll() { + if (SystemUtils.IS_OS_MAC) + browser.pressMultipleKeys(Keys.COMMAND, "a"); + else + browser.pressMultipleKeys(Keys.CONTROL, "a"); + } + + public void saveAll() { + browser.clickOnElementByAttributeValue(HtmlElementType.BUTTON, HtmlAttribute.GLYPH, "sap-icon--save"); + } + } diff --git a/tests/tests-integrations/src/main/java/org/eclipse/dirigible/integration/tests/ui/tests/CreateExtensionPointIT.java b/tests/tests-integrations/src/main/java/org/eclipse/dirigible/integration/tests/ui/tests/CreateExtensionPointIT.java new file mode 100644 index 00000000000..101eac214e3 --- /dev/null +++ b/tests/tests-integrations/src/main/java/org/eclipse/dirigible/integration/tests/ui/tests/CreateExtensionPointIT.java @@ -0,0 +1,62 @@ +package org.eclipse.dirigible.integration.tests.ui.tests; + +import org.eclipse.dirigible.tests.base.UserInterfaceIntegrationTest; +import org.eclipse.dirigible.tests.framework.browser.HtmlAttribute; +import org.eclipse.dirigible.tests.framework.browser.HtmlElementType; +import org.eclipse.dirigible.tests.framework.ide.OperationsPerspective; +import org.eclipse.dirigible.tests.framework.ide.Workbench; +import org.junit.jupiter.api.Test; + + + +public class CreateExtensionPointIT extends UserInterfaceIntegrationTest { + + private static final String PROJECT_NAME = "CreateExtensionPointIT"; + private static final String EXTENSION_POINT_FILE_NAME = "test1.extensionpoint"; + private static final String JS_FILE_NAME = "test1.mjs"; + private static final String EXTENSION_FILE_NAME = "test1.extension"; + + @Test + void test() { + Workbench workbench = ide.openWorkbench(); + workbench.createNewProject(this.getClass() + .getSimpleName()); + + workbench.createCustomElementInProject(PROJECT_NAME, EXTENSION_POINT_FILE_NAME, "Extension Point"); + workbench.openFile(EXTENSION_POINT_FILE_NAME); + assertFileTabIsOpen(EXTENSION_POINT_FILE_NAME); + + browser.clickOnElementByAttributePattern(HtmlElementType.INPUT, HtmlAttribute.ID, "idName"); + workbench.selectAll(); + browser.type("test1"); + + workbench.saveAll(); + workbench.publishAll(true); + + workbench.createCustomElementInProject(PROJECT_NAME, JS_FILE_NAME, "JavaScript Service"); + workbench.openFile(JS_FILE_NAME); + assertFileTabIsOpen(JS_FILE_NAME); + workbench.publishAll(true); + + workbench.createCustomElementInProject(PROJECT_NAME, EXTENSION_FILE_NAME, "Extension"); + browser.doubleClickOnElementById("j1_6_anchor"); + assertFileTabIsOpen(EXTENSION_FILE_NAME); + + browser.clickOnElementByAttributePattern(HtmlElementType.BUTTON, HtmlAttribute.GLYPH, "sap-icon--navigation-down-arrow"); + browser.clickOnElementWithText(HtmlElementType.SPAN, "test1"); + + browser.clickOnElementById("idModule"); + workbench.selectAll(); + browser.type("/CreateExtensionPointIT/test1.mjs"); + + workbench.saveAll(); + workbench.publishAll(true); + + OperationsPerspective operationsPerspective = ide.openOperationsPerspective(); + operationsPerspective.assertExtensionPointIsPresent(EXTENSION_POINT_FILE_NAME, EXTENSION_FILE_NAME); + } + + private void assertFileTabIsOpen(String fileName) { + browser.assertElementExistByAttributePatternAndText(HtmlElementType.SPAN, HtmlAttribute.CLASS, "fd-icon-tab-bar__tag", fileName); + } +} From b180b4cecf7eb77cef2ccbc4fcf9c4a96ff9a366 Mon Sep 17 00:00:00 2001 From: Nikol Georgieva Date: Fri, 6 Jun 2025 15:06:03 +0300 Subject: [PATCH 2/4] refactor test --- .../tests/framework/ide/OperationsPerspective.java | 2 +- .../eclipse/dirigible/tests/framework/ide/Workbench.java | 6 ++++++ .../tests/ui/tests/CreateExtensionPointIT.java | 9 ++++----- 3 files changed, 11 insertions(+), 6 deletions(-) diff --git a/tests/tests-framework/src/main/java/org/eclipse/dirigible/tests/framework/ide/OperationsPerspective.java b/tests/tests-framework/src/main/java/org/eclipse/dirigible/tests/framework/ide/OperationsPerspective.java index 23c852fd41e..59c2fd90777 100644 --- a/tests/tests-framework/src/main/java/org/eclipse/dirigible/tests/framework/ide/OperationsPerspective.java +++ b/tests/tests-framework/src/main/java/org/eclipse/dirigible/tests/framework/ide/OperationsPerspective.java @@ -15,7 +15,7 @@ protected OperationsPerspective(Browser browser) { } public void assertExtensionPointIsPresent(String extensionPointFileName, String extensionFileName) { - browser.doubleClickOnElementContainingText(HtmlElementType.ANCHOR, "test1"); + browser.doubleClickOnElementContainingText(HtmlElementType.ANCHOR, "CreateExtensionPointIT"); browser.assertElementExistsByTypeAndText(HtmlElementType.ANCHOR, extensionPointFileName); browser.assertElementExistsByTypeAndText(HtmlElementType.ANCHOR, extensionFileName); } diff --git a/tests/tests-framework/src/main/java/org/eclipse/dirigible/tests/framework/ide/Workbench.java b/tests/tests-framework/src/main/java/org/eclipse/dirigible/tests/framework/ide/Workbench.java index dab70fa0b74..c15051a2eac 100644 --- a/tests/tests-framework/src/main/java/org/eclipse/dirigible/tests/framework/ide/Workbench.java +++ b/tests/tests-framework/src/main/java/org/eclipse/dirigible/tests/framework/ide/Workbench.java @@ -120,4 +120,10 @@ public void saveAll() { browser.clickOnElementByAttributeValue(HtmlElementType.BUTTON, HtmlAttribute.GLYPH, "sap-icon--save"); } + public void addContentToField(String fieldId, String fieldContent) { + browser.clickOnElementById(fieldId); + selectAll(); + browser.type(fieldContent); + } + } diff --git a/tests/tests-integrations/src/main/java/org/eclipse/dirigible/integration/tests/ui/tests/CreateExtensionPointIT.java b/tests/tests-integrations/src/main/java/org/eclipse/dirigible/integration/tests/ui/tests/CreateExtensionPointIT.java index 101eac214e3..b3aab3cfeb7 100644 --- a/tests/tests-integrations/src/main/java/org/eclipse/dirigible/integration/tests/ui/tests/CreateExtensionPointIT.java +++ b/tests/tests-integrations/src/main/java/org/eclipse/dirigible/integration/tests/ui/tests/CreateExtensionPointIT.java @@ -15,6 +15,7 @@ public class CreateExtensionPointIT extends UserInterfaceIntegrationTest { private static final String EXTENSION_POINT_FILE_NAME = "test1.extensionpoint"; private static final String JS_FILE_NAME = "test1.mjs"; private static final String EXTENSION_FILE_NAME = "test1.extension"; + private static final String EXTENSION_POINT_NAME = "test1"; @Test void test() { @@ -28,7 +29,7 @@ void test() { browser.clickOnElementByAttributePattern(HtmlElementType.INPUT, HtmlAttribute.ID, "idName"); workbench.selectAll(); - browser.type("test1"); + browser.type(EXTENSION_POINT_NAME); workbench.saveAll(); workbench.publishAll(true); @@ -43,11 +44,9 @@ void test() { assertFileTabIsOpen(EXTENSION_FILE_NAME); browser.clickOnElementByAttributePattern(HtmlElementType.BUTTON, HtmlAttribute.GLYPH, "sap-icon--navigation-down-arrow"); - browser.clickOnElementWithText(HtmlElementType.SPAN, "test1"); + browser.clickOnElementWithText(HtmlElementType.SPAN, EXTENSION_POINT_NAME); - browser.clickOnElementById("idModule"); - workbench.selectAll(); - browser.type("/CreateExtensionPointIT/test1.mjs"); + workbench.addContentToField("idModule", "/CreateExtensionPointIT/test1.mjs"); workbench.saveAll(); workbench.publishAll(true); From b1edefd9bff423bf6caae61f22ecb17abf008f93 Mon Sep 17 00:00:00 2001 From: Nikol Georgieva Date: Fri, 6 Jun 2025 16:11:54 +0300 Subject: [PATCH 3/4] refactor spaces --- .../org/eclipse/dirigible/tests/framework/ide/Workbench.java | 1 - .../integration/tests/ui/tests/CreateExtensionPointIT.java | 2 -- 2 files changed, 3 deletions(-) diff --git a/tests/tests-framework/src/main/java/org/eclipse/dirigible/tests/framework/ide/Workbench.java b/tests/tests-framework/src/main/java/org/eclipse/dirigible/tests/framework/ide/Workbench.java index c15051a2eac..3d8b37d29c3 100644 --- a/tests/tests-framework/src/main/java/org/eclipse/dirigible/tests/framework/ide/Workbench.java +++ b/tests/tests-framework/src/main/java/org/eclipse/dirigible/tests/framework/ide/Workbench.java @@ -125,5 +125,4 @@ public void addContentToField(String fieldId, String fieldContent) { selectAll(); browser.type(fieldContent); } - } diff --git a/tests/tests-integrations/src/main/java/org/eclipse/dirigible/integration/tests/ui/tests/CreateExtensionPointIT.java b/tests/tests-integrations/src/main/java/org/eclipse/dirigible/integration/tests/ui/tests/CreateExtensionPointIT.java index b3aab3cfeb7..1b97f6174ae 100644 --- a/tests/tests-integrations/src/main/java/org/eclipse/dirigible/integration/tests/ui/tests/CreateExtensionPointIT.java +++ b/tests/tests-integrations/src/main/java/org/eclipse/dirigible/integration/tests/ui/tests/CreateExtensionPointIT.java @@ -7,8 +7,6 @@ import org.eclipse.dirigible.tests.framework.ide.Workbench; import org.junit.jupiter.api.Test; - - public class CreateExtensionPointIT extends UserInterfaceIntegrationTest { private static final String PROJECT_NAME = "CreateExtensionPointIT"; From 377557817b65fa374df684479c21e620d05588d4 Mon Sep 17 00:00:00 2001 From: Nikol Georgieva Date: Mon, 9 Jun 2025 09:02:10 +0300 Subject: [PATCH 4/4] refactor test --- .../ui/tests/CreateExtensionPointIT.java | 23 +++++++++++++------ 1 file changed, 16 insertions(+), 7 deletions(-) diff --git a/tests/tests-integrations/src/main/java/org/eclipse/dirigible/integration/tests/ui/tests/CreateExtensionPointIT.java b/tests/tests-integrations/src/main/java/org/eclipse/dirigible/integration/tests/ui/tests/CreateExtensionPointIT.java index 1b97f6174ae..d0d3777fa0d 100644 --- a/tests/tests-integrations/src/main/java/org/eclipse/dirigible/integration/tests/ui/tests/CreateExtensionPointIT.java +++ b/tests/tests-integrations/src/main/java/org/eclipse/dirigible/integration/tests/ui/tests/CreateExtensionPointIT.java @@ -25,9 +25,7 @@ void test() { workbench.openFile(EXTENSION_POINT_FILE_NAME); assertFileTabIsOpen(EXTENSION_POINT_FILE_NAME); - browser.clickOnElementByAttributePattern(HtmlElementType.INPUT, HtmlAttribute.ID, "idName"); - workbench.selectAll(); - browser.type(EXTENSION_POINT_NAME); + addExtensionPointName(workbench); workbench.saveAll(); workbench.publishAll(true); @@ -41,10 +39,7 @@ void test() { browser.doubleClickOnElementById("j1_6_anchor"); assertFileTabIsOpen(EXTENSION_FILE_NAME); - browser.clickOnElementByAttributePattern(HtmlElementType.BUTTON, HtmlAttribute.GLYPH, "sap-icon--navigation-down-arrow"); - browser.clickOnElementWithText(HtmlElementType.SPAN, EXTENSION_POINT_NAME); - - workbench.addContentToField("idModule", "/CreateExtensionPointIT/test1.mjs"); + configureExtensionFields(workbench); workbench.saveAll(); workbench.publishAll(true); @@ -53,6 +48,20 @@ void test() { operationsPerspective.assertExtensionPointIsPresent(EXTENSION_POINT_FILE_NAME, EXTENSION_FILE_NAME); } + private void configureExtensionFields(Workbench workbench) { + browser.clickOnElementByAttributePattern(HtmlElementType.BUTTON, HtmlAttribute.GLYPH, "sap-icon--navigation-down-arrow"); + browser.clickOnElementWithText(HtmlElementType.SPAN, EXTENSION_POINT_NAME); + + workbench.addContentToField("idModule", "/CreateExtensionPointIT/test1.mjs"); + + } + + private void addExtensionPointName(Workbench workbench) { + browser.clickOnElementByAttributePattern(HtmlElementType.INPUT, HtmlAttribute.ID, "idName"); + workbench.selectAll(); + browser.type(EXTENSION_POINT_NAME); + } + private void assertFileTabIsOpen(String fileName) { browser.assertElementExistByAttributePatternAndText(HtmlElementType.SPAN, HtmlAttribute.CLASS, "fd-icon-tab-bar__tag", fileName); }