the previous message returned, so resending...

---------- Forwarded message ----------

Now when you pointed to "internization" of String literals it would definitely
work. I was talking about original problem. The only way to check
that Harmony implementation of HttpURLConnection compares strings
by equals() was injecting something to the bootclasspath.

Probably it is a bad example and I had to find something else but the
idea is simple: there might be cases when we need to verify something
related either to protected stuff or to classloading so that the test is
impl-independent and requires something in bootclasspath.

BTW, another example could be: we might want to verify that the crypto framework
successfully loads a provider when provider is in bootclasspath.

Thanks,
Mikhail

2006/5/26, Richard Liang <[EMAIL PROTECTED]>:
Mikhail Loenko wrote:
> It is more preferable to have tests implementation-independent:
> we can validate them on RI, the tests will not have to be modified if we
> modify our implementation.
>
Hello Mikhail,

Agree. :-)
But I think the test
org.apache.harmony.tests.internal.net.www.protocol.http.HttpURLConnectionTest.testGetOutputStream
can be re-write as the following. And the test should be package
"org.apache.harmony.tests.java.net" or "tests.api.java.net".

public void testGetOutputStream() throws Exception {
       // Regression for HARMONY-482
       HttpURLConnection c = (HttpURLConnection) new
URL("http://127.0.0.1:";
               + port).openConnection();

       c.setDoOutput(true);
       //use new String("POST") instead of simple "POST" to obtain other
       //object instances then those that are in HttpURLConnection classes
       c.setRequestMethod(new String("POST"));
       c.getOutputStream();

       //use new String("PUT") instead of simple "PUT" to obtain other
       //object instances then those that are in HttpURLConnection classes
       c.disconnect();
       c.setRequestMethod(new String("PUT"));
       c.getOutputStream();

       //use new String("GET") instead of simple "GET" to obtain other
       //object instances then those that are in HttpURLConnection classes
       c.disconnect();
       c.setRequestMethod(new String("GET"));
       c.getOutputStream();
   }

> The test I was talking about was impl-independent. It obtained an
> instance of
> an internal class by impl-independent way and then did some
> impl-independent
> things over it.
>
> I think having tests impl-independent is more preferable goal than not
> having
> api tests in bootclasspath
>
> Thanks,
> Mikhail
>
> 2006/5/26, Richard Liang <[EMAIL PROTECTED]>:
>>
>>
>> Mikhail Loenko wrote:
>> > Hi Richard
>> >
>> > Do you mean a mock subclass of j.n.HttpURLConnection or a mock
>> > subclass of
>> > o.a.h.luni.internal....HttpURLConnection ?
>> >
>> > If it is a subclass for o.a.h... then it won't pass on RI - it would
>> > be an impl test,
>> Hi Mikhail,
>>
>> I'm sorry if my previous description made you confused. :-)
>>
>> AIUI, it IS an implementation test. Because we are testing Harmony's
>> detail implementation.
>>
>> > if it is a subclass for j.n.HUC then it won't catch a problem in
>> > o.a.h....HIC
>> >
>> > Thanks,
>> > Mikhail
>> >
>> > 2006/5/25, Richard Liang <[EMAIL PROTECTED]>:
>> >>
>> >>
>> >> Mikhail Loenko wrote:
>> >> > Yes there is.
>> >> >
>> >> > They can access protected fields (they are also package-visible).
>> >> Or they
>> >> > can test something related to class loading.
>> >> >
>> >> > Example. Recently I committed
>> >> >
>> >>
>> modules\luni\src\test\java.injected\java\net\HttpURLConnectionAccessor.java
>>
>> >>
>> >> >
>> >> > that is not a test though but something that is used by API test
>> and
>> >> > that must
>> >> > be in bootclasspath. (I could refactor and put the test itself
>> to the
>> >> > bootclasspath)
>> >> >
>> >> Hello Mikhail,
>> >>
>> >> Instead of using HttpURLConnectionAccessor, we can access protected
>> >> fields through a mock subclass of HttpURLConnection.
>> >> > Thanks,
>> >> > Mikhail
>> >> >
>> >> > 2006/5/25, Geir Magnusson Jr <[EMAIL PROTECTED]>:
>> >> >>
>> >> >>
>> >> >> Mikhail Loenko wrote:
>> >> >> > 2006/5/24, Geir Magnusson Jr <[EMAIL PROTECTED]>:
>> >> >> >>
>> >> >> >>
>> >> >> >> George Harley wrote:
>> >> >> >> > Hi Mikhail,
>> >> >> >> >
>> >> >> >> > That is a very good point and your suggestion of
>> >> supplementing the
>> >> >> >> class
>> >> >> >> > or package name sounds like a very straightforward way around
>> >> the
>> >> >> >> > problem. Because there will be a number of tests that must be
>> >> in an
>> >> >> >> > identical package name to the type under test then it
>> seems that
>> >> >> the
>> >> >> >> > differentiating mark needs to be added to the test class
>> >> name. Not
>> >> >> >> > really sure what this could be. Given that we are all
>> settled on
>> >> >> the
>> >> >> >> > convention that a test type has the "Test" suffix, how about
>> >> >> just add
>> >> >> >> > "Impl" to that suffix for implementation tests giving us an
>> >> >> "ImplTest"
>> >> >> >> > suffix.
>> >> >> >> > e.g.
>> >> >> >> >
>> >> >> >> > class under test : java.lang.SomeClassTest
>> >> >> >> > implementation-independent test class :
>> >> >> >> > o.a.h.module.tests.java.lang.SomeClassTest
>> >> >> >> > Harmony-specific test class :
>> >> >> >> > o.a.h.module.tests.java.lang.SomeClassImplTest
>> >> >> >>
>> >> >> >> Or
>> >> >> >>
>> >> >> >> o.a.h.<module>.apitest.java.lang.FooTest
>> >> >> >> o.a.h.<module>.impltest.java.lang.FooTest
>> >> >> >>
>> >> >> >>
>> >> >> >> Of course, the implementation test didn't need to be on the
>> >> >> >> bootclasspath, it would simply be
>> >> >> >>
>> >> >> >> java.lang.FooTest
>> >> >> >>
>> >> >> >> with no other garbage in the package name
>> >> >> >
>> >> >> > Hi Geir
>> >> >> >
>> >> >> > how to distinguish between bootclasspath implementation test
>> >> >> >   java.lang.FooTest
>> >> >> > and bootclasspath api test
>> >> >> >   java.lang.FooTest
>> >> >>
>> >> >> Is there such thing as an bootclasspath API test?
>> >> >>
>> >> >> geir
>> >> >>
>> >> >>
>> ---------------------------------------------------------------------
>> >> >> Terms of use : http://incubator.apache.org/harmony/mailing.html
>> >> >> To unsubscribe, e-mail:
>> [EMAIL PROTECTED]
>> >> >> For additional commands, e-mail:
>> >> [EMAIL PROTECTED]
>> >> >>
>> >> >>
>> >> >
>> >> >
>> ---------------------------------------------------------------------
>> >> > Terms of use : http://incubator.apache.org/harmony/mailing.html
>> >> > To unsubscribe, e-mail:
>> [EMAIL PROTECTED]
>> >> > For additional commands, e-mail:
>> [EMAIL PROTECTED]
>> >> >
>> >> >
>> >>
>> >> --
>> >> Richard Liang
>> >> China Software Development Lab, IBM
>> >>
>> >>
>> >>
>> >> ---------------------------------------------------------------------
>> >> Terms of use : http://incubator.apache.org/harmony/mailing.html
>> >> To unsubscribe, e-mail: [EMAIL PROTECTED]
>> >> For additional commands, e-mail:
>> [EMAIL PROTECTED]
>> >>
>> >>
>> >
>> > ---------------------------------------------------------------------
>> > Terms of use : http://incubator.apache.org/harmony/mailing.html
>> > To unsubscribe, e-mail: [EMAIL PROTECTED]
>> > For additional commands, e-mail: [EMAIL PROTECTED]
>> >
>> >
>>
>> --
>> Richard Liang
>> China Software Development Lab, IBM
>>
>>
>>
>> ---------------------------------------------------------------------
>> Terms of use : http://incubator.apache.org/harmony/mailing.html
>> To unsubscribe, e-mail: [EMAIL PROTECTED]
>> For additional commands, e-mail: [EMAIL PROTECTED]
>>
>>
>
> ---------------------------------------------------------------------
> Terms of use : http://incubator.apache.org/harmony/mailing.html
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>

--
Richard Liang
China Software Development Lab, IBM



---------------------------------------------------------------------
Terms of use : http://incubator.apache.org/harmony/mailing.html
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



---------------------------------------------------------------------
Terms of use : http://incubator.apache.org/harmony/mailing.html
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to