> 2022年8月11日 21:02,Konstantin Kolinko <knst.koli...@gmail.com> 写道:
> 
> чт, 11 авг. 2022 г. в 05:21, Han Li <aooo...@gmail.com>:
>> 
>> 
>> 
>>> 2022年8月11日 06:52,Konstantin Kolinko <knst.koli...@gmail.com> 写道:
>>> 
>>> ср, 10 авг. 2022 г. в 13:25, Han Li <aooo...@gmail.com 
>>> <mailto:aooo...@gmail.com>>:
>>>> 
>>>> Mark,
>>>> 
>>>> Can I make a suggestion related to the ant build script. Can we add two 
>>>> properties to set the values of ` -Duser.language` and `-Duser.country`, 
>>>> because in the course of my testing I found that some of the unit test 
>>>> assertions are in English, but there may be cases where the values are 
>>>> converted by sm, e.g. Chinese.
>>>> Just like this:
>>>> Assert.assertEquals("ok”,x);
>>>> The variable x becomes "好" after passing through the StringManager.
>>>> 
>>>> So this makes it a bit inconvenient for non-English speaking developers to 
>>>> test. I avoid this problem by adding a statement to build.xml each time I 
>>>> run a test.
>>>> <jvmarg value="-Duser.language=en"/>
>>>> <jvmarg value="-Duser.country=US"/>
>>>> 
>>>> So I was wondering if we could dynamically set these two values via 
>>>> build.properties
>>>> 
>>>> Thanks,
>>>> 
>>>> Han
>>> 
>>> I think that such tests are just broken and require fixing.
>>> 
>>> E.g. get an instance of StringManager and read the expected message from it.
>>> 
>>> 
>>> Maybe we can add -Duser.language=zh -Duser.country=CN to ANT_OPTS in
>>> some Buildbot configurations, to be able to detect such tests.
>> 
>> Sorry, my explanation may be confusing.
>> 
>> Let me explain why with a concrete unit test. Just like this:
>> org.apache.catalina.valves.TestErrorReportValve#testBug53071
>> 
>> ```
>> Assert.assertTrue(res.toString().contains("<p><b>Message</b> " +
>>                ErrorServlet.ERROR_TEXT + "</p>"));
>> ```
>> org.apache.catalina.valves.ErrorReportValve#report
>> ```
>> sb.append("<p><b>");
>> sb.append(smClient.getString("errorReportValve.message"));
>> sb.append("</b> ");
>> ```
>> Since the local of my OS is zh-CN, the response contains `<p><b>信息</b> .... 
>> ` instead of `<p><b>Message</b>.... ', so I’m trying to avoid this by 
>> changing user.language and user.country.
>> Unfortunately, I can’t find any way to do this at the moment, so I have to 
>> manually modify the build.xml.
>> 
> 



> 1. I think that you could add a request header
> 
> Accept-Language: en-US
> 
> using the variant of getUrl() call that accepts a "reqHead" map.
> 
> In TomcatBaseTest:
>    public static int getUrl(String path, ByteChunk out, Map<String,
> List<String>> reqHead,
>            Map<String, List<String>> resHead) throws IOException {
> 

I’ve tried to do this and `en_US` does not work properly, `en` does. For 
reasons I think I already know.

I will propose a BZ to describe this failure test and a PR to fix it.


> 2. Alternatively, using StringManager:
> 
>        StringManager smClient = StringManager.getManager(
>                Constants.Package, request.getLocales());
> 
> where Constants is org.apache.catalina.valves.Constants
> 
> ServletRequest.getLocales() is documented as:
>     * header. If the client request doesn't provide an Accept-Language header,
>     * this method returns an <code>Enumeration</code> containing one
>     * <code>Locale</code>, the default locale for the server.

Surprisingly, based on your suggestion, I found another bug suspected to belong 
to StringManager.

I will propose another BZ to describe  it.
> 
> 
> 
> 3. BTW, I was faxing a similar failure3 years ago,
> https://github.com/apache/tomcat/commit/1758f6460a8e8fbf38b88385860379a4424cc66b
> 
> Time flies fast...

Thank you for all the work you do!

Thanks,
Han
> 
> 
> Best regards,
> Konstantin Kolinko
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
> For additional commands, e-mail: dev-h...@tomcat.apache.org
> 


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org

Reply via email to