| /* |
| * Licensed to the Apache Software Foundation (ASF) under one or more |
| * contributor license agreements. See the NOTICE file distributed with |
| * this work for additional information regarding copyright ownership. |
| * The ASF licenses this file to you 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.test.mock; |
| |
| import java.util.Locale; |
| |
| import javax.faces.application.ViewHandler; |
| import javax.faces.component.UIViewRoot; |
| import javax.faces.context.FacesContext; |
| import javax.faces.render.RenderKitFactory; |
| |
| /** |
| * <p>Mock implementation of <code>ViewHandler</code>.</p> |
| * |
| * $Id$ |
| */ |
| |
| public class MockViewHandler extends ViewHandler { |
| |
| |
| // ------------------------------------------------------------ Constructors |
| |
| |
| /** |
| * <p>Construct a default instance.</p> |
| */ |
| public MockViewHandler() { |
| } |
| |
| |
| // ----------------------------------------------------- Mock Object Methods |
| |
| |
| // ------------------------------------------------------ Instance Variables |
| |
| |
| // ----------------------------------------------------- ViewHandler Methods |
| |
| |
| /** {@inheritDoc} */ |
| public Locale calculateLocale(FacesContext context) { |
| |
| Locale locale = context.getApplication().getDefaultLocale(); |
| if (locale == null) { |
| locale = Locale.getDefault(); |
| } |
| return locale; |
| |
| } |
| |
| |
| /** {@inheritDoc} */ |
| public String calculateRenderKitId(FacesContext context) { |
| |
| String renderKitId = context.getApplication().getDefaultRenderKitId(); |
| if (renderKitId == null) { |
| renderKitId = RenderKitFactory.HTML_BASIC_RENDER_KIT; |
| } |
| return renderKitId; |
| |
| } |
| |
| |
| /** {@inheritDoc} */ |
| public UIViewRoot createView(FacesContext context, String viewId) { |
| |
| // Save locale and renderKitId from previous view (if any), per spec |
| Locale locale = null; |
| String renderKitId = null; |
| if (context.getViewRoot() != null) { |
| locale = context.getViewRoot().getLocale(); |
| renderKitId = context.getViewRoot().getRenderKitId(); |
| } |
| |
| // Configure a new UIViewRoot instance |
| UIViewRoot view = new UIViewRoot(); |
| view.setViewId(viewId); |
| if (locale != null) { |
| view.setLocale(locale); |
| } else { |
| view.setLocale |
| (context.getApplication().getViewHandler().calculateLocale(context)); |
| } |
| if (renderKitId != null) { |
| view.setRenderKitId(renderKitId); |
| } else { |
| view.setRenderKitId |
| (context.getApplication().getViewHandler().calculateRenderKitId(context)); |
| } |
| |
| // Return the configured instance |
| return view; |
| |
| } |
| |
| |
| /** {@inheritDoc} */ |
| public String getActionURL(FacesContext context, String viewId) { |
| |
| return FacesContext.getCurrentInstance().getExternalContext(). |
| getRequestContextPath() + viewId; |
| |
| } |
| |
| |
| /** {@inheritDoc} */ |
| public String getResourceURL(FacesContext context, String path) { |
| |
| return FacesContext.getCurrentInstance().getExternalContext(). |
| getRequestContextPath() + path; |
| |
| } |
| |
| |
| /** {@inheritDoc} */ |
| public void renderView(FacesContext context, UIViewRoot view) { |
| |
| throw new UnsupportedOperationException(); |
| |
| } |
| |
| |
| /** {@inheritDoc} */ |
| public UIViewRoot restoreView(FacesContext context, String viewId) { |
| |
| throw new UnsupportedOperationException(); |
| |
| } |
| |
| |
| /** {@inheritDoc} */ |
| public void writeState(FacesContext context) { |
| |
| } |
| |
| |
| } |