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 final private static String TEST_TEMPLATES_PATH = "commons" + File.separator + "templates" + File.separator + "test";
65
66 @Test
67 public void testCommonsTemplates( ) throws IOException, TemplateException, URISyntaxException
68 {
69
70 URL resourceUrl = getClass( ).getClassLoader( ).getResource( TEST_TEMPLATES_PATH );
71
72 if ( resourceUrl == null ) {
73 fail( "Could not find the test templates path." );
74 }
75
76 Path testTemplatesPath = Paths.get( resourceUrl.toURI( ) );
77
78 for ( CommonsInclude ci : CommonsService.getCommonsIncludes( ) )
79 {
80 try
81 {
82 CommonsService.activateCommons( ci.getKey( ) );
83 String ciKey = ci.getKey( );
84 Map<String, Object> model = new HashMap<>( );
85
86 AppTemplateService.resetCache( );
87
88 String strReferenceTemplate = readFile( testTemplatesPath.resolve( REFERENCE_TEMPLATE ).toString( ), StandardCharsets.UTF_8 );
89 HtmlTemplate generated_template = AppTemplateService.getTemplateFromStringFtl( strReferenceTemplate, LocaleService.getDefault( ), model );
90
91 assertNotNull( "AppTemplateServiceTest freemarker lib : " + ciKey, generated_template.getHtml( ) );
92 }
93 catch( IOException e )
94 {
95 fail( e.getMessage( ) );
96 }
97 }
98
99 }
100
101
102
103
104
105
106
107
108
109 static String readFile( String path, Charset encoding ) throws IOException
110 {
111 byte [ ] encoded = Files.readAllBytes( Paths.get( path ) );
112 return new String( encoded, encoding );
113 }
114
115 }