You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@knox.apache.org by mo...@apache.org on 2017/11/02 18:48:16 UTC

[12/25] knox git commit: KNOX-1049 - add unit test to gatewayfiltertest

KNOX-1049 - add unit test to gatewayfiltertest

Project: http://git-wip-us.apache.org/repos/asf/knox/repo
Commit: http://git-wip-us.apache.org/repos/asf/knox/commit/485520df
Tree: http://git-wip-us.apache.org/repos/asf/knox/tree/485520df
Diff: http://git-wip-us.apache.org/repos/asf/knox/diff/485520df

Branch: refs/heads/KNOX-998-Package_Restructuring
Commit: 485520df21c94339066b53af35de13fadc5c632c
Parents: c211d05
Author: Larry McCay <lm...@hortonworks.com>
Authored: Sun Oct 29 15:47:01 2017 -0400
Committer: Larry McCay <lm...@hortonworks.com>
Committed: Sun Oct 29 15:47:01 2017 -0400

----------------------------------------------------------------------
 .../hadoop/gateway/GatewayFilterTest.java       | 49 ++++++++++++++++++++
 1 file changed, 49 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/knox/blob/485520df/gateway-server/src/test/java/org/apache/hadoop/gateway/GatewayFilterTest.java
----------------------------------------------------------------------
diff --git a/gateway-server/src/test/java/org/apache/hadoop/gateway/GatewayFilterTest.java b/gateway-server/src/test/java/org/apache/hadoop/gateway/GatewayFilterTest.java
index 4e1562c..eabcf74 100644
--- a/gateway-server/src/test/java/org/apache/hadoop/gateway/GatewayFilterTest.java
+++ b/gateway-server/src/test/java/org/apache/hadoop/gateway/GatewayFilterTest.java
@@ -20,6 +20,7 @@ package org.apache.hadoop.gateway;
 import org.apache.hadoop.gateway.audit.api.AuditServiceFactory;
 import org.apache.hadoop.gateway.config.GatewayConfig;
 import org.apache.hadoop.gateway.filter.AbstractGatewayFilter;
+import org.apache.hadoop.gateway.topology.Topology;
 import org.apache.hadoop.test.category.FastTests;
 import org.apache.hadoop.test.category.UnitTests;
 import org.easymock.EasyMock;
@@ -123,10 +124,17 @@ public class GatewayFilterTest {
   public static class TestRoleFilter extends AbstractGatewayFilter {
 
     public Object role;
+    public String defaultServicePath;
+    public String url;
 
     @Override
     protected void doFilter( HttpServletRequest request, HttpServletResponse response, FilterChain chain ) throws IOException, ServletException {
       this.role = request.getAttribute( AbstractGatewayFilter.TARGET_SERVICE_ROLE );
+      Topology topology = (Topology)request.getServletContext().getAttribute( "org.apache.hadoop.gateway.topology" );
+      if (topology != null) {
+        this.defaultServicePath = (String) topology.getDefaultServicePath();
+        url = new String(request.getRequestURL());
+      }
     }
 
   }
@@ -168,4 +176,45 @@ public class GatewayFilterTest {
 
   }
 
+  @Test
+  public void testDefaultServicePathTopologyRequestAttribute() throws Exception {
+
+    FilterConfig config = EasyMock.createNiceMock( FilterConfig.class );
+    EasyMock.replay( config );
+
+    Topology topology = EasyMock.createNiceMock( Topology.class );
+    topology.setDefaultServicePath("test-role/");
+    HttpServletRequest request = EasyMock.createNiceMock( HttpServletRequest.class );
+    ServletContext context = EasyMock.createNiceMock( ServletContext.class );
+    GatewayConfig gatewayConfig = EasyMock.createNiceMock( GatewayConfig.class );
+    EasyMock.expect( topology.getDefaultServicePath() ).andReturn( "test-role" ).anyTimes();
+    EasyMock.expect( request.getPathInfo() ).andReturn( "/test-path/test-resource" ).anyTimes();
+    EasyMock.expect( request.getServletContext() ).andReturn( context ).anyTimes();
+    EasyMock.expect( context.getAttribute(
+        GatewayConfig.GATEWAY_CONFIG_ATTRIBUTE)).andReturn(gatewayConfig).anyTimes();
+    EasyMock.expect(gatewayConfig.getHeaderNameForRemoteAddress()).andReturn(
+        "Custom-Forwarded-For").anyTimes();
+    EasyMock.expect( request.getRequestURL() ).andReturn( new StringBuffer("http://host:8443/gateway/sandbox/test-path/test-resource/") ).anyTimes();
+    
+    EasyMock.expect( context.getAttribute( "org.apache.hadoop.gateway.topology" ) ).andReturn( topology ).anyTimes();
+    EasyMock.replay( request );
+    EasyMock.replay( context );
+    EasyMock.replay( topology );
+    EasyMock.replay( gatewayConfig );
+
+    HttpServletResponse response = EasyMock.createNiceMock( HttpServletResponse.class );
+    EasyMock.replay( response );
+
+    TestRoleFilter filter = new TestRoleFilter();
+
+    GatewayFilter gateway = new GatewayFilter();
+    gateway.addFilter( "test-role/**/**", "test-filter", filter, null, "test-role" );
+    gateway.init( config );
+    gateway.doFilter( request, response );
+    gateway.destroy();
+
+    assertThat( (String)filter.defaultServicePath, is( "test-role" ) );
+    assertThat( (String)filter.url, is("http://host:8443/gateway/sandbox/test-role/test-path/test-resource"));
+
+  }
 }