Hi,
Thanks Felix. I wrote the test for replaceSelector :).

The problem now is with replace suffix.

can you suggest a way for this.

currently in my test file I have this,


       Map<String,String> props = new HashMap<String,String>();
       string resourceTypeX =  "/x";
       props.put("sling:resourceType", resourceTypeX);
       string  contentUrlX = testClient.createNode(HTTP_BASE_URL
+resourceTypeX , props);

        string resourceTypeXQ = resourceTypeX + "/q";
        props.clear();
        props.put("sling:resourceType", resourceTypeXQ);
        string contentUrlQ = testClient.createNode(HTTP_BASE_URL
+resourceTypeXQ, props);
        uploadTestScript(resourceTypeXQ,"suffix.jsp","html.jsp");


public void testReplaceSuffix() throws Exception {


        final String content = getContent(contentUrlQ + ".html/a.c",
CONTENT_TYPE_HTML);
          System.out.println(content);
       // assertTrue("result of flush",content.contains("Flush Successful
becasue commit is true"));
    }


The "suffix.jsp" file contains the following,

<[EMAIL PROTECTED] session="false"%>
<[EMAIL PROTECTED] import="org.apache.sling.api.SlingHttpServletRequest"%>
<[EMAIL PROTECTED] import="org.apache.sling.api.resource.Resource"%>
<[EMAIL PROTECTED] prefix="sling" 
uri="http://sling.apache.org/taglibs/sling/1.0"%>

<sling:defineObjects/>

<sling:include replaceSuffix="a.b" />

<%
    SlingHttpServletRequest req = (SlingHttpServletRequest) request;
    String suffixTest = "" ;
    suffixTest = req.getRequestPathInfo().getSuffix() ;

    if(suffixTest==null){
        suffixTest = "Suffix Not Successful";
    }
    else{
        suffixTest = "Suffix Successful";

    }

%>

This test fails.


Also you can have a look at the current test at,

http://code.google.com/p/sling-scala/source/browse/trunk/sling475/?r=85

regards,

Janandith.



On Wed, Aug 6, 2008 at 3:34 AM, Felix Meschberger <[EMAIL PROTECTED]>wrote:

> Hi Janandith,
>
> janandith jayawardena schrieb:
>
>> Hi Felix,
>>
>>
>>  I do not exactly understand what you are trying to achieve. Do you have
>>>
>> three scripts -- html.jsp, selector.jsp and replace.jsp ? And you >
>> request
>> http://host/something.html and have the html.jsp being called.
>>
>>  Now what is next ?
>>>
>>
>>
>> Thats what I want to do :).
>>
>> Basically I want a way to write a test for SLING-475 which can test the
>> functionality of flush , replaceSelectors and replaceSuffix in
>> <sling:include /> tag. I'm still confused in  finding a way to use these
>> options in sling:include tag.
>>
>
> Well, I would assume, that testing the flush would not be that easy ...
>
> Testing the replaceSelectors would mean being able to tell that the correct
> script has been included and for replaceSuffix you would check whether in
> the included script the new suffix is visible.
>
> So in html.jsp you would do:
>
>   <sling:include replaceSelectors="selector">
>
> in selector.jsp you could do something like
>
>   Hello this is selector.jsp
>
> In the response check you would then see whether selector.jsp is contained
> in the response. If replaceSelectors would not work, the response would not
> contain the checker string.
>
> Similar tests could be done for the replaceSuffix.
>
> Actually, you probably only need two scripts - html.jsp and selector.jsp.
>
> Hope this helps.
>
> Regards
> Felix
>
>
>> Janandith.
>>
>>
>>
>> On Mon, Aug 4, 2008 at 3:05 PM, Felix Meschberger <[EMAIL PROTECTED]
>> >wrote:
>>
>>  Hi,
>>>
>>> janandith jayawardena schrieb:
>>>
>>>  Hi,
>>>>
>>>> Thanks Bertrand.
>>>>
>>>> When I use ,
>>>>
>>>> <sling:include addSelectors="selector"  replaceSelectors="replace" />
>>>>
>>>> I get the content of replace.jsp
>>>>
>>>>  Point is, that the addSelectors and replaceSelectors are also in fact
>>> mutually exclusive in the sense that addSelectors is ignored if
>>> replaceSelectors is set.
>>>
>>> Hence the inclusion of replace.jsp is expected.
>>>
>>>
>>>  and
>>>>
>>>> when I use ,
>>>>
>>>> <sling:include addSelectors="selector"/>
>>>> <sling:include addSelectors="selector"  replaceSelectors="replace" />
>>>>
>>>> I get both selector.jsp and replace.jsp content.
>>>>
>>>>  Similar here: The first include includes the selector.jsp, while the
>>> second
>>> includes replace.jsp for the reasons explained above.
>>>
>>>
>>>  I tried this,
>>>>
>>>> <sling:include addSelectors="selector"/>
>>>> <sling:include flush=true />
>>>> <sling:include addSelectors="selector"  replaceSelectors="replace" />
>>>>
>>>> hoping flush will erase initial selector.jsp content but there is no
>>>> content
>>>> and the program fails.
>>>>
>>>>  This is a dangerouse one because of the second line with the "flush"
>>> attribute: The flush attribute says to write the current contents of the
>>> output buffer out to the response (and not erase the buffer as you might
>>> expect). In addition this tag will recursively include the same script
>>> again, which should result in an exception being thrown.
>>>
>>>
>>>  I want to test with all these tags in one html.jsp file. how can I use
>>>> the
>>>> replaceSelector to replace selector.jsp with replace.jsp.
>>>>
>>>>  I do not exactly understand what you are trying to achieve. Do you have
>>> three scripts -- html.jsp, selector.jsp and replace.jsp ? And you request
>>> http://host/something.html and have the html.jsp being called.
>>>
>>> Now what is next ?
>>>
>>>
>>>
>>>  Also why does the whole script fail when using flush. What is the
>>>> correct
>>>> way to use it.
>>>>
>>>>  Due to a recursive inclusion of itself and the exception bein thrown.
>>> This
>>> has nothing to do with the flush attribute but with the include itself,
>>> which just includes the current resource with the same selectors and
>>> extension and therefore resolves to the same script over and over again
>>> until too many scripts are included and an exception is thrown.
>>>
>>> Regards
>>> Felix
>>>
>>>
>>

Reply via email to