2 * ============LICENSE_START==========================================
4 * ===================================================================
5 * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
6 * ===================================================================
8 * Unless otherwise specified, all software contained herein is licensed
9 * under the Apache License, Version 2.0 (the "License");
10 * you may not use this software except in compliance with the License.
11 * You may obtain a copy of the License at
13 * http://www.apache.org/licenses/LICENSE-2.0
15 * Unless required by applicable law or agreed to in writing, software
16 * distributed under the License is distributed on an "AS IS" BASIS,
17 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
18 * See the License for the specific language governing permissions and
19 * limitations under the License.
21 * Unless otherwise specified, all documentation contained herein is licensed
22 * under the Creative Commons License, Attribution 4.0 Intl. (the "License");
23 * you may not use this documentation except in compliance with the License.
24 * You may obtain a copy of the License at
26 * https://creativecommons.org/licenses/by/4.0/
28 * Unless required by applicable law or agreed to in writing, documentation
29 * distributed under the License is distributed on an "AS IS" BASIS,
30 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
31 * See the License for the specific language governing permissions and
32 * limitations under the License.
34 * ============LICENSE_END============================================
38 package org.onap.portalapp.portal.controller;
40 import static org.junit.Assert.assertEquals;
42 import java.util.ArrayList;
43 import java.util.HashMap;
44 import java.util.List;
47 import javax.servlet.http.HttpServletRequest;
48 import javax.servlet.http.HttpServletResponse;
50 import org.junit.Before;
51 import org.junit.Test;
52 import org.mockito.InjectMocks;
53 import org.mockito.Mock;
54 import org.mockito.Mockito;
55 import org.mockito.MockitoAnnotations;
56 import org.onap.portalapp.portal.controller.DashboardSearchResultController;
57 import org.onap.portalapp.portal.domain.EPUser;
58 import org.onap.portalapp.portal.ecomp.model.PortalRestResponse;
59 import org.onap.portalapp.portal.ecomp.model.PortalRestStatusEnum;
60 import org.onap.portalapp.portal.ecomp.model.SearchResultItem;
61 import org.onap.portalapp.portal.framework.MockEPUser;
62 import org.onap.portalapp.portal.framework.MockitoTestSuite;
63 import org.onap.portalapp.portal.service.DashboardSearchService;
64 import org.onap.portalapp.portal.transport.CommonWidget;
65 import org.onap.portalapp.portal.transport.CommonWidgetMeta;
66 import org.onap.portalapp.util.EPUserUtils;
68 public class DashboardSearchResultControllerTest {
71 DashboardSearchService searchService;
75 MockitoAnnotations.initMocks(this);
79 DashboardSearchResultController dashboardSearchResultController = new DashboardSearchResultController();
81 MockitoTestSuite mockitoTestSuite = new MockitoTestSuite();
83 HttpServletRequest mockedRequest = mockitoTestSuite.getMockedRequest();
84 HttpServletResponse mockedResponse = mockitoTestSuite.getMockedResponse();
85 NullPointerException nullPointerException = new NullPointerException();
86 MockEPUser mockUser = new MockEPUser();
89 public void getWidgetDataTest() {
90 PortalRestResponse<CommonWidgetMeta> ecpectedPortalRestResponse = new PortalRestResponse<CommonWidgetMeta>();
91 ecpectedPortalRestResponse.setMessage("success");
92 ecpectedPortalRestResponse.setResponse(new CommonWidgetMeta());
93 ecpectedPortalRestResponse.setStatus(PortalRestStatusEnum.OK);
94 CommonWidgetMeta commonWidgetMeta = new CommonWidgetMeta();
95 Mockito.when(searchService.getWidgetData("test")).thenReturn(commonWidgetMeta);
96 PortalRestResponse<CommonWidgetMeta> actualPortalRestResponse = dashboardSearchResultController
97 .getWidgetData(mockedRequest, "test");
98 assertEquals(ecpectedPortalRestResponse.getStatus(), actualPortalRestResponse.getStatus());
102 public void getWidgetDataXSSTest() {
103 String resourceType = "\"<IMG SRC=\\\"jav\\tascript:alert('XSS');\\\">\"";
104 PortalRestResponse expectedPortalRestResponse = new PortalRestResponse<>();
105 expectedPortalRestResponse.setMessage("Provided data is invalid");
106 expectedPortalRestResponse.setStatus(PortalRestStatusEnum.ERROR);
107 Mockito.when(searchService.getWidgetData(resourceType)).thenReturn(null);
108 PortalRestResponse acutualPoratlRestResponse = dashboardSearchResultController
109 .getWidgetData(mockedRequest, resourceType);
110 assertEquals(acutualPoratlRestResponse, expectedPortalRestResponse);
114 public void saveWidgetDataBulkIfCatrgoryNullTest() {
115 PortalRestResponse<String> ecpectedPortalRestResponse = new PortalRestResponse<String>();
116 ecpectedPortalRestResponse.setMessage("ERROR");
117 ecpectedPortalRestResponse.setResponse("Category cannot be null or empty");
118 ecpectedPortalRestResponse.setStatus(PortalRestStatusEnum.ERROR);
119 CommonWidgetMeta commonWidgetMeta = new CommonWidgetMeta();
120 commonWidgetMeta.setCategory(null);
121 PortalRestResponse<String> actualPortalRestResponse = dashboardSearchResultController
122 .saveWidgetDataBulk(commonWidgetMeta);
123 assertEquals(ecpectedPortalRestResponse, actualPortalRestResponse);
127 public void saveWidgetDataBulkTest() {
128 PortalRestResponse<String> ecpectedPortalRestResponse = new PortalRestResponse<String>();
129 ecpectedPortalRestResponse.setMessage("success");
130 ecpectedPortalRestResponse.setResponse(null);
131 ecpectedPortalRestResponse.setStatus(PortalRestStatusEnum.OK);
132 CommonWidgetMeta commonWidgetMeta = new CommonWidgetMeta();
133 commonWidgetMeta.setCategory("test");
134 List<CommonWidget> items = new ArrayList<>();
136 CommonWidget commonWidget = new CommonWidget();
137 commonWidget.setId((long) 1);
138 commonWidget.setEventDate("2017-06-06");
139 items.add(commonWidget);
140 commonWidgetMeta.setItems(items);
141 PortalRestResponse<String> actualPortalRestResponse = dashboardSearchResultController
142 .saveWidgetDataBulk(commonWidgetMeta);
143 assertEquals(ecpectedPortalRestResponse, actualPortalRestResponse);
147 public void saveWidgetDataBulkExceptionTest() {
148 PortalRestResponse<String> ecpectedPortalRestResponse = new PortalRestResponse<String>();
149 ecpectedPortalRestResponse.setMessage("ERROR");
150 ecpectedPortalRestResponse.setResponse("Category is not valid");
151 ecpectedPortalRestResponse.setStatus(PortalRestStatusEnum.ERROR);
152 CommonWidgetMeta commonWidgetMeta = new CommonWidgetMeta();
153 commonWidgetMeta.setCategory("test");
154 List<CommonWidget> items = new ArrayList<>();
156 CommonWidget commonWidget = new CommonWidget();
157 commonWidget.setId((long) 1);
158 commonWidget.setEventDate("date");
159 items.add(commonWidget);
160 commonWidgetMeta.setItems(items);
161 PortalRestResponse<String> actualPortalRestResponse = dashboardSearchResultController
162 .saveWidgetDataBulk(commonWidgetMeta);
163 assertEquals(ecpectedPortalRestResponse, actualPortalRestResponse);
167 public void saveWidgetDataBulkXSSTest() {
168 PortalRestResponse<String> ecpectedPortalRestResponse = new PortalRestResponse<>();
169 ecpectedPortalRestResponse.setMessage("ERROR");
170 ecpectedPortalRestResponse.setResponse("Category is not valid");
171 ecpectedPortalRestResponse.setStatus(PortalRestStatusEnum.ERROR);
173 CommonWidgetMeta commonWidgetMeta = new CommonWidgetMeta();
174 commonWidgetMeta.setCategory("test");
176 List<CommonWidget> commonWidgetList = new ArrayList<>();
177 CommonWidget commonWidget = new CommonWidget();
178 commonWidget.setId((long) 1);
179 commonWidget.setCategory("test");
180 commonWidget.setHref("\"<IMG SRC=\\\"jav\\tascript:alert('XSS');\\\">\"");
181 commonWidget.setTitle("test_title");
182 commonWidget.setContent("test_content");
183 commonWidget.setEventDate(null);
184 commonWidget.setSortOrder(1);
186 commonWidgetList.add(commonWidget);
188 commonWidgetMeta.setItems(commonWidgetList);
190 Mockito.when(searchService.saveWidgetDataBulk(commonWidgetMeta)).thenReturn(null);
192 PortalRestResponse<String> actualPortalRestResponse = dashboardSearchResultController
193 .saveWidgetDataBulk(commonWidgetMeta);
194 assertEquals(ecpectedPortalRestResponse, actualPortalRestResponse);
198 public void saveWidgetDataXSSTest() {
199 PortalRestResponse<String> expectedPortalRestResponse = new PortalRestResponse<>();
200 expectedPortalRestResponse.setMessage("ERROR");
201 expectedPortalRestResponse.setResponse("Category is not valid");
202 expectedPortalRestResponse.setStatus(PortalRestStatusEnum.ERROR);
203 CommonWidget commonWidget = new CommonWidget();
204 commonWidget.setId((long) 1);
205 commonWidget.setCategory("test");
206 commonWidget.setHref("\"<IMG SRC=\"jav\\tascript:alert('XSS');\">\"");
207 commonWidget.setTitle("test_title");
208 commonWidget.setContent("test_content");
209 commonWidget.setEventDate(null);
210 commonWidget.setSortOrder(1);
212 Mockito.when(searchService.saveWidgetData(commonWidget)).thenReturn(null);
214 PortalRestResponse<String> actualPortalRestResponse = dashboardSearchResultController
215 .saveWidgetData(commonWidget);
216 assertEquals(expectedPortalRestResponse, actualPortalRestResponse);
221 public void deleteWidgetDataXSSTest() {
222 PortalRestResponse<String> expectedPortalRestResponse = new PortalRestResponse<>();
223 expectedPortalRestResponse.setMessage("ERROR");
224 expectedPortalRestResponse.setResponse("Data is not valid");
225 expectedPortalRestResponse.setStatus(PortalRestStatusEnum.ERROR);
226 CommonWidget commonWidget = new CommonWidget();
227 commonWidget.setId((long) 1);
228 commonWidget.setCategory("test");
229 commonWidget.setHref("test_href");
230 commonWidget.setTitle("\"<IMG SRC=\"jav\\tascript:alert('XSS');\">\"");
231 commonWidget.setContent("test_content");
232 commonWidget.setEventDate(null);
233 commonWidget.setSortOrder(1);
234 Mockito.when(searchService.deleteWidgetData(commonWidget)).thenReturn(null);
236 PortalRestResponse<String> actualPortalRestResponse = dashboardSearchResultController
237 .deleteWidgetData(commonWidget);
239 assertEquals(expectedPortalRestResponse, actualPortalRestResponse);
243 public void saveWidgetDataIfCatagoryNullTest() {
244 PortalRestResponse<String> ecpectedPortalRestResponse = new PortalRestResponse<String>();
245 ecpectedPortalRestResponse.setMessage("ERROR");
246 ecpectedPortalRestResponse.setResponse("Cateogry cannot be null or empty");
247 ecpectedPortalRestResponse.setStatus(PortalRestStatusEnum.ERROR);
248 CommonWidget commonWidget = new CommonWidget();
249 commonWidget.setCategory(null);
250 PortalRestResponse<String> actualPortalRestResponse = dashboardSearchResultController
251 .saveWidgetData(commonWidget);
252 assertEquals(ecpectedPortalRestResponse, actualPortalRestResponse);
256 public void saveWidgetDataTest() {
257 PortalRestResponse<String> ecpectedPortalRestResponse = new PortalRestResponse<String>();
258 ecpectedPortalRestResponse.setMessage("success");
259 ecpectedPortalRestResponse.setResponse(null);
260 ecpectedPortalRestResponse.setStatus(PortalRestStatusEnum.OK);
261 CommonWidget commonWidget = new CommonWidget();
262 commonWidget.setCategory("test");
263 commonWidget.setId((long) 1);
264 commonWidget.setEventDate("2017-06-06");
265 PortalRestResponse<String> actualPortalRestResponse = dashboardSearchResultController
266 .saveWidgetData(commonWidget);
267 assertEquals(ecpectedPortalRestResponse, actualPortalRestResponse);
271 public void saveWidgetDataExceptionTest() {
272 PortalRestResponse<String> ecpectedPortalRestResponse = new PortalRestResponse<String>();
273 ecpectedPortalRestResponse.setMessage("ERROR");
274 ecpectedPortalRestResponse.setResponse("Category is not valid");
275 ecpectedPortalRestResponse.setStatus(PortalRestStatusEnum.ERROR);
276 CommonWidget commonWidget = new CommonWidget();
277 commonWidget.setCategory("test");
278 commonWidget.setId((long) 1);
279 commonWidget.setEventDate("date");
280 PortalRestResponse<String> actualPortalRestResponse = dashboardSearchResultController
281 .saveWidgetData(commonWidget);
282 assertEquals(ecpectedPortalRestResponse, actualPortalRestResponse);
286 public void deleteWidgetDataTest()
288 PortalRestResponse<String> ecpectedPortalRestResponse = new PortalRestResponse<String>();
289 ecpectedPortalRestResponse.setMessage("success");
290 ecpectedPortalRestResponse.setResponse(null);
291 ecpectedPortalRestResponse.setStatus(PortalRestStatusEnum.OK);
292 CommonWidget commonWidget = new CommonWidget();
293 Mockito.when(searchService.deleteWidgetData(commonWidget)).thenReturn("test");
294 PortalRestResponse<String> actualPortalRestResponse = dashboardSearchResultController
295 .deleteWidgetData(commonWidget);
296 assertEquals(ecpectedPortalRestResponse.getStatus(), actualPortalRestResponse.getStatus());
300 public void searchPortalIfUserIsTest()
303 Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user);
304 String searchString = "test";
305 PortalRestResponse<Map<String, List<SearchResultItem>>> expectedResult = new PortalRestResponse<Map<String, List<SearchResultItem>>>();
306 expectedResult.setMessage("searchPortal: User object is null? - check logs");
307 expectedResult.setResponse(new HashMap<String, List<SearchResultItem>>());
308 expectedResult.setStatus(PortalRestStatusEnum.ERROR);
309 PortalRestResponse<Map<String, List<SearchResultItem>>> actualResult = dashboardSearchResultController
310 .searchPortal(mockedRequest, searchString);
311 System.out.println(actualResult);
313 assertEquals(expectedResult, actualResult);
318 public void getActiveUsersTest() {
319 List<String> expectedActiveUsers = new ArrayList<String>();
320 EPUser user = mockUser.mockEPUser();
322 Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user);
323 String userId = user.getOrgUserId();
324 Mockito.when(searchService.getRelatedUsers(userId)).thenReturn(expectedActiveUsers);
325 List<String> actualOnlineUsers = dashboardSearchResultController.getActiveUsers(mockedRequest);
326 assertEquals(expectedActiveUsers, actualOnlineUsers);
331 public void getActiveUsersExceptionTest() {
332 List<String> expectedActiveUsers = new ArrayList<String>();
333 EPUser user = mockUser.mockEPUser();
334 Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user);
335 String userId = user.getOrgUserId();
336 Mockito.when(searchService.getRelatedUsers(userId)).thenThrow(nullPointerException);
337 List<String> actualOnlineUsers = dashboardSearchResultController.getActiveUsers(mockedRequest);
338 assertEquals(expectedActiveUsers, actualOnlineUsers);
343 public void activeUsersTest() {
344 EPUser user = mockUser.mockEPUser();
345 Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user);
346 PortalRestResponse<List<String>> expectedResult = new PortalRestResponse<List<String>>();
347 expectedResult.setMessage("success");
348 expectedResult.setResponse(new ArrayList<>());
349 expectedResult.setStatus(PortalRestStatusEnum.OK);
350 PortalRestResponse<List<String>> actualResult = dashboardSearchResultController.activeUsers(mockedRequest);
352 assertEquals(actualResult, expectedResult);
357 public void activeUsersIfUserNullTest() {
359 Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user);
360 PortalRestResponse<List<String>> expectedResult = new PortalRestResponse<List<String>>();
361 expectedResult.setMessage("User object is null? - check logs");
362 expectedResult.setResponse(new ArrayList<>());
363 expectedResult.setStatus(PortalRestStatusEnum.ERROR);
364 PortalRestResponse<List<String>> actualResult = dashboardSearchResultController.activeUsers(mockedRequest);
365 assertEquals(actualResult, expectedResult);
370 public void activeUsersExceptionTest() {
371 EPUser user = mockUser.mockEPUser();
372 Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user);
373 PortalRestResponse<List<String>> expectedResult = new PortalRestResponse<List<String>>();
374 expectedResult.setMessage("null - check logs.");
375 expectedResult.setResponse(new ArrayList<>());
376 expectedResult.setStatus(PortalRestStatusEnum.ERROR);
377 Mockito.when(searchService.getRelatedUsers(user.getLoginId())).thenThrow(nullPointerException);
378 PortalRestResponse<List<String>> actualResult = dashboardSearchResultController.activeUsers(mockedRequest);
379 assertEquals(actualResult, expectedResult);
384 public void searchPortalIfSearchStringNullTest() {
385 EPUser user = mockUser.mockEPUser();
387 Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user);
388 String searchString = null;
390 PortalRestResponse<Map<String, List<SearchResultItem>>> expectedResult = new PortalRestResponse<Map<String, List<SearchResultItem>>>();
391 expectedResult.setMessage("searchPortal: String string is null");
392 expectedResult.setResponse(new HashMap<String, List<SearchResultItem>>());
393 expectedResult.setStatus(PortalRestStatusEnum.ERROR);
395 PortalRestResponse<Map<String, List<SearchResultItem>>> actualResult = dashboardSearchResultController
396 .searchPortal(mockedRequest, searchString);
397 assertEquals(expectedResult, actualResult);
401 public void searchPortalIfSearchTest() {
402 EPUser user = mockUser.mockEPUser();
404 Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user);
405 String searchString = "test";
406 List<SearchResultItem> searchResultItemList = new ArrayList<SearchResultItem>();
407 SearchResultItem searchResultItem = new SearchResultItem();
409 searchResultItem.setId((long) 1);
410 searchResultItem.setCategory("test");
411 searchResultItem.setName("test_name");
412 searchResultItem.setTarget("test_target");
413 searchResultItem.setUuid("test_UUId");
414 searchResultItemList.add(searchResultItem);
415 Map<String, List<SearchResultItem>> expectedResultMap = new HashMap<String, List<SearchResultItem>>();
416 expectedResultMap.put(searchString, searchResultItemList);
418 PortalRestResponse<Map<String, List<SearchResultItem>>> expectedResult = new PortalRestResponse<Map<String, List<SearchResultItem>>>();
419 expectedResult.setMessage("success");
420 expectedResult.setResponse(expectedResultMap);
421 expectedResult.setStatus(PortalRestStatusEnum.OK);
423 Mockito.when(searchService.searchResults(user.getLoginId(), searchString)).thenReturn(expectedResultMap);
424 PortalRestResponse<Map<String, List<SearchResultItem>>> actualResult = dashboardSearchResultController
425 .searchPortal(mockedRequest, searchString);
426 assertEquals(expectedResult, actualResult);
431 public void searchPortalXSS() {
432 EPUser user = mockUser.mockEPUser();
433 Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user);
434 String searchString = "<script>alert(“XSS”)</script> ";
436 PortalRestResponse<Map<String, List<SearchResultItem>>> expectedResult = new PortalRestResponse<Map<String, List<SearchResultItem>>>();
437 expectedResult.setMessage("searchPortal: User object is invalid");
438 expectedResult.setStatus(PortalRestStatusEnum.ERROR);
440 PortalRestResponse<Map<String, List<SearchResultItem>>> actualResult = dashboardSearchResultController
441 .searchPortal(mockedRequest, searchString);
442 assertEquals(actualResult, expectedResult);
447 public void searchPortalIfSearchExcptionTest() {
448 EPUser user = mockUser.mockEPUser();
450 Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user);
451 String searchString = "test";
453 PortalRestResponse<Map<String, List<SearchResultItem>>> expectedResult = new PortalRestResponse<Map<String, List<SearchResultItem>>>();
454 expectedResult.setMessage("null - check logs.");
455 expectedResult.setResponse(new HashMap<String, List<SearchResultItem>>());
456 expectedResult.setStatus(PortalRestStatusEnum.ERROR);
458 Mockito.when(searchService.searchResults(user.getLoginId(), searchString)).thenThrow(nullPointerException);
459 PortalRestResponse<Map<String, List<SearchResultItem>>> actualResult = dashboardSearchResultController
460 .searchPortal(mockedRequest, searchString);
461 assertEquals(expectedResult, actualResult);