Sync Integ to Master
[sdc.git] / ui-ci / src / main / java / org / openecomp / sdc / ci / tests / pages / CompositionPage.java
1 /*-
2  * ============LICENSE_START=======================================================
3  * SDC
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
10  * 
11  *      http://www.apache.org/licenses/LICENSE-2.0
12  * 
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=========================================================
19  */
20
21 package org.openecomp.sdc.ci.tests.pages;
22
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;
35
36 import java.util.List;
37
38 public class CompositionPage extends GeneralPageElements {
39
40         public CompositionPage() {
41                 super();
42         }
43         
44         public static UploadArtifactPopup artifactPopup() {
45                 return new UploadArtifactPopup(true);
46         }
47
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());
51                 searchField.clear();
52                 searchField.sendKeys(elementName);
53                 GeneralUIUtils.ultimateWait();
54         }
55         
56         public static void showDeploymentArtifactTab() throws Exception {
57                 clickOnTabTestID(DataTestIdEnum.CompositionScreenEnum.DEPLOYMENT_ARTIFACT_TAB);
58         }
59
60         public static void showInformationsTab() throws Exception {
61                 clickOnTabTestID(DataTestIdEnum.CompositionScreenEnum.INFORMATION_TAB);
62         }
63         
64         public static void showPropertiesAndAttributesTab() throws Exception {
65                 clickOnTabTestID(DataTestIdEnum.CompositionScreenEnum.PROPERTIES_AND_ATTRIBUTES_TAB);
66         }
67
68         public static List<WebElement> getProperties() {
69                 return PropertiesPage.getElemenetsFromTable();
70         }
71         
72         public static List<WebElement> getDeploymentArtifacts() {
73                 return getAllAddedArtifacts();
74         }
75         
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 + "')]"));
79         }
80
81         public static void moveToInputsScreen() throws Exception {
82                 OpenPagesMenu();
83                 GeneralUIUtils.clickOnElementByTestId(DataTestIdEnum.CompositionScreenEnum.MENU_INPUTS.getValue());
84                 GeneralUIUtils.ultimateWait();
85         }
86
87         private static void OpenPagesMenu() {
88                 Actions actions = new Actions(GeneralUIUtils.getDriver());
89                 List<WebElement> triangleList = GeneralUIUtils.getWebElementsListByClassName(DataTestIdEnum.CompositionScreenEnum.MENU_TRIANGLE_DROPDOWN.getValue());
90                 WebElement pagesMenu = triangleList.get(2);
91                 actions.moveToElement(pagesMenu).perform();
92         }
93
94         public static void changeComponentVersion(CanvasManager canvasManager, CanvasElement element, String version) {
95                 changeComponentVersion(canvasManager,element,version,false);
96         }
97
98         public static void changeComponentVersion(CanvasManager canvasManager, CanvasElement element, String version, boolean isValidate) {
99                 try{
100                         SetupCDTest.getExtendTest().log(Status.INFO, String.format("Changing component version to  %s", version));
101                         canvasManager.clickOnCanvaElement(element);
102                         GeneralUIUtils.clickOnElementByTestId(DataTestIdEnum.CompositionScreenEnum.CHANGE_VERSION.getValue());
103                         GeneralUIUtils.ultimateWait();
104                         Select selectlist = new Select(GeneralUIUtils.getWebElementByTestID(DataTestIdEnum.CompositionScreenEnum.CHANGE_VERSION.getValue()));
105                         while (selectlist.getOptions().size() == 0) {
106                                 selectlist = new Select(GeneralUIUtils.getWebElementByTestID(DataTestIdEnum.CompositionScreenEnum.CHANGE_VERSION.getValue()));
107                         }
108                         GeneralUIUtils.ultimateWait();;
109                         selectlist.selectByValue(version);
110                         GeneralUIUtils.ultimateWait();
111                         GeneralUIUtils.clickSomewhereOnPage();
112
113                         // Validate Selection
114                         if(isValidate)
115                         {
116                                 GeneralUIUtils.ultimateWait();
117                                 canvasManager.clickOnCanvaElement(element);
118                                 SetupCDTest.getExtendTest().log(Status.INFO, String.format("Validating component version changed to %s", version));
119                                 String actualSelectedValue = GeneralUIUtils.getWebElementBy(By.xpath(String.format("//select[@data-tests-id='%s']//option[@selected='selected']",DataTestIdEnum.CompositionScreenEnum.CHANGE_VERSION.getValue()))).getText();
120                                 AssertJUnit.assertTrue(actualSelectedValue.equals(version));
121                         }
122                 }
123                 catch(Exception e){
124                         throw e;
125                 }
126         }
127         
128         public static void clickAddArtifactButton() throws Exception{
129                 clickOnTabTestID(DataTestIdEnum.CompositionScreenEnum.ADD_ARTIFACT);
130                 GeneralUIUtils.getWebElementByClassName("sdc-add-artifact");
131         }
132         
133         public static String getSelectedInstanceName(){
134                 return GeneralUIUtils.getWebElementByTestID(DataTestIdEnum.CompositionRightPanel.COMPONENT_TITLE.getValue()).getText();
135         }
136         
137         public static void showInformationArtifactTab() throws Exception {
138                 clickOnTab(DataTestIdEnum.CompositionScreenEnum.INFORMATION_ARTIFACTS);
139         }
140         
141         public static void showAPIArtifactTab() throws Exception {
142                 clickOnTab(DataTestIdEnum.CompositionScreenEnum.API);
143         }
144         
145         public static void showInformationTab() throws Exception {
146                 clickOnTab(DataTestIdEnum.CompositionScreenEnum.INFORMATION);
147         }
148         
149         public static void showCompositionTab() throws Exception {
150                 clickOnTab(DataTestIdEnum.CompositionScreenEnum.COMPOSITION);
151         }
152         
153         public static void showInputsTab() throws Exception {
154                 clickOnTab(DataTestIdEnum.CompositionScreenEnum.INPUTS);
155         }
156         
157         public static void showRequirementsAndCapabilitiesTab() throws Exception {
158                 clickOnTab(DataTestIdEnum.CompositionScreenEnum.REQUIREMENTS_AND_CAPABILITIES);         
159         }
160         
161         public static List<WebElement> getOpenTabTitle() throws Exception{
162 //              return GeneralUIUtils.getElementsByCSS("expand-collapse span");
163                 return GeneralUIUtils.getElementsByCSS("expand-collapse ng-transclude");
164         }
165         
166         public static void clickOnTab(DataTestIdEnum.CompositionScreenEnum tabSelector) throws Exception{
167                 SetupCDTest.getExtendTest().log(Status.INFO, String.format("Clicking on %s", tabSelector.name()));
168                 GeneralUIUtils.getElementsByCSS(tabSelector.getValue()).get(0).click();
169                 GeneralUIUtils.ultimateWait();
170         }
171         
172         public static void clickOnTabTestID(DataTestIdEnum.CompositionScreenEnum tabSelector) throws Exception{
173                 SetupCDTest.getExtendTest().log(Status.INFO, String.format("Clicking on %s", tabSelector.name()));
174                 GeneralUIUtils.getWebElementByTestID(tabSelector.getValue()).click();
175                 GeneralUIUtils.ultimateWait();
176         }
177         
178         public static CanvasElement addElementToCanvasScreen(LeftPanelCanvasItems elementName, CanvasManager vfCanvasManager) throws Exception{
179                 CompositionPage.searchForElement(elementName.name());
180                 return vfCanvasManager.createElementOnCanvas(elementName);
181         }
182         
183         public static CanvasElement addElementToCanvasScreen(String elementName, CanvasManager vfCanvasManager) throws Exception{
184                 CompositionPage.searchForElement(elementName);
185                 return vfCanvasManager.createElementOnCanvas(elementName);
186         }
187         
188         public static List<WebElement> getCompositionDeplymentArtifacts() {
189                 return GeneralUIUtils.getWebElementsListByContainTestID(DataTestIdEnum.DeploymentArtifactCompositionRightMenu.ARTIFACT_DISPLAY_NAME.getValue());
190                 }
191         public static WebElement getCustomizationUUID() throws Exception {
192                 return GeneralUIUtils.getWebElementByTestID(DataTestIdEnum.CompositionScreenEnum.CUSTOMIZATION_UUID.getValue());
193         }
194         
195         
196         public static List<WebElement> getCompositionEnvArtifacts(){
197                 return GeneralUIUtils.getWebElementsListByContainTestID(DataTestIdEnum.DeploymentArtifactCompositionRightMenu.ARTIFACT_ENV.getValue());
198         }
199         
200         public static WebElement clickDownloadEnvArtifactComposition(String fileName) {
201                  GeneralUIUtils.hoverOnAreaByTestId(DataTestIdEnum.DeploymentArtifactCompositionRightMenu.ARTIFACT_ENV.getValue() + fileName);
202                  return GeneralUIUtils.getWebElementByTestID(DataTestIdEnum.ArtifactPageEnum.DOWNLOAD_ARTIFACT_ENV.getValue() +fileName);
203         }
204
205         public static void setSingleProperty(String propertyDataTestID, String propertyValue)
206         {
207                         WebElement findElement = GeneralUIUtils.getWebElementByTestID(propertyDataTestID);
208                         findElement.click();
209                         PropertiesPage.getPropertyPopup().insertPropertyDefaultValue(propertyValue);
210                         PropertiesPage.getPropertyPopup().clickSave();
211                         GeneralUIUtils.ultimateWait();
212                         findElement = GeneralUIUtils.getWebElementByTestID("value_" + propertyDataTestID);
213                         SetupCDTest.getExtendTest().log(Status.INFO, String.format("Validating property %s is set", propertyValue));
214                         AssertJUnit.assertTrue(findElement.getText().equals(propertyValue));
215                         GeneralUIUtils.ultimateWait();
216         }
217
218
219
220         
221         
222         
223         
224         
225         
226 }