You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by mc...@apache.org on 2012/03/02 19:28:43 UTC
svn commit: r1296364 - in /myfaces/trinidad/branches/1.2.12.7.0-branch: ./
trinidad-impl/src/test/java/org/apache/myfaces/trinidadinternal/renderkit/
Author: mcooper
Date: Fri Mar 2 18:28:43 2012
New Revision: 1296364
URL: http://svn.apache.org/viewvc?rev=1296364&view=rev
Log:
TRINIDAD-2229 Enhance golden file test framework to support testing outputMode
Thanks to Pavitra for the patch.
Modified:
myfaces/trinidad/branches/1.2.12.7.0-branch/ (props changed)
myfaces/trinidad/branches/1.2.12.7.0-branch/trinidad-impl/src/test/java/org/apache/myfaces/trinidadinternal/renderkit/MFacesContext.java
myfaces/trinidad/branches/1.2.12.7.0-branch/trinidad-impl/src/test/java/org/apache/myfaces/trinidadinternal/renderkit/MRequestContext.java
myfaces/trinidad/branches/1.2.12.7.0-branch/trinidad-impl/src/test/java/org/apache/myfaces/trinidadinternal/renderkit/RenderKitBootstrap.java
myfaces/trinidad/branches/1.2.12.7.0-branch/trinidad-impl/src/test/java/org/apache/myfaces/trinidadinternal/renderkit/RenderKitTestCase.java
Propchange: myfaces/trinidad/branches/1.2.12.7.0-branch/
------------------------------------------------------------------------------
--- svn:ignore (original)
+++ svn:ignore Fri Mar 2 18:28:43 2012
@@ -11,3 +11,12 @@ trinidad-oc4j-app.log.0
trinidad-oc4j-app.log.0.lck
trinidad-oc4j-app.xml
.adf
+relative mtr12 - clean all.app
+relative mtr12 - clean.app
+relative mtr12 - compare golden files.app
+relative mtr12 - install (test-skip).app
+relative mtr12 - install jdev-jdev.app
+relative mtr12 - install.app
+relative mtr12 - jdev-jdev.app
+relative mtr12 - jetty on demo and install.app
+relative mtr12 - jetty on demo.app
Modified: myfaces/trinidad/branches/1.2.12.7.0-branch/trinidad-impl/src/test/java/org/apache/myfaces/trinidadinternal/renderkit/MFacesContext.java
URL: http://svn.apache.org/viewvc/myfaces/trinidad/branches/1.2.12.7.0-branch/trinidad-impl/src/test/java/org/apache/myfaces/trinidadinternal/renderkit/MFacesContext.java?rev=1296364&r1=1296363&r2=1296364&view=diff
==============================================================================
--- myfaces/trinidad/branches/1.2.12.7.0-branch/trinidad-impl/src/test/java/org/apache/myfaces/trinidadinternal/renderkit/MFacesContext.java (original)
+++ myfaces/trinidad/branches/1.2.12.7.0-branch/trinidad-impl/src/test/java/org/apache/myfaces/trinidadinternal/renderkit/MFacesContext.java Fri Mar 2 18:28:43 2012
@@ -40,6 +40,7 @@ import javax.faces.context.FacesContext;
import javax.faces.context.ResponseWriter;
import javax.faces.render.RenderKit;
+import org.apache.myfaces.trinidad.context.RequestContext;
import org.apache.myfaces.trinidadinternal.share.config.Configuration;
import org.apache.myfaces.trinidadbuild.test.MockFacesContext12;
import org.apache.shale.test.mock.MockExternalContext;
@@ -52,10 +53,15 @@ public class MFacesContext extends MockF
{
public MFacesContext(Application application, boolean testMode)
{
+ this(application, testMode, Collections.EMPTY_MAP);
+ }
+
+ public MFacesContext(Application application, boolean testMode, Map<String, String> initParamMap)
+ {
super(application);
setCurrentInstance(this);
- _external = new External(testMode, application);
- }
+ _external = new External(testMode, application, initParamMap);
+ }
@Override
public ResponseWriter getResponseWriter()
@@ -212,12 +218,13 @@ public class MFacesContext extends MockF
private static final class External
extends MockExternalContext
{
- public External(boolean testMode, Object contextObject)
+ public External(boolean testMode, Object contextObject, Map<String,String> initParamMap)
{
super(new MServletContext(), null, null);
_testMode = testMode;
_contextObject = contextObject;
+ _initParamMap = initParamMap;
File file = null;
try
@@ -269,6 +276,11 @@ public class MFacesContext extends MockF
// A hack to disable image generation
if ("org.apache.myfaces.trinidadinternal.BLOCK_IMAGE_GENERATION".equals(name))
return "true";
+
+ if (!_initParamMap.isEmpty())
+ {
+ return (String) _initParamMap.get(name);
+ }
return null;
}
@@ -308,6 +320,17 @@ public class MFacesContext extends MockF
@Override
public Map<String, String> getRequestParameterMap()
{
+ RequestContext reqContext = RequestContext.getCurrentInstance();
+ String outputMode = reqContext.getOutputMode();
+ if (outputMode != null && !outputMode.isEmpty())
+ {
+ if (outputMode.equals(RequestContext.OutputMode.ATTACHMENT.id()))
+ {
+ Map<String, String> reqParamMap = new HashMap<String, String>(1);
+ reqParamMap.put(_OUTPUT_MODE_PARAM, RequestContext.OutputMode.ATTACHMENT.id());
+ return reqParamMap;
+ }
+ }
return Collections.EMPTY_MAP;
}
@@ -374,6 +397,8 @@ public class MFacesContext extends MockF
private volatile Map<String, Object> _sessionMap = null;
private final boolean _testMode;
+ private final Map<String, String> _initParamMap;
}
private static final String _GLOBAL_MESSAGE = "org.apache.myfaces.trinidadinternal.renderkit.MFacesContext.GLOBAL_MESSAGE";
+ static private final String _OUTPUT_MODE_PARAM = "org.apache.myfaces.trinidad.outputMode";
}
Modified: myfaces/trinidad/branches/1.2.12.7.0-branch/trinidad-impl/src/test/java/org/apache/myfaces/trinidadinternal/renderkit/MRequestContext.java
URL: http://svn.apache.org/viewvc/myfaces/trinidad/branches/1.2.12.7.0-branch/trinidad-impl/src/test/java/org/apache/myfaces/trinidadinternal/renderkit/MRequestContext.java?rev=1296364&r1=1296363&r2=1296364&view=diff
==============================================================================
--- myfaces/trinidad/branches/1.2.12.7.0-branch/trinidad-impl/src/test/java/org/apache/myfaces/trinidadinternal/renderkit/MRequestContext.java (original)
+++ myfaces/trinidad/branches/1.2.12.7.0-branch/trinidad-impl/src/test/java/org/apache/myfaces/trinidadinternal/renderkit/MRequestContext.java Fri Mar 2 18:28:43 2012
@@ -33,6 +33,7 @@ import javax.faces.context.FacesContext;
import javax.faces.event.PhaseId;
import org.apache.myfaces.trinidad.change.ChangeManager;
+import org.apache.myfaces.trinidad.change.ComponentChange;
import org.apache.myfaces.trinidad.config.RegionManager;
import org.apache.myfaces.trinidad.component.visit.VisitContext;
@@ -72,6 +73,19 @@ public class MRequestContext extends Req
{
return _agent;
}
+
+ // Support setting outputMode so we can render content for an output mode other than 'default'.
+ public void setOutputMode(String outputMode)
+ {
+ _outputMode = outputMode;
+ }
+
+ @Override
+ public String getOutputMode()
+ {
+ return _outputMode;
+ }
+
@Override
public PageResolver getPageResolver()
@@ -140,12 +154,6 @@ public class MRequestContext extends Req
return false;
}
- @Override
- public String getOutputMode()
- {
- return null;
- }
-
public void setSkinFamily(String skin)
{
_skin = skin;
@@ -329,7 +337,8 @@ public class MRequestContext extends Req
@Override
public void partialUpdateNotify(UIComponent updated)
{
- throw new UnsupportedOperationException("Should not be called during rendering");
+ // in some cases we allow adding partial targets during rendering
+ // throw new UnsupportedOperationException("Should not be called during rendering");
}
@Override
@@ -353,7 +362,12 @@ public class MRequestContext extends Req
@Override
public ChangeManager getChangeManager()
{
- throw new UnsupportedOperationException("Not implemented yet");
+ if (_changeManager == null)
+ {
+ _changeManager = new NoOpChangeManager();
+ }
+
+ return _changeManager;
}
@Override
@@ -426,6 +440,19 @@ public class MRequestContext extends Req
return viewMap;
}
+
+ // Added merely to have a noop implementation
+ public static class NoOpChangeManager extends ChangeManager
+ {
+
+ @Override
+ public void addComponentChange(FacesContext facesContext,
+ UIComponent uIComponent,
+ ComponentChange componentChange)
+ {
+ // do nothing
+ }
+ }
private String _skin;
private Long _maxMemory;
@@ -434,7 +461,9 @@ public class MRequestContext extends Req
private Accessibility _accMode;
private AccessibilityProfile _accProfile;
private ClientValidation _clientValidation = ClientValidation.ALERT;
+ private ChangeManager _changeManager;
private Agent _agent;
+ private String _outputMode;
private boolean _rtl = false;
private boolean _animationEnabled = true;
Modified: myfaces/trinidad/branches/1.2.12.7.0-branch/trinidad-impl/src/test/java/org/apache/myfaces/trinidadinternal/renderkit/RenderKitBootstrap.java
URL: http://svn.apache.org/viewvc/myfaces/trinidad/branches/1.2.12.7.0-branch/trinidad-impl/src/test/java/org/apache/myfaces/trinidadinternal/renderkit/RenderKitBootstrap.java?rev=1296364&r1=1296363&r2=1296364&view=diff
==============================================================================
--- myfaces/trinidad/branches/1.2.12.7.0-branch/trinidad-impl/src/test/java/org/apache/myfaces/trinidadinternal/renderkit/RenderKitBootstrap.java (original)
+++ myfaces/trinidad/branches/1.2.12.7.0-branch/trinidad-impl/src/test/java/org/apache/myfaces/trinidadinternal/renderkit/RenderKitBootstrap.java Fri Mar 2 18:28:43 2012
@@ -36,6 +36,7 @@ import org.apache.myfaces.trinidad.skin.
import org.apache.myfaces.trinidadinternal.agent.AgentFactoryImpl;
+import org.apache.myfaces.trinidadinternal.agent.AgentImpl;
import org.apache.myfaces.trinidadinternal.skin.SkinFactoryImpl;
import org.apache.myfaces.trinidadinternal.skin.SkinUtils;
@@ -76,6 +77,11 @@ public class RenderKitBootstrap
return _pocketPCAgent;
}
+ static public Agent getGenericDesktopAgent()
+ {
+ return _genericDesktopAgent;
+ }
+
static public RenderKit getRenderKit(FacesContext context)
{
RenderKitFactory factory = (RenderKitFactory)
@@ -176,8 +182,24 @@ public class RenderKitBootstrap
headerMap.put("User-Agent","Mozilla/4.0 (compatible; MSIE 4.01; Windows CE; PPC; 240x320)");
headerMap.put("UA-pixels","240x320");
_pocketPCAgent = factory.createAgent(headerMap);
+
+ // for the genericDesktop agent, we don't care about the user agent
+ _genericDesktopAgent = _populateGenericDesktopAgentImpl();
}
+ static private Agent _populateGenericDesktopAgentImpl()
+ {
+ AgentImpl agent = new AgentImpl();
+ agent.setType(Agent.TYPE_DESKTOP);
+ // Generic Desktop agent
+ agent.setAgent(Agent.AGENT_GENERIC_DESKTOP);
+ agent.setAgentVersion("0.0");
+ agent.setPlatform(Agent.PLATFORM_UNKNOWN);
+ agent.setPlatformVersion(Agent.PLATFORM_VERSION_UNKNOWN);
+ agent.setMakeModel(Agent.MAKE_MODEL_UNKNOWN);
+
+ return agent;
+ }
private FacesConfigInfo _facesConfigInfo;
@@ -189,6 +211,7 @@ public class RenderKitBootstrap
static private Agent _ieAgent;
static private Agent _safariAgent;
static private Agent _pocketPCAgent;
+ static private Agent _genericDesktopAgent;
static
{
Modified: myfaces/trinidad/branches/1.2.12.7.0-branch/trinidad-impl/src/test/java/org/apache/myfaces/trinidadinternal/renderkit/RenderKitTestCase.java
URL: http://svn.apache.org/viewvc/myfaces/trinidad/branches/1.2.12.7.0-branch/trinidad-impl/src/test/java/org/apache/myfaces/trinidadinternal/renderkit/RenderKitTestCase.java?rev=1296364&r1=1296363&r2=1296364&view=diff
==============================================================================
--- myfaces/trinidad/branches/1.2.12.7.0-branch/trinidad-impl/src/test/java/org/apache/myfaces/trinidadinternal/renderkit/RenderKitTestCase.java (original)
+++ myfaces/trinidad/branches/1.2.12.7.0-branch/trinidad-impl/src/test/java/org/apache/myfaces/trinidadinternal/renderkit/RenderKitTestCase.java Fri Mar 2 18:28:43 2012
@@ -35,6 +35,7 @@ import java.util.logging.LogRecord;
import java.util.logging.Logger;
import java.util.logging.SimpleFormatter;
+import javax.faces.application.Application;
import javax.faces.component.UIComponent;
import javax.faces.component.UIViewRoot;
import javax.faces.context.FacesContext;
@@ -109,7 +110,8 @@ abstract public class RenderKitTestCase
definition.getSkin(),
definition.getAgent(),
definition.getAccessibilityMode(),
- definition.isRightToLeft());
+ definition.isRightToLeft(),
+ definition.getOutputMode());
}
@@ -118,13 +120,15 @@ abstract public class RenderKitTestCase
String skin,
Agent agent,
RequestContext.Accessibility accMode,
- boolean rightToLeft)
+ boolean rightToLeft,
+ String outputMode)
{
super(name + "-" + categoryName);
_skin = skin;
_agent = agent;
_accMode = accMode;
_rightToLeft = rightToLeft;
+ _outputMode = outputMode;
}
@Override
@@ -152,10 +156,11 @@ abstract public class RenderKitTestCase
@Override
protected void setUp() throws IOException
{
- _facesContext = new MFacesContext(MApplication.sharedInstance(), true);
+ _facesContext = createMockFacesContext(MApplication.sharedInstance(), true);
_requestContext = new MRequestContext();
_requestContext.setSkinFamily(_skin);
_requestContext.setAgent(_agent);
+ _requestContext.setOutputMode(_outputMode);
_requestContext.setRightToLeft(_rightToLeft);
_requestContext.setAccessibilityMode(_accMode);
@@ -170,6 +175,13 @@ abstract public class RenderKitTestCase
service.encodeBegin(_facesContext);
}
+
+ protected MFacesContext createMockFacesContext(
+ Application mockApplication,
+ boolean testMode)
+ {
+ return new MFacesContext(mockApplication, testMode);
+ }
@Override
protected void tearDown() throws IOException
@@ -252,10 +264,11 @@ abstract public class RenderKitTestCase
private TestResult _result;
private MFacesContext _facesContext;
private MRequestContext _requestContext;
- private String _skin;
- private Agent _agent;
+ private String _skin;
+ private String _outputMode;
+ private Agent _agent;
private RequestContext.Accessibility _accMode;
- private boolean _rightToLeft;
+ private boolean _rightToLeft;
}
@@ -526,19 +539,25 @@ abstract public class RenderKitTestCase
{
if (first)
{
- addTest(new RendererTest(name,
- definition,
- false));
+ addRendererTest(name, definition, false);
first = false;
}
else
{
- addTest(new RendererTest(name, definition, lenient));
+ addRendererTest(name, definition, lenient);
}
}
}
}
}
+
+ protected void addRendererTest(
+ String name,
+ SuiteDefinition definition,
+ boolean lenient) throws IOException, SAXException
+ {
+ addTest(new RendererTest(name, definition, lenient));
+ }
protected abstract UIComponent populateDefaultComponentTree(
UIViewRoot root,
@@ -556,12 +575,24 @@ abstract public class RenderKitTestCase
Agent agent,
boolean rightToLeft)
{
+ this(category, skin, accessibilityMode, agent, rightToLeft, null);
+ }
+
+ public SuiteDefinition(
+ String category,
+ String skin,
+ RequestContext.Accessibility accessibilityMode,
+ Agent agent,
+ boolean rightToLeft,
+ String outputMode)
+ {
_category = category;
_skin = skin;
_accessibilityMode = accessibilityMode;
_agent = agent;
_rightToLeft = rightToLeft;
- }
+ _outputMode = outputMode;
+ }
public String getCategory()
{
@@ -572,6 +603,11 @@ abstract public class RenderKitTestCase
{
return _skin;
}
+
+ public String getOutputMode()
+ {
+ return _outputMode;
+ }
public RequestContext.Accessibility getAccessibilityMode()
{
@@ -591,6 +627,7 @@ abstract public class RenderKitTestCase
private String _category;
private String _skin;
+ private String _outputMode;
private RequestContext.Accessibility _accessibilityMode;
private Agent _agent;
private boolean _rightToLeft;