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.onap.sdc.frontend.ci.tests.pages;
23 import com.aventstack.extentreports.Status;
24 import org.onap.sdc.frontend.ci.tests.datatypes.CanvasElement;
25 import org.onap.sdc.frontend.ci.tests.datatypes.CanvasManager;
26 import org.onap.sdc.frontend.ci.tests.datatypes.DataTestIdEnum;
27 import org.onap.sdc.frontend.ci.tests.datatypes.DataTestIdEnum.LeftPanelCanvasItems;
28 import org.onap.sdc.frontend.ci.tests.execute.setup.SetupCDTest;
29 import org.onap.sdc.frontend.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 private 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
133 GeneralUIUtils.ultimateWait();
134 canvasManager.clickOnCanvaElement(element);
135 SetupCDTest.getExtendTest().log(Status.INFO, String.format("Validating component version changed to %s", version));
136 String actualSelectedValue = GeneralUIUtils.getWebElementBy(By.xpath(String.format("//select[@data-tests-id='%s']//option[@selected='selected']", DataTestIdEnum.CompositionScreenEnum.CHANGE_VERSION.getValue()))).getText();
137 AssertJUnit.assertTrue(actualSelectedValue.equals(version));
139 } catch (Exception e) {
144 public static void clickAddArtifactButton() throws Exception {
145 clickOnTabTestID(DataTestIdEnum.CompositionScreenEnum.ADD_ARTIFACT);
146 GeneralUIUtils.getWebElementByClassName("sdc-add-artifact");
149 public static String getSelectedInstanceName() {
150 return GeneralUIUtils.getWebElementByTestID(DataTestIdEnum.CompositionRightPanel.COMPONENT_TITLE.getValue()).getText();
153 public static void showInformationArtifactTab() throws Exception {
154 clickOnTab(DataTestIdEnum.CompositionScreenEnum.INFORMATION_ARTIFACTS);
157 public static void showAPIArtifactTab() throws Exception {
158 clickOnTab(DataTestIdEnum.CompositionScreenEnum.API);
161 public static void showInformationTab() throws Exception {
162 clickOnTab(DataTestIdEnum.CompositionScreenEnum.INFORMATION);
165 public static void showCompositionTab() throws Exception {
166 clickOnTab(DataTestIdEnum.CompositionScreenEnum.COMPOSITION);
169 public static void showInputsTab() throws Exception {
170 clickOnTab(DataTestIdEnum.CompositionScreenEnum.INPUTS);
173 public static void showRequirementsAndCapabilitiesTab() throws Exception {
174 clickOnTab(DataTestIdEnum.CompositionScreenEnum.REQUIREMENTS_AND_CAPABILITIES);
177 public static List<WebElement> getOpenTabTitle() throws Exception {
178 return GeneralUIUtils.getElementsByCSS("expand-collapse ng-transclude");
181 public static void clickOnTab(DataTestIdEnum.CompositionScreenEnum tabSelector) throws Exception {
182 SetupCDTest.getExtendTest().log(Status.INFO, String.format("Clicking on %s", tabSelector.name()));
183 GeneralUIUtils.getElementsByCSS(tabSelector.getValue()).get(0).click();
184 GeneralUIUtils.ultimateWait();
187 public static void clickOnTabTestID(DataTestIdEnum.CompositionScreenEnum tabSelector) throws Exception {
188 SetupCDTest.getExtendTest().log(Status.INFO, String.format("Clicking on %s", tabSelector.name()));
189 GeneralUIUtils.getWebElementByTestID(tabSelector.getValue()).click();
190 GeneralUIUtils.ultimateWait();
193 public static CanvasElement addElementToCanvasScreen(LeftPanelCanvasItems elementName, CanvasManager vfCanvasManager) throws Exception {
194 CompositionPage.searchForElement(elementName.name());
195 return vfCanvasManager.createElementOnCanvas(elementName);
198 public static CanvasElement addElementToCanvasScreen(String elementName, CanvasManager vfCanvasManager) throws Exception {
199 CompositionPage.searchForElement(elementName);
200 return vfCanvasManager.createElementOnCanvas(elementName);
203 public static List<WebElement> getCompositionDeplymentArtifacts() {
204 return GeneralUIUtils.getWebElementsListByContainTestID(DataTestIdEnum.DeploymentArtifactCompositionRightMenu.ARTIFACT_DISPLAY_NAME.getValue());
207 public static WebElement getCustomizationUUID() throws Exception {
208 return GeneralUIUtils.getWebElementByTestID(DataTestIdEnum.CompositionScreenEnum.CUSTOMIZATION_UUID.getValue());
212 public static List<WebElement> getCompositionEnvArtifacts() {
213 return GeneralUIUtils.getWebElementsListByContainTestID(DataTestIdEnum.DeploymentArtifactCompositionRightMenu.ARTIFACT_ENV.getValue());
216 public static WebElement clickDownloadEnvArtifactComposition(String fileName) {
217 GeneralUIUtils.hoverOnAreaByTestId(DataTestIdEnum.DeploymentArtifactCompositionRightMenu.ARTIFACT_ENV.getValue() + fileName);
218 return GeneralUIUtils.getWebElementByTestID(DataTestIdEnum.ArtifactPageEnum.DOWNLOAD_ARTIFACT_ENV.getValue() + fileName);
221 public static void setSingleProperty(String propertyDataTestID, String propertyValue) {
222 WebElement findElement = GeneralUIUtils.getWebElementByTestID(propertyDataTestID);
224 PropertiesPage.getPropertyPopup().insertPropertyDefaultValue(propertyValue);
225 PropertiesPage.getPropertyPopup().clickSave();
226 GeneralUIUtils.ultimateWait();
227 findElement = GeneralUIUtils.getWebElementByTestID("value_" + propertyDataTestID);
228 SetupCDTest.getExtendTest().log(Status.INFO, String.format("Validating property %s is set", propertyValue));
229 AssertJUnit.assertTrue(findElement.getText().equals(propertyValue));
230 GeneralUIUtils.ultimateWait();