On 26 August 2012 17:10, Milamber <[email protected]> wrote:
>
>
> Le 24/08/2012 14:21, [email protected] a ecrit :
>
>> Author: sebb
>> Date: Fri Aug 24 13:21:08 2012
>> New Revision: 1376905
>>
>> URL: http://svn.apache.org/viewvc?rev=1376905&view=rev
>> Log:
>> The the case of getSendParameterValuesAsPostBody, encoding should be left
>> to the entity handler
>>
>> Modified:
>>
>> jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/sampler/HTTPHC4Impl.java
>>
>> Modified:
>> jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/sampler/HTTPHC4Impl.java
>> URL:
>> http://svn.apache.org/viewvc/jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/sampler/HTTPHC4Impl.java?rev=1376905&r1=1376904&r2=1376905&view=diff
>>
>> ==============================================================================
>> ---
>> jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/sampler/HTTPHC4Impl.java
>> (original)
>> +++
>> jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/sampler/HTTPHC4Impl.java
>> Fri Aug 24 13:21:08 2012
>> @@ -914,19 +914,13 @@ public class HTTPHC4Impl extends HTTPHCA
>>                       PropertyIterator args = getArguments().iterator();
>>                       while (args.hasNext()) {
>>                           HTTPArgument arg = (HTTPArgument)
>> args.next().getObjectValue();
>> -                        String value;
>> -                        if (haveContentEncoding){
>> -                            value = arg.getEncodedValue(contentEncoding);
>> -                        } else {
>> -                            value = arg.getEncodedValue();
>> -                        }
>> -                        postBody.append(value);
>> +                        postBody.append(arg.getValue());
>
>
> This update section seems introduce a regression in junit test. (missing arg
> encoding)

On further reflection (and code inspection), I agree that the change
was wrong/unnecessary.
I'll revert shortly.

Unnamed parameters are only form-encoded if the "Encode?" checkbox is selected.
Not sure that would make much sense, but provided that the box is
deselected, no conversion is done on the argument.

>
>      [java] >>>>>>>>>>>>>>>>>>>> expected:
>      [java] mytitle%2F%3Dmydescription+++%2F%5C
>      [java] ==================== actual:
>      [java] mytitle/=mydescription   /\
>      [java] <<<<<<<<<<<<<<<<<<<<
>      [java] URL=http://localhost:8182/test/somescript.jsp
>      [java] F.....................................
>
>      [java] There was 1 failure:
>      [java] 1)
> testPostRequest_BodyFromParameterValues3(org.apache.jmeter.protocol.http.sampler.TestHTTPSamplersAgainstHttpMirrorServer)junit.framework.AssertionFailedError:
> arrays have different length, expected is 35, actual is 27
>      [java]     at
> org.apache.jmeter.protocol.http.sampler.TestHTTPSamplersAgainstHttpMirrorServer.checkArraysHaveSameContent(TestHTTPSamplersAgainstHttpMirrorServer.java:1239)
>      [java]     at
> org.apache.jmeter.protocol.http.sampler.TestHTTPSamplersAgainstHttpMirrorServer.checkPostRequestBody(TestHTTPSamplersAgainstHttpMirrorServer.java:911)
>      [java]     at
> org.apache.jmeter.protocol.http.sampler.TestHTTPSamplersAgainstHttpMirrorServer.testPostRequest_BodyFromParameterValues(TestHTTPSamplersAgainstHttpMirrorServer.java:525)
>      [java]     at
> org.apache.jmeter.protocol.http.sampler.TestHTTPSamplersAgainstHttpMirrorServer.testPostRequest_BodyFromParameterValues3(TestHTTPSamplersAgainstHttpMirrorServer.java:176)
>      [java]     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native
> Method)
>      [java]     at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>      [java]     at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>      [java]     at
> junit.extensions.TestDecorator.basicRun(TestDecorator.java:24)
>      [java]     at junit.extensions.TestSetup$1.protect(TestSetup.java:23)
>      [java]     at junit.extensions.TestSetup.run(TestSetup.java:27)
>      [java]     at org.apache.jorphan.test.AllTests.main(AllTests.java:235)
>      [java]
>
>
>
>
>>                       }
>> -                    ContentType contentType =
>> -
>> ContentType.create(post.getFirstHeader(HTTPConstants.HEADER_CONTENT_TYPE).getValue(),
>> contentEncoding);
>> -                    StringEntity requestEntity = new
>> StringEntity(postBody.toString(), contentType);
>> +                    final String charset =
>> getContentEncoding(HTTP.DEF_CONTENT_CHARSET.name());
>> +                    // Let StringEntity perform the encoding
>> +                    StringEntity requestEntity = new
>> StringEntity(postBody.toString(), charset);
>>                       post.setEntity(requestEntity);
>> -                    postedBody.append(postBody.toString()); // TODO OK?
>> +                    postedBody.append(postBody.toString());
>>                   } else {
>>                       // It is a normal post request, with parameter names
>> and values
>>
>>
>>
>> .
>>
>

Reply via email to