forked from cdapio/cdap-e2e-tests
-
Notifications
You must be signed in to change notification settings - Fork 2
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
3 changed files
with
444 additions
and
0 deletions.
There are no files selected for viewing
217 changes: 217 additions & 0 deletions
217
src/main/java/io/cdap/e2e/pages/actions/CdfHubActions.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,217 @@ | ||
/* | ||
* Copyright © 2023 Cask Data, Inc. | ||
* | ||
* Licensed under the Apache License, Version 2.0 (the "License"); you may not | ||
* use this file except in compliance with the License. You may obtain a copy of | ||
* the License at | ||
* | ||
* http://www.apache.org/licenses/LICENSE-2.0 | ||
* | ||
* Unless required by applicable law or agreed to in writing, software | ||
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT | ||
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the | ||
* License for the specific language governing permissions and limitations under | ||
* the License. | ||
*/ | ||
package io.cdap.e2e.pages.actions; | ||
|
||
import io.cdap.e2e.pages.locators.CdfHubLocators; | ||
import io.cdap.e2e.pages.locators.CdfPluginPropertiesLocators; | ||
import io.cdap.e2e.utils.AssertionHelper; | ||
import io.cdap.e2e.utils.ElementHelper; | ||
import io.cdap.e2e.utils.PluginPropertyUtils; | ||
import io.cdap.e2e.utils.SeleniumHelper; | ||
|
||
import org.slf4j.Logger; | ||
import org.slf4j.LoggerFactory; | ||
|
||
/** | ||
* CDF hub related actions. | ||
*/ | ||
public class CdfHubActions { | ||
|
||
private static final Logger logger = LoggerFactory.getLogger(CdfHubActions.class); | ||
static { | ||
SeleniumHelper.getPropertiesLocators(CdfHubLocators.class); | ||
} | ||
|
||
/** | ||
* Click on Hub option from the top panel. | ||
*/ | ||
public static void clickOnHub() { | ||
ElementHelper.clickOnElement(CdfHubLocators.hubPage); | ||
} | ||
|
||
/** | ||
* Click on differnt options from the hub. | ||
* @param option Plugins pipelines Drivers etc. | ||
*/ | ||
public static void clickOnOptionsFromHub(String option) { | ||
ElementHelper.clickOnElement(CdfHubLocators.locateArtifact(option)); | ||
} | ||
|
||
/** | ||
* Click on the different buttons in hub or studio. | ||
*/ | ||
public static void clickOnButton(String buttonName) { | ||
ElementHelper.clickOnElement(CdfHubLocators.locateButton(buttonName)); | ||
} | ||
|
||
/** | ||
* Verify that the pipeline is saved in drafts. | ||
*/ | ||
public static void verifyPipelineStatus(String pipelineName) { | ||
ElementHelper.isElementDisplayed(CdfHubLocators.locateButton(pipelineName)); | ||
} | ||
|
||
/** | ||
* Click on Deploy button to deploy the plugin Or create the pipeline. | ||
*/ | ||
public static void clickOnDeploy() { | ||
ElementHelper.clickOnElement(CdfHubLocators.deployButton); | ||
} | ||
|
||
/** | ||
* Click on Finish button to deploy the plugin Or create the pipeline. | ||
*/ | ||
public static void clickOnFinish() { | ||
ElementHelper.clickOnElement(CdfHubLocators.finishButton); | ||
} | ||
|
||
/** | ||
* Click on the different options from hub from the left panel . | ||
*/ | ||
public static void clickOnOptions(String option) { | ||
ElementHelper.clickOnElement(CdfHubLocators.locateOptions(option)); | ||
} | ||
|
||
/** | ||
* Click on Close button to close the hub page . | ||
*/ | ||
public static void clickOnCloseButton() { | ||
ElementHelper.clickOnElement(CdfHubLocators.closeButton); | ||
} | ||
|
||
/** | ||
* Click on Search tab in hub to search for artifacts or pipelines. | ||
*/ | ||
public static void clickOnSearchTab(String searchedText) { | ||
ElementHelper.sendKeys(CdfHubLocators.searchTabHub, searchedText); | ||
} | ||
|
||
/** | ||
* To verify the error message from the hub page . | ||
*/ | ||
public static void verifyErrorMessage(String errorMessageLocation) { | ||
String expectedErrorMessage = PluginPropertyUtils.errorProp(errorMessageLocation); | ||
AssertionHelper.verifyElementContainsText(CdfHubLocators. | ||
locateErrorMessage(expectedErrorMessage), expectedErrorMessage); | ||
} | ||
|
||
/** | ||
To verify whether the element is displayed or not . | ||
*/ | ||
public static void verifyElementIsDisplayed() { | ||
ElementHelper.isElementDisplayed(CdfHubLocators.locateHub); | ||
} | ||
|
||
/** | ||
To verify the plugin is deleted from the control center. | ||
*/ | ||
public static void verifyPluginIsDeleted() { | ||
ElementHelper.isElementDisplayed(CdfHubLocators.deletedElementStatus); | ||
} | ||
|
||
/** | ||
* Click on Delete button to delete the plugin from control center. | ||
*/ | ||
public static void clickOnDeleteButton() { | ||
ElementHelper.clickOnElement(CdfHubLocators.deleteButton); | ||
} | ||
|
||
/** | ||
* Click on the hamburger menu on the top left panel. | ||
*/ | ||
public static void clickOnHamburgerMenu() { | ||
ElementHelper.clickOnElement(CdfHubLocators.hamburgerMenu); | ||
} | ||
|
||
/** | ||
* To delete the plugin in control center. | ||
*/ | ||
public static void deletePluginControlCenter() { | ||
ElementHelper.clickOnElement(CdfHubLocators.deleteIconControlCenter); | ||
clickOnDeleteButton(); | ||
} | ||
|
||
/** | ||
* To verify whether the plugin is successfully deployed. | ||
*/ | ||
public static void verifyPluginIsDeployed(String pluginName) { | ||
String pluginPropertyDataCyAttribute = PluginPropertyUtils.getPluginPropertyDataCyAttribute(pluginName); | ||
if (pluginPropertyDataCyAttribute == null) { | ||
pluginPropertyDataCyAttribute = pluginName; | ||
} | ||
ElementHelper.isElementDisplayed(CdfHubLocators.locateArtifact(pluginPropertyDataCyAttribute)); | ||
} | ||
|
||
/** | ||
* Click on the different options from the hamburger menu . | ||
* @param option Home List Studio Wrangler Replication Metadata etc. | ||
*/ | ||
public static void clickOnOptionFromHamburgerMenu(String option) { | ||
String pluginPropertyDataCyAttribute = PluginPropertyUtils.getPluginPropertyDataCyAttribute(option); | ||
if (pluginPropertyDataCyAttribute == null) { | ||
pluginPropertyDataCyAttribute = option; | ||
} | ||
ElementHelper.clickOnElement(CdfHubLocators.locateHamburgerOption(pluginPropertyDataCyAttribute)); | ||
} | ||
|
||
/** | ||
* Select type from filter in control center . | ||
* @param option Artifacts Applications Datasets | ||
*/ | ||
public static void selectFilterDropdownOption(String pluginProperty, String option) { | ||
String pluginPropertyDataCyAttribute = PluginPropertyUtils.getPluginPropertyDataCyAttribute(pluginProperty); | ||
if (pluginPropertyDataCyAttribute == null) { | ||
pluginPropertyDataCyAttribute = pluginProperty; | ||
} | ||
String optionFromPluginPropertiesFile = PluginPropertyUtils.pluginProp(option); | ||
if (optionFromPluginPropertiesFile == null) { | ||
ElementHelper.selectDropdownOption(CdfPluginPropertiesLocators | ||
.locatePropertyElement(pluginPropertyDataCyAttribute), | ||
CdfHubLocators.locateDropdownListItem(option)); | ||
} | ||
ElementHelper.selectDropdownOption(CdfPluginPropertiesLocators.locatePropertyElement(pluginPropertyDataCyAttribute), | ||
CdfHubLocators.locateDropdownListItem( | ||
optionFromPluginPropertiesFile)); | ||
} | ||
|
||
/** | ||
* Click on Search tab in control center. | ||
*/ | ||
public static void clickOnSearchTabControlCenter(String searchedText) { | ||
ElementHelper.sendKeys(CdfHubLocators.searchTabControlCenter, searchedText); | ||
} | ||
|
||
/** | ||
* Click on Create button to create a pipeline from hub . | ||
*/ | ||
public static void clickOnCreateButton() { | ||
ElementHelper.clickOnElement(CdfHubLocators.createButton); | ||
} | ||
|
||
/** | ||
* To verify whether the plugin is present in studio. | ||
*/ | ||
public static void verifyPluginInStudio(String pluginName) { | ||
ElementHelper.isElementDisplayed(CdfHubLocators.locateArtifact(pluginName)); | ||
} | ||
|
||
/** | ||
* To verify whether the plugin is displayed on the Hub page. | ||
*/ | ||
public static void verifyPluginIsDisplayed(String pluginName) { | ||
ElementHelper.isElementDisplayed(CdfHubLocators.locateArtifact(pluginName)); | ||
} | ||
} |
80 changes: 80 additions & 0 deletions
80
src/main/java/io/cdap/e2e/pages/locators/CdfHubLocators.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,80 @@ | ||
/* | ||
* Copyright © 2023 Cask Data, Inc. | ||
* | ||
* Licensed under the Apache License, Version 2.0 (the "License"); you may not | ||
* use this file except in compliance with the License. You may obtain a copy of | ||
* the License at | ||
* | ||
* http://www.apache.org/licenses/LICENSE-2.0 | ||
* | ||
* Unless required by applicable law or agreed to in writing, software | ||
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT | ||
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the | ||
* License for the specific language governing permissions and limitations under | ||
* the License. | ||
*/ | ||
package io.cdap.e2e.pages.locators; | ||
|
||
import io.cdap.e2e.utils.SeleniumDriver; | ||
import org.openqa.selenium.By; | ||
import org.openqa.selenium.WebElement; | ||
import org.openqa.selenium.support.FindBy; | ||
import org.openqa.selenium.support.How; | ||
|
||
/** | ||
* CDF hub related locators. | ||
*/ | ||
public class CdfHubLocators { | ||
|
||
@FindBy(how = How.XPATH, using = "//input[@placeholder='Search by name']") | ||
public static WebElement searchTabHub; | ||
@FindBy(how = How.XPATH, using = "//input[@class='search-input form-control'][@placeholder='Search']") | ||
public static WebElement searchTabControlCenter; | ||
@FindBy(how = How.XPATH, using = "//*[@data-cy='navbar-hamburger-icon']") | ||
public static WebElement hamburgerMenu; | ||
@FindBy(how = How.XPATH, using = "//*[@data-cy='hub-close-btn']") | ||
public static WebElement closeButton; | ||
@FindBy(how = How.XPATH, using = "//button[@data-cy='one_step_deploy_plugin-btn']") | ||
public static WebElement deployButton; | ||
@FindBy(how = How.XPATH, using = "//button[@data-cy='create_pipeline_draft-btn']") | ||
public static WebElement createButton; | ||
@FindBy(how = How.XPATH, using = "//button[@data-cy='wizard-finish-btn']") | ||
public static WebElement finishButton; | ||
@FindBy(how = How.XPATH, using = "//span[contains(text(),'Hub')]") | ||
public static WebElement locateHub; | ||
@FindBy(how = How.XPATH, using = "//button[@data-cy='Delete']") | ||
public static WebElement deleteButton; | ||
@FindBy(how = How.XPATH, using = "//button[@id='navbar-hub']") | ||
public static WebElement hubPage; | ||
@FindBy(how = How.XPATH, using = "//*[contains(text(),'No entities found in namespace \"default\"')]") | ||
public static WebElement deletedElementStatus; | ||
@FindBy(how = How.XPATH, using = "//div[@class='entities-all-list-container']//button[@class='btn btn-link']" + | ||
"//*[@class='icon-svg icon-trash']") | ||
public static WebElement deleteIconControlCenter; | ||
|
||
public static WebElement locateArtifact(String option) { | ||
return SeleniumDriver.getDriver() | ||
.findElement(By.xpath("//*[contains(text(),'" + option + "')]")); | ||
} | ||
|
||
public static WebElement locateButton(String buttonName) { | ||
return SeleniumDriver.getDriver() | ||
.findElement(By.xpath("//*[contains(text(),'" + buttonName + "')]")); | ||
} | ||
|
||
public static WebElement locateOptions(String featureName) { | ||
return SeleniumDriver.getDriver().findElement(By.xpath("//span[@title='" + featureName + "']")); | ||
} | ||
|
||
public static WebElement locateHamburgerOption(String option) { | ||
return SeleniumDriver.getDriver().findElement(By.xpath("//*[@data-cy='" + option + "']")); | ||
} | ||
|
||
public static By locateDropdownListItem(String option) { | ||
return By.xpath("//input[@data-cy='" + option + "']"); | ||
} | ||
|
||
public static WebElement locateErrorMessage(String errorMessage) { | ||
return SeleniumDriver.getDriver().findElement(By.xpath("//*[contains(text(),'" + errorMessage + "')]")); | ||
} | ||
} |
Oops, something went wrong.