1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34 package fr.paris.lutece.portal.service.content;
35
36 import java.util.Collection;
37
38 import javax.servlet.http.HttpServletRequest;
39
40 import org.springframework.mock.web.MockHttpServletRequest;
41
42 import fr.paris.lutece.portal.service.init.LuteceInitException;
43 import fr.paris.lutece.portal.service.message.SiteMessageException;
44 import fr.paris.lutece.portal.service.plugin.Plugin;
45 import fr.paris.lutece.portal.service.portal.PortalService;
46 import fr.paris.lutece.portal.service.security.UserNotSignedException;
47 import fr.paris.lutece.portal.web.xpages.XPage;
48 import fr.paris.lutece.portal.web.xpages.XPageApplication;
49 import fr.paris.lutece.portal.web.xpages.XPageApplicationEntry;
50 import fr.paris.lutece.test.LuteceTestCase;
51
52 public class XPageAppServiceTest extends LuteceTestCase
53 {
54 public void testGetXPageApplicationsList( )
55 {
56 Collection<XPageApplicationEntry> listXPageApps = XPageAppService.getXPageApplicationsList( );
57
58 assertTrue( listXPageApps.size( ) >= 2 );
59 }
60
61 public void testEnabledState( ) throws LuteceInitException
62 {
63 XPageApplicationEntry entry = new XPageApplicationEntry( );
64 entry.setClassName( TestXPageApplication.class.getName( ) );
65 entry.setId( "testEnableXPageApplication" );
66 entry.setPluginName( "core" );
67
68 XPageAppService.registerXPageApplication( entry );
69
70 assertTrue( isTestXPageApplicationActive( entry ) );
71
72 entry.setEnabled( false );
73 XPageAppService.registerXPageApplication( entry );
74 assertFalse( isTestXPageApplicationActive( entry ) );
75
76 entry.setPluginName( "bogus_inexistant_plugin" );
77 XPageAppService.registerXPageApplication( entry );
78 assertFalse( isTestXPageApplicationActive( entry ) );
79
80 entry.setEnabled( true );
81 XPageAppService.registerXPageApplication( entry );
82 assertFalse( isTestXPageApplicationActive( entry ) );
83 }
84
85 private boolean isTestXPageApplicationActive( XPageApplicationEntry entry )
86 {
87 MockHttpServletRequest request = new MockHttpServletRequest( );
88 request.addParameter( "page", entry.getId( ) );
89 ContentService cs = PortalService.getInvokedContentService( request );
90 try
91 {
92 cs.getPage( request, 0 );
93 return true;
94 }
95 catch( UserNotSignedException | SiteMessageException e )
96 {
97 return false;
98 }
99 }
100
101 @SuppressWarnings( "serial" )
102 static class TestXPageApplication implements XPageApplication
103 {
104
105 @Override
106 public XPage getPage( HttpServletRequest request, int nMode, Plugin plugin ) throws UserNotSignedException, SiteMessageException
107 {
108 return new XPage( );
109 }
110 }
111 }