📄 configurationcactustest.java
字号:
/* * Copyright 2002,2004 The Apache Software Foundation. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */package org.apache.myfaces.config;import java.util.ArrayList;import java.util.List;import javax.faces.FactoryFinder;import javax.faces.application.ApplicationFactory;import javax.faces.application.NavigationHandler;import javax.faces.application.StateManager;import javax.faces.application.ViewHandler;import javax.faces.context.ExternalContext;import javax.faces.el.PropertyResolver;import javax.faces.el.VariableResolver;import javax.faces.event.PhaseListener;import javax.faces.lifecycle.Lifecycle;import javax.faces.lifecycle.LifecycleFactory;import javax.faces.render.RenderKit;import javax.faces.render.RenderKitFactory;import javax.faces.render.Renderer;import javax.faces.webapp.FacesServlet;import javax.servlet.ServletContext;import org.apache.myfaces.application.NavigationHandlerImpl;import org.apache.myfaces.application.jsp.JspStateManagerImpl;import org.apache.myfaces.application.jsp.JspViewHandlerImpl;import org.apache.myfaces.cactus.MyFacesServletTestCase;import org.apache.myfaces.config.element.ManagedBean;import org.apache.myfaces.config.element.NavigationCase;import org.apache.myfaces.config.element.NavigationRule;import org.apache.myfaces.el.PropertyResolverImpl;import org.apache.myfaces.el.VariableResolverImpl;import org.apache.myfaces.lifecycle.LifecycleFactoryImpl;import org.apache.myfaces.renderkit.html.util.AutoScrollPhaseListener;import org.apache.myfaces.component.html.ext.HtmlDataTablePhaseListener;public class ConfigurationCactusTest extends MyFacesServletTestCase{ protected void setUp() throws Exception { super.setUp(); } protected void tearDown() throws Exception { super.tearDown(); } public ConfigurationCactusTest(String name) { super(name); } public void testConfiguration() throws Exception { ExternalContext externalContext = getContext().getExternalContext(); // test decorator pattern support // application factory ApplicationFactory applicationFactory = (ApplicationFactory) FactoryFinder.getFactory(FactoryFinder.APPLICATION_FACTORY); assertEquals(TestApplicationFactory.class, applicationFactory.getClass()); javax.faces.application.Application application = applicationFactory.getApplication(); assertEquals("messageBundleA", application.getMessageBundle()); LifecycleFactory lifecycleFactory = (LifecycleFactory) FactoryFinder.getFactory(FactoryFinder.LIFECYCLE_FACTORY); assertEquals(TestLifecycleFactory.class, lifecycleFactory.getClass()); LifecycleFactory lifecycleFactoryDelegate = ((TestLifecycleFactory) lifecycleFactory).getDelegate(); assertNotNull(lifecycleFactoryDelegate); assertEquals(LifecycleFactoryImpl.class, lifecycleFactoryDelegate.getClass()); // view handler ViewHandler viewHandler = application.getViewHandler(); assertEquals(TestViewHandlerA.class, viewHandler.getClass()); assertEquals(TestViewHandlerB.class, ((TestViewHandlerA) viewHandler).getDelegate().getClass()); assertEquals(JspViewHandlerImpl.class, ((TestViewHandlerB) ((TestViewHandlerA) viewHandler).getDelegate()).getDelegate().getClass()); // navigation handler NavigationHandler navigationHandler = application.getNavigationHandler(); assertEquals(TestNavigationHandler.class, navigationHandler.getClass()); assertEquals(NavigationHandlerImpl.class, ((TestNavigationHandler) navigationHandler).getDelegate().getClass()); // state manager StateManager stateManager = application.getStateManager(); assertEquals(TestStateManager.class, stateManager.getClass()); assertEquals(JspStateManagerImpl.class, ((TestStateManager) stateManager).getDelegate().getClass()); // PropvertyResolver PropertyResolver propertyResolver = application.getPropertyResolver(); assertEquals(TestPropertyResolver.class, propertyResolver.getClass()); assertEquals(PropertyResolverImpl.class, ((TestPropertyResolver) propertyResolver).getDelegate().getClass()); // VariableResolver VariableResolver variableResolver = application.getVariableResolver(); assertEquals(TestVariableResolver.class, variableResolver.getClass()); assertEquals(VariableResolverImpl.class, ((TestVariableResolver) variableResolver).getDelegate().getClass()); // RuntimeConfig RuntimeConfig runtimeConfig = RuntimeConfig.getCurrentInstance(externalContext); ManagedBean bean = runtimeConfig.getManagedBean("testMap"); assertNotNull(bean); assertNull(runtimeConfig.getManagedBean("doesNotExist")); // Navigation rules List navigationRules = new ArrayList(runtimeConfig.getNavigationRules()); assertEquals(1, navigationRules.size()); NavigationRule navRule = (NavigationRule) navigationRules.get(0); NavigationCase navCase = (NavigationCase) navRule.getNavigationCases().iterator().next(); assertTrue(navCase.isRedirect()); assertEquals("Foo", navCase.getFromOutcome()); assertEquals("/Foo.jsp", navCase.getToViewId()); // Lifecycle config ServletContext context = (ServletContext) externalContext.getContext(); String lifecycleId = context.getInitParameter(FacesServlet.LIFECYCLE_ID_ATTR); if (lifecycleId == null) { lifecycleId = LifecycleFactory.DEFAULT_LIFECYCLE; } Lifecycle lifecycle = (Lifecycle) lifecycleFactory.getLifecycle(lifecycleId); javax.faces.event.PhaseListener[] phaseListeners = lifecycle.getPhaseListeners(); assertEquals(4, phaseListeners.length); for (int i = 0; i < phaseListeners.length; i++) { PhaseListener listener = phaseListeners[i]; assertTrue(listener instanceof TestPhaseListenerA || listener instanceof TestPhaseListenerB || listener instanceof AutoScrollPhaseListener || listener instanceof HtmlDataTablePhaseListener); } } public void testRenderKit() { RenderKitFactory renderKitFactory = (RenderKitFactory) FactoryFinder.getFactory(FactoryFinder.RENDER_KIT_FACTORY); RenderKit basicHtml = renderKitFactory.getRenderKit(getContext(), RenderKitFactory.HTML_BASIC_RENDER_KIT); Renderer renderer = basicHtml.getRenderer("javax.faces.Command", "javax.faces.Button"); assertEquals(org.apache.myfaces.renderkit.html.HtmlButtonRenderer.class, renderer.getClass()); RenderKit testRenderKit = renderKitFactory.getRenderKit(getContext(), "TEST_RENDER_KIT"); assertNull(basicHtml.getRenderer("test.Command", "test.Button")); renderer = testRenderKit.getRenderer("test.Command", "test.Button"); assertEquals(org.apache.myfaces.renderkit.html.HtmlButtonRenderer.class, renderer.getClass()); }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -