1 package org
.codehaus
.groovy
.grails
.plugins
.web
3 import grails
.spring
.BeanBuilder
4 import org
.springframework
.core
.io
.FileSystemResource
6 class ControllersGrailsPluginTests
extends AbstractGrailsPluginTests
{
12 class TestController {
17 pluginsToLoad
<< gcl
.loadClass("org.codehaus.groovy.grails.plugins.CoreGrailsPlugin")
18 pluginsToLoad
<< gcl
.loadClass("org.codehaus.groovy.grails.plugins.i18n.I18nGrailsPlugin")
19 pluginsToLoad
<< gcl
.loadClass("org.codehaus.groovy.grails.plugins.web.ControllersGrailsPlugin")
23 void testControllersPlugin() {
24 assert appCtx
.containsBean("TestControllerTargetSource")
25 assert appCtx
.containsBean("TestControllerProxy")
26 assert appCtx
.containsBean("TestControllerClass")
27 assert appCtx
.containsBean("TestController")
30 void testOldBindDataMethodsDelegateToNewOnes() {
31 Class testClass
= parseTestBean()
32 def controller
= appCtx
.getBean("TestController")
33 def bean
= testClass
.newInstance()
34 def params
= [name
:"beanName", pages
:3]
35 controller
.bindData(bean
, params
, ["pages"])
36 assertEquals(0, bean
.pages
)
37 assertEquals("beanName", bean
.name
)
39 bean
= testClass
.newInstance()
40 params
= ['a.name':"beanName", 'b.address':"address", 'a.pages':3]
41 controller
.bindData(bean
, params
, ["pages"], "a")
42 assertEquals(0, bean
.pages
)
43 assertEquals("beanName", bean
.name
)
44 assertNull(bean
.address
)
48 void testBindDataConvertsSingleIncludeToListInternally() {
49 Class testClass
= parseTestBean()
50 def bean
= testClass
.newInstance()
51 def params
= ['a.name':"beanName", 'b.address':"address", 'a.pages':3]
52 def controller
= appCtx
.getBean("TestController")
53 controller
.bindData(bean
, params
, [include
:"name"], "a")
54 assertEquals(0, bean
.pages
)
55 assertEquals("beanName", bean
.name
)
56 assertNull(bean
.address
)
59 void testBeansWhenNotWarDeployedAndDevelopmentEnv() {
61 System
.setProperty("grails.env", "development")
62 def mock
= [application
: [config
: new ConfigObject(), warDeployed
: false]]
63 def plugin
= new ControllersGrailsPlugin()
64 def beans
= plugin
.doWithSpring
65 def bb
= new BeanBuilder()
66 bb
.setBinding(new Binding(mock
))
68 def beanDef
= bb
.getBeanDefinition('groovyPageResourceLoader')
69 assertEquals
"org.codehaus.groovy.grails.web.pages.GroovyPageResourceLoader", beanDef
.beanClassName
70 assertNotNull beanDef
.getPropertyValues().getPropertyValue('baseResource')
72 assertEquals
new FileSystemResource("."), beanDef
.getPropertyValues().getPropertyValue('baseResource').getValue()
74 beanDef
= bb
.getBeanDefinition("groovyPagesTemplateEngine")
75 assertEquals
"groovyPageResourceLoader", beanDef
.getPropertyValues().getPropertyValue("resourceLoader").getValue()?
.beanName
77 beanDef
= bb
.getBeanDefinition("jspViewResolver")
78 assertEquals
"groovyPageResourceLoader", beanDef
.getPropertyValues().getPropertyValue("resourceLoader").getValue()?
.beanName
81 System
.setProperty("grails.env", "")
85 void testBeansWhenWarDeployedAndDevelopmentEnv() {
87 System
.setProperty("grails.env", "development")
88 def mock
= [application
: [config
: new ConfigObject(), warDeployed
: true]]
89 def plugin
= new ControllersGrailsPlugin()
90 def beans
= plugin
.doWithSpring
91 def bb
= new BeanBuilder()
92 bb
.setBinding(new Binding(mock
))
94 assertNull bb
.getBeanDefinition('groovyPageResourceLoader')
96 System
.setProperty("grails.env", "")
100 Class
parseTestBean(){
101 return gcl
.parseClass(
103 class TestDomainObject {