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.template;
35
36 import fr.paris.lutece.portal.business.template.CommonsInclude;
37 import java.util.HashMap;
38 import java.util.Map;
39
40 import fr.paris.lutece.portal.web.l10n.LocaleService;
41 import fr.paris.lutece.test.LuteceTestCase;
42 import fr.paris.lutece.util.html.HtmlTemplate;
43 import freemarker.template.TemplateException;
44
45 import java.io.IOException;
46 import java.net.URISyntaxException;
47 import java.net.URL;
48 import java.nio.charset.Charset;
49 import java.nio.charset.StandardCharsets;
50 import java.nio.file.Files;
51 import java.nio.file.Path;
52 import java.nio.file.Paths;
53 import java.io.File;
54 import org.junit.Test;
55
56
57
58
59
60 public class AppTemplateServiceTest extends LuteceTestCase
61 {
62
63 private static final String REFERENCE_TEMPLATE = "reference.html";
64 private static final String MARK_SITE_NAME = "site_name";
65 final private static String TEST_TEMPLATES_PATH = "commons" + File.separator + "templates" + File.separator + "test";
66
67 @Test
68 public void testCommonsTemplates( ) throws IOException, TemplateException, URISyntaxException
69 {
70
71 URL resourceUrl = getClass( ).getClassLoader( ).getResource( TEST_TEMPLATES_PATH );
72
73 if ( resourceUrl == null ) {
74 fail( "Could not find the test templates path." );
75 }
76
77 Path testTemplatesPath = Paths.get( resourceUrl.toURI( ) );
78
79 for ( CommonsInclude ci : CommonsService.getCommonsIncludes( ) )
80 {
81 try
82 {
83 CommonsService.activateCommons( ci.getKey( ) );
84 String ciKey = ci.getKey( );
85 Map<String, Object> model = new HashMap<>( );
86 model.put( MARK_SITE_NAME, "test" );
87
88 AppTemplateService.resetCache( );
89
90 String strReferenceTemplate = readFile( testTemplatesPath.resolve( REFERENCE_TEMPLATE ).toString( ), StandardCharsets.UTF_8 );
91 HtmlTemplate generated_template = AppTemplateService.getTemplateFromStringFtl( strReferenceTemplate, LocaleService.getDefault( ), model );
92
93 assertNotNull( "AppTemplateServiceTest freemarker lib : " + ciKey, generated_template.getHtml( ) );
94 }
95 catch( IOException e )
96 {
97 fail( e.getMessage( ) );
98 }
99 }
100
101 }
102
103
104
105
106
107
108
109
110
111 static String readFile( String path, Charset encoding ) throws IOException
112 {
113 byte [ ] encoded = Files.readAllBytes( Paths.get( path ) );
114 return new String( encoded, encoding );
115 }
116
117 }