diff --git a/module-client/src/test/java/org/apache/http/conn/params/TestRouteParams.java b/module-client/src/test/java/org/apache/http/conn/params/TestRouteParams.java index 105bc55c0..75b42060c 100644 --- a/module-client/src/test/java/org/apache/http/conn/params/TestRouteParams.java +++ b/module-client/src/test/java/org/apache/http/conn/params/TestRouteParams.java @@ -40,9 +40,14 @@ import org.apache.http.HttpHost; import org.apache.http.params.HttpParams; import org.apache.http.params.BasicHttpParams; +import org.apache.http.params.DefaultedHttpParams; import org.apache.http.conn.params.HttpConnectionManagerParams; import org.apache.http.conn.routing.HttpRoute; +// for hierarchy testing +import org.apache.http.impl.client.ClientParamsStack; + + /** * Unit tests for parameters. @@ -127,6 +132,43 @@ public void testSetNull() { } + public void testUnsetHierarchy() { + // hierarchical unsetting is only tested for the default proxy + HttpParams daddy = new BasicHttpParams(); + HttpParams dummy = new BasicHttpParams(); + HttpParams child = new BasicHttpParams(); + + HttpRouteParams.setDefaultProxy(daddy, TARGET1); + HttpRouteParams.setDefaultProxy(child, HttpRouteParams.NO_HOST); + + HttpParams hierarchy = + new ClientParamsStack(null, daddy, child, null); + assertNull("1", HttpRouteParams.getDefaultProxy(hierarchy)); + + hierarchy = new ClientParamsStack + (null, + daddy, + new ClientParamsStack(null, child, dummy, null), + null); + assertNull("2", HttpRouteParams.getDefaultProxy(hierarchy)); + + hierarchy = new ClientParamsStack + (null, daddy, new DefaultedHttpParams(child, dummy), null); + assertNull("3", HttpRouteParams.getDefaultProxy(hierarchy)); + + hierarchy = new DefaultedHttpParams(child, daddy); + assertNull("4", HttpRouteParams.getDefaultProxy(hierarchy)); + + hierarchy = new DefaultedHttpParams + (new DefaultedHttpParams(child, dummy), daddy); + assertNull("5", HttpRouteParams.getDefaultProxy(hierarchy)); + + hierarchy = new DefaultedHttpParams + (child, new DefaultedHttpParams(dummy, daddy)); + assertNull("6", HttpRouteParams.getDefaultProxy(hierarchy)); + } + + public void testBadArgs() { try {