Bonjour
Avec Cactus il est possible de tester les Servlet et Filtres.

Pour positionner un cookie, dans la doc, il est dit d'utiliser la methode addCookie de WebRequest
request.addCookie("testcookie", "Valeur").

Il est aussi possible de positionner l'Url :
request.setURL("localhost", "", "", "index.jsp", "");

Si vous utilisez SEULEMENT le addCookie, il est en suite possible de le récupérer dans la methode de test :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
 
javax.servlet.http.Cookie[] cookies = request.getCookies();
assertNotNull("No cookies in request", cookies);
for (int i = 0; i < cookies.length; i++) {
    if (cookies[i].getName().equals("testcookie")) {
        assertEquals("valeur", cookies[i].getValue());
    }
}
Si vous utilisez le addCookie ET le setURL alors, dans la methode de test, il n'est pas possible de récupérer le(s) cookie(s) :
request.getCookies() retourne null.

En cherchant j'ai trouvé une methode pour contourner cela :
On initialise les cookie(s) avec :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
org.apache.cactus.Cookie cookie = new org.apache.cactus.Cookie("localhost", "testcookie", "valeur");
cookie.setPath("/");
request.addCookie(cookie);
Dans la methode de test vous pouvez bien récupérer le(s) cookie(s).

Je voulais savoir si c'est un fonctionnement normal ou un bug de Cactus ?