@Test public void testDoFilter_marksUISessionAsChangedWithConnectionId() throws Exception { HttpSession httpSession = mockHttpSession(); request.setSession(httpSession); request.setParameter("cid", "foo"); UISessionImpl deserializedUISession = new UISessionImpl(null, httpSession, "foo"); setUISession(httpSession, deserializedUISession); rwtClusterSupport.doFilter(request, response, chain); verify(httpSession).setAttribute(endsWith("foo"), same(deserializedUISession)); }
@Test public void testDoFilter_attachesApplicationContextToUISessionWithConnectionId() throws Exception { ApplicationContextImpl applicationContext = mock(ApplicationContextImpl.class); HttpSession httpSession = mockHttpSession(mockServletContext(applicationContext)); request.setSession(httpSession); request.setParameter("cid", "foo"); UISessionImpl deserializedUISession = new UISessionImpl(null, httpSession, "foo"); setUISession(httpSession, deserializedUISession); rwtClusterSupport.doFilter(request, response, chain); assertSame(applicationContext, deserializedUISession.getApplicationContext()); }
@Test public void testDoFilter_attachesHttpSessionToUISession() throws Exception { UISessionImpl deserializedUISession = new UISessionImpl(null, null); HttpSession httpSession = mockHttpSession(); setUISession(httpSession, deserializedUISession); request.setSession(httpSession); rwtClusterSupport.doFilter(request, response, chain); assertSame(httpSession, deserializedUISession.getHttpSession()); }
@Test public void testDoFilter_marksUISessionAsChanged() throws Exception { HttpSession httpSession = mockHttpSession(); request.setSession(httpSession); UISessionImpl deserializedUISession = new UISessionImpl(null, httpSession); setUISession(httpSession, deserializedUISession); rwtClusterSupport.doFilter(request, response, chain); verify(httpSession).setAttribute(anyString(), same(deserializedUISession)); }
@Test public void testDoFilter_doesNotFailWithoutHttpSession() throws Exception { request.setSession(null); rwtClusterSupport.doFilter(request, response, chain); }