[ 
https://issues.apache.org/jira/browse/JCR-1168?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12536969
 ] 

Jukka Zitting commented on JCR-1168:
------------------------------------

+1, it's better to break Jackrabbit than the spec

> broken test in AddEventListener
> -------------------------------
>
>                 Key: JCR-1168
>                 URL: https://issues.apache.org/jira/browse/JCR-1168
>             Project: Jackrabbit
>          Issue Type: Bug
>          Components: jackrabbit-jcr-tests
>            Reporter: Julian Reschke
>         Attachments: JCR-1168-2.patch, JCR-1168.patch
>
>
> Here's the test code, comments inline prefixed with "reschke"
>     /**
>      * Tests if [EMAIL PROTECTED] javax.jcr.observation.Event#NODE_ADDED} is 
> created only
>      * for the specified path if <code>isDeep</code> is <code>false</code>.
>      */
>     public void testIsDeepFalseNodeAdded() throws RepositoryException {
>         EventResult listener = new EventResult(log);
>         // reschke: we are listening for changes at testRoot/nodeName1, with 
> isDeep==false 
>         obsMgr.addEventListener(listener, Event.NODE_ADDED, testRoot + "/" + 
> nodeName1, false, null, null, false);
>         // reschke; node at "testRoot/nodeName1" being created, the 
> associated parent node for this event is "testRoot"
>         Node n = testRootNode.addNode(nodeName1, testNodeType);
>         // reschke: node at "testRoot/nodeName1/nodeName2" being created, the 
> associated parent node for this event is "testRoot/nodeName1"
>         n.addNode(nodeName2);
>         testRootNode.save();
>         Event[] events = listener.getEvents(DEFAULT_WAIT_TIMEOUT);
>         obsMgr.removeEventListener(listener);
>         // reschke: test case expects event with path "testRoot/nodeName1"
>         checkNodeAdded(events, new String[]{nodeName1});
>     }
> So, in plain english:
> - test case listens for events where the associated parent node equals 
> "testRoot/nodeName1", but
> - it expects a single event where the Event.getPath() returns 
> "testRoot/nodeName1".
> This is incorrect (IMHO), because the associated parent node for *that* event 
> is "testRoot". 
> So the correct test would be to check for:
>         checkNodeAdded(events, new String[]{nodeName1 + "/" + nodeName2});
> Making this change of course leads to a test failure reported against the RI.
> Feedback appreciated.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to