2 * ============LICENSE_START==========================================
4 * ===================================================================
5 * Copyright © 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.List;
45 import javax.servlet.http.HttpServletRequest;
46 import javax.servlet.http.HttpServletResponse;
48 import org.junit.Before;
49 import org.junit.Test;
50 import org.mockito.InjectMocks;
51 import org.mockito.Mock;
52 import org.mockito.Mockito;
53 import org.mockito.MockitoAnnotations;
54 import org.mockito.stubbing.Answer;
55 import org.onap.portalapp.portal.core.MockEPUser;
56 import org.onap.portalapp.portal.domain.EPUser;
57 import org.onap.portalapp.portal.framework.MockitoTestSuite;
58 import org.onap.portalapp.portal.service.AdminRolesService;
59 import org.onap.portalapp.portal.service.PersUserWidgetService;
60 import org.onap.portalapp.portal.service.WidgetService;
61 import org.onap.portalapp.portal.transport.FieldsValidator;
62 import org.onap.portalapp.portal.transport.FieldsValidator.FieldName;
63 import org.onap.portalapp.portal.transport.OnboardingWidget;
64 import org.onap.portalapp.portal.transport.WidgetCatalogPersonalization;
65 import org.onap.portalapp.util.EPUserUtils;
66 import org.springframework.web.client.RestClientException;
68 public class WidgetsControllerTest extends MockitoTestSuite{
71 WidgetsController widgetsController;
74 private AdminRolesService rolesService;
77 private WidgetService widgetService ;
80 private PersUserWidgetService persUserWidgetService;
85 MockEPUser mockUser = new MockEPUser();
89 MockitoAnnotations.initMocks(this);
92 MockitoTestSuite mockitoTestSuite = new MockitoTestSuite();
94 HttpServletRequest mockedRequest = mockitoTestSuite.getMockedRequest();
95 HttpServletResponse mockedResponse = mockitoTestSuite.getMockedResponse();
98 public void getOnboardingWidgetsTest() throws RestClientException, Exception{
99 EPUser user = mockUser.mockEPUser();
100 String getType="test";
101 List<OnboardingWidget> actualResult = null;
102 String expectedResult = null;
103 Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user);
104 List<OnboardingWidget> onboardingWidgets = null;
105 //Mockito.when(StringUtils.isEmpty("")).thenReturn(true);
106 Mockito.when(widgetService.getOnboardingWidgets(user, getType.equals("managed"))).thenReturn(onboardingWidgets);
107 actualResult = widgetsController.getOnboardingWidgets(mockedRequest, mockedResponse);
108 assertEquals(expectedResult, actualResult);
113 public void getOnboardingWidgetsTest1(){
114 EPUser user = mockUser.mockEPUser();
115 Mockito.when(mockedRequest.getHeader("X-Widgets-Type")).thenReturn("managed");
116 //String getType=Matchers.any(String.class);
117 List<OnboardingWidget> actualResult = null;
118 String expectedResult = null;
119 Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user);
120 List<OnboardingWidget> onboardingWidgets = new ArrayList<>();
121 OnboardingWidget widget = new OnboardingWidget();
122 onboardingWidgets.add(widget); //Mockito.when(StringUtils.isEmpty("")).thenReturn(true);
123 Mockito.when(widgetService.getOnboardingWidgets(user, true)).thenReturn(onboardingWidgets);
124 actualResult = widgetsController.getOnboardingWidgets(mockedRequest, mockedResponse);
125 // assertEquals(expectedResult, actualResult);
130 public void getOnboardingWidgetswithUserNullTest(){
132 Mockito.when(mockedRequest.getHeader("X-Widgets-Type")).thenReturn("managed");
133 //String getType=Matchers.any(String.class);
134 List<OnboardingWidget> actualResult = null;
135 String expectedResult = null;
136 Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user);
137 List<OnboardingWidget> onboardingWidgets = new ArrayList<>();
138 OnboardingWidget widget = new OnboardingWidget();
139 onboardingWidgets.add(widget); //Mockito.when(StringUtils.isEmpty("")).thenReturn(true);
140 Mockito.when(widgetService.getOnboardingWidgets(user, true)).thenReturn(onboardingWidgets);
141 actualResult = widgetsController.getOnboardingWidgets(mockedRequest, mockedResponse);
146 public void putOnboardingWidgetTest() {
147 FieldsValidator actualFieldsValidator = null;
148 EPUser user = mockUser.mockEPUser();
149 Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user);
150 OnboardingWidget onboardingWidget=new OnboardingWidget();
151 onboardingWidget.id=12L;
152 onboardingWidget.normalize();
153 //Mockito.doNothing().when(onboardingWidget).normalize();
154 FieldsValidator expectedFieldValidator = new FieldsValidator();
155 List<FieldName> fields = new ArrayList<>();
157 expectedFieldValidator.setHttpStatusCode((long) 200);
158 expectedFieldValidator.setFields(fields);
159 expectedFieldValidator.setErrorCode(null);
160 Mockito.when(widgetService.setOnboardingWidget(user, onboardingWidget)).thenReturn(expectedFieldValidator);
161 actualFieldsValidator = widgetsController.putOnboardingWidget(mockedRequest, 12L, onboardingWidget, mockedResponse);
166 public void putOnboardingWidgetXSSTest() {
167 FieldsValidator actualFieldsValidator = null;
168 EPUser user = mockUser.mockEPUser();
169 Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user);
170 OnboardingWidget onboardingWidget=new OnboardingWidget();
171 onboardingWidget.id=12L;
172 onboardingWidget.name = "<script>alert(/XSS”)</script>";
173 onboardingWidget.normalize();
174 FieldsValidator expectedFieldValidator = new FieldsValidator();
175 expectedFieldValidator.setHttpStatusCode((long) HttpServletResponse.SC_NOT_ACCEPTABLE);
176 Mockito.when(widgetService.setOnboardingWidget(user, onboardingWidget)).thenReturn(expectedFieldValidator);
177 actualFieldsValidator = widgetsController.putOnboardingWidget(mockedRequest, 12L, onboardingWidget, mockedResponse);
179 assertEquals(expectedFieldValidator, actualFieldsValidator);
184 public void putOnboardingWidgetWithUserPermissionTest() {
185 FieldsValidator actualFieldsValidator = null;
186 EPUser user = mockUser.mockEPUser();
187 Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user);
188 Mockito.when(rolesService.isSuperAdmin(user)).thenReturn(true);
189 Mockito.when(rolesService.isAccountAdmin(user)).thenReturn(true);
190 OnboardingWidget onboardingWidget=new OnboardingWidget();
191 onboardingWidget.id=12L;
192 onboardingWidget.normalize();
193 //Mockito.doNothing().when(onboardingWidget).normalize();
194 FieldsValidator expectedFieldValidator = new FieldsValidator();
195 List<FieldName> fields = new ArrayList<>();
197 expectedFieldValidator.setHttpStatusCode((long) 200);
198 expectedFieldValidator.setFields(fields);
199 expectedFieldValidator.setErrorCode(null);
200 Mockito.when(widgetService.setOnboardingWidget(user, onboardingWidget)).thenReturn(expectedFieldValidator);
201 actualFieldsValidator = widgetsController.putOnboardingWidget(mockedRequest, 12L, onboardingWidget, mockedResponse);
202 assertEquals(expectedFieldValidator.getHttpStatusCode(), actualFieldsValidator.getHttpStatusCode());
203 assertEquals(expectedFieldValidator.getErrorCode(), actualFieldsValidator.getErrorCode());
204 assertEquals(expectedFieldValidator.getFields(), actualFieldsValidator.getFields());
208 public void postOnboardingWidgetTest(){
209 EPUser user=mockUser.mockEPUser();
210 Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user);
211 FieldsValidator actualFieldsValidator = null;
212 Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user);
213 Mockito.when(rolesService.isSuperAdmin(user)).thenReturn(true);
214 Mockito.when(rolesService.isAccountAdmin(user)).thenReturn(true);
215 OnboardingWidget onboardingWidget=new OnboardingWidget();
216 onboardingWidget.id=12L;
217 onboardingWidget.normalize();
218 FieldsValidator expectedFieldValidator = new FieldsValidator();
219 List<FieldName> fields = new ArrayList<>();
221 expectedFieldValidator.setHttpStatusCode((long) 200);
222 expectedFieldValidator.setFields(fields);
223 expectedFieldValidator.setErrorCode(null);
224 Mockito.when(widgetService.setOnboardingWidget(user, onboardingWidget)).thenReturn(expectedFieldValidator);
225 actualFieldsValidator = widgetsController.postOnboardingWidget(mockedRequest, onboardingWidget, mockedResponse);
226 assertEquals(expectedFieldValidator.getHttpStatusCode(), actualFieldsValidator.getHttpStatusCode());
227 assertEquals(expectedFieldValidator.getErrorCode(), actualFieldsValidator.getErrorCode());
228 assertEquals(expectedFieldValidator.getFields(), actualFieldsValidator.getFields());
232 public void postOnboardingWidgetXSSTest(){
233 EPUser user=mockUser.mockEPUser();
234 Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user);
235 FieldsValidator actualFieldsValidator = null;
236 Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user);
237 Mockito.when(rolesService.isSuperAdmin(user)).thenReturn(true);
238 Mockito.when(rolesService.isAccountAdmin(user)).thenReturn(true);
239 OnboardingWidget onboardingWidget=new OnboardingWidget();
240 onboardingWidget.id=12L;
241 onboardingWidget.appName="<script>alert(/XSS”)</script>";
242 onboardingWidget.normalize();
243 FieldsValidator expectedFieldValidator = new FieldsValidator();
244 List<FieldName> fields = new ArrayList<>();
246 expectedFieldValidator.setHttpStatusCode((long) HttpServletResponse.SC_NOT_ACCEPTABLE);
247 expectedFieldValidator.setFields(fields);
248 expectedFieldValidator.setErrorCode(null);
249 Mockito.when(widgetService.setOnboardingWidget(user, onboardingWidget)).thenReturn(expectedFieldValidator);
250 actualFieldsValidator = widgetsController.postOnboardingWidget(mockedRequest, onboardingWidget, mockedResponse);
251 assertEquals(expectedFieldValidator.getHttpStatusCode(), actualFieldsValidator.getHttpStatusCode());
252 assertEquals(expectedFieldValidator.getErrorCode(), actualFieldsValidator.getErrorCode());
253 assertEquals(expectedFieldValidator.getFields(), actualFieldsValidator.getFields());
257 public void postOnboardingWidgetTestwiThoutUserPermission() {
258 FieldsValidator actualFieldsValidator = null;
259 EPUser user = mockUser.mockEPUser();
260 Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user);
261 OnboardingWidget onboardingWidget=new OnboardingWidget();
262 onboardingWidget.id=12L;
263 onboardingWidget.normalize();
264 //Mockito.doNothing().when(onboardingWidget).normalize();
265 FieldsValidator expectedFieldValidator = new FieldsValidator();
266 List<FieldName> fields = new ArrayList<>();
268 expectedFieldValidator.setHttpStatusCode((long) 200);
269 expectedFieldValidator.setFields(fields);
270 expectedFieldValidator.setErrorCode(null);
271 Mockito.when(widgetService.setOnboardingWidget(user, onboardingWidget)).thenReturn(expectedFieldValidator);
272 actualFieldsValidator = widgetsController.postOnboardingWidget(mockedRequest, onboardingWidget, mockedResponse);
277 public void deleteOnboardingWidgetTest(){
278 FieldsValidator actualFieldsValidator = null;
279 EPUser user=mockUser.mockEPUser();
280 Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user);
281 FieldsValidator expectedFieldValidator = new FieldsValidator();
282 List<FieldName> fields = new ArrayList<>();
283 Mockito.when(rolesService.isSuperAdmin(user)).thenReturn(true);
284 Mockito.when(rolesService.isAccountAdmin(user)).thenReturn(true);
285 expectedFieldValidator.setHttpStatusCode((long) 200);
286 expectedFieldValidator.setFields(fields);
287 expectedFieldValidator.setErrorCode(null);
288 Mockito.when(widgetService.deleteOnboardingWidget(user, 12L)).thenReturn(expectedFieldValidator);
289 actualFieldsValidator = widgetsController.deleteOnboardingWidget(mockedRequest, 12L, mockedResponse);
290 assertEquals(expectedFieldValidator.getHttpStatusCode(), actualFieldsValidator.getHttpStatusCode());
291 assertEquals(expectedFieldValidator.getErrorCode(), actualFieldsValidator.getErrorCode());
292 assertEquals(expectedFieldValidator.getFields(), actualFieldsValidator.getFields());
295 public void deleteOnboardingWidgetWithOutUserPermissionsTest(){
296 FieldsValidator actualFieldsValidator = null;
297 EPUser user=mockUser.mockEPUser();
298 Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user);
299 FieldsValidator expectedFieldValidator = new FieldsValidator();
300 List<FieldName> fields = new ArrayList<>();
301 Mockito.when(rolesService.isSuperAdmin(user)).thenReturn(false);
302 Mockito.when(rolesService.isAccountAdmin(user)).thenReturn(false);
303 expectedFieldValidator.setHttpStatusCode((long) 200);
304 expectedFieldValidator.setFields(fields);
305 expectedFieldValidator.setErrorCode(null);
306 Mockito.when(widgetService.deleteOnboardingWidget(user, 12L)).thenReturn(expectedFieldValidator);
307 actualFieldsValidator = widgetsController.deleteOnboardingWidget(mockedRequest, 12L, mockedResponse);
312 public void putWidgetCatalogSelectionTest1() throws Exception {
314 FieldsValidator actualFieldsValidator = new FieldsValidator();
315 EPUser user=mockUser.mockEPUser();
316 Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user);
317 FieldsValidator expectedFieldValidator = new FieldsValidator();
318 List<FieldName> fields = new ArrayList<>();
319 Mockito.when(rolesService.isSuperAdmin(user)).thenReturn(true);
320 Mockito.when(rolesService.isAccountAdmin(user)).thenReturn(true);
321 expectedFieldValidator.setHttpStatusCode((long) 200);
322 expectedFieldValidator.setFields(fields);
323 expectedFieldValidator.setErrorCode(null);
324 WidgetCatalogPersonalization widgetCatalogPersonalization=new WidgetCatalogPersonalization();
325 widgetCatalogPersonalization.widgetId=12L;
326 //Mockito.doThrow(new Exception()).doNothing().when(persUserWidgetService).setPersUserAppValue(user, 12L, true);
327 //Mockito.doNothing().thenReturn();
328 actualFieldsValidator = widgetsController.putWidgetCatalogSelection(mockedRequest, widgetCatalogPersonalization, mockedResponse);
329 assertEquals(expectedFieldValidator.getHttpStatusCode(), actualFieldsValidator.getHttpStatusCode());
330 assertEquals(expectedFieldValidator.getErrorCode(), actualFieldsValidator.getErrorCode());
331 assertEquals(expectedFieldValidator.getFields(), actualFieldsValidator.getFields());
336 @Test(expected=ClassCastException.class)
337 public void putWidgetCatalogSelectionTest() throws Exception {
339 FieldsValidator actualFieldsValidator = new FieldsValidator();
341 Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user);
342 FieldsValidator expectedFieldValidator = new FieldsValidator();
343 List<FieldName> fields = new ArrayList<>();
344 Mockito.when(rolesService.isSuperAdmin(user)).thenReturn(true);
345 Mockito.when(rolesService.isAccountAdmin(user)).thenReturn(true);
346 expectedFieldValidator.setHttpStatusCode((long) 200);
347 expectedFieldValidator.setFields(fields);
348 expectedFieldValidator.setErrorCode(null);
349 WidgetCatalogPersonalization widgetCatalogPersonalization=new WidgetCatalogPersonalization();
350 Mockito.doAnswer((Answer) new Exception()).doNothing().when(persUserWidgetService).setPersUserAppValue(user, 12L, true);
351 //Mockito.doNothing().thenReturn();
352 actualFieldsValidator = widgetsController.putWidgetCatalogSelection(mockedRequest, widgetCatalogPersonalization, mockedResponse);
353 assertEquals(expectedFieldValidator.getHttpStatusCode(), actualFieldsValidator.getHttpStatusCode());
354 assertEquals(expectedFieldValidator.getErrorCode(), actualFieldsValidator.getErrorCode());
355 assertEquals(expectedFieldValidator.getFields(), actualFieldsValidator.getFields());