View Javadoc
1   /*
2    * Copyright (c) 2002-2025, City of Paris
3    * All rights reserved.
4    *
5    * Redistribution and use in source and binary forms, with or without
6    * modification, are permitted provided that the following conditions
7    * are met:
8    *
9    *  1. Redistributions of source code must retain the above copyright notice
10   *     and the following disclaimer.
11   *
12   *  2. Redistributions in binary form must reproduce the above copyright notice
13   *     and the following disclaimer in the documentation and/or other materials
14   *     provided with the distribution.
15   *
16   *  3. Neither the name of 'Mairie de Paris' nor 'Lutece' nor the names of its
17   *     contributors may be used to endorse or promote products derived from
18   *     this software without specific prior written permission.
19   *
20   * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
21   * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
22   * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
23   * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE
24   * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
25   * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
26   * SUBSTITUTE GOODS OR SERVICES LOSS OF USE, DATA, OR PROFITS OR BUSINESS
27   * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
28   * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
29   * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
30   * POSSIBILITY OF SUCH DAMAGE.
31   *
32   * License 1.0
33   */
34  
35  package fr.paris.lutece.plugins.elasticdatasearch.web;
36  
37  import org.springframework.mock.web.MockHttpServletRequest;
38  import org.springframework.mock.web.MockHttpServletResponse;
39  import org.springframework.mock.web.MockServletConfig;
40  import fr.paris.lutece.portal.business.user.AdminUser;
41  import fr.paris.lutece.portal.service.admin.AccessDeniedException;
42  import fr.paris.lutece.portal.service.admin.AdminAuthenticationService;
43  import fr.paris.lutece.portal.service.security.UserNotSignedException;
44  import java.util.List;
45  import java.io.IOException;
46  import fr.paris.lutece.test.LuteceTestCase;
47  import fr.paris.lutece.portal.service.security.SecurityTokenService;
48  import fr.paris.lutece.portal.web.LocalVariables;
49  import fr.paris.lutece.plugins.elasticdatasearch.business.Fieldsearch;
50  import fr.paris.lutece.plugins.elasticdatasearch.business.FieldsearchHome;
51  /**
52   * This is the business class test for the object Fieldsearch
53   */
54  public class FieldsearchJspBeanTest extends LuteceTestCase
55  {
56      private static final String NAME1 = "Name1";
57      private static final String NAME2 = "Name2";
58  	private static final boolean MANDATORY1 = true;
59      private static final boolean MANDATORY2 = false;
60  
61  public void testJspBeans(  ) throws AccessDeniedException, IOException
62  	{	
63       	MockHttpServletRequest request = new MockHttpServletRequest();
64  		MockHttpServletResponse response = new MockHttpServletResponse();
65  		MockServletConfig config = new MockServletConfig();
66  
67  		//display admin Fieldsearch management JSP
68  		FieldsearchJspBean jspbean = new FieldsearchJspBean();
69  		String html = jspbean.getManageFieldsearchs( request );
70  		assertNotNull(html);
71  
72  		//display admin Fieldsearch creation JSP
73  		html = jspbean.getCreateFieldsearch( request );
74  		assertNotNull(html);
75  
76  		//action create Fieldsearch
77  		request = new MockHttpServletRequest();
78  
79  		response = new MockHttpServletResponse( );
80  		AdminUser adminUser = new AdminUser( );
81  		adminUser.setAccessCode( "admin" );
82  		
83          
84          request.addParameter( "name" , NAME1 );
85          request.addParameter( "mandatory" , String.valueOf( MANDATORY1) );
86  		request.addParameter("action","createFieldsearch");
87          request.addParameter( "token", SecurityTokenService.getInstance( ).getToken( request, "createFieldsearch" ));
88  		request.setMethod( "POST" );
89          
90  		
91  		try 
92  		{
93  			AdminAuthenticationService.getInstance( ).registerUser(request, adminUser);
94  			html = jspbean.processController( request, response ); 
95  			
96  			
97  			// MockResponse object does not redirect, result is always null
98  			assertNull( html );
99  		}
100 		catch (AccessDeniedException e)
101 		{
102 			fail("access denied");
103 		}
104 		catch (UserNotSignedException e) 
105 		{
106 			fail("user not signed in");
107 		}
108 
109 		//display modify Fieldsearch JSP
110 		request = new MockHttpServletRequest();
111         request.addParameter( "name" , NAME1 );
112         request.addParameter( "mandatory" , String.valueOf( MANDATORY1) );
113 		//List<Integer> listIds = FieldsearchHome.getIdFieldsearchsList();
114         //assertTrue( !listIds.isEmpty( ) );
115         //request.addParameter( "id", String.valueOf( listIds.get( 0 ) ) );
116 		jspbean = new FieldsearchJspBean();
117 		
118 		assertNotNull( jspbean.getModifyFieldsearch( request ) );	
119 
120 		//action modify Fieldsearch
121 		request = new MockHttpServletRequest();
122 		response = new MockHttpServletResponse();
123 		
124 		adminUser = new AdminUser();
125 		adminUser.setAccessCode("admin");
126 		
127         request.addParameter( "name" , NAME2 );
128         request.addParameter( "mandatory" , String.valueOf( MANDATORY2) );
129 		request.setRequestURI("jsp/admin/plugins/example/ManageFieldsearchs.jsp");
130 		//important pour que MVCController sache quelle action effectuer, sinon, il redirigera vers createFieldsearch, qui est l'action par défaut
131 		request.addParameter("action","modifyFieldsearch");
132 		request.addParameter( "token", SecurityTokenService.getInstance( ).getToken( request, "modifyFieldsearch" ));
133 
134 		try 
135 		{
136 			AdminAuthenticationService.getInstance( ).registerUser(request, adminUser);
137 			html = jspbean.processController( request, response );
138 
139 			// MockResponse object does not redirect, result is always null
140 			assertNull( html );
141 		}
142 		catch (AccessDeniedException e)
143 		{
144 			fail("access denied");
145 		}
146 		catch (UserNotSignedException e) 
147 		{
148 			fail("user not signed in");
149 		}
150 		
151 		//get remove Fieldsearch
152 		request = new MockHttpServletRequest();
153         //request.setRequestURI("jsp/admin/plugins/example/ManageFieldsearchs.jsp");
154         //request.addParameter( "id", String.valueOf( listIds.get( 0 ) ) );
155 		jspbean = new FieldsearchJspBean();
156 		request.addParameter("action","confirmRemoveFieldsearch");
157 		assertNotNull( jspbean.getModifyFieldsearch( request ) );
158 				
159 		//do remove Fieldsearch
160 		request = new MockHttpServletRequest();
161 		response = new MockHttpServletResponse();
162 		request.setRequestURI("jsp/admin/plugins/example/ManageFieldsearchts.jsp");
163 		//important pour que MVCController sache quelle action effectuer, sinon, il redirigera vers createFieldsearch, qui est l'action par défaut
164 		request.addParameter("action","removeFieldsearch");
165 		request.addParameter( "token", SecurityTokenService.getInstance( ).getToken( request, "removeFieldsearch" ));
166 		//request.addParameter( "id", String.valueOf( listIds.get( 0 ) ) );
167 		request.setMethod("POST");
168 		adminUser = new AdminUser();
169 		adminUser.setAccessCode("admin");
170 
171 		try 
172 		{
173 			AdminAuthenticationService.getInstance( ).registerUser(request, adminUser);
174 			html = jspbean.processController( request, response ); 
175 
176 			// MockResponse object does not redirect, result is always null
177 			assertNull( html );
178 		}
179 		catch (AccessDeniedException e)
180 		{
181 			fail("access denied");
182 		}
183 		catch (UserNotSignedException e) 
184 		{
185 			fail("user not signed in");
186 		}	
187      
188      }
189 }