Fix for Penetration test _ Session and cookie management
[vid.git] / vid-app-common / src / main / webapp / app / vid / test / testViewEdit.js
1 /*-\r
2  * ============LICENSE_START=======================================================\r
3  * VID\r
4  * ================================================================================\r
5  * Copyright (C) 2017 - 2019 AT&T Intellectual Property. All rights reserved.\r
6  * ================================================================================\r
7  * Licensed under the Apache License, Version 2.0 (the "License");\r
8  * you may not use this file except in compliance with the License.\r
9  * You may obtain a copy of the License at\r
10  * \r
11  *      http://www.apache.org/licenses/LICENSE-2.0\r
12  * \r
13  * Unless required by applicable law or agreed to in writing, software\r
14  * distributed under the License is distributed on an "AS IS" BASIS,\r
15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
16  * See the License for the specific language governing permissions and\r
17  * limitations under the License.\r
18  * ============LICENSE_END=========================================================\r
19  */\r
20 \r
21 "use strict";\r
22 \r
23 app.config(function($logProvider) {\r
24     // Optionally set to "false" to disable debug logging.\r
25     $logProvider.debugEnabled(true);\r
26 });\r
27 \r
28 var testViewEditController = function(COMPONENT, DataService, PropertyService,\r
29         UtilityService, $scope, $timeout, $cookieStore, $log) {\r
30 \r
31     $scope.popup = new Object();\r
32     $scope.isTestMode = false;\r
33 \r
34     $scope.init = function(properties) {\r
35 \r
36         /*\r
37          * These 2 statements should be included in non-test code.\r
38          */\r
39         PropertyService\r
40                 .setMsoMaxPollingIntervalMsec(properties.msoMaxPollingIntervalMsec);\r
41         PropertyService.setMsoMaxPolls(properties.msoMaxPolls);\r
42 \r
43         /*\r
44          * Common parameters that shows an example of how the view edit screen\r
45          * is expected to pass some common service instance values to the\r
46          * popups.\r
47          */\r
48 \r
49         DataService.setSubscriberName("Mobility");\r
50         DataService.setGlobalCustomerId("CUSTID12345");\r
51         DataService.setServiceType("Mobility Type 1");\r
52         DataService.setServiceInstanceName("Example Service Instance Name");\r
53         DataService.setServiceName("Mobility Service 1");\r
54         DataService.setServiceInstanceId("mmsc-test-service-instance");\r
55         DataService.setServiceUuid("XXXX-YYYY-ZZZZ");\r
56         DataService.setUserServiceInstanceName("USER_SERVICE_INSTANCE_NAME");\r
57 \r
58         /*\r
59          * "setTestMode" is only used for testing.\r
60          */\r
61 \r
62         setTestMode();\r
63 \r
64     };\r
65 \r
66     $scope.autoStartTest = function() {\r
67         /*\r
68          * Optionally comment in / out one of these method calls (or add a\r
69          * similar entry) to auto-invoke an entry as soon as the page is\r
70          * refreshed.\r
71          */\r
72         $timeout(function() {\r
73             // $scope.showServiceDetails();\r
74             // $scope.showVnfDetails();\r
75             // $scope.createService();\r
76             // $scope.deleteService();\r
77             // $scope.createNetwork();\r
78             // $scope.createVnf();\r
79             // $scope.createVfModule();\r
80             // $scope.deleteVnf();\r
81             // $scope.createVfModule();\r
82         }, 500);\r
83     };\r
84 \r
85     /*\r
86      * This block of code is only used for testing.\r
87      */\r
88 \r
89     /*\r
90      * The first 3 functions override default values set in the server\r
91      * properties file.\r
92      * \r
93      * 1) The URL for the MSO controller is set to either the "real" controller\r
94      * or the test version depending on the "Use test MSO controller" checkbox.\r
95      * \r
96      * 2) SDC and AAI are set to use test controller versions.\r
97      * \r
98      * 3) Maximum polling and timeout values are set to lower values to lessen\r
99      * the time required to run tests.\r
100      * \r
101      */\r
102 \r
103     var TEST_MODE_COOKIE = "isTestModeEnabled";\r
104 \r
105     var defaultMsoBaseUrl = PropertyService.getMsoBaseUrl();\r
106 \r
107     var setTestMode = function() {\r
108         setTestMsoMode($cookieStore.get(TEST_MODE_COOKIE));\r
109         PropertyService.setAaiBaseUrl("testaai");\r
110         PropertyService.setAsdcBaseUrl("testasdc");\r
111         PropertyService.setMsoMaxPollingIntervalMsec(1000);\r
112         PropertyService.setMsoMaxPolls(7);\r
113     };\r
114 \r
115     $scope.testMsoModeChanged = function() {\r
116         setTestMsoMode($scope.isTestMsoMode);\r
117     };\r
118 \r
119     var setTestMsoMode = function(isEnabled) {\r
120         $scope.isTestMsoMode = isEnabled;\r
121         $cookieStore.put(TEST_MODE_COOKIE, isEnabled);\r
122         if (isEnabled) {\r
123             PropertyService.setMsoBaseUrl("testmso");\r
124         } else {\r
125             PropertyService.setMsoBaseUrl(defaultMsoBaseUrl);\r
126         }\r
127     };\r
128 \r
129     var callbackFunction = function(response) {\r
130         $scope.callbackResults = "";\r
131         var color = "none";\r
132         $scope.callbackStyle = {\r
133             "background-color" : color\r
134         };\r
135         /*\r
136          * This 1/2 delay was only added to visually highlight the status\r
137          * change. Probably not needed in the real application code.\r
138          */\r
139         $timeout(function() {\r
140             $scope.callbackResults = UtilityService.getCurrentTime()\r
141                     + " isSuccessful: " + response.isSuccessful;\r
142             if (response.isSuccessful) {\r
143                 color = "#8F8";\r
144             } else {\r
145                 color = "#F88";\r
146             }\r
147             $scope.callbackStyle = {\r
148                 "background-color" : color\r
149             };\r
150         }, 500);\r
151     };\r
152 \r
153     /*\r
154      * End of block of test-specific code\r
155      */\r
156 \r
157     /*\r
158      * Create functions\r
159      */\r
160     $scope.createService = function() {\r
161 \r
162         DataService.setModelId("91238134091820938018230918230989");\r
163 \r
164         $scope.$broadcast("createComponent", {\r
165             componentId : COMPONENT.SERVICE,\r
166             callbackFunction : callbackFunction\r
167         });\r
168     };\r
169 \r
170     $scope.createVnf = function() {\r
171 \r
172         DataService.setModelId("91238134091820938018230918230989");\r
173         DataService.setModelInstanceName("VNF_MODEL_INSTANCE_NAME");\r
174 \r
175         DataService.setCloudRegionTenantList(exampleCloudRegionTenantList);\r
176         DataService.setServiceIdList(exampleServiceIdList);\r
177 \r
178         // Data used to create MSO "relatedInstanceList" object\r
179 \r
180         DataService.setModelInfo(COMPONENT.SERVICE, exampleServiceModelInfo);\r
181 \r
182         $scope.$broadcast("createComponent", {\r
183             componentId : COMPONENT.VNF,\r
184             callbackFunction : callbackFunction\r
185         });\r
186     };\r
187 \r
188     $scope.createVfModule = function() {\r
189         DataService\r
190                 .setInventoryItem(exampleAaiResult["inventory-response-items"][0]);\r
191 \r
192         DataService.setModelId("91238134091820938018230918230989");\r
193         DataService.setModelInstanceName("VF_MODULE_MODEL_INSTANCE_NAME");\r
194 \r
195         DataService.setLcpRegion("Region2");\r
196         DataService.setTenant("Tenant2");\r
197         // Data used to create MSO "relatedInstanceList" object\r
198 \r
199         DataService.setModelInfo(COMPONENT.SERVICE, exampleServiceModelInfo);\r
200 \r
201         DataService.setVnfInstanceId("VNF_INSTANCE_ID_12345");\r
202         DataService.setModelInfo(COMPONENT.VNF, exampleVnfModelInfo);\r
203 \r
204         DataService.setVolumeGroupInstanceId("VOLUME_GROUP_INSTANCE_ID_12345");\r
205         DataService\r
206                 .setAvailableVolumeGroupList(exampleAvailableVolumeGroupList);\r
207         DataService.setModelInfo(COMPONENT.VOLUME_GROUP,\r
208                 exampleVolumeGroupModelInfo);\r
209 \r
210         $scope.$broadcast("createComponent", {\r
211             componentId : COMPONENT.VF_MODULE,\r
212             callbackFunction : callbackFunction\r
213         });\r
214     };\r
215 \r
216     $scope.createVolumeGroup = function() {\r
217 \r
218         DataService.setModelId("91238134091820938018230918230989");\r
219         DataService.setModelInstanceName("VOLUME_GROUP_MODEL_INSTANCE_NAME");\r
220         DataService.setLcpRegion("Region1");\r
221         DataService.setTenant("Tenant1");\r
222         // Data used to create MSO "relatedInstanceList" object\r
223 \r
224         DataService.setModelInfo(COMPONENT.SERVICE, exampleServiceModelInfo);\r
225 \r
226         DataService.setVnfInstanceId("VNF_INSTANCE_ID_12345");\r
227         DataService.setModelInfo(COMPONENT.VNF, exampleVnfModelInfo);\r
228 \r
229         $scope.$broadcast("createComponent", {\r
230             componentId : COMPONENT.VOLUME_GROUP,\r
231             callbackFunction : callbackFunction\r
232         });\r
233     };\r
234 \r
235     $scope.createNetwork = function() {\r
236 \r
237         DataService.setModelId("91238134091820938018230918230989");\r
238         DataService.setModelInstanceName("NETWORK_MODEL_INSTANCE_NAME");\r
239 \r
240         DataService.setCloudRegionTenantList(exampleCloudRegionTenantList)\r
241         DataService.setServiceIdList(exampleServiceIdList);\r
242 \r
243         // Data used to create MSO "relatedInstanceList" object\r
244 \r
245         DataService.setModelInfo(COMPONENT.SERVICE, exampleServiceModelInfo);\r
246 \r
247         $scope.$broadcast("createComponent", {\r
248             componentId : COMPONENT.NETWORK,\r
249             callbackFunction : callbackFunction\r
250         });\r
251     };\r
252 \r
253     /*\r
254      * Delete functions\r
255      */\r
256     $scope.deleteService = function() {\r
257 \r
258         DataService.setInventoryItem(exampleServiceItem);\r
259 \r
260         DataService.setModelInfo(COMPONENT.SERVICE, exampleServiceModelInfo);\r
261 \r
262         $scope.$broadcast("deleteComponent", {\r
263             componentId : COMPONENT.SERVICE,\r
264             callbackFunction : callbackFunction\r
265         });\r
266     };\r
267 \r
268     $scope.deleteVnf = function() {\r
269 \r
270         DataService\r
271                 .setInventoryItem(exampleAaiResult["inventory-response-items"]["inventory-response-item"][0]);\r
272 \r
273         DataService.setVnfInstanceId("VNF_INSTANCE_ID_12345");\r
274         DataService.setModelInfo(COMPONENT.VNF, exampleVnfModelInfo);\r
275         DataService.setLcpRegion("Region3");\r
276         DataService.setTenant("Tenant3");\r
277 \r
278         $scope.$broadcast("deleteComponent", {\r
279             componentId : COMPONENT.VNF,\r
280             callbackFunction : callbackFunction\r
281         });\r
282     };\r
283 \r
284     $scope.deleteVfModule = function() {\r
285 \r
286         DataService.setInventoryItem(exampleVfModuleItem);\r
287 \r
288         DataService.setVnfInstanceId("VNF_INSTANCE_ID_12345");\r
289 \r
290         DataService.setVfModuleInstanceId("VF_MODULE_INSTANCE_ID_12345");\r
291         DataService.setModelInfo(COMPONENT.VF_MODULE, exampleVfModuleModelInfo);\r
292         DataService.setLcpRegion("Region4");\r
293         DataService.setTenant("Tenant4");\r
294 \r
295         $scope.$broadcast("deleteComponent", {\r
296             componentId : COMPONENT.VF_MODULE,\r
297             callbackFunction : callbackFunction\r
298         });\r
299     };\r
300 \r
301     $scope.deleteVolumeGroup = function() {\r
302 \r
303         DataService.setInventoryItem(exampleVolumeGroupItem);\r
304 \r
305         DataService.setVolumeGroupInstanceId("VOLUME_GROUP_INSTANCE_ID_12345");\r
306         DataService.setModelInfo(COMPONENT.VOLUME_GROUP,\r
307                 exampleVolumeGroupModelInfo);\r
308         DataService.setLcpRegion("Region3");\r
309         DataService.setTenant("Tenant3");\r
310 \r
311 \r
312         $scope.$broadcast("deleteComponent", {\r
313             componentId : COMPONENT.VOLUME_GROUP,\r
314             callbackFunction : callbackFunction\r
315         });\r
316     };\r
317 \r
318     $scope.deleteNetwork = function() {\r
319 \r
320         DataService.setInventoryItem(exampleNetworkItem);\r
321 \r
322         DataService.setNetworkInstanceId("NETWORK_INSTANCE_ID_12345");\r
323         DataService.setModelInfo(COMPONENT.NETWORK, exampleNetworkModelInfo);\r
324         DataService.setLcpRegion("Region5");\r
325         DataService.setTenant("Tenant5");\r
326 \r
327         $scope.$broadcast("deleteComponent", {\r
328             componentId : COMPONENT.NETWORK,\r
329             callbackFunction : callbackFunction\r
330         });\r
331     };\r
332 \r
333     /*\r
334      * Show Details functions\r
335      */\r
336     $scope.showServiceDetails = function() {\r
337 \r
338         DataService.setInventoryItem(exampleServiceItem);\r
339 \r
340         $scope.$broadcast("showComponentDetails", {\r
341             componentId : COMPONENT.SERVICE,\r
342             callbackFunction : callbackFunction\r
343         });\r
344     };\r
345 \r
346     $scope.showVnfDetails = function() {\r
347 \r
348         DataService.setVnfInstanceId("VNF_INSTANCE_ID_12345");\r
349         DataService\r
350                 .setInventoryItem(exampleAaiResult["inventory-response-items"]["inventory-response-item"][0]);\r
351 \r
352         $scope.$broadcast("showComponentDetails", {\r
353             componentId : COMPONENT.VNF,\r
354             callbackFunction : callbackFunction\r
355         });\r
356     };\r
357 \r
358     $scope.showVfModuleDetails = function() {\r
359 \r
360         DataService.setVnfInstanceId("VNF_INSTANCE_ID_12345");\r
361         DataService.setVfModuleInstanceId("VF_MODULE_INSTANCE_ID_12345");\r
362         DataService.setInventoryItem(exampleVfModuleItem);\r
363 \r
364         $scope.$broadcast("showComponentDetails", {\r
365             componentId : COMPONENT.VF_MODULE,\r
366             callbackFunction : callbackFunction\r
367         });\r
368     };\r
369 \r
370     $scope.showVolumeGroupDetails = function() {\r
371 \r
372         DataService.setVolumeGroupInstanceId("VOLUME_GROUP_INSTANCE_ID_12345");\r
373         DataService.setInventoryItem(exampleVolumeGroupItem);\r
374 \r
375         $scope.$broadcast("showComponentDetails", {\r
376             componentId : COMPONENT.VOLUME_GROUP,\r
377             callbackFunction : callbackFunction\r
378         });\r
379     };\r
380 \r
381     $scope.showNetworkDetails = function() {\r
382 \r
383         DataService.setNetworkInstanceId("NETWORK_INSTANCE_ID_12345");\r
384         DataService.setInventoryItem(exampleNetworkItem);\r
385 \r
386         $scope.$broadcast("showComponentDetails", {\r
387             componentId : COMPONENT.NETWORK,\r
388             callbackFunction : callbackFunction\r
389         });\r
390     };\r
391 };\r
392 \r
393 app.controller("testViewEditController", [ "COMPONENT", "DataService",\r
394         "PropertyService", "UtilityService", "$scope", "$timeout",\r
395         "$cookieStore", "$log", testViewEditController ]);\r