2 * ============LICENSE_START=======================================================
4 * ================================================================================
5 * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
6 * ================================================================================
7 * Licensed under the Apache License, Version 2.0 (the "License");
8 * you may not use this file except in compliance with the License.
9 * You may obtain a copy of the License at
11 * http://www.apache.org/licenses/LICENSE-2.0
13 * Unless required by applicable law or agreed to in writing, software
14 * distributed under the License is distributed on an "AS IS" BASIS,
15 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 * See the License for the specific language governing permissions and
17 * limitations under the License.
18 * ============LICENSE_END=========================================================
21 package org.openecomp.sdc.ci.tests.pages;
23 import com.aventstack.extentreports.Status;
24 import org.openecomp.sdc.ci.tests.datatypes.CanvasElement;
25 import org.openecomp.sdc.ci.tests.datatypes.CanvasManager;
26 import org.openecomp.sdc.ci.tests.datatypes.DataTestIdEnum;
27 import org.openecomp.sdc.ci.tests.datatypes.DataTestIdEnum.LeftPanelCanvasItems;
28 import org.openecomp.sdc.ci.tests.execute.setup.SetupCDTest;
29 import org.openecomp.sdc.ci.tests.utilities.GeneralUIUtils;
30 import org.openqa.selenium.By;
31 import org.openqa.selenium.WebElement;
32 import org.openqa.selenium.interactions.Actions;
33 import org.openqa.selenium.support.ui.Select;
34 import org.testng.AssertJUnit;
36 import java.util.List;
38 public class CompositionPage extends GeneralPageElements {
40 public CompositionPage() {
44 public static UploadArtifactPopup artifactPopup() {
45 return new UploadArtifactPopup(true);
48 public static void searchForElement(String elementName) {
49 SetupCDTest.getExtendTest().log(Status.INFO, "Searching for " + elementName + " in the left panel");
50 WebElement searchField = GeneralUIUtils.getWebElementByTestID(DataTestIdEnum.CompositionScreenEnum.SEARCH_ASSET.getValue());
52 searchField.sendKeys(elementName);
53 GeneralUIUtils.ultimateWait();
56 public static void showDeploymentArtifactTab() throws Exception {
57 clickOnTabTestID(DataTestIdEnum.CompositionScreenEnum.DEPLOYMENT_ARTIFACT_TAB);
60 public static void showInformationsTab() throws Exception {
61 clickOnTabTestID(DataTestIdEnum.CompositionScreenEnum.INFORMATION_TAB);
64 public static void showPropertiesAndAttributesTab() throws Exception {
65 clickOnTabTestID(DataTestIdEnum.CompositionScreenEnum.PROPERTIES_AND_ATTRIBUTES_TAB);
68 public static List<WebElement> getProperties() {
69 return PropertiesPage.getElemenetsFromTable();
72 public static List<WebElement> getDeploymentArtifacts() {
73 return getAllAddedArtifacts();
76 public static List<WebElement> getAllAddedArtifacts() {
77 String dataTestsId = DataTestIdEnum.CompositionScreenEnum.ARTIFACTS_LIST.getValue();
78 return GeneralUIUtils.getWebElementsListBy(By.xpath("//*[contains(@data-tests-id,'" + dataTestsId + "')]"));
81 public static void moveToInputsScreen() throws Exception {
83 GeneralUIUtils.clickOnElementByTestId(DataTestIdEnum.CompositionScreenEnum.MENU_INPUTS.getValue());
84 // GeneralUIUtils.ultimateWait();
87 public static void moveToPropertiesScreen() throws Exception {
89 GeneralUIUtils.clickOnElementByTestId(DataTestIdEnum.CompositionScreenEnum.MENU_PROPERTIES_ASSIGNMENT.getValue());
90 // GeneralUIUtils.ultimateWait();
93 public static void moveToOnboardScreen() throws Exception {
95 GeneralUIUtils.clickOnElementByTestId(DataTestIdEnum.CompositionScreenEnum.MENU_ONBOARD.getValue());
96 // GeneralUIUtils.ultimateWait();
99 public static void moveToHomeScreen() throws Exception {
101 GeneralUIUtils.clickOnElementByTestId(DataTestIdEnum.CompositionScreenEnum.MENU_HOME.getValue());
102 // GeneralUIUtils.ultimateWait();
105 private static void OpenPagesMenu(int counter) {
106 Actions actions = new Actions(GeneralUIUtils.getDriver());
107 List<WebElement> triangleList = GeneralUIUtils.getWebElementsListByClassName(DataTestIdEnum.CompositionScreenEnum.MENU_TRIANGLE_DROPDOWN.getValue());
108 WebElement pagesMenu = triangleList.get(counter);
109 actions.moveToElement(pagesMenu).perform();
112 public static void changeComponentVersion(CanvasManager canvasManager, CanvasElement element, String version) {
113 changeComponentVersion(canvasManager,element,version,false);
116 public static void changeComponentVersion(CanvasManager canvasManager, CanvasElement element, String version, boolean isValidate) {
118 SetupCDTest.getExtendTest().log(Status.INFO, String.format("Changing component version to %s", version));
119 canvasManager.clickOnCanvaElement(element);
120 GeneralUIUtils.clickOnElementByTestId(DataTestIdEnum.CompositionScreenEnum.CHANGE_VERSION.getValue());
121 // GeneralUIUtils.ultimateWait();
122 Select selectlist = new Select(GeneralUIUtils.getWebElementByTestID(DataTestIdEnum.CompositionScreenEnum.CHANGE_VERSION.getValue()));
123 while (selectlist.getOptions().size() == 0) {
124 selectlist = new Select(GeneralUIUtils.getWebElementByTestID(DataTestIdEnum.CompositionScreenEnum.CHANGE_VERSION.getValue()));
126 GeneralUIUtils.ultimateWait();;
127 selectlist.selectByValue(version);
128 GeneralUIUtils.ultimateWait();
129 GeneralUIUtils.clickSomewhereOnPage();
131 // Validate Selection
134 GeneralUIUtils.ultimateWait();
135 canvasManager.clickOnCanvaElement(element);
136 SetupCDTest.getExtendTest().log(Status.INFO, String.format("Validating component version changed to %s", version));
137 String actualSelectedValue = GeneralUIUtils.getWebElementBy(By.xpath(String.format("//select[@data-tests-id='%s']//option[@selected='selected']",DataTestIdEnum.CompositionScreenEnum.CHANGE_VERSION.getValue()))).getText();
138 AssertJUnit.assertTrue(actualSelectedValue.equals(version));
146 public static void clickAddArtifactButton() throws Exception{
147 clickOnTabTestID(DataTestIdEnum.CompositionScreenEnum.ADD_ARTIFACT);
148 GeneralUIUtils.getWebElementByClassName("sdc-add-artifact");
151 public static String getSelectedInstanceName(){
152 return GeneralUIUtils.getWebElementByTestID(DataTestIdEnum.CompositionRightPanel.COMPONENT_TITLE.getValue()).getText();
155 public static void showInformationArtifactTab() throws Exception {
156 clickOnTab(DataTestIdEnum.CompositionScreenEnum.INFORMATION_ARTIFACTS);
159 public static void showAPIArtifactTab() throws Exception {
160 clickOnTab(DataTestIdEnum.CompositionScreenEnum.API);
163 public static void showInformationTab() throws Exception {
164 clickOnTab(DataTestIdEnum.CompositionScreenEnum.INFORMATION);
167 public static void showCompositionTab() throws Exception {
168 clickOnTab(DataTestIdEnum.CompositionScreenEnum.COMPOSITION);
171 public static void showInputsTab() throws Exception {
172 clickOnTab(DataTestIdEnum.CompositionScreenEnum.INPUTS);
175 public static void showRequirementsAndCapabilitiesTab() throws Exception {
176 clickOnTab(DataTestIdEnum.CompositionScreenEnum.REQUIREMENTS_AND_CAPABILITIES);
179 public static List<WebElement> getOpenTabTitle() throws Exception{
180 // return GeneralUIUtils.getElementsByCSS("expand-collapse span");
181 return GeneralUIUtils.getElementsByCSS("expand-collapse ng-transclude");
184 public static void clickOnTab(DataTestIdEnum.CompositionScreenEnum tabSelector) throws Exception{
185 SetupCDTest.getExtendTest().log(Status.INFO, String.format("Clicking on %s", tabSelector.name()));
186 GeneralUIUtils.getElementsByCSS(tabSelector.getValue()).get(0).click();
187 GeneralUIUtils.ultimateWait();
190 public static void clickOnTabTestID(DataTestIdEnum.CompositionScreenEnum tabSelector) throws Exception{
191 SetupCDTest.getExtendTest().log(Status.INFO, String.format("Clicking on %s", tabSelector.name()));
192 GeneralUIUtils.getWebElementByTestID(tabSelector.getValue()).click();
193 GeneralUIUtils.ultimateWait();
196 public static CanvasElement addElementToCanvasScreen(LeftPanelCanvasItems elementName, CanvasManager vfCanvasManager) throws Exception{
197 CompositionPage.searchForElement(elementName.name());
198 return vfCanvasManager.createElementOnCanvas(elementName);
201 public static CanvasElement addElementToCanvasScreen(String elementName, CanvasManager vfCanvasManager) throws Exception{
202 CompositionPage.searchForElement(elementName);
203 return vfCanvasManager.createElementOnCanvas(elementName);
206 public static List<WebElement> getCompositionDeplymentArtifacts() {
207 return GeneralUIUtils.getWebElementsListByContainTestID(DataTestIdEnum.DeploymentArtifactCompositionRightMenu.ARTIFACT_DISPLAY_NAME.getValue());
209 public static WebElement getCustomizationUUID() throws Exception {
210 return GeneralUIUtils.getWebElementByTestID(DataTestIdEnum.CompositionScreenEnum.CUSTOMIZATION_UUID.getValue());
214 public static List<WebElement> getCompositionEnvArtifacts(){
215 return GeneralUIUtils.getWebElementsListByContainTestID(DataTestIdEnum.DeploymentArtifactCompositionRightMenu.ARTIFACT_ENV.getValue());
218 public static WebElement clickDownloadEnvArtifactComposition(String fileName) {
219 GeneralUIUtils.hoverOnAreaByTestId(DataTestIdEnum.DeploymentArtifactCompositionRightMenu.ARTIFACT_ENV.getValue() + fileName);
220 return GeneralUIUtils.getWebElementByTestID(DataTestIdEnum.ArtifactPageEnum.DOWNLOAD_ARTIFACT_ENV.getValue() +fileName);
223 public static void setSingleProperty(String propertyDataTestID, String propertyValue)
225 WebElement findElement = GeneralUIUtils.getWebElementByTestID(propertyDataTestID);
227 PropertiesPage.getPropertyPopup().insertPropertyDefaultValue(propertyValue);
228 PropertiesPage.getPropertyPopup().clickSave();
229 GeneralUIUtils.ultimateWait();
230 findElement = GeneralUIUtils.getWebElementByTestID("value_" + propertyDataTestID);
231 SetupCDTest.getExtendTest().log(Status.INFO, String.format("Validating property %s is set", propertyValue));
232 AssertJUnit.assertTrue(findElement.getText().equals(propertyValue));
233 GeneralUIUtils.ultimateWait();