GRAILS-1019: Allowing expressions to be used with the 'disabled' attribute for g...
[grails.git] / test / commons / org / codehaus / groovy / grails / plugins / DefaultGrailsPluginTests.java
blob245bb5450b8da2c6f8f8331c666d23fb861a637d
1 /*
2 * Copyright 2004-2005 the original author or authors.
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16 package org.codehaus.groovy.grails.plugins;
18 import org.codehaus.groovy.grails.commons.spring.DefaultRuntimeSpringConfiguration;
19 import org.codehaus.groovy.grails.commons.spring.RuntimeSpringConfiguration;
20 import org.codehaus.groovy.grails.commons.test.AbstractGrailsMockTests;
21 import org.codehaus.groovy.grails.plugins.exceptions.PluginException;
22 import org.springframework.context.ApplicationContext;
24 /**
25 * Test for the DefaultGrailsPlugin class
27 * @author Graeme Rocher
30 public class DefaultGrailsPluginTests extends AbstractGrailsMockTests {
33 private Class versioned;
34 private Class notVersion;
35 private Class notPluginClass;
36 private Class disabled;
37 private Class observed;
38 private Class camelCased;
40 protected void onTearDown()
42 versioned = null;
43 notVersion = null;
44 notPluginClass = null;
45 disabled = null;
46 observed = null;
47 super.onTearDown();
48 //To change body of overridden methods use File | Settings | File Templates.
51 protected void onSetUp() {
52 versioned = gcl.parseClass("class MyGrailsPlugin {\n" +
53 "def version = 1.1;" +
54 "def doWithSpring = {" +
55 "classEditor(org.springframework.beans.propertyeditors.ClassEditor,application.classLoader )" +
56 "}\n" +
57 "def doWithApplicationContext = { ctx ->" +
58 "assert ctx != null" +
59 "}" +
60 "}");
61 notVersion = gcl.parseClass("class AnotherGrailsPlugin {\n" +
62 "}");
63 notPluginClass = gcl.parseClass("class SomeOtherPlugin {\n" +
64 "def version = 1.4;" +
65 "}");
67 disabled = gcl.parseClass("class DisabledGrailsPlugin {" +
68 "def version = 1.1; " +
69 "def status = 'disabled'; }");
71 observed = gcl.parseClass("class ObservingGrailsPlugin {" +
72 "def observe = ['another'];" +
73 "def version = 1.1; " +
74 "def status = 'disabled'; }");
76 camelCased = gcl.parseClass("class CamelCasedGrailsPlugin {" +
77 "def version = 2.1; " +
78 "def status = 'disabled'; }");
81 public void testDefaultGrailsPlugin() {
82 GrailsPlugin versionPlugin = new DefaultGrailsPlugin(versioned, ga);
84 try {
85 GrailsPlugin notVersionPlugin = new DefaultGrailsPlugin(notVersion, ga);
86 fail("Should have thrown IllegalArgumentException for unversioned plugin");
87 } catch (PluginException e) {
88 // expected
91 try {
92 GrailsPlugin notPlugin = new DefaultGrailsPlugin(notPluginClass, ga);
93 fail("Should have thrown an exception for invalid plugin");
94 } catch (IllegalArgumentException e) {
95 // expected
99 public void testGetPluginPath() {
100 GrailsPlugin versionPlugin = new DefaultGrailsPlugin(versioned, ga);
102 assertEquals("/plugins/my-1.1", versionPlugin.getPluginPath());
104 GrailsPlugin camelCasedPlugin = new DefaultGrailsPlugin(camelCased, ga);
106 assertEquals("/plugins/camel-cased-2.1", camelCasedPlugin.getPluginPath());
109 public void testDisabledPlugin() {
110 GrailsPlugin disabledPlugin = new DefaultGrailsPlugin(disabled, ga);
111 GrailsPlugin enabledPlugin = new DefaultGrailsPlugin(versioned, ga);
115 assertFalse(disabledPlugin.isEnabled());
116 assertTrue(enabledPlugin.isEnabled());
119 public void testDoWithApplicationContext() {
120 GrailsPlugin versionPlugin = new DefaultGrailsPlugin(versioned, ga);
122 RuntimeSpringConfiguration springConfig = new DefaultRuntimeSpringConfiguration();
123 versionPlugin.doWithRuntimeConfiguration(springConfig);
125 ApplicationContext ctx = springConfig.getApplicationContext();
127 assertTrue(ctx.containsBean("classEditor"));
129 versionPlugin.doWithApplicationContext(ctx);
132 public void testDoWithRuntimeConfiguration() {
133 GrailsPlugin versionPlugin = new DefaultGrailsPlugin(versioned, ga);
135 RuntimeSpringConfiguration springConfig = new DefaultRuntimeSpringConfiguration();
136 versionPlugin.doWithRuntimeConfiguration(springConfig);
138 ApplicationContext ctx = springConfig.getApplicationContext();
140 assertTrue(ctx.containsBean("classEditor"));
143 public void testGetName() {
144 GrailsPlugin versionPlugin = new DefaultGrailsPlugin(versioned, ga);
145 assertEquals("my", versionPlugin.getName());
148 public void testGetVersion() {
149 GrailsPlugin versionPlugin = new DefaultGrailsPlugin(versioned, ga);
150 assertEquals("1.1", versionPlugin.getVersion());
153 public void testObservers() {
155 GrailsPlugin observingPlugin = new DefaultGrailsPlugin(observed, ga);
157 assertEquals(1, observingPlugin.getObservedPluginNames().length);
158 assertEquals("another", observingPlugin.getObservedPluginNames()[0]);