You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wink.apache.org by bl...@apache.org on 2009/09/19 21:38:26 UTC

svn commit: r816947 [3/3] - in /incubator/wink/trunk/wink-itests/wink-itest/wink-itest-context/src/test/java/org/apache/wink/itest: environment/servlets/ httpheaders/ providers/ request/ securitycontext/ uriinfo/

Modified: incubator/wink/trunk/wink-itests/wink-itest/wink-itest-context/src/test/java/org/apache/wink/itest/uriinfo/URIInfoDetailedMethodTest.java
URL: http://svn.apache.org/viewvc/incubator/wink/trunk/wink-itests/wink-itest/wink-itest-context/src/test/java/org/apache/wink/itest/uriinfo/URIInfoDetailedMethodTest.java?rev=816947&r1=816946&r2=816947&view=diff
==============================================================================
--- incubator/wink/trunk/wink-itests/wink-itest/wink-itest-context/src/test/java/org/apache/wink/itest/uriinfo/URIInfoDetailedMethodTest.java (original)
+++ incubator/wink/trunk/wink-itests/wink-itest/wink-itest-context/src/test/java/org/apache/wink/itest/uriinfo/URIInfoDetailedMethodTest.java Sat Sep 19 19:38:24 2009
@@ -37,7 +37,7 @@
  */
 public class URIInfoDetailedMethodTest extends TestCase {
 
-    public static String appBase = "/uriinfo";
+    private static String appBase = "/uriinfo";
 
     static {
         if (ServerEnvironmentInfo.isRestFilterUsed()) {
@@ -45,13 +45,20 @@
         }
     }
 
-    public String getBaseURI() {
+    private static String getBaseURI() {
         if (ServerEnvironmentInfo.isRestFilterUsed()) {
             return ServerEnvironmentInfo.getBaseURI();
         }
         return ServerEnvironmentInfo.getBaseURI() + "/uriinfo";
     }
 
+    protected HttpClient client;
+
+    @Override
+    public void setUp() {
+        client = new HttpClient();
+    }
+
     /**
      * Tests the {@link UriInfo#getAbsolutePath()}.
      * 
@@ -59,7 +66,6 @@
      * @throws IOException
      */
     public void testURIInfoGetAbsolutePath() throws HttpException, IOException {
-        HttpClient client = new HttpClient();
         GetMethod getMethod =
             new GetMethod(getBaseURI() + "/context/uriinfo/detailed?reqInfo=getAbsolutePath");
         try {
@@ -79,7 +85,6 @@
      * @throws IOException
      */
     public void testURIInfoGetAbsoluteBuilder() throws HttpException, IOException {
-        HttpClient client = new HttpClient();
         GetMethod getMethod =
             new GetMethod(getBaseURI() + "/context/uriinfo/detailed?reqInfo=getAbsolutePathBuilder");
         try {
@@ -99,7 +104,6 @@
      * @throws IOException
      */
     public void testURIInfoGetBaseUri() throws HttpException, IOException {
-        HttpClient client = new HttpClient();
         GetMethod getMethod =
             new GetMethod(getBaseURI() + "/context/uriinfo/detailed?reqInfo=getBaseUri");
         try {
@@ -118,7 +122,6 @@
      * @throws IOException
      */
     public void testURIInfoGetBaseUriBuilder() throws HttpException, IOException {
-        HttpClient client = new HttpClient();
         GetMethod getMethod =
             new GetMethod(getBaseURI() + "/context/uriinfo/detailed?reqInfo=getBaseUriBuilder");
         try {
@@ -148,7 +151,6 @@
      * @throws IOException
      */
     public void testURIInfoGetPath() throws HttpException, IOException {
-        HttpClient client = new HttpClient();
         GetMethod getMethod =
             new GetMethod(getBaseURI() + "/context/uriinfo/detailed?reqInfo=getPath");
         try {
@@ -167,7 +169,6 @@
      * @throws IOException
      */
     public void testURIInfoGetPathDecoded() throws HttpException, IOException {
-        HttpClient client = new HttpClient();
         GetMethod getMethod =
             new GetMethod(getBaseURI() + "/context/uriinfo/detailed?reqInfo=getPathDecodedTrue");
         try {
@@ -221,7 +222,6 @@
      * @throws IOException
      */
     public void testURIInfoGetMatchedResourcesSimple() throws HttpException, IOException {
-        HttpClient client = new HttpClient();
         GetMethod getMethod =
             new GetMethod(getBaseURI() + "/context/uriinfo/detailed?reqInfo=getMatchedResources");
         try {
@@ -241,7 +241,6 @@
      * @throws IOException
      */
     public void testURIInfoGetMatchedResourcesSubresource() throws HttpException, IOException {
-        HttpClient client = new HttpClient();
         GetMethod getMethod =
             new GetMethod(getBaseURI() + "/context/uriinfo/detailed/matchedresources");
         try {
@@ -265,7 +264,6 @@
      * @throws IOException
      */
     public void testURIInfoGetMatchedURIs() throws HttpException, IOException {
-        HttpClient client = new HttpClient();
         GetMethod getMethod =
             new GetMethod(getBaseURI() + "/context/uriinfo/detailed?reqInfo=getMatchedURIs");
         try {
@@ -284,7 +282,6 @@
      * @throws IOException
      */
     public void testURIInfoGetMatchedURIsSubresource() throws HttpException, IOException {
-        HttpClient client = new HttpClient();
         GetMethod getMethod = new GetMethod(getBaseURI() + "/context/uriinfo/detailed/matcheduris");
         try {
             client.executeMethod(getMethod);
@@ -309,7 +306,6 @@
      * @throws IOException
      */
     public void testURIInfoGetMatchedURIsDecodeTrue() throws HttpException, IOException {
-        HttpClient client = new HttpClient();
         GetMethod getMethod =
             new GetMethod(
                           getBaseURI() + "/context/uriinfo/detailed?reqInfo=getMatchedURIsDecodedTrue");
@@ -329,7 +325,6 @@
      * @throws IOException
      */
     public void testURIInfoGetMatchedURIsDecodeFalse() throws HttpException, IOException {
-        HttpClient client = new HttpClient();
         GetMethod getMethod =
             new GetMethod(
                           getBaseURI() + "/context/uriinfo/detailed?reqInfo=getMatchedURIsDecodedFalse");
@@ -349,7 +344,6 @@
      * @throws IOException
      */
     public void testURIInfoGetMatchedURIsSublocatorDecodeTrue() throws HttpException, IOException {
-        HttpClient client = new HttpClient();
         GetMethod getMethod =
             new GetMethod(
                           getBaseURI() + "/context/uriinfo/detailed/matchedurisdecoded/!%40%23%24%25%5E%26*()?decoded=true");
@@ -370,7 +364,6 @@
      * @throws IOException
      */
     public void testURIInfoGetMatchedURIsSublocatorDecodeFalse() throws HttpException, IOException {
-        HttpClient client = new HttpClient();
         GetMethod getMethod =
             new GetMethod(
                           getBaseURI() + "/context/uriinfo/detailed/matchedurisdecoded/!%40%23%24%25%5E%26*()?decoded=false");
@@ -391,7 +384,6 @@
      * @throws IOException
      */
     public void testURIInfoGetPathParametersZero() throws HttpException, IOException {
-        HttpClient client = new HttpClient();
         GetMethod getMethod =
             new GetMethod(getBaseURI() + "/context/uriinfo/detailed?reqInfo=getPathParameters");
         try {
@@ -410,7 +402,6 @@
      * @throws IOException
      */
     public void testURIInfoGetPathParametersOne() throws HttpException, IOException {
-        HttpClient client = new HttpClient();
         GetMethod getMethod =
             new GetMethod(getBaseURI() + "/context/uriinfo/detailed/pathparamsone/");
         try {
@@ -456,7 +447,6 @@
      * @throws IOException
      */
     public void testURIInfoGetPathParametersMany() throws HttpException, IOException {
-        HttpClient client = new HttpClient();
         GetMethod getMethod =
             new GetMethod(getBaseURI() + "/context/uriinfo/detailed/pathparamsmany/foo/bar/xyz");
         try {
@@ -485,7 +475,6 @@
      * @throws IOException
      */
     public void testURIInfoGetPathParametersZeroDecodedFalse() throws HttpException, IOException {
-        HttpClient client = new HttpClient();
         GetMethod getMethod =
             new GetMethod(
                           getBaseURI() + "/context/uriinfo/detailed?reqInfo=getPathParametersDecodedFalse");
@@ -505,7 +494,6 @@
      * @throws IOException
      */
     public void testURIInfoGetPathParametersOneDecodedFalse() throws HttpException, IOException {
-        HttpClient client = new HttpClient();
         GetMethod getMethod =
             new GetMethod(getBaseURI() + "/context/uriinfo/detailed/pathparamsone/?decoded=false");
         try {
@@ -557,7 +545,6 @@
      * @throws IOException
      */
     public void testURIInfoGetPathParametersManyDecodedFalse() throws HttpException, IOException {
-        HttpClient client = new HttpClient();
         GetMethod getMethod =
             new GetMethod(
                           getBaseURI() + "/context/uriinfo/detailed/pathparamsmany/foo/bar/xyz?decoded=false");
@@ -588,7 +575,6 @@
      * @throws IOException
      */
     public void testURIInfoGetPathParametersZeroDecodedTrue() throws HttpException, IOException {
-        HttpClient client = new HttpClient();
         GetMethod getMethod =
             new GetMethod(
                           getBaseURI() + "/context/uriinfo/detailed?reqInfo=getPathParametersDecodedTrue");
@@ -608,7 +594,6 @@
      * @throws IOException
      */
     public void testURIInfoGetPathParametersOneDecodedTrue() throws HttpException, IOException {
-        HttpClient client = new HttpClient();
         GetMethod getMethod =
             new GetMethod(getBaseURI() + "/context/uriinfo/detailed/pathparamsone/?decoded=true");
         try {
@@ -659,7 +644,6 @@
      * @throws IOException
      */
     public void testURIInfoGetPathParametersManyDecodedTrue() throws HttpException, IOException {
-        HttpClient client = new HttpClient();
         GetMethod getMethod =
             new GetMethod(
                           getBaseURI() + "/context/uriinfo/detailed/pathparamsmany/!%40%23%24%25%5E%26*()/bar/xyz?decoded=true");
@@ -690,7 +674,6 @@
      * @throws IOException
      */
     public void testURIInfoGetPathSegments() throws HttpException, IOException {
-        HttpClient client = new HttpClient();
         GetMethod getMethod =
             new GetMethod(getBaseURI() + "/context/uriinfo/detailed?reqInfo=getPathSegments");
         try {
@@ -733,7 +716,6 @@
      * @throws IOException
      */
     public void testURIInfoGetPathSegmentsDecodedFalse() throws HttpException, IOException {
-        HttpClient client = new HttpClient();
         GetMethod getMethod =
             new GetMethod(
                           getBaseURI() + "/context/uriinfo/detailed?reqInfo=getPathSegmentsDecodedFalse");
@@ -777,7 +759,6 @@
      * @throws IOException
      */
     public void testURIInfoGetQueryParametersZero() throws HttpException, IOException {
-        HttpClient client = new HttpClient();
         GetMethod getMethod = new GetMethod(getBaseURI() + "/context/uriinfo/detailed/queryparams");
         try {
             client.executeMethod(getMethod);
@@ -795,7 +776,6 @@
      * @throws IOException
      */
     public void testURIInfoGetQueryParametersOne() throws HttpException, IOException {
-        HttpClient client = new HttpClient();
         GetMethod getMethod =
             new GetMethod(getBaseURI() + "/context/uriinfo/detailed?reqInfo=getQueryParameters");
         try {
@@ -835,7 +815,6 @@
      * @throws IOException
      */
     public void testURIInfoGetQueryParametersMany() throws HttpException, IOException {
-        HttpClient client = new HttpClient();
         GetMethod getMethod =
             new GetMethod(
                           getBaseURI() + "/context/uriinfo/detailed/queryparams?q1=value1&q2=value2");
@@ -866,7 +845,6 @@
      * @throws IOException
      */
     public void testURIInfoGetQueryParametersManyDecodedFalse() throws HttpException, IOException {
-        HttpClient client = new HttpClient();
         GetMethod getMethod =
             new GetMethod(
                           getBaseURI() + "/context/uriinfo/detailed/queryparams?q1=!%40%23%24%25%5E%26*()&q2=value2&decoded=false");
@@ -887,7 +865,6 @@
      * @throws IOException
      */
     public void testURIInfoGetRequestUri() throws HttpException, IOException {
-        HttpClient client = new HttpClient();
         GetMethod getMethod =
             new GetMethod(getBaseURI() + "/context/uriinfo/detailed?reqInfo=getRequestUri");
         try {
@@ -907,7 +884,6 @@
      * @throws IOException
      */
     public void testURIInfoGetRequestUriBuilder() throws HttpException, IOException {
-        HttpClient client = new HttpClient();
         GetMethod getMethod =
             new GetMethod(getBaseURI() + "/context/uriinfo/detailed?reqInfo=getRequestUriBuilder");
         try {

Modified: incubator/wink/trunk/wink-itests/wink-itest/wink-itest-context/src/test/java/org/apache/wink/itest/uriinfo/URIInfoInjectionTest.java
URL: http://svn.apache.org/viewvc/incubator/wink/trunk/wink-itests/wink-itest/wink-itest-context/src/test/java/org/apache/wink/itest/uriinfo/URIInfoInjectionTest.java?rev=816947&r1=816946&r2=816947&view=diff
==============================================================================
--- incubator/wink/trunk/wink-itests/wink-itest/wink-itest-context/src/test/java/org/apache/wink/itest/uriinfo/URIInfoInjectionTest.java (original)
+++ incubator/wink/trunk/wink-itests/wink-itest/wink-itest-context/src/test/java/org/apache/wink/itest/uriinfo/URIInfoInjectionTest.java Sat Sep 19 19:38:24 2009
@@ -33,13 +33,20 @@
  */
 public class URIInfoInjectionTest extends TestCase {
 
-    public String getBaseURI() {
+    private static String getBaseURI() {
         if (ServerEnvironmentInfo.isRestFilterUsed()) {
             return ServerEnvironmentInfo.getBaseURI();
         }
         return ServerEnvironmentInfo.getBaseURI() + "/uriinfo";
     }
 
+    private HttpClient client;
+
+    @Override
+    public void setUp() {
+        client = new HttpClient();
+    }
+
     /**
      * Tests that a URIInfo object is injected into method parameters.
      * 
@@ -47,7 +54,6 @@
      * @throws HttpException
      */
     public void testURIInfoParamInjection() throws HttpException, IOException {
-        HttpClient client = new HttpClient();
         GetMethod getMethod = new GetMethod(getBaseURI() + "/context/uriinfo/param");
         try {
             client.executeMethod(getMethod);
@@ -64,7 +70,6 @@
      * @throws HttpException
      */
     public void testURIInfoBeanMethodInjection() throws HttpException, IOException {
-        HttpClient client = new HttpClient();
         GetMethod getMethod = new GetMethod(getBaseURI() + "/context/uriinfo/bean");
         try {
             client.executeMethod(getMethod);
@@ -81,7 +86,6 @@
      * @throws HttpException
      */
     public void testURIInfoConstructorInjection() throws HttpException, IOException {
-        HttpClient client = new HttpClient();
         GetMethod getMethod = new GetMethod(getBaseURI() + "/context/uriinfo/constructor");
         try {
             client.executeMethod(getMethod);
@@ -98,7 +102,6 @@
      * @throws HttpException
      */
     public void testURIInfoFieldMemberInjection() throws HttpException, IOException {
-        HttpClient client = new HttpClient();
         GetMethod getMethod = new GetMethod(getBaseURI() + "/context/uriinfo/field");
         try {
             client.executeMethod(getMethod);
@@ -115,7 +118,6 @@
      * @throws HttpException
      */
     public void testURIInfoNotBeanMethod() throws HttpException, IOException {
-        HttpClient client = new HttpClient();
         GetMethod getMethod = new GetMethod(getBaseURI() + "/context/uriinfo/notbeanmethod");
         try {
             client.executeMethod(getMethod);

Modified: incubator/wink/trunk/wink-itests/wink-itest/wink-itest-context/src/test/java/org/apache/wink/itest/uriinfo/URIInfoNormalizationTest.java
URL: http://svn.apache.org/viewvc/incubator/wink/trunk/wink-itests/wink-itest/wink-itest-context/src/test/java/org/apache/wink/itest/uriinfo/URIInfoNormalizationTest.java?rev=816947&r1=816946&r2=816947&view=diff
==============================================================================
--- incubator/wink/trunk/wink-itests/wink-itest/wink-itest-context/src/test/java/org/apache/wink/itest/uriinfo/URIInfoNormalizationTest.java (original)
+++ incubator/wink/trunk/wink-itests/wink-itest/wink-itest-context/src/test/java/org/apache/wink/itest/uriinfo/URIInfoNormalizationTest.java Sat Sep 19 19:38:24 2009
@@ -30,7 +30,7 @@
     private static String appRoot = "/uriinfo";
 
     static {
-        if(ServerEnvironmentInfo.isRestFilterUsed()) {
+        if (ServerEnvironmentInfo.isRestFilterUsed()) {
             appRoot = "";
         }
     }
@@ -42,14 +42,19 @@
         return ServerEnvironmentInfo.getBaseURI() + appRoot;
     }
 
+    private HttpClient client;
+
+    @Override
+    public void setUp() {
+        client = new HttpClient();
+    }
+
     /**
      * Tests that a normal "good" path is returned.
      * 
      * @throws Exception
      */
     public void testPathNormal() throws Exception {
-        HttpClient client = new HttpClient();
-
         GetMethod getMethod = new GetMethod(getBaseURI() + "/uriinfo?info=path");
         try {
             client.executeMethod(getMethod);
@@ -67,8 +72,6 @@
      * @throws Exception
      */
     public void testRemoveResourcePathThenAddItBack() throws Exception {
-        HttpClient client = new HttpClient();
-
         GetMethod getMethod = new GetMethod(getBaseURI() + "/uriinfo/../uriinfo" + "?info=path");
         try {
             client.executeMethod(getMethod);
@@ -139,8 +142,6 @@
      * @throws Exception
      */
     public void testAddPathThenRemoveIt() throws Exception {
-        HttpClient client = new HttpClient();
-
         GetMethod getMethod = new GetMethod(getBaseURI() + "/uriinfo/something/../" + "?info=path");
         try {
             client.executeMethod(getMethod);
@@ -188,7 +189,6 @@
      * @throws Exception
      */
     public void testCapitalization() throws Exception {
-        HttpClient client = new HttpClient();
         String contextRoot = ServerEnvironmentInfo.getContextRoot();
         if (!"".equals(contextRoot)) {
             contextRoot = "/" + contextRoot;
@@ -270,8 +270,6 @@
      * @throws Exception
      */
     public void testPercentEncoding() throws Exception {
-        HttpClient client = new HttpClient();
-
         /*
          * regular query
          */

Added: incubator/wink/trunk/wink-itests/wink-itest/wink-itest-context/src/test/java/org/apache/wink/itest/uriinfo/WinkApacheURIInfoDetailedMethodTest.java
URL: http://svn.apache.org/viewvc/incubator/wink/trunk/wink-itests/wink-itest/wink-itest-context/src/test/java/org/apache/wink/itest/uriinfo/WinkApacheURIInfoDetailedMethodTest.java?rev=816947&view=auto
==============================================================================
--- incubator/wink/trunk/wink-itests/wink-itest/wink-itest-context/src/test/java/org/apache/wink/itest/uriinfo/WinkApacheURIInfoDetailedMethodTest.java (added)
+++ incubator/wink/trunk/wink-itests/wink-itest/wink-itest-context/src/test/java/org/apache/wink/itest/uriinfo/WinkApacheURIInfoDetailedMethodTest.java Sat Sep 19 19:38:24 2009
@@ -0,0 +1,32 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ * 
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.    
+ */
+
+package org.apache.wink.itest.uriinfo;
+
+import org.apache.wink.client.ApacheHttpClientConfig;
+import org.apache.wink.client.RestClient;
+
+public class WinkApacheURIInfoDetailedMethodTest extends WinkURIInfoDetailedMethodTest {
+
+    @Override
+    public void setUp() {
+        client = new RestClient(new ApacheHttpClientConfig());
+    }
+
+}

Propchange: incubator/wink/trunk/wink-itests/wink-itest/wink-itest-context/src/test/java/org/apache/wink/itest/uriinfo/WinkApacheURIInfoDetailedMethodTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: incubator/wink/trunk/wink-itests/wink-itest/wink-itest-context/src/test/java/org/apache/wink/itest/uriinfo/WinkApacheURIInfoInjectionTest.java
URL: http://svn.apache.org/viewvc/incubator/wink/trunk/wink-itests/wink-itest/wink-itest-context/src/test/java/org/apache/wink/itest/uriinfo/WinkApacheURIInfoInjectionTest.java?rev=816947&view=auto
==============================================================================
--- incubator/wink/trunk/wink-itests/wink-itest/wink-itest-context/src/test/java/org/apache/wink/itest/uriinfo/WinkApacheURIInfoInjectionTest.java (added)
+++ incubator/wink/trunk/wink-itests/wink-itest/wink-itest-context/src/test/java/org/apache/wink/itest/uriinfo/WinkApacheURIInfoInjectionTest.java Sat Sep 19 19:38:24 2009
@@ -0,0 +1,32 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ * 
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.    
+ */
+
+package org.apache.wink.itest.uriinfo;
+
+import org.apache.wink.client.ApacheHttpClientConfig;
+import org.apache.wink.client.RestClient;
+
+public class WinkApacheURIInfoInjectionTest extends WinkURIInfoInjectionTest {
+
+    @Override
+    public void setUp() {
+        client = new RestClient(new ApacheHttpClientConfig());
+    }
+
+}

Propchange: incubator/wink/trunk/wink-itests/wink-itest/wink-itest-context/src/test/java/org/apache/wink/itest/uriinfo/WinkApacheURIInfoInjectionTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: incubator/wink/trunk/wink-itests/wink-itest/wink-itest-context/src/test/java/org/apache/wink/itest/uriinfo/WinkApacheURIInfoNormalizationTest.java
URL: http://svn.apache.org/viewvc/incubator/wink/trunk/wink-itests/wink-itest/wink-itest-context/src/test/java/org/apache/wink/itest/uriinfo/WinkApacheURIInfoNormalizationTest.java?rev=816947&view=auto
==============================================================================
--- incubator/wink/trunk/wink-itests/wink-itest/wink-itest-context/src/test/java/org/apache/wink/itest/uriinfo/WinkApacheURIInfoNormalizationTest.java (added)
+++ incubator/wink/trunk/wink-itests/wink-itest/wink-itest-context/src/test/java/org/apache/wink/itest/uriinfo/WinkApacheURIInfoNormalizationTest.java Sat Sep 19 19:38:24 2009
@@ -0,0 +1,31 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ * 
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.    
+ */
+
+package org.apache.wink.itest.uriinfo;
+
+import org.apache.wink.client.ApacheHttpClientConfig;
+import org.apache.wink.client.RestClient;
+
+public class WinkApacheURIInfoNormalizationTest extends WinkURIInfoNormalizationTest {
+
+    @Override
+    public void setUp() {
+        client = new RestClient(new ApacheHttpClientConfig());
+    }
+}

Propchange: incubator/wink/trunk/wink-itests/wink-itest/wink-itest-context/src/test/java/org/apache/wink/itest/uriinfo/WinkApacheURIInfoNormalizationTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: incubator/wink/trunk/wink-itests/wink-itest/wink-itest-context/src/test/java/org/apache/wink/itest/uriinfo/WinkURIInfoDetailedMethodTest.java
URL: http://svn.apache.org/viewvc/incubator/wink/trunk/wink-itests/wink-itest/wink-itest-context/src/test/java/org/apache/wink/itest/uriinfo/WinkURIInfoDetailedMethodTest.java?rev=816947&view=auto
==============================================================================
--- incubator/wink/trunk/wink-itests/wink-itest/wink-itest-context/src/test/java/org/apache/wink/itest/uriinfo/WinkURIInfoDetailedMethodTest.java (added)
+++ incubator/wink/trunk/wink-itests/wink-itest/wink-itest-context/src/test/java/org/apache/wink/itest/uriinfo/WinkURIInfoDetailedMethodTest.java Sat Sep 19 19:38:24 2009
@@ -0,0 +1,681 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ * 
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.    
+ */
+
+package org.apache.wink.itest.uriinfo;
+
+import java.io.IOException;
+
+import javax.ws.rs.core.UriInfo;
+
+import junit.framework.TestCase;
+
+import org.apache.commons.httpclient.HttpException;
+import org.apache.wink.client.ClientResponse;
+import org.apache.wink.client.RestClient;
+import org.apache.wink.test.integration.ServerEnvironmentInfo;
+
+public class WinkURIInfoDetailedMethodTest extends TestCase {
+
+    private static String appBase = "/uriinfo";
+
+    static {
+        if (ServerEnvironmentInfo.isRestFilterUsed()) {
+            appBase = "";
+        }
+    }
+
+    private static String getBaseURI() {
+        if (ServerEnvironmentInfo.isRestFilterUsed()) {
+            return ServerEnvironmentInfo.getBaseURI();
+        }
+        return ServerEnvironmentInfo.getBaseURI() + "/uriinfo";
+    }
+
+    protected RestClient client;
+
+    @Override
+    public void setUp() {
+        client = new RestClient();
+    }
+
+    /**
+     * Tests the {@link UriInfo#getAbsolutePath()}.
+     * 
+     * @throws HttpException
+     * @throws IOException
+     */
+    public void testURIInfoGetAbsolutePath() throws HttpException, IOException {
+        ClientResponse response =
+            client.resource(getBaseURI() + "/context/uriinfo/detailed?reqInfo=getAbsolutePath")
+                .get();
+        assertEquals(200, response.getStatusCode());
+        assertEquals(getBaseURI() + "/context/uriinfo/detailed", response.getEntity(String.class));
+    }
+
+    /**
+     * Tests the {@link UriInfo#getAbsolutePathBuilder()}.
+     * 
+     * @throws HttpException
+     * @throws IOException
+     */
+    public void testURIInfoGetAbsoluteBuilder() throws HttpException, IOException {
+        ClientResponse response =
+            client
+                .resource(getBaseURI() + "/context/uriinfo/detailed?reqInfo=getAbsolutePathBuilder")
+                .get();
+        assertEquals(200, response.getStatusCode());
+        assertEquals(getBaseURI().replace(ServerEnvironmentInfo.getHostname(), "abcd") + "/context/uriinfo/detailed",
+                     response.getEntity(String.class));
+    }
+
+    /**
+     * Tests the {@link UriInfo#getBaseUri()}.
+     * 
+     * @throws HttpException
+     * @throws IOException
+     */
+    public void testURIInfoGetBaseUri() throws HttpException, IOException {
+        ClientResponse response =
+            client.resource(getBaseURI() + "/context/uriinfo/detailed?reqInfo=getBaseUri").get();
+        assertEquals(200, response.getStatusCode());
+        assertEquals(getBaseURI() + "/", response.getEntity(String.class));
+    }
+
+    /**
+     * Tests the {@link UriInfo#getBaseUriBuilder()}.
+     * 
+     * @throws HttpException
+     * @throws IOException
+     */
+    public void testURIInfoGetBaseUriBuilder() throws HttpException, IOException {
+        ClientResponse response =
+            client.resource(getBaseURI() + "/context/uriinfo/detailed?reqInfo=getBaseUriBuilder")
+                .get();
+        assertEquals(200, response.getStatusCode());
+
+        String contextRoot = ServerEnvironmentInfo.getContextRoot();
+        if (!"".equals(contextRoot)) {
+            contextRoot = "/" + contextRoot;
+        }
+        String baseUri =
+            "http://" + "abcd"
+                + ":"
+                + ServerEnvironmentInfo.getPort()
+                + contextRoot
+                + appBase
+                + "/";
+        assertEquals(baseUri, response.getEntity(String.class));
+    }
+
+    /**
+     * Tests the {@link UriInfo#getPath()}.
+     * 
+     * @throws HttpException
+     * @throws IOException
+     */
+    public void testURIInfoGetPath() throws HttpException, IOException {
+        ClientResponse response =
+            client.resource(getBaseURI() + "/context/uriinfo/detailed?reqInfo=getPath").get();
+        assertEquals(200, response.getStatusCode());
+        assertEquals("context/uriinfo/detailed", response.getEntity(String.class));
+    }
+
+    /**
+     * Tests the {@link UriInfo#getPath(boolean)}.
+     * 
+     * @throws HttpException
+     * @throws IOException
+     */
+    public void testURIInfoGetPathDecoded() throws HttpException, IOException {
+        /*
+         * the client automatically encodes URIs
+         */
+        ClientResponse response =
+            client.resource(getBaseURI() + "/context/uriinfo/detailed?reqInfo=getPathDecodedTrue")
+                .get();
+        assertEquals(200, response.getStatusCode());
+        assertEquals("context/uriinfo/detailed", response.getEntity(String.class));
+
+        response =
+            client.resource(getBaseURI() + "/context/uriinfo/detailed?reqInfo=getPathDecodedFalse")
+                .get();
+        assertEquals(200, response.getStatusCode());
+        assertEquals("context/uriinfo/detailed", response.getEntity(String.class));
+
+        response =
+            client
+                .resource(getBaseURI() + "/context/uriinfo/detailed/decoded/!@%23$%25%5E&*()?decoded=false")
+                .get();
+        assertEquals(200, response.getStatusCode());
+        assertEquals("context/uriinfo/detailed/decoded/!@%23$%25%5E&*()", response
+            .getEntity(String.class));
+
+        response =
+            client
+                .resource(getBaseURI() + "/context/uriinfo/detailed/decoded/!%40%23%24%25%5E%26*()?decoded=true")
+                .get();
+        assertEquals(200, response.getStatusCode());
+        assertEquals("context/uriinfo/detailed/decoded/!@#$%^&*()", response
+            .getEntity(String.class));
+    }
+
+    /**
+     * Tests the {@link UriInfo#getMatchedResources()}.
+     * 
+     * @throws HttpException
+     * @throws IOException
+     */
+    public void testURIInfoGetMatchedResourcesSimple() throws HttpException, IOException {
+        ClientResponse response =
+            client.resource(getBaseURI() + "/context/uriinfo/detailed?reqInfo=getMatchedResources")
+                .get();
+        assertEquals(200, response.getStatusCode());
+        assertEquals(UriInfoDetailedMethods.class.getName() + ":", response.getEntity(String.class));
+    }
+
+    /**
+     * Tests the {@link UriInfo#getMatchedResources()} in a sub resource method.
+     * 
+     * @throws HttpException
+     * @throws IOException
+     */
+    public void testURIInfoGetMatchedResourcesSubresource() throws HttpException, IOException {
+        ClientResponse response =
+            client.resource(getBaseURI() + "/context/uriinfo/detailed/matchedresources").get();
+        assertEquals(200, response.getStatusCode());
+        assertEquals(UriInfoDetailedMethods.class.getName() + ":"
+            + "-"
+            + MatchedResourcesSubResource.class.getName()
+            + ":"
+            + UriInfoDetailedMethods.class.getName()
+            + ":", response.getEntity(String.class));
+    }
+
+    /**
+     * Tests the {@link UriInfo#getMatchedURIs()}.
+     * 
+     * @throws HttpException
+     * @throws IOException
+     */
+    public void testURIInfoGetMatchedURIs() throws HttpException, IOException {
+        ClientResponse response =
+            client.resource(getBaseURI() + "/context/uriinfo/detailed?reqInfo=getMatchedURIs")
+                .get();
+        assertEquals(200, response.getStatusCode());
+        assertEquals("context/uriinfo/detailed" + ":", response.getEntity(String.class));
+    }
+
+    /**
+     * Tests the {@link UriInfo#getMatchedURIs()} in a sub-resource method.
+     * 
+     * @throws HttpException
+     * @throws IOException
+     */
+    public void testURIInfoGetMatchedURIsSubresource() throws HttpException, IOException {
+        ClientResponse response =
+            client.resource(getBaseURI() + "/context/uriinfo/detailed/matcheduris").get();
+        assertEquals(200, response.getStatusCode());
+        assertEquals("context/uriinfo/detailed/matcheduris" + ":"
+            + "context/uriinfo/detailed"
+            + ":"
+            + "-"
+            + "context/uriinfo/detailed/matcheduris"
+            + ":"
+            + "context/uriinfo/detailed"
+            + ":", response.getEntity(String.class));
+    }
+
+    /**
+     * Tests the {@link UriInfo#getMatchedURIs(boolean)}.
+     * 
+     * @throws HttpException
+     * @throws IOException
+     */
+    public void testURIInfoGetMatchedURIsDecodeTrue() throws HttpException, IOException {
+        ClientResponse response =
+            client
+                .resource(getBaseURI() + "/context/uriinfo/detailed?reqInfo=getMatchedURIsDecodedTrue")
+                .get();
+        assertEquals(200, response.getStatusCode());
+        assertEquals("context/uriinfo/detailed" + ":", response.getEntity(String.class));
+    }
+
+    /**
+     * Tests the {@link UriInfo#getMatchedURIs(boolean)}.
+     * 
+     * @throws HttpException
+     * @throws IOException
+     */
+    public void testURIInfoGetMatchedURIsDecodeFalse() throws HttpException, IOException {
+        ClientResponse response =
+            client
+                .resource(getBaseURI() + "/context/uriinfo/detailed?reqInfo=getMatchedURIsDecodedFalse")
+                .get();
+        assertEquals(200, response.getStatusCode());
+        assertEquals("context/uriinfo/detailed" + ":", response.getEntity(String.class));
+    }
+
+    /**
+     * Tests the {@link UriInfo#getMatchedURIs(boolean)} in a sub-locator.
+     * 
+     * @throws HttpException
+     * @throws IOException
+     */
+    public void testURIInfoGetMatchedURIsSublocatorDecodeTrue() throws HttpException, IOException {
+        ClientResponse response =
+            client
+                .resource(getBaseURI() + "/context/uriinfo/detailed/matchedurisdecoded/!%40%23%24%25%5E%26*()?decoded=true")
+                .get();
+        assertEquals(200, response.getStatusCode());
+        assertEquals("context/uriinfo/detailed/matchedurisdecoded/!@#$%^&*()", response
+            .getEntity(String.class));
+    }
+
+    /**
+     * Tests the {@link UriInfo#getMatchedURIs(boolean)} in a sub-locator.
+     * 
+     * @throws HttpException
+     * @throws IOException
+     */
+    public void testURIInfoGetMatchedURIsSublocatorDecodeFalse() throws HttpException, IOException {
+        ClientResponse response =
+            client
+                .resource(getBaseURI() + "/context/uriinfo/detailed/matchedurisdecoded/!@%23$%25%5E&*()?decoded=false")
+                .get();
+        assertEquals(200, response.getStatusCode());
+        assertEquals("context/uriinfo/detailed/matchedurisdecoded/!@%23$%25%5E&*()", response
+            .getEntity(String.class));
+    }
+
+    /**
+     * Tests the {@link UriInfo#getPathParameters()}.
+     * 
+     * @throws HttpException
+     * @throws IOException
+     */
+    public void testURIInfoGetPathParametersZero() throws HttpException, IOException {
+        ClientResponse response =
+            client.resource(getBaseURI() + "/context/uriinfo/detailed?reqInfo=getPathParameters")
+                .get();
+        assertEquals(200, response.getStatusCode());
+        assertEquals("", response.getEntity(String.class));
+    }
+
+    /**
+     * Tests the {@link UriInfo#getPathParameters()}.
+     * 
+     * @throws HttpException
+     * @throws IOException
+     */
+    public void testURIInfoGetPathParametersOne() throws HttpException, IOException {
+        ClientResponse response =
+            client.resource(getBaseURI() + "/context/uriinfo/detailed/pathparamsone/").get();
+        assertEquals(200, response.getStatusCode());
+        assertEquals("p1=/:", response.getEntity(String.class));
+
+        response = client.resource(getBaseURI() + "/context/uriinfo/detailed/pathparamsone").get();
+        assertEquals(200, response.getStatusCode());
+        assertEquals("p1=:", response.getEntity(String.class));
+
+        response =
+            client.resource(getBaseURI() + "/context/uriinfo/detailed/pathparamsone/foo").get();
+        assertEquals(200, response.getStatusCode());
+        assertEquals("p1=/foo:", response.getEntity(String.class));
+
+        response =
+            client.resource(getBaseURI() + "/context/uriinfo/detailed/pathparamsone/foo/bar").get();
+        assertEquals(200, response.getStatusCode());
+        assertEquals("p1=/foo/bar:", response.getEntity(String.class));
+    }
+
+    /**
+     * Tests the {@link UriInfo#getPathParameters()}.
+     * 
+     * @throws HttpException
+     * @throws IOException
+     */
+    public void testURIInfoGetPathParametersMany() throws HttpException, IOException {
+        ClientResponse response =
+            client.resource(getBaseURI() + "/context/uriinfo/detailed/pathparamsmany/foo/bar/xyz")
+                .get();
+        assertEquals(200, response.getStatusCode());
+        assertEquals("p1=foo:p2=b:p3=ar/xyz:", response.getEntity(String.class));
+
+        response =
+            client.resource(getBaseURI() + "/context/uriinfo/detailed/pathparamsmany/foo/bar")
+                .get();
+        assertEquals(200, response.getStatusCode());
+        assertEquals("p1=foo:p2=b:p3=ar:", response.getEntity(String.class));
+    }
+
+    /**
+     * Tests the {@link UriInfo#getPathParameters(boolean)}.
+     * 
+     * @throws HttpException
+     * @throws IOException
+     */
+    public void testURIInfoGetPathParametersZeroDecodedFalse() throws HttpException, IOException {
+        ClientResponse response =
+            client
+                .resource(getBaseURI() + "/context/uriinfo/detailed?reqInfo=getPathParametersDecodedFalse")
+                .get();
+        assertEquals(200, response.getStatusCode());
+        assertEquals("", response.getEntity(String.class));
+    }
+
+    /**
+     * Tests the {@link UriInfo#getPathParameters(boolean)}.
+     * 
+     * @throws HttpException
+     * @throws IOException
+     */
+    public void testURIInfoGetPathParametersOneDecodedFalse() throws HttpException, IOException {
+        ClientResponse response =
+            client
+                .resource(getBaseURI() + "/context/uriinfo/detailed/pathparamsone/?decoded=false")
+                .get();
+        assertEquals(200, response.getStatusCode());
+        assertEquals("p1=/:", response.getEntity(String.class));
+
+        response =
+            client.resource(getBaseURI() + "/context/uriinfo/detailed/pathparamsone?decoded=false")
+                .get();
+        assertEquals(200, response.getStatusCode());
+        assertEquals("p1=:", response.getEntity(String.class));
+
+        response =
+            client
+                .resource(getBaseURI() + "/context/uriinfo/detailed/pathparamsone/!@%23$%25%5E&*()?decoded=false")
+                .get();
+        assertEquals(200, response.getStatusCode());
+        assertEquals("p1=/!@%23$%25%5E&*():", response.getEntity(String.class));
+
+        response =
+            client
+                .resource(getBaseURI() + "/context/uriinfo/detailed/pathparamsone/!@%23$%25%5E&*()/!@%23$%25%5E&*()?decoded=false")
+                .get();
+        assertEquals(200, response.getStatusCode());
+        assertEquals("p1=/!@%23$%25%5E&*()/!@%23$%25%5E&*():", response.getEntity(String.class));
+    }
+
+    /**
+     * Tests the {@link UriInfo#getPathParameters(boolean)}.
+     * 
+     * @throws HttpException
+     * @throws IOException
+     */
+    public void testURIInfoGetPathParametersManyDecodedFalse() throws HttpException, IOException {
+        ClientResponse response =
+            client
+                .resource(getBaseURI() + "/context/uriinfo/detailed/pathparamsmany/foo/bar/xyz?decoded=false")
+                .get();
+        assertEquals(200, response.getStatusCode());
+        assertEquals("p1=foo:p2=b:p3=ar/xyz:", response.getEntity(String.class));
+
+        response =
+            client
+                .resource(getBaseURI() + "/context/uriinfo/detailed/pathparamsmany/foo/bar?decoded=false")
+                .get();
+        assertEquals(200, response.getStatusCode());
+        assertEquals("p1=foo:p2=b:p3=ar:", response.getEntity(String.class));
+    }
+
+    /**
+     * Tests the {@link UriInfo#getPathParameters(boolean)}.
+     * 
+     * @throws HttpException
+     * @throws IOException
+     */
+    public void testURIInfoGetPathParametersZeroDecodedTrue() throws HttpException, IOException {
+        ClientResponse response =
+            client
+                .resource(getBaseURI() + "/context/uriinfo/detailed?reqInfo=getPathParametersDecodedTrue")
+                .get();
+        assertEquals(200, response.getStatusCode());
+        assertEquals("", response.getEntity(String.class));
+    }
+
+    /**
+     * Tests the {@link UriInfo#getPathParameters(boolean)}.
+     * 
+     * @throws HttpException
+     * @throws IOException
+     */
+    public void testURIInfoGetPathParametersOneDecodedTrue() throws HttpException, IOException {
+        ClientResponse response =
+            client.resource(getBaseURI() + "/context/uriinfo/detailed/pathparamsone/?decoded=true")
+                .get();
+        assertEquals(200, response.getStatusCode());
+        assertEquals("p1=/:", response.getEntity(String.class));
+
+        response =
+            client.resource(getBaseURI() + "/context/uriinfo/detailed/pathparamsone?decoded=true")
+                .get();
+        assertEquals(200, response.getStatusCode());
+        assertEquals("p1=:", response.getEntity(String.class));
+
+        response =
+            client
+                .resource(getBaseURI() + "/context/uriinfo/detailed/pathparamsone/!%40%23%24%25%5E%26*()?decoded=true")
+                .get();
+        assertEquals(200, response.getStatusCode());
+        assertEquals("p1=/!@#$%^&*():", response.getEntity(String.class));
+
+        response =
+            client
+                .resource(getBaseURI() + "/context/uriinfo/detailed/pathparamsone/!%40%23%24%25%5E%26*()/!%40%23%24%25%5E%26*()?decoded=true")
+                .get();
+        assertEquals(200, response.getStatusCode());
+        assertEquals("p1=/!@#$%^&*()/!@#$%^&*():", response.getEntity(String.class));
+    }
+
+    /**
+     * Tests the {@link UriInfo#getPathParameters(boolean)}.
+     * 
+     * @throws HttpException
+     * @throws IOException
+     */
+    public void testURIInfoGetPathParametersManyDecodedTrue() throws HttpException, IOException {
+        ClientResponse response =
+            client
+                .resource(getBaseURI() + "/context/uriinfo/detailed/pathparamsmany/!%40%23%24%25%5E%26*()/bar/xyz?decoded=true")
+                .get();
+        assertEquals(200, response.getStatusCode());
+        assertEquals("p1=!@#$%^&*():p2=b:p3=ar/xyz:", response.getEntity(String.class));
+
+        response =
+            client
+                .resource(getBaseURI() + "/context/uriinfo/detailed/pathparamsmany/!%40%23%24%25%5E%26*()/bar?decoded=true")
+                .get();
+        assertEquals(200, response.getStatusCode());
+        assertEquals("p1=!@#$%^&*():p2=b:p3=ar:", response.getEntity(String.class));
+    }
+
+    /**
+     * Tests the {@link UriInfo#getPathSegments()}.
+     * 
+     * @throws HttpException
+     * @throws IOException
+     */
+    public void testURIInfoGetPathSegments() throws HttpException, IOException {
+        ClientResponse response =
+            client.resource(getBaseURI() + "/context/uriinfo/detailed?reqInfo=getPathSegments")
+                .get();
+        assertEquals(200, response.getStatusCode());
+        assertEquals("context#:uriinfo#:detailed#:", response.getEntity(String.class));
+
+        response =
+            client
+                .resource(getBaseURI() + "/context;matrixp1=value1;matrixp2=value2;foo=bar/uriinfo/detailed?reqInfo=getPathSegments")
+                .get();
+        assertEquals(200, response.getStatusCode());
+        assertEquals("context#foo=bar:matrixp1=value1:matrixp2=value2::uriinfo#:detailed#:",
+                     response.getEntity(String.class));
+
+        response =
+            client
+                .resource(getBaseURI() + "/context;matrixp1=!%40%23%24%25%5E%26*();matrixp2=value2;foo=bar/uriinfo/detailed?reqInfo=getPathSegments")
+                .get();
+        assertEquals(200, response.getStatusCode());
+        assertEquals("context#foo=bar:matrixp1=!@#$%^&*():matrixp2=value2::uriinfo#:detailed#:",
+                     response.getEntity(String.class));
+    }
+
+    /**
+     * Tests the {@link UriInfo#getPathSegments(boolean)}.
+     * 
+     * @throws HttpException
+     * @throws IOException
+     */
+    public void testURIInfoGetPathSegmentsDecodedFalse() throws HttpException, IOException {
+        ClientResponse response =
+            client
+                .resource(getBaseURI() + "/context/uriinfo/detailed?reqInfo=getPathSegmentsDecodedFalse")
+                .get();
+        assertEquals(200, response.getStatusCode());
+        assertEquals("context#:uriinfo#:detailed#:", response.getEntity(String.class));
+
+        response =
+            client
+                .resource(getBaseURI() + "/context;matrixp1=value1;matrixp2=value2;foo=bar/uriinfo/detailed?reqInfo=getPathSegmentsDecodedFalse")
+                .get();
+        assertEquals(200, response.getStatusCode());
+        assertEquals("context#foo=bar:matrixp1=value1:matrixp2=value2::uriinfo#:detailed#:",
+                     response.getEntity(String.class));
+
+        response =
+            client
+                .resource(getBaseURI() + "/context;matrixp1=!@%23$%25%5E&*();matrixp2=value2;foo=bar/uriinfo/detailed?reqInfo=getPathSegmentsDecodedFalse")
+                .get();
+        assertEquals(200, response.getStatusCode());
+        assertEquals("context#foo=bar:matrixp1=!@%23$%25%5E&*():matrixp2=value2::uriinfo#:detailed#:",
+                     response.getEntity(String.class));
+    }
+
+    /**
+     * Tests the {@link UriInfo#getQueryParameters()}.
+     * 
+     * @throws HttpException
+     * @throws IOException
+     */
+    public void testURIInfoGetQueryParametersZero() throws HttpException, IOException {
+        ClientResponse response =
+            client.resource(getBaseURI() + "/context/uriinfo/detailed/queryparams").get();
+        assertEquals(200, response.getStatusCode());
+        assertEquals("", response.getEntity(String.class));
+    }
+
+    /**
+     * Tests the {@link UriInfo#getQueryParameters()}.
+     * 
+     * @throws HttpException
+     * @throws IOException
+     */
+    public void testURIInfoGetQueryParametersOne() throws HttpException, IOException {
+        ClientResponse response =
+            client.resource(getBaseURI() + "/context/uriinfo/detailed?reqInfo=getQueryParameters")
+                .get();
+        assertEquals(200, response.getStatusCode());
+        assertEquals("reqInfo=getQueryParameters:", response.getEntity(String.class));
+
+        response =
+            client
+                .resource(getBaseURI() + "/context/uriinfo/detailed/queryparams?q1=value1&q1=value2")
+                .get();
+        assertEquals(200, response.getStatusCode());
+        assertEquals("q1=value1:value2:", response.getEntity(String.class));
+
+        response =
+            client
+                .resource(getBaseURI() + "/context/uriinfo/detailed/queryparams?q1=value1&q1=value2")
+                .get();
+        assertEquals(200, response.getStatusCode());
+        assertEquals("q1=value1:value2:", response.getEntity(String.class));
+    }
+
+    /**
+     * Tests the {@link UriInfo#getQueryParameters()}.
+     * 
+     * @throws HttpException
+     * @throws IOException
+     */
+    public void testURIInfoGetQueryParametersMany() throws HttpException, IOException {
+        ClientResponse response =
+            client
+                .resource(getBaseURI() + "/context/uriinfo/detailed/queryparams?q1=value1&q2=value2")
+                .get();
+        assertEquals(200, response.getStatusCode());
+        assertEquals("q1=value1:q2=value2:", response.getEntity(String.class));
+
+        response =
+            client
+                .resource(getBaseURI() + "/context/uriinfo/detailed/queryparams?q1=!%40%23%24%25%5E%26*()&q2=value2")
+                .get();
+        assertEquals(200, response.getStatusCode());
+        assertEquals("q1=!@#$%^&*():q2=value2:", response.getEntity(String.class));
+    }
+
+    /**
+     * Tests the {@link UriInfo#getQueryParameters(boolean)}.
+     * 
+     * @throws HttpException
+     * @throws IOException
+     */
+    public void testURIInfoGetQueryParametersManyDecodedFalse() throws HttpException, IOException {
+        ClientResponse response =
+            client
+                .resource(getBaseURI() + "/context/uriinfo/detailed/queryparams?q1=!%40%23%24%25%5E%26*()&q2=value2&decoded=false")
+                .get();
+        assertEquals(200, response.getStatusCode());
+        assertEquals("decoded=false:q1=!%40%23%24%25%5E%26*():q2=value2:", response
+            .getEntity(String.class));
+    }
+
+    /**
+     * Tests the {@link UriInfo#getRequestUri()}.
+     * 
+     * @throws HttpException
+     * @throws IOException
+     */
+    public void testURIInfoGetRequestUri() throws HttpException, IOException {
+        ClientResponse response =
+            client.resource(getBaseURI() + "/context/uriinfo/detailed?reqInfo=getRequestUri").get();
+        assertEquals(200, response.getStatusCode());
+        assertEquals(getBaseURI() + "/context/uriinfo/detailed?reqInfo=getRequestUri", response
+            .getEntity(String.class));
+    }
+
+    /**
+     * Tests the {@link UriInfo#getRequestUriBuilder()}.
+     * 
+     * @throws HttpException
+     * @throws IOException
+     */
+    public void testURIInfoGetRequestUriBuilder() throws HttpException, IOException {
+        ClientResponse response =
+            client
+                .resource(getBaseURI() + "/context/uriinfo/detailed?reqInfo=getRequestUriBuilder")
+                .get();
+        assertEquals(200, response.getStatusCode());
+        String expected =
+            (getBaseURI() + "/context/uriinfo/detailed?reqInfo=getRequestUriBuilder")
+                .replace(ServerEnvironmentInfo.getHostname(), "abcd");
+        assertEquals(expected, response.getEntity(String.class));
+    }
+}

Propchange: incubator/wink/trunk/wink-itests/wink-itest/wink-itest-context/src/test/java/org/apache/wink/itest/uriinfo/WinkURIInfoDetailedMethodTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Copied: incubator/wink/trunk/wink-itests/wink-itest/wink-itest-context/src/test/java/org/apache/wink/itest/uriinfo/WinkURIInfoInjectionTest.java (from r816798, incubator/wink/trunk/wink-itests/wink-itest/wink-itest-context/src/test/java/org/apache/wink/itest/uriinfo/URIInfoInjectionTest.java)
URL: http://svn.apache.org/viewvc/incubator/wink/trunk/wink-itests/wink-itest/wink-itest-context/src/test/java/org/apache/wink/itest/uriinfo/WinkURIInfoInjectionTest.java?p2=incubator/wink/trunk/wink-itests/wink-itest/wink-itest-context/src/test/java/org/apache/wink/itest/uriinfo/WinkURIInfoInjectionTest.java&p1=incubator/wink/trunk/wink-itests/wink-itest/wink-itest-context/src/test/java/org/apache/wink/itest/uriinfo/URIInfoInjectionTest.java&r1=816798&r2=816947&rev=816947&view=diff
==============================================================================
--- incubator/wink/trunk/wink-itests/wink-itest/wink-itest-context/src/test/java/org/apache/wink/itest/uriinfo/URIInfoInjectionTest.java (original)
+++ incubator/wink/trunk/wink-itests/wink-itest/wink-itest-context/src/test/java/org/apache/wink/itest/uriinfo/WinkURIInfoInjectionTest.java Sat Sep 19 19:38:24 2009
@@ -14,7 +14,7 @@
  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
  * KIND, either express or implied.  See the License for the
  * specific language governing permissions and limitations
- * under the License.
+ * under the License.    
  */
 
 package org.apache.wink.itest.uriinfo;
@@ -23,23 +23,27 @@
 
 import junit.framework.TestCase;
 
-import org.apache.commons.httpclient.HttpClient;
 import org.apache.commons.httpclient.HttpException;
-import org.apache.commons.httpclient.methods.GetMethod;
+import org.apache.wink.client.ClientResponse;
+import org.apache.wink.client.RestClient;
 import org.apache.wink.test.integration.ServerEnvironmentInfo;
 
-/**
- * Tests that the UriInfo can be injected via various means.
- */
-public class URIInfoInjectionTest extends TestCase {
+public class WinkURIInfoInjectionTest extends TestCase {
 
-    public String getBaseURI() {
+    private static String getBaseURI() {
         if (ServerEnvironmentInfo.isRestFilterUsed()) {
             return ServerEnvironmentInfo.getBaseURI();
         }
         return ServerEnvironmentInfo.getBaseURI() + "/uriinfo";
     }
 
+    protected RestClient client;
+
+    @Override
+    public void setUp() {
+        client = new RestClient();
+    }
+
     /**
      * Tests that a URIInfo object is injected into method parameters.
      * 
@@ -47,14 +51,8 @@
      * @throws HttpException
      */
     public void testURIInfoParamInjection() throws HttpException, IOException {
-        HttpClient client = new HttpClient();
-        GetMethod getMethod = new GetMethod(getBaseURI() + "/context/uriinfo/param");
-        try {
-            client.executeMethod(getMethod);
-            assertEquals(204, getMethod.getStatusCode());
-        } finally {
-            getMethod.releaseConnection();
-        }
+        ClientResponse response = client.resource(getBaseURI() + "/context/uriinfo/param").get();
+        assertEquals(204, response.getStatusCode());
     }
 
     /**
@@ -64,14 +62,8 @@
      * @throws HttpException
      */
     public void testURIInfoBeanMethodInjection() throws HttpException, IOException {
-        HttpClient client = new HttpClient();
-        GetMethod getMethod = new GetMethod(getBaseURI() + "/context/uriinfo/bean");
-        try {
-            client.executeMethod(getMethod);
-            assertEquals(204, getMethod.getStatusCode());
-        } finally {
-            getMethod.releaseConnection();
-        }
+        ClientResponse response = client.resource(getBaseURI() + "/context/uriinfo/bean").get();
+        assertEquals(204, response.getStatusCode());
     }
 
     /**
@@ -81,14 +73,9 @@
      * @throws HttpException
      */
     public void testURIInfoConstructorInjection() throws HttpException, IOException {
-        HttpClient client = new HttpClient();
-        GetMethod getMethod = new GetMethod(getBaseURI() + "/context/uriinfo/constructor");
-        try {
-            client.executeMethod(getMethod);
-            assertEquals(204, getMethod.getStatusCode());
-        } finally {
-            getMethod.releaseConnection();
-        }
+        ClientResponse response =
+            client.resource(getBaseURI() + "/context/uriinfo/constructor").get();
+        assertEquals(204, response.getStatusCode());
     }
 
     /**
@@ -98,14 +85,8 @@
      * @throws HttpException
      */
     public void testURIInfoFieldMemberInjection() throws HttpException, IOException {
-        HttpClient client = new HttpClient();
-        GetMethod getMethod = new GetMethod(getBaseURI() + "/context/uriinfo/field");
-        try {
-            client.executeMethod(getMethod);
-            assertEquals(204, getMethod.getStatusCode());
-        } finally {
-            getMethod.releaseConnection();
-        }
+        ClientResponse response = client.resource(getBaseURI() + "/context/uriinfo/field").get();
+        assertEquals(204, response.getStatusCode());
     }
 
     /**
@@ -115,14 +96,8 @@
      * @throws HttpException
      */
     public void testURIInfoNotBeanMethod() throws HttpException, IOException {
-        HttpClient client = new HttpClient();
-        GetMethod getMethod = new GetMethod(getBaseURI() + "/context/uriinfo/notbeanmethod");
-        try {
-            client.executeMethod(getMethod);
-            assertEquals(204, getMethod.getStatusCode());
-        } finally {
-            getMethod.releaseConnection();
-        }
+        ClientResponse response = client.resource(getBaseURI() + "/context/uriinfo/notbeanmethod").get();
+        assertEquals(204, response.getStatusCode());
     }
 
 }

Added: incubator/wink/trunk/wink-itests/wink-itest/wink-itest-context/src/test/java/org/apache/wink/itest/uriinfo/WinkURIInfoNormalizationTest.java
URL: http://svn.apache.org/viewvc/incubator/wink/trunk/wink-itests/wink-itest/wink-itest-context/src/test/java/org/apache/wink/itest/uriinfo/WinkURIInfoNormalizationTest.java?rev=816947&view=auto
==============================================================================
--- incubator/wink/trunk/wink-itests/wink-itest/wink-itest-context/src/test/java/org/apache/wink/itest/uriinfo/WinkURIInfoNormalizationTest.java (added)
+++ incubator/wink/trunk/wink-itests/wink-itest/wink-itest-context/src/test/java/org/apache/wink/itest/uriinfo/WinkURIInfoNormalizationTest.java Sat Sep 19 19:38:24 2009
@@ -0,0 +1,239 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ * 
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.    
+ */
+
+package org.apache.wink.itest.uriinfo;
+
+import junit.framework.TestCase;
+
+import org.apache.wink.client.ClientResponse;
+import org.apache.wink.client.RestClient;
+import org.apache.wink.test.integration.ServerEnvironmentInfo;
+
+public class WinkURIInfoNormalizationTest extends TestCase {
+
+    private static String appRoot = "/uriinfo";
+
+    static {
+        if (ServerEnvironmentInfo.isRestFilterUsed()) {
+            appRoot = "";
+        }
+    }
+
+    public String getBaseURI() {
+        if (ServerEnvironmentInfo.isRestFilterUsed()) {
+            return ServerEnvironmentInfo.getBaseURI();
+        }
+        return ServerEnvironmentInfo.getBaseURI() + appRoot;
+    }
+
+    protected RestClient client;
+
+    @Override
+    public void setUp() {
+        client = new RestClient();
+    }
+
+    /**
+     * Tests that a normal "good" path is returned.
+     * 
+     * @throws Exception
+     */
+    public void testPathNormal() throws Exception {
+        ClientResponse response = client.resource(getBaseURI() + "/uriinfo?info=path").get();
+        assertEquals(200, response.getStatusCode());
+        assertEquals("uriinfo", response.getEntity(String.class));
+    }
+
+    /**
+     * Tests that a path which removes the initial path to the resource class
+     * but adds it back in is okay.
+     * 
+     * @throws Exception
+     */
+    public void testRemoveResourcePathThenAddItBack() throws Exception {
+        ClientResponse response =
+            client.resource(getBaseURI() + "/uriinfo/../uriinfo" + "?info=path").get();
+        assertEquals(200, response.getStatusCode());
+        assertEquals("uriinfo", response.getEntity(String.class));
+
+        response = client.resource(getBaseURI() + "/uriinfo/." + "?info=path").get();
+        assertEquals(200, response.getStatusCode());
+        assertEquals("uriinfo/", response.getEntity(String.class));
+
+        response = client.resource(getBaseURI() + "/uriinfo/./" + "?info=path").get();
+        assertEquals(200, response.getStatusCode());
+        assertEquals("uriinfo/", response.getEntity(String.class));
+
+        response =
+            client.resource(getBaseURI() + "/uriinfo/./.././uriinfo/./" + "?info=path").get();
+        assertEquals(200, response.getStatusCode());
+        assertEquals("uriinfo/", response.getEntity(String.class));
+
+        response = client.resource(getBaseURI() + "/uriinfo/../uriinfo/" + "?info=path").get();
+        assertEquals(200, response.getStatusCode());
+        assertEquals("uriinfo/", response.getEntity(String.class));
+
+        response =
+            client.resource(getBaseURI() + "/uriinfo/sub/../uriinfo/../sub" + "?info=path").get();
+        assertEquals(200, response.getStatusCode());
+        assertEquals("uriinfo/sub", response.getEntity(String.class));
+
+        response =
+            client.resource(getBaseURI() + "/uriinfo/sub/../uriinfo/../sub/" + "?info=path").get();
+        assertEquals(200, response.getStatusCode());
+        assertEquals("uriinfo/sub/", response.getEntity(String.class));
+    }
+
+    /**
+     * Tests adding some extra paths to resource paths and then removing them.
+     * 
+     * @throws Exception
+     */
+    public void testAddPathThenRemoveIt() throws Exception {
+        ClientResponse response =
+            client.resource(getBaseURI() + "/uriinfo/something/../" + "?info=path").get();
+        assertEquals(200, response.getStatusCode());
+        assertEquals("uriinfo/", response.getEntity(String.class));
+
+        response = client.resource(getBaseURI() + "/uriinfo/something/.." + "?info=path").get();
+        assertEquals(200, response.getStatusCode());
+        assertEquals("uriinfo/", response.getEntity(String.class));
+
+        response =
+            client.resource(getBaseURI() + "/uriinfo/sub/../uriinfo/../sub/something/../"
+                + "?info=path").get();
+        assertEquals(200, response.getStatusCode());
+        assertEquals("uriinfo/sub/", response.getEntity(String.class));
+
+        response =
+            client.resource(getBaseURI() + "/uriinfo/sub/../uriinfo/../sub/something/.."
+                + "?info=path").get();
+        assertEquals(200, response.getStatusCode());
+        assertEquals("uriinfo/sub/", response.getEntity(String.class));
+    }
+
+    /**
+     * Tests that the capitalization is correct.
+     * 
+     * @throws Exception
+     */
+    public void testCapitalization() throws Exception {
+        String contextRoot = ServerEnvironmentInfo.getContextRoot();
+        if (!"".equals(contextRoot)) {
+            contextRoot = "/" + contextRoot;
+        }
+
+        ClientResponse response =
+            client.resource(getBaseURI() + "/uriinfo/something/../" + "?info=host").get();
+        assertEquals(200, response.getStatusCode());
+        assertEquals(ServerEnvironmentInfo.getHostname().toLowerCase(), response
+            .getEntity(String.class));
+
+        /*
+         * should be the same as first test above
+         */
+        response =
+            client.resource("http://" + ServerEnvironmentInfo.getHostname()
+                + ":"
+                + ServerEnvironmentInfo.getPort()
+                + contextRoot
+                + appRoot
+                + "/uriinfo/something/../"
+                + "?info=host").get();
+        assertEquals(200, response.getStatusCode());
+        assertEquals(ServerEnvironmentInfo.getHostname().toLowerCase(), response
+            .getEntity(String.class));
+
+        /*
+         * uppercased
+         */
+        response =
+            client.resource("http://" + ServerEnvironmentInfo.getHostname().toUpperCase()
+                + ":"
+                + ServerEnvironmentInfo.getPort()
+                + contextRoot
+                + appRoot
+                + "/uriinfo/something/../"
+                + "?info=host").get();
+        assertEquals(200, response.getStatusCode());
+        assertEquals(ServerEnvironmentInfo.getHostname().toUpperCase(), response
+            .getEntity(String.class));
+
+        /*
+         * uppercased
+         */
+        response =
+            client.resource("HTTP://" + ServerEnvironmentInfo.getHostname().toUpperCase()
+                + ":"
+                + ServerEnvironmentInfo.getPort()
+                + contextRoot
+                + appRoot
+                + "/uriinfo/something/../"
+                + "?info=protocol").get();
+        assertEquals(200, response.getStatusCode());
+        assertEquals("http", response.getEntity(String.class));
+    }
+
+    /**
+     * Tests that the capitalization is correct.
+     * 
+     * @throws Exception
+     */
+    public void testPercentEncoding() throws Exception {
+        /*
+         * regular query
+         */
+        ClientResponse response =
+            client.resource(getBaseURI() + "/uriinfo/something/../" + "?info=query&hello1=%3F")
+                .get();
+        assertEquals(200, response.getStatusCode());
+        assertEquals("info=query&hello1=?", response.getEntity(String.class));
+
+        /*
+         * raw query
+         */
+        response =
+            client.resource(getBaseURI()
+                + "/uriinfo/something/../"
+                + "?info=rawquery&hello1=%3F").get();
+        assertEquals(200, response.getStatusCode());
+        assertEquals("info=rawquery&hello1=%3F", response.getEntity(String.class));
+
+        response =
+            client.resource(getBaseURI()
+                + "/uriinfo/something/../"
+                + "?info=query&hello%31=%3F").get();
+        assertEquals(200, response.getStatusCode());
+        assertEquals("info=query&hello1=?", response.getEntity(String.class));
+
+        /*
+         * %75 should eventually be normalized to /uriinfo/something %31 should
+         * be normalized to 1
+         */
+        response =
+            client.resource(getBaseURI()
+                + "/%75riinfo/something/../"
+                + "?info=rawquery&hello%31=%3F").get();
+        assertEquals(200, response.getStatusCode());
+        /*
+         * in this case, the %31 should remain encoded
+         */
+        assertEquals("info=rawquery&hello%31=%3F", response.getEntity(String.class));
+    }
+}

Propchange: incubator/wink/trunk/wink-itests/wink-itest/wink-itest-context/src/test/java/org/apache/wink/itest/uriinfo/WinkURIInfoNormalizationTest.java
------------------------------------------------------------------------------
    svn:eol-style = native