Add methods that are abstract in JSF 2.3 spec to make it out easier
diff --git a/test12/src/main/java/org/apache/myfaces/test/mock/MockExternalContext.java b/test12/src/main/java/org/apache/myfaces/test/mock/MockExternalContext.java
index 9868dd3..1774fa0 100644
--- a/test12/src/main/java/org/apache/myfaces/test/mock/MockExternalContext.java
+++ b/test12/src/main/java/org/apache/myfaces/test/mock/MockExternalContext.java
@@ -465,6 +465,34 @@
         response.sendRedirect(requestURI);
         FacesContext.getCurrentInstance().responseComplete();
     }
+    
+    public String encodeWebsocketURL(String baseUrl)
+    {
+        Integer port = 8080;
+        port = (port == 0) ? null : port;
+        if (port != null && 
+            !port.equals(request.getServerPort()))
+        {
+            String scheme = "http";
+            String serverName = request.getServerName();
+            String url;
+            try
+            {
+                url = new URL(scheme, serverName, port, baseUrl).toExternalForm();
+                url = url.replaceFirst("http", "ws");
+                return url;
+            }
+            catch (MalformedURLException ex)
+            {
+                //If cannot build the url, return the base one unchanged
+                return baseUrl;
+            }
+        }
+        else
+        {
+            return baseUrl;
+        }
+    }
 
     /**
      * <p>Iterator implementation that wraps an enumeration
diff --git a/test12/src/main/java/org/apache/myfaces/test/mock/MockViewHandler.java b/test12/src/main/java/org/apache/myfaces/test/mock/MockViewHandler.java
index 5e17d0e..5e3aa4e 100644
--- a/test12/src/main/java/org/apache/myfaces/test/mock/MockViewHandler.java
+++ b/test12/src/main/java/org/apache/myfaces/test/mock/MockViewHandler.java
@@ -158,5 +158,12 @@
     {
 
     }
+    
+    public String getWebsocketURL(FacesContext context, String channelAndToken)
+    {
+        String url = context.getExternalContext().getRequestContextPath() + 
+                "/javax.faces.push/"+channelAndToken;
+        return url;
+    }
 
 }
diff --git a/test20/src/main/java/org/apache/myfaces/test/mock/MockPartialViewContext.java b/test20/src/main/java/org/apache/myfaces/test/mock/MockPartialViewContext.java
index 6ebc187..7526526 100644
--- a/test20/src/main/java/org/apache/myfaces/test/mock/MockPartialViewContext.java
+++ b/test20/src/main/java/org/apache/myfaces/test/mock/MockPartialViewContext.java
@@ -55,6 +55,7 @@
     private Boolean _partialRequest = null;
     private Boolean _renderAll = null;
     private PartialResponseWriter _partialResponseWriter = null;
+    private List<String> _evalScripts = new ArrayList<String>();
 
     public MockPartialViewContext(FacesContext context)
     {
@@ -312,6 +313,12 @@
         _partialRequest = null;
         _renderAll = null;
         _facesContext = null;
+        _evalScripts = new ArrayList<String>();
+    }
+    
+    public List<String> getEvalScripts()
+    {
+        return _evalScripts;
     }
 
     private static String[] splitShortString(String str, char separator)