/*
* JBoss, Home of Professional Open Source.
* Copyright 2014, Red Hat, Inc., and individual contributors
* as indicated by the @author tags. See the copyright.txt file in the
* distribution for a full listing of individual contributors.
*
* This is free software; you can redistribute it and/or modify it
* under the terms of the GNU Lesser General Public License as
* published by the Free Software Foundation; either version 2.1 of
* the License, or (at your option) any later version.
*
* This software is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this software; if not, write to the Free
* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
*/
package org.jboss.portletbridge.context;
import java.security.Principal;
import java.util.Collection;
import java.util.Enumeration;
import java.util.Iterator;
import java.util.Locale;
import java.util.Map;
import java.util.ResourceBundle;
import javax.el.ELContextListener;
import javax.faces.FacesException;
import javax.faces.FactoryFinder;
import javax.faces.application.Application;
import javax.faces.application.ApplicationFactory;
import javax.faces.application.NavigationHandler;
import javax.faces.application.StateManager;
import javax.faces.application.ViewHandler;
import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
import javax.faces.convert.Converter;
import javax.faces.el.MethodBinding;
import javax.faces.el.PropertyResolver;
import javax.faces.el.ReferenceSyntaxException;
import javax.faces.el.ValueBinding;
import javax.faces.el.VariableResolver;
import javax.faces.event.ActionListener;
import javax.faces.validator.Validator;
import javax.portlet.PortalContext;
import javax.portlet.PortletConfig;
import javax.portlet.PortletContext;
import javax.portlet.PortletMode;
import javax.portlet.PortletPreferences;
import javax.portlet.PortletRequest;
import javax.portlet.PortletSession;
import javax.portlet.WindowState;
import javax.portlet.faces.Bridge;
import javax.servlet.http.Cookie;
import javax.xml.namespace.QName;
import junit.framework.TestCase;
import org.jboss.portletbridge.bridge.config.BridgeConfig;
import org.jboss.portletbridge.bridge.config.BridgeConfigImpl;
import org.jboss.portletbridge.bridge.context.BridgeContextImpl;
/**
* @author Ken Finnigan
*/
public class BridgeContextTest extends TestCase {
private TestBridgeContext context;
@Override
protected void setUp() throws Exception {
BridgeConfig config = new BridgeConfigImpl();
PortletConfig portletConfig = new PortletConfig() {
@Override
public String getPortletName() {
return null;
}
@Override
public PortletContext getPortletContext() {
return null;
}
@Override
public ResourceBundle getResourceBundle(Locale locale) {
return null;
}
@Override
public String getInitParameter(String name) {
return null;
}
@Override
public Enumeration<String> getInitParameterNames() {
return null;
}
@Override
public Enumeration<String> getPublicRenderParameterNames() {
return null;
}
@Override
public String getDefaultNamespace() {
return null;
}
@Override
public Enumeration<QName> getPublishingEventQNames() {
return null;
}
@Override
public Enumeration<QName> getProcessingEventQNames() {
return null;
}
@Override
public Enumeration<Locale> getSupportedLocales() {
return null;
}
@Override
public Map<String, String[]> getContainerRuntimeOptions() {
return null;
}
};
config.setPortletConfig(portletConfig);
FactoryFinder.setFactory(FactoryFinder.APPLICATION_FACTORY, TestAppFactory.class.getName());
context = new TestBridgeContext(config);
}
public void testViewIdOnRequest() throws Exception {
PortletRequest request = new TestPortletRequest("file://myFile.xhtml", null);
String viewId = context.getViewId(request, false);
assertEquals(null, viewId);
}
public void testViewIdOnRenderParameter() throws Exception {
PortletRequest request = new TestPortletRequest(null, "file://myFile.xhtml");
context.setPortletRequest(request);
String viewId = context.getViewId(request, false);
context.setPortletRequest(null);
assertEquals(null, viewId);
}
static class TestBridgeContext extends BridgeContextImpl {
public TestBridgeContext(BridgeConfig bridgeConfig) {
super(bridgeConfig);
}
public String getViewId(PortletRequest request, boolean excludeQuery) {
return super.getViewId(request, excludeQuery);
}
}
static class TestPortletRequest implements PortletRequest {
String viewId = null;
String renderViewId = null;
public TestPortletRequest(String viewId, String renderViewId) {
this.viewId = viewId;
this.renderViewId = renderViewId;
}
@Override
public boolean isWindowStateAllowed(WindowState state) {
return false;
}
@Override
public boolean isPortletModeAllowed(PortletMode mode) {
return false;
}
@Override
public PortletMode getPortletMode() {
return PortletMode.VIEW;
}
@Override
public WindowState getWindowState() {
return null;
}
@Override
public PortletPreferences getPreferences() {
return null;
}
@Override
public PortletSession getPortletSession() {
return null;
}
@Override
public PortletSession getPortletSession(boolean create) {
return null;
}
@Override
public String getProperty(String name) {
return null;
}
@Override
public Enumeration<String> getProperties(String name) {
return null;
}
@Override
public Enumeration<String> getPropertyNames() {
return null;
}
@Override
public PortalContext getPortalContext() {
return null;
}
@Override
public String getAuthType() {
return null;
}
@Override
public String getContextPath() {
return null;
}
@Override
public String getRemoteUser() {
return null;
}
@Override
public Principal getUserPrincipal() {
return null;
}
@Override
public boolean isUserInRole(String role) {
return false;
}
@Override
public Object getAttribute(String name) throws IllegalArgumentException {
if (name.equals(Bridge.VIEW_ID)) {
return viewId;
} else if (name.equals(Bridge.PORTLET_LIFECYCLE_PHASE)) {
return Bridge.PortletPhase.RENDER_PHASE;
}
return null;
}
@Override
public Enumeration<String> getAttributeNames() {
return null;
}
@Override
public String getParameter(String name) {
return renderViewId;
}
@Override
public Enumeration<String> getParameterNames() {
return null;
}
@Override
public String[] getParameterValues(String name) {
return new String[0];
}
@Override
public Map<String, String[]> getParameterMap() {
return null;
}
@Override
public boolean isSecure() {
return false;
}
@Override
public void setAttribute(String name, Object o) {
}
@Override
public void removeAttribute(String name) {
}
@Override
public String getRequestedSessionId() {
return null;
}
@Override
public boolean isRequestedSessionIdValid() {
return false;
}
@Override
public String getResponseContentType() {
return null;
}
@Override
public Enumeration<String> getResponseContentTypes() {
return null;
}
@Override
public Locale getLocale() {
return null;
}
@Override
public Enumeration<Locale> getLocales() {
return null;
}
@Override
public String getScheme() {
return null;
}
@Override
public String getServerName() {
return null;
}
@Override
public int getServerPort() {
return 0;
}
@Override
public String getWindowID() {
return null;
}
@Override
public Cookie[] getCookies() {
return new Cookie[0];
}
@Override
public Map<String, String[]> getPrivateParameterMap() {
return null;
}
@Override
public Map<String, String[]> getPublicParameterMap() {
return null;
}
}
public static class TestAppFactory extends ApplicationFactory {
@Override
public Application getApplication() {
return new Application() {
@Override
public ActionListener getActionListener() {
return null;
}
@Override
public void setActionListener(ActionListener listener) {
}
@Override
public Locale getDefaultLocale() {
return null;
}
@Override
public void setDefaultLocale(Locale locale) {
}
@Override
public String getDefaultRenderKitId() {
return null;
}
@Override
public void setDefaultRenderKitId(String renderKitId) {
}
@Override
public String getMessageBundle() {
return null;
}
@Override
public void setMessageBundle(String bundle) {
}
@Override
public NavigationHandler getNavigationHandler() {
return null;
}
@Override
public void setNavigationHandler(NavigationHandler handler) {
}
@Override
public PropertyResolver getPropertyResolver() {
return null;
}
@Override
public void setPropertyResolver(PropertyResolver resolver) {
}
@Override
public VariableResolver getVariableResolver() {
return null;
}
@Override
public void setVariableResolver(VariableResolver resolver) {
}
@Override
public ViewHandler getViewHandler() {
return null;
}
@Override
public void setViewHandler(ViewHandler handler) {
}
@Override
public StateManager getStateManager() {
return null;
}
@Override
public void setStateManager(StateManager manager) {
}
@Override
public void addComponent(String componentType, String componentClass) {
}
@Override
public UIComponent createComponent(String componentType) throws FacesException {
return null;
}
@Override
public UIComponent createComponent(ValueBinding componentBinding, FacesContext context, String componentType) throws FacesException {
return null;
}
@Override
public Iterator<String> getComponentTypes() {
return null;
}
@Override
public void addConverter(String converterId, String converterClass) {
}
@Override
public void addConverter(Class<?> targetClass, String converterClass) {
}
@Override
public Converter createConverter(String converterId) {
return null;
}
@Override
public Converter createConverter(Class<?> targetClass) {
return null;
}
@Override
public Iterator<String> getConverterIds() {
return null;
}
@Override
public Iterator<Class<?>> getConverterTypes() {
return null;
}
@Override
public MethodBinding createMethodBinding(String ref, Class<?>[] params) throws ReferenceSyntaxException {
return null;
}
@Override
public Iterator<Locale> getSupportedLocales() {
return null;
}
@Override
public void setSupportedLocales(Collection<Locale> locales) {
}
@Override
public void addValidator(String validatorId, String validatorClass) {
}
@Override
public Validator createValidator(String validatorId) throws FacesException {
return null;
}
@Override
public Iterator<String> getValidatorIds() {
return null;
}
@Override
public ValueBinding createValueBinding(String ref) throws ReferenceSyntaxException {
return null;
}
@Override
public void addELContextListener(ELContextListener listener) {
}
};
}
@Override
public void setApplication(Application application) {
}
}
}