[SDC-29] rebase continue work to align source
[sdc.git] / ui-ci-dev / src / main / java / org / openecomp / sdc / uici / tests / execute / vf / VfDeploymentTests.java
1 package org.openecomp.sdc.uici.tests.execute.vf;
2
3 import static org.testng.AssertJUnit.assertEquals;
4 import static org.testng.AssertJUnit.assertFalse;
5 import static org.testng.AssertJUnit.assertTrue;
6
7 import java.io.IOException;
8 import java.util.regex.Pattern;
9
10 import org.openecomp.sdc.uici.tests.datatypes.CreateAndUpdateStepsEnum;
11 import org.openecomp.sdc.uici.tests.datatypes.DataTestIdEnum;
12 import org.openecomp.sdc.uici.tests.execute.base.SetupCDTest;
13 import org.openecomp.sdc.uici.tests.utilities.FileHandling;
14 import org.openecomp.sdc.uici.tests.utilities.GeneralUIUtils;
15 import org.openecomp.sdc.uici.tests.utilities.ResourceUIUtils;
16 import org.openecomp.sdc.uici.tests.utilities.RestCDUtils;
17 import org.openqa.selenium.WebElement;
18 import org.testng.annotations.Test;
19
20 import org.openecomp.sdc.ci.tests.datatypes.ResourceReqDetails;
21
22 public class VfDeploymentTests extends SetupCDTest {
23
24         // *****************************EditNamePopoverTests*****************************//
25         @Test
26         public void ClickingOnEditNamePopoverIconShouldOpenTheEditNamePopoverForm() {
27                 EditNamePopoverTestsSetUp();
28
29                 assertTrue(GeneralUIUtils.isElementPresent(DataTestIdEnum.UpdateNamePopover.POPOVER_FORM.getValue()));
30         }
31
32         @Test
33         public void ModuleDataShouldBeDisplayedInTheEditNameForm() {
34                 EditNamePopoverTestsSetUp();
35
36                 WebElement instanceName = GeneralUIUtils
37                                 .getWebElementWaitForVisible(DataTestIdEnum.UpdateNamePopover.POPOVER_INSTANCE_NAME.getValue());
38                 WebElement heatName = GeneralUIUtils
39                                 .getWebElementWaitForVisible(DataTestIdEnum.UpdateNamePopover.POPOVER_HEAT_NAME.getValue());
40                 WebElement moduleName = GeneralUIUtils
41                                 .getWebElementWaitForVisible(DataTestIdEnum.UpdateNamePopover.POPOVER_MODULE_NAME.getValue());
42
43                 String moduleNameToDivide = GeneralUIUtils
44                                 .getWebElementWaitForVisible(DataTestIdEnum.TabsBar.HIERARCHY_MODULE.getValue()).getText();
45
46                 String[] dividedModuleName = moduleNameToDivide.split(Pattern.quote(".."));
47
48                 assertEquals(dividedModuleName[0], instanceName.getText());
49                 assertEquals(dividedModuleName[1], heatName.getAttribute("value"));
50                 assertEquals(dividedModuleName[2], moduleName.getText());
51
52         }
53
54         @Test
55         public void CloseButtonShouldCloseThePopover() {
56                 EditNamePopoverTestsSetUp();
57
58                 GeneralUIUtils.getWebElementWaitForVisible(DataTestIdEnum.UpdateNamePopover.POPOVER_CLOSE_BUTTON.getValue())
59                                 .click();
60
61                 assertFalse(GeneralUIUtils.isElementPresent(DataTestIdEnum.UpdateNamePopover.POPOVER_FORM.getValue()));
62         }
63
64         @Test
65         public void XButtonShouldCloseThePopover() {
66                 EditNamePopoverTestsSetUp();
67
68                 GeneralUIUtils.getWebElementWaitForVisible(DataTestIdEnum.UpdateNamePopover.POPOVER_X_BUTTON.getValue())
69                                 .click();
70
71                 assertFalse(GeneralUIUtils.isElementPresent(DataTestIdEnum.UpdateNamePopover.POPOVER_FORM.getValue()));
72         }
73
74         @Test
75         public void SaveButtonShouldBeDisabledWhileTheNameHasNotBeenChanged() {
76                 EditNamePopoverTestsSetUp();
77
78                 WebElement popoverSaveButton = GeneralUIUtils
79                                 .getWebElementWaitForVisible(DataTestIdEnum.UpdateNamePopover.POPOVER_SAVE_BUTTON.getValue());
80
81                 assertTrue(popoverSaveButton.getAttribute("class").contains("disabled"));
82         }
83
84         @Test
85         public void ClickingOnTheSaveButtonShouldUpdateTheModuleName() {
86                 EditNamePopoverTestsSetUp();
87
88                 String newName = "testName";
89
90                 GeneralUIUtils.getWebElementWaitForVisible(DataTestIdEnum.UpdateNamePopover.POPOVER_HEAT_NAME.getValue())
91                                 .clear();
92                 GeneralUIUtils.getWebElementWaitForVisible(DataTestIdEnum.UpdateNamePopover.POPOVER_HEAT_NAME.getValue())
93                                 .sendKeys(newName);
94                 GeneralUIUtils.getWebElementWaitForVisible(DataTestIdEnum.UpdateNamePopover.POPOVER_SAVE_BUTTON.getValue())
95                                 .click();
96
97                 GeneralUIUtils.waitForLoader();
98
99                 String moduleName = GeneralUIUtils
100                                 .getWebElementWaitForVisible(DataTestIdEnum.TabsBar.HIERARCHY_MODULE.getValue()).getText();
101
102                 String[] dividedModuleName = moduleName.split(Pattern.quote(".."));
103
104                 assertEquals(dividedModuleName[1], newName);
105         }
106
107         @Test
108         public void testUpdateModuleNameSanity() {
109                 EditNamePopoverTestsSetUp();
110
111                 String newName = "testName";
112
113                 WebElement instanceName = GeneralUIUtils
114                                 .getWebElementWaitForVisible(DataTestIdEnum.UpdateNamePopover.POPOVER_INSTANCE_NAME.getValue());
115                 WebElement heatName = GeneralUIUtils
116                                 .getWebElementWaitForVisible(DataTestIdEnum.UpdateNamePopover.POPOVER_HEAT_NAME.getValue());
117                 WebElement moduleName = GeneralUIUtils
118                                 .getWebElementWaitForVisible(DataTestIdEnum.UpdateNamePopover.POPOVER_MODULE_NAME.getValue());
119
120                 String moduleNameToDivide = GeneralUIUtils
121                                 .getWebElementWaitForVisible(DataTestIdEnum.TabsBar.HIERARCHY_MODULE.getValue()).getText();
122
123                 String[] dividedModuleName = moduleNameToDivide.split(Pattern.quote(".."));
124
125                 assertEquals(dividedModuleName[0], instanceName.getText());
126                 assertEquals(dividedModuleName[1], heatName.getAttribute("value"));
127                 assertEquals(dividedModuleName[2], moduleName.getText());
128
129                 WebElement popoverSaveButton = GeneralUIUtils
130                                 .getWebElementWaitForVisible(DataTestIdEnum.UpdateNamePopover.POPOVER_SAVE_BUTTON.getValue());
131
132                 assertTrue(popoverSaveButton.getAttribute("class").contains("disabled"));
133
134                 heatName.clear();
135                 heatName.sendKeys(newName);
136
137                 popoverSaveButton.click();
138
139                 GeneralUIUtils.waitForLoader();
140
141                 moduleNameToDivide = GeneralUIUtils
142                                 .getWebElementWaitForVisible(DataTestIdEnum.TabsBar.HIERARCHY_MODULE.getValue()).getText();
143                 dividedModuleName = moduleNameToDivide.split(Pattern.quote(".."));
144
145                 assertEquals(dividedModuleName[1], newName);
146         }
147
148         // *****************************DeploymentTabsTests*****************************//
149
150         @Test
151         public void testTabIsBeingDisplayedAtDeploymentView() {
152                 DeploymentTestsSetUp();
153
154                 assertTrue(GeneralUIUtils.isElementPresent(DataTestIdEnum.TabsBar.HIERARCHY_TAB.getValue()));
155         }
156
157         @Test
158         public void testClickingOnTabSetsItAsSelected() {
159                 DeploymentTestsSetUp();
160
161                 WebElement hierarchyTab = GeneralUIUtils
162                                 .getWebElementWaitForVisible(DataTestIdEnum.TabsBar.HIERARCHY_TAB.getValue());
163                 hierarchyTab.click();
164
165                 assertTrue(hierarchyTab.getAttribute("class").contains("selected"));
166         }
167
168         @Test
169         public void testTabNameIsBeingDisplayedInTheSelectedTabHeader() {
170                 DeploymentTestsSetUp();
171
172                 // select the hierarchy tab and check the header
173                 GeneralUIUtils.getWebElementWaitForVisible(DataTestIdEnum.TabsBar.HIERARCHY_TAB.getValue()).click();
174                 WebElement tabHeader = GeneralUIUtils.getWebElementWaitForVisible(DataTestIdEnum.TabsBar.TAB_HEADER.getValue());
175
176                 assertEquals(tabHeader.getText(), "HIERARCHY");
177         }
178
179         @Test
180         public void testSelectingModuleNameInTheHierarchyTabShouldSelectIt() {
181                 DeploymentTestsSetUp();
182
183                 GeneralUIUtils.getWebElementWaitForVisible(DataTestIdEnum.TabsBar.HIERARCHY_TAB.getValue()).click();
184                 WebElement hierarchyModule = GeneralUIUtils
185                                 .getWebElementWaitForVisible(DataTestIdEnum.TabsBar.HIERARCHY_MODULE_TITLE.getValue());
186
187                 hierarchyModule.click();
188
189                 assertTrue(hierarchyModule.getAttribute("class").contains("selected"));
190         }
191
192         @Test
193         public void testSelectingModuleNameInTheHierarchyTabShouldExpandIt() {
194                 DeploymentTestsSetUp();
195
196                 // select hierarchy tab
197                 GeneralUIUtils.getWebElementWaitForVisible(DataTestIdEnum.TabsBar.HIERARCHY_TAB.getValue()).click();
198                 WebElement hierarchyModule = GeneralUIUtils
199                                 .getWebElementWaitForVisible(DataTestIdEnum.TabsBar.HIERARCHY_MODULE.getValue());
200
201                 hierarchyModule.click();
202
203                 assertTrue(hierarchyModule.getAttribute("class").contains("expanded"));
204         }
205
206         @Test
207         public void testSelectingModuleNameInTheHierarchyTabShouldDisplayItsData() {
208                 DeploymentTestsSetUp();
209
210                 // select hierarchy tab
211                 GeneralUIUtils.getWebElementWaitForVisible(DataTestIdEnum.TabsBar.HIERARCHY_TAB.getValue()).click();
212                 GeneralUIUtils.getWebElementWaitForVisible(DataTestIdEnum.TabsBar.HIERARCHY_MODULE.getValue()).click();
213
214                 assertTrue(GeneralUIUtils.isElementPresent(DataTestIdEnum.TabsBar.HIERARCHY_SELECTED_MODULE_DATA.getValue()));
215         }
216
217         @Test(enabled = false)
218         public void testResourceNameIsBeingDisplayedInTheSelectedTabSubHeader() {
219                 DeploymentTestsSetUp();
220
221                 // select the hierarchy tab and check the header
222                 // WebElement tabSubHeader =
223                 // getWebElement(DataTestIdEnum.TabsBar.TAB_SUB_HEADER.getValue());
224
225                 // assertEquals(tabSubHeader.getText(), vmmcCsar.getName());
226         }
227
228         @Test(enabled = false)
229         public void testSelectingModuleNameInTheHierarchyTabShouldDisplayItsInformation() throws IOException {
230                 DeploymentTestsSetUp();
231
232                 GeneralUIUtils.getWebElementWaitForVisible(DataTestIdEnum.TabsBar.HIERARCHY_TAB.getValue()).click();
233                 WebElement hierarchyModule = GeneralUIUtils
234                                 .getWebElementWaitForVisible(DataTestIdEnum.TabsBar.HIERARCHY_MODULE.getValue());
235
236                 // get the module
237                 // String component = RestCDUtils.getResource(vmmcCsar).getResponse();
238                 // TODO idana fix test
239                 /*
240                  * GroupDefinitionInfo module = getModuleById(component,
241                  * hierarchyModule.getText());
242                  * 
243                  * hierarchyModule.click();
244                  * 
245                  * assertModuleDetails(module, hierarchyModule);
246                  */
247
248         }
249
250         @Test(enabled = false)
251         public void testSelectingModuleNameInTheHierarchyTabShouldDisplayItsArtifacts() throws IOException {
252                 DeploymentTestsSetUp();
253
254                 GeneralUIUtils.getWebElementWaitForClickable(DataTestIdEnum.TabsBar.HIERARCHY_TAB.getValue()).click();
255                 WebElement hierarchyModule = GeneralUIUtils
256                                 .getWebElementWaitForVisible(DataTestIdEnum.TabsBar.HIERARCHY_MODULE.getValue());
257
258                 // TODO idana fix test
259                 // Get the artifact from the module
260                 /*
261                  * String component = RestCDUtils.getResource(vmmcCsar,
262                  * getUser()).getResponse(); GroupDefinitionInfo module =
263                  * getModuleById(component, hierarchyModule.getText());
264                  * ArtifactDefinitionInfo artifact = module.getArtifacts().get(0);
265                  * 
266                  * hierarchyModule.click();
267                  * 
268                  * assertModuleArtifactDetails(artifact);
269                  */
270         }
271
272         @Test
273         public void testTabsViewSanity() throws IOException {
274                 DeploymentTestsSetUp();
275
276                 WebElement hierarchyTab = GeneralUIUtils
277                                 .getWebElementWaitForVisible(DataTestIdEnum.TabsBar.HIERARCHY_TAB.getValue());
278
279                 assertTrue(hierarchyTab != null);
280
281                 hierarchyTab.click();
282
283                 assertTrue(hierarchyTab.getAttribute("class").contains("selected"));
284
285                 WebElement tabHeader = GeneralUIUtils.getWebElementWaitForVisible(DataTestIdEnum.TabsBar.TAB_HEADER.getValue());
286                 WebElement tabSubHeader = GeneralUIUtils
287                                 .getWebElementWaitForVisible(DataTestIdEnum.TabsBar.TAB_SUB_HEADER.getValue());
288
289                 assertEquals(tabHeader.getText(), "HIERARCHY");
290                 // assertEquals(tabSubHeader.getText(), vmmcCsar.getName());
291
292                 WebElement hierarchyModule = GeneralUIUtils
293                                 .getWebElementWaitForVisible(DataTestIdEnum.TabsBar.HIERARCHY_MODULE.getValue());
294                 WebElement hierarchyModuleTitle = GeneralUIUtils
295                                 .getWebElementWaitForVisible(DataTestIdEnum.TabsBar.HIERARCHY_MODULE_TITLE.getValue());
296                 hierarchyModule.click();
297                 WebElement selectedModuleData = GeneralUIUtils
298                                 .getWebElementWaitForVisible(DataTestIdEnum.TabsBar.HIERARCHY_SELECTED_MODULE_DATA.getValue());
299
300                 assertTrue(hierarchyModuleTitle.getAttribute("class").contains("selected"));
301                 assertTrue(hierarchyModule.getAttribute("class").contains("expanded"));
302                 assertTrue(selectedModuleData.getAttribute("ng-if") != null);
303                 // TODO idana fix test
304                 /*
305                  * String component = RestCDUtils.getResource(vmmcCsar,
306                  * getUser()).getResponse(); GroupDefinitionInfo module =
307                  * getModuleById(component, hierarchyModule.getText());
308                  * ArtifactDefinitionInfo artifact = module.getArtifacts().get(0);
309                  * 
310                  * assertModuleDetails(module, hierarchyModule);
311                  * 
312                  * assertModuleArtifactDetails(artifact);
313                  */
314
315         }
316
317         // ************************DeploymentTestsSetUpFunction************************//
318
319         private void EditNamePopoverTestsSetUp() {
320                 DeploymentTestsSetUp();
321
322                 // clicking on a module and opening the edit name popover
323                 GeneralUIUtils.getWebElementWaitForVisible(DataTestIdEnum.TabsBar.HIERARCHY_TAB.getValue()).click();
324                 GeneralUIUtils.getWebElementWaitForVisible(DataTestIdEnum.TabsBar.HIERARCHY_MODULE.getValue()).click();
325                 GeneralUIUtils.getWebElementWaitForVisible(DataTestIdEnum.UpdateNamePopover.OPEN_POPOVER_ICON.getValue())
326                                 .click();
327         }
328
329         private void DeploymentTestsSetUp() {
330                 // import csar
331                 String filePath = FileHandling.getResourcesFilesPath();
332                 String fileName = "vf_with_groups.csar";
333                 ResourceUIUtils.importVfInUI(getUser(), filePath, fileName);
334
335                 GeneralUIUtils.waitForLoader(20);
336
337                 // moving to deployment view
338                 GeneralUIUtils.moveToStep(CreateAndUpdateStepsEnum.DEPLOYMENT);
339         }
340 }