|
|
|
Change By:
|
Jozef Hartinger
(03/Jun/13 9:46 AM)
|
Description:
|
org.jboss.cdi.tck.tests.context.conversation.ClientConversationContextTest.
testConversationsDontCrossSessionBoundary1() and testConversationsDontCrossSessionBoundary2()
test that a conversation does not cross session boundary.
Both these tests end with an assertion that is supposed to verify that the conversation context is not propagated across the session boundary and looks like this:
assert !hasRained(client.getPage(getPath("rain.jsf", cid)));
where hasRained() checks for an HTTP header which is supposed to be set by ConversationTestPhaseListener.
The problem with this is that the hasRained() method has very tolerant implementation which returns false even if the header is not set at all. That's why the tests pass actually. It's not that the PhaseListener sets the value to false but the PhaseListener is not invoked at all! That opens rooms for a whole class of implementations that do not implement the spec properly yet they pass the TCK.
What these tests should really be doing is to verify that NonexistentConversationException is thrown. OutermostFilter can be reused for this.
|
|
|
|