GRAILS-1019: Allowing expressions to be used with the 'disabled' attribute for g...
[grails.git] / test / groovy / org / codehaus / groovy / grails / plugins / web / ControllersGrailsPluginTests.groovy
blob83b07b1cccb004109c1c59a47dabfd9784c14fdf
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 {
9 void onSetUp() {
10 gcl.parseClass(
11 """
12 class TestController {
13 def list = {}
15 """)
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() {
60 try {
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))
67 bb.beans(beans)
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
80 } finally {
81 System.setProperty("grails.env", "")
85 void testBeansWhenWarDeployedAndDevelopmentEnv() {
86 try {
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))
93 bb.beans(beans)
94 assertNull bb.getBeanDefinition('groovyPageResourceLoader')
95 } finally {
96 System.setProperty("grails.env", "")
100 Class parseTestBean(){
101 return gcl.parseClass(
103 class TestDomainObject {
104 String name
105 int pages = 0
106 String address
108 """)