16
16
17
17
package org .springframework .web .reactive .result .view .freemarker ;
18
18
19
- import java .io .IOException ;
20
19
import java .util .HashMap ;
21
20
import java .util .Properties ;
22
21
23
22
import freemarker .cache .ClassTemplateLoader ;
24
23
import freemarker .cache .MultiTemplateLoader ;
25
24
import freemarker .template .Configuration ;
26
25
import freemarker .template .Template ;
27
- import freemarker .template .TemplateException ;
28
26
import org .junit .Test ;
29
27
30
- import org .springframework .beans .factory .support .DefaultListableBeanFactory ;
31
- import org .springframework .beans .factory .support .RootBeanDefinition ;
32
28
import org .springframework .core .io .ByteArrayResource ;
33
- import org .springframework .core .io .DefaultResourceLoader ;
34
29
import org .springframework .core .io .FileSystemResource ;
35
30
import org .springframework .core .io .Resource ;
36
31
import org .springframework .core .io .ResourceLoader ;
43
38
/**
44
39
* @author Juergen Hoeller
45
40
* @author Issam El-atif
41
+ * @author Sam Brannen
42
+ * @since 5.2
46
43
*/
47
44
public class FreeMarkerConfigurerTests {
48
45
46
+ private final FreeMarkerConfigurer freeMarkerConfigurer = new FreeMarkerConfigurer ();
47
+
49
48
@ Test
50
- public void freeMarkerConfigurerDefaultEncoding () throws IOException , TemplateException {
51
- FreeMarkerConfigurer configurer = new FreeMarkerConfigurer ();
52
- configurer .afterPropertiesSet ();
53
- Configuration cfg = configurer .getConfiguration ();
49
+ public void freeMarkerConfigurerDefaultEncoding () throws Exception {
50
+ freeMarkerConfigurer .afterPropertiesSet ();
51
+ Configuration cfg = freeMarkerConfigurer .getConfiguration ();
54
52
assertThat (cfg .getDefaultEncoding ()).isEqualTo ("UTF-8" );
55
53
}
56
54
57
55
@ Test
58
56
public void freeMarkerConfigurerWithConfigLocation () {
59
- FreeMarkerConfigurer configurer = new FreeMarkerConfigurer ();
60
- configurer .setConfigLocation (new FileSystemResource ("myprops.properties" ));
57
+ freeMarkerConfigurer .setConfigLocation (new FileSystemResource ("myprops.properties" ));
61
58
Properties props = new Properties ();
62
59
props .setProperty ("myprop" , "/mydir" );
63
- configurer .setFreemarkerSettings (props );
64
- assertThatIOException ().isThrownBy (
65
- configurer ::afterPropertiesSet );
60
+ freeMarkerConfigurer .setFreemarkerSettings (props );
61
+ assertThatIOException ().isThrownBy (freeMarkerConfigurer ::afterPropertiesSet );
66
62
}
67
63
68
64
@ Test
69
65
public void freeMarkerConfigurerWithResourceLoaderPath () throws Exception {
70
- FreeMarkerConfigurer configurer = new FreeMarkerConfigurer ();
71
- configurer .setTemplateLoaderPath ("file:/mydir" );
72
- configurer .afterPropertiesSet ();
73
- Configuration cfg = configurer .getConfiguration ();
66
+ freeMarkerConfigurer .setTemplateLoaderPath ("file:/mydir" );
67
+ freeMarkerConfigurer .afterPropertiesSet ();
68
+ Configuration cfg = freeMarkerConfigurer .getConfiguration ();
74
69
assertThat (cfg .getTemplateLoader ()).isInstanceOf (MultiTemplateLoader .class );
75
70
MultiTemplateLoader multiTemplateLoader = (MultiTemplateLoader )cfg .getTemplateLoader ();
76
71
assertThat (multiTemplateLoader .getTemplateLoader (0 )).isInstanceOf (SpringTemplateLoader .class );
@@ -80,12 +75,11 @@ public void freeMarkerConfigurerWithResourceLoaderPath() throws Exception {
80
75
@ Test
81
76
@ SuppressWarnings ("rawtypes" )
82
77
public void freeMarkerConfigurerWithNonFileResourceLoaderPath () throws Exception {
83
- FreeMarkerConfigurer configurer = new FreeMarkerConfigurer ();
84
- configurer .setTemplateLoaderPath ("file:/mydir" );
78
+ freeMarkerConfigurer .setTemplateLoaderPath ("file:/mydir" );
85
79
Properties settings = new Properties ();
86
80
settings .setProperty ("localized_lookup" , "false" );
87
- configurer .setFreemarkerSettings (settings );
88
- configurer .setResourceLoader (new ResourceLoader () {
81
+ freeMarkerConfigurer .setFreemarkerSettings (settings );
82
+ freeMarkerConfigurer .setResourceLoader (new ResourceLoader () {
89
83
@ Override
90
84
public Resource getResource (String location ) {
91
85
if (!("file:/mydir" .equals (location ) || "file:/mydir/test" .equals (location ))) {
@@ -98,23 +92,11 @@ public ClassLoader getClassLoader() {
98
92
return getClass ().getClassLoader ();
99
93
}
100
94
});
101
- configurer .afterPropertiesSet ();
102
- assertThat (configurer .getConfiguration ()).isInstanceOf (Configuration .class );
103
- Configuration fc = configurer .getConfiguration ();
95
+ freeMarkerConfigurer .afterPropertiesSet ();
96
+ assertThat (freeMarkerConfigurer .getConfiguration ()).isInstanceOf (Configuration .class );
97
+ Configuration fc = freeMarkerConfigurer .getConfiguration ();
104
98
Template ft = fc .getTemplate ("test" );
105
99
assertThat (FreeMarkerTemplateUtils .processTemplateIntoString (ft , new HashMap ())).isEqualTo ("test" );
106
100
}
107
101
108
- @ Test // SPR-12448
109
- public void freeMarkerConfigurationAsBean () {
110
- DefaultListableBeanFactory beanFactory = new DefaultListableBeanFactory ();
111
- RootBeanDefinition loaderDef = new RootBeanDefinition (SpringTemplateLoader .class );
112
- loaderDef .getConstructorArgumentValues ().addGenericArgumentValue (new DefaultResourceLoader ());
113
- loaderDef .getConstructorArgumentValues ().addGenericArgumentValue ("/freemarker" );
114
- RootBeanDefinition configDef = new RootBeanDefinition (Configuration .class );
115
- configDef .getPropertyValues ().add ("templateLoader" , loaderDef );
116
- beanFactory .registerBeanDefinition ("freeMarkerConfig" , configDef );
117
- beanFactory .getBean (Configuration .class );
118
- }
119
-
120
102
}
0 commit comments