use of org.grails.config.PropertySourcesConfig in project grails-core by grails.
the class GrailsLayoutDecoratorMapperTests method testOverridingDefaultTemplateViaConfig.
public void testOverridingDefaultTemplateViaConfig() throws Exception {
ConfigObject config = new ConfigSlurper().parse("grails.sitemesh.default.layout='otherApplication'");
MutablePropertySources propertySources = new MutablePropertySources();
propertySources.addLast(new MapPropertySource("grails", config));
GrailsWebRequest webRequest = buildMockRequest(new PropertySourcesConfig(propertySources));
webRequest.setAttribute(GrailsLayoutDecoratorMapper.RENDERING_VIEW, Boolean.TRUE, RequestAttributes.SCOPE_REQUEST);
MockApplicationContext appCtx = (MockApplicationContext) webRequest.getApplicationContext();
appCtx.registerMockResource("/grails-app/views/layouts/application.gsp", "<html><body><h1>Default Layout</h1><g:layoutBody /></body></html>");
appCtx.registerMockResource("/grails-app/views/layouts/otherApplication.gsp", "<html><body><h1>Other Default Layout</h1><g:layoutBody /></body></html>");
MockHttpServletRequest request = (MockHttpServletRequest) webRequest.getCurrentRequest();
request.setMethod("GET");
request.setRequestURI("orders/list");
ServletContext context = webRequest.getServletContext();
GroovyClassLoader gcl = new GroovyClassLoader();
// create mock controller
GroovyObject controller = (GroovyObject) gcl.parseClass("class FooController {\n" + "def controllerName = 'foo'\n" + "def actionUri = '/foo/fooAction'\n" + "}").newInstance();
request.setAttribute(GrailsApplicationAttributes.CONTROLLER, controller);
GrailsLayoutDecoratorMapper m = new GrailsLayoutDecoratorMapper();
com.opensymphony.module.sitemesh.Config c = new com.opensymphony.module.sitemesh.Config(new MockServletConfig(context));
m.init(c, null, null);
HTMLPageParser parser = new HTMLPageParser();
String html = "<html><head><title>Foo title</title></head><body>here is the body</body></html>";
Page page = parser.parse(html.toCharArray());
Decorator d = m.getDecorator(request, page);
assertNotNull(d);
assertEquals("/layouts/otherApplication.gsp", d.getPage());
assertEquals("otherApplication", d.getName());
}
use of org.grails.config.PropertySourcesConfig in project grails-core by grails.
the class DefaultGrailsApplication method getConfig.
public Config getConfig() {
if (config == null) {
if (parentContext != null) {
org.springframework.core.env.Environment environment = parentContext.getEnvironment();
if (environment instanceof ConfigurableEnvironment) {
MutablePropertySources propertySources = ((ConfigurableEnvironment) environment).getPropertySources();
this.config = new PropertySourcesConfig(propertySources);
} else {
this.config = new PropertySourcesConfig();
}
} else {
this.config = new PropertySourcesConfig();
}
setConfig(this.config);
}
return config;
}
use of org.grails.config.PropertySourcesConfig in project grails-core by grails.
the class AbstractGrailsMockTests method setUp.
@Override
protected final void setUp() throws Exception {
ExpandoMetaClass.enableGlobally();
super.setUp();
System.out.println("Setting up test");
ctx = new MockApplicationContext();
ctx.registerMockBean(GrailsApplication.CLASS_LOADER_BEAN, gcl);
onSetUp();
ga = new DefaultGrailsApplication(gcl.getLoadedClasses(), gcl);
if (ClassUtils.isPresent("Config", gcl)) {
ConfigObject config = new ConfigSlurper().parse(gcl.loadClass("Config"));
ga.setConfig(new PropertySourcesConfig(config));
}
ga.getMetadata().put(Metadata.APPLICATION_NAME, getClass().getName());
ga.setApplicationContext(ctx);
ga.initialise();
ctx.registerMockBean(GrailsApplication.APPLICATION_ID, ga);
postSetUp();
}
Aggregations